{"success":true,"data":{"block":{"id":"hero-design-carousel-portfolio","name":"Design Carousel Portfolio Hero","title":"Hero Design Carousel Portfolio","category":"Hero","categorySlug":"hero","description":"A portfolio-style hero with a carousel showcasing design work or projects. Perfect for creative agencies and designers.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290304/rx0t7ysihfk2lhsr9hdnuf1xwd91/cleanshot-2026-02-18-at-04-27-09.png","mobile":"https://cdn.ing/assets/i/r/290303/b1zjc7oquywndi5knn9wmhh1c2bq/cleanshot-2026-02-18-at-04-27-29.png"},"componentPath":"blocks/hero/hero-design-carousel-portfolio.tsx","code":"import { HeroDesignCarouselPortfolio } from \"@opensite/ui/blocks/hero/hero-design-carousel-portfolio\";\nimport { DynamicIcon } from \"@opensite/ui/components/dynamic-icon\";\n\nexport default function Demo() {\n  return (\n    <HeroDesignCarouselPortfolio\n      logo={{\n        src: \"https://cdn.ing/assets/i/r/287635/1tmeh86afyxszfz7hbmvcc0oct8w/logo-dark.png\",\n        alt: \"Brand Logo\",\n      }}\n      heading=\"Design portfolio that speaks volumes\"\n      description=\"Showcase your best work with beautiful, interactive carousels that captivate and engage your audience.\"\n      features={[\n        {\n          icon: (\n            <DynamicIcon\n              name=\"lucide/target\"\n              size={24}\n              className=\"text-primary\"\n            />\n          ),\n          title: \"Strategic Focus\",\n          description:\n            \"Every project begins with understanding your goals. We align our work with your business objectives to ensure measurable impact.\",\n        },\n        {\n          icon: (\n            <DynamicIcon name=\"lucide/zap\" size={24} className=\"text-primary\" />\n          ),\n          title: \"Rapid Execution\",\n          description:\n            \"Our agile methodology enables quick iterations and fast time-to-market without compromising on quality.\",\n        },\n        {\n          icon: (\n            <DynamicIcon\n              name=\"lucide/heart\"\n              size={24}\n              className=\"text-primary\"\n            />\n          ),\n          title: \"Human-Centered\",\n          description:\n            \"We design for people first. Every decision is informed by user research and validated through testing.\",\n        },\n      ]}\n      actions={[\n        {\n          label: \"Schedule Chat\",\n          href: \"#\",\n          variant: \"default\",\n        },\n        {\n          label: \"View Portfolio\",\n          href: \"#\",\n          variant: \"outline\",\n          iconAfter: <DynamicIcon name=\"lucide/arrow-right\" size={16} />,\n        },\n      ]}\n      carouselImages={[\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/xlp46pzk3a4d73jgjx4s7xdafwpn\",\n          alt: \"Portfolio project one\",\n        },\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/g1iuifb3yzoofo9c7a00koyn6q1t\",\n          alt: \"Portfolio project two\",\n        },\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/z9u4sdrj2oq3eds0qyui0nxsus3j\",\n          alt: \"Portfolio project three\",\n        },\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/63aotyt2pb4gqpccej2kkw8reson\",\n          alt: \"Portfolio project four\",\n        },\n      ]}\n      background=\"gray\"\n      pattern=\"circuitBoardFadeTop\"\n      patternOpacity={0.9}\n    />\n  );\n}","propsSchema":{"logo":{"type":"object","description":"Logo configuration","fields":{"src":{"type":"object","description":"Image source URL or light/dark mode variants","typeLabel":"string | { light: string; dark?: string; }","required":true},"alt":{"type":"string","description":"Alt text for accessibility","required":true},"href":{"type":"string","description":"Optional link URL","required":false},"className":{"type":"string","description":"Additional CSS classes for the logo wrapper","required":false},"imgClassName":{"type":"string","description":"Additional CSS classes for the img element","required":false}},"typeLabel":"LogoItem","required":false,"mediaHints":{"path":"logo.src","roles":["logo"],"disallowedRoles":["favicon","video-thumbnail"],"minPixelClass":"small","required":false,"note":"Brand logo rendered via BrandLogo component above the features and heading. LOGO IMAGE ONLY. Do not use photos, favicons, or video assets."}},"logoSlot":{"type":"object","description":"Custom slot for logo (overrides logo prop)","typeLabel":"React.ReactNode","required":false},"features":{"type":"array","description":"Array of feature highlights","items":{"type":"object","description":"","typeLabel":"FeatureItem & { iconName?: string; }"},"typeLabel":"FeatureItem & { iconName?: string; }[]","required":true,"count":3,"minItems":3,"maxItems":3},"featuresSlot":{"type":"object","description":"Custom slot for features (overrides features array)","typeLabel":"React.ReactNode","required":false},"heading":{"type":"object","description":"Main heading content","typeLabel":"React.ReactNode","required":true,"maxLength":50},"description":{"type":"object","description":"Description text below heading","typeLabel":"React.ReactNode","required":false,"maxLength":130},"actions":{"type":"array","description":"Array of action configurations for CTA buttons","items":{"type":"object","description":"","fields":{"variant":{"type":"string","description":"","typeLabel":"\"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"ghost\" | \"link\"","required":false},"size":{"type":"string","description":"","typeLabel":"\"default\" | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\" | \"icon-lg\"","required":false},"label":{"type":"object","description":"Button/link label text or ReactNode","typeLabel":"ReactNode","required":false},"icon":{"type":"object","description":"Icon to display (typically before label)","typeLabel":"ReactNode","required":false},"iconAfter":{"type":"object","description":"Icon to display after the label","typeLabel":"ReactNode","required":false},"href":{"type":"string","description":"URL for link behavior","required":false},"onClick":{"type":"object","description":"Click handler for button behavior","typeLabel":"MouseEventHandler","required":false},"className":{"type":"string","description":"Additional CSS classes for the action","required":false},"children":{"type":"object","description":"Custom children (overrides label + icon rendering)","typeLabel":"ReactNode","required":false},"aria-label":{"type":"string","description":"ARIA label for accessibility","required":false},"asButton":{"type":"boolean","description":"Render as a button element instead of an anchor/link","required":false}},"typeLabel":"ActionConfig"},"typeLabel":"ActionConfig[]","required":false,"maxItems":2,"pinnedValues":{"0.variant":"default","1.variant":"outline"}},"actionsSlot":{"type":"object","description":"Custom slot for actions (overrides action props)","typeLabel":"React.ReactNode","required":false},"actionsClassName":{"type":"string","description":"Additional CSS classes for the actions container","required":false},"carouselImages":{"type":"array","description":"Array of carousel images","items":{"type":"object","description":"","fields":{"src":{"type":"string","description":"Image source URL","required":true},"alt":{"type":"string","description":"Alt text for accessibility","required":true},"href":{"type":"string","description":"Optional link URL","required":false},"className":{"type":"string","description":"Additional CSS classes for the image","required":false}},"typeLabel":"ImageItem"},"typeLabel":"ImageItem[]","required":true,"count":4,"minItems":3,"maxItems":5,"mediaHints":{"path":"carouselImages[]","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"medium","required":true,"note":"Portfolio showcase images for the carousel. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"carouselSlot":{"type":"object","description":"Custom slot for carousel (overrides carouselImages array)","typeLabel":"React.ReactNode","required":false},"background":{"type":"string","description":"Background style for the section","typeLabel":"SectionBackground","required":false},"spacing":{"type":"object","description":"Vertical spacing for the section","fields":{},"typeLabel":"SectionSpacing","required":false},"pattern":{"type":"object","description":"Optional background pattern name","fields":{},"typeLabel":"PatternName","required":false},"patternOpacity":{"type":"number","description":"Pattern overlay opacity (0-1)","required":false},"className":{"type":"string","description":"Additional CSS classes for the section","required":false},"containerClassName":{"type":"string","description":"Additional CSS classes for the container","required":false},"contentClassName":{"type":"string","description":"Additional CSS classes for the content area","required":false},"headingClassName":{"type":"string","description":"Additional CSS classes for the heading","required":false},"descriptionClassName":{"type":"string","description":"Additional CSS classes for the description","required":false},"featuresClassName":{"type":"string","description":"Additional CSS classes for the features container","required":false},"carouselClassName":{"type":"string","description":"Additional CSS classes for the carousel container","required":false},"optixFlowConfig":{"type":"object","description":"OptixFlow image optimization configuration","fields":{"apiKey":{"type":"string","description":"API key for OptixFlow service","required":true},"compression":{"type":"number","description":"Compression level (0-100)","required":false}},"typeLabel":"OptixFlowConfig","required":false},"sectionId":{"type":"string","description":"Optional Section ID","required":false},"logo.src":{"type":"object","description":""}},"exampleProps":{"logo":{"src":"https://cdn.ing/assets/i/r/287634/e4cmvu8nbwoqy2qer90t4gpap0ed/logo-light.png","alt":"Brand Logo"},"heading":"Design portfolio that speaks volumes","description":"Showcase your best work with beautiful, interactive carousels.","features":[{"iconName":"lucide/target","title":"Strategic Focus","description":"Aligning work with your goals."},{"iconName":"lucide/zap","title":"Rapid Execution","description":"Agile methodology for fast delivery."},{"iconName":"lucide/heart","title":"Human-Centered","description":"Design for people first."}],"carouselImages":[{"src":"https://toastability-production.s3.amazonaws.com/vvixyoo7ybq3h04q2q0kact0s5wc","alt":"Design 1"},{"src":"https://toastability-production.s3.amazonaws.com/t502cfynqso7ntkdvmcmfc87yjkt","alt":"Design 2"},{"src":"https://toastability-production.s3.amazonaws.com/ihgx63s5nfzp2e93e3ccljjnnrov","alt":"Design 3"},{"src":"https://toastability-production.s3.amazonaws.com/b555hwjt7ltr81et05v5254q1ak6","alt":"Design 4"}],"actions":[{"label":"Schedule Chat","href":"#","variant":"default"},{"label":"View Portfolio","href":"#","variant":"outline"}]},"dependencies":["@opensite/ui"],"tags":["hero","design","carousel","portfolio","creative","agency","projects","showcase"],"performance":{},"importantUsageNotes":"The 'logo' prop renders via BrandLogo and must be a brand logo image (SVG, PNG, WebP) — NEVER a photo or hero image. The AI Agent must use a real brand logo asset here, not an image placeholder. Supply exactly 4 carousel images for the portfolio. Supply exactly 3 'features'. All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.","usageRequirements":{"requiredProps":["heading","carouselImages","features"],"propConstraints":{"heading":{"required":true,"maxLength":50},"description":{"maxLength":130},"carouselImages":{"required":true,"count":4,"minItems":3,"maxItems":5},"features":{"required":true,"count":3,"minItems":3,"maxItems":3},"actions":{"maxItems":2,"pinnedValues":{"0.variant":"default","1.variant":"outline"}},"logo.src":{"note":"LOGO MEDIA ONLY. Must be a brand logo image. Never use a photo, hero image, or video asset."}},"mediaSlots":{"carouselImages[]":{"path":"carouselImages[]","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"medium","required":true,"note":"Portfolio showcase images for the carousel. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."},"logo.src":{"path":"logo.src","roles":["logo"],"disallowedRoles":["favicon","video-thumbnail"],"minPixelClass":"small","required":false,"note":"Brand logo rendered via BrandLogo component above the features and heading. LOGO IMAGE ONLY. Do not use photos, favicons, or video assets."}},"requiresSiteCapabilities":["media_library"]}}},"timestamp":"2026-06-27T20:17:17.755Z"}