{"success":true,"data":{"block":{"id":"carousel-portfolio-hero","name":"Carousel Portfolio Hero","title":"Carousel Portfolio Hero","category":"Carousel","categorySlug":"carousel","description":"A fullscreen portfolio hero section with auto-advancing image slider, gradient overlay, category tags, and navigation controls. Features smooth opacity transitions between slides with slide counter display.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/306769/54xexo730vigbx6hbxjnab7harqz/carousel-portfolio-hero-desktop.jpg","mobile":"https://cdn.ing/assets/i/r/306770/e9qejt3lndse5dwh7gue4mc0ic64/carousel-portfolio-hero-mobile.jpg"},"componentPath":"blocks/carousel/carousel-portfolio-hero.tsx","code":"import { CarouselPortfolioHero } from \"@opensite/ui/blocks/carousel/carousel-portfolio-hero\";\nimport { imagePlaceholders } from \"@/lib/media\";\nimport { DynamicIcon } from \"@opensite/ui\";\n\nexport default function Demo() {\n  return (\n    <CarouselPortfolioHero\n      slides={[\n        {\n          id: 1,\n          image: imagePlaceholders[19],\n          title: \"Brand Identity Redesign\",\n          description:\n            \"Complete visual transformation for a global tech startup\",\n          tag: \"Branding\",\n        },\n        {\n          id: 2,\n          image: imagePlaceholders[37],\n          title: \"E-Commerce Platform\",\n          description:\n            \"Award-winning shopping experience with AI-powered recommendations\",\n          tag: \"Web Design\",\n        },\n        {\n          id: 3,\n          image: imagePlaceholders[53],\n          title: \"Mobile Banking App\",\n          description: \"Intuitive financial management for the modern consumer\",\n          tag: \"Mobile Design\",\n        },\n        {\n          id: 4,\n          image: imagePlaceholders[72],\n          title: \"Sustainability Campaign\",\n          description:\n            \"Multi-channel marketing initiative driving environmental change\",\n          tag: \"Marketing\",\n        },\n        {\n          id: 5,\n          image: imagePlaceholders[91],\n          title: \"SaaS Dashboard\",\n          description:\n            \"Enterprise analytics platform serving Fortune 500 clients\",\n          tag: \"Product Design\",\n        },\n      ]}\n      actions={[\n        {\n          label: \"View All Projects\",\n          href: \"#\",\n          variant: \"default\",\n          size: \"lg\",\n          asButton: true,\n        },\n      ]}\n      autoPlayInterval={6000}\n    />\n  );\n}","propsSchema":{"slides":{"type":"array","description":"Array of portfolio slides","items":{"type":"object","description":"","fields":{"id":{"type":"object","description":"Unique identifier for the slide","typeLabel":"number | string","required":true},"image":{"type":"string","description":"Image source URL","required":true},"title":{"type":"object","description":"Slide title","typeLabel":"React.ReactNode","required":false},"description":{"type":"object","description":"Slide description","typeLabel":"React.ReactNode","required":false},"tag":{"type":"object","description":"Category tag","typeLabel":"React.ReactNode","required":false},"className":{"type":"string","description":"Additional CSS classes for the slide","required":false},"imageClassName":{"type":"string","description":"Additional CSS classes for the image","required":false}},"typeLabel":"PortfolioSlide"},"typeLabel":"PortfolioSlide[]","required":false},"slidesSlot":{"type":"object","description":"Custom slot for rendering slides (overrides slides array)","typeLabel":"React.ReactNode","required":false},"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},"actionsSlot":{"type":"object","description":"Custom slot for rendering actions (overrides actions array)","typeLabel":"React.ReactNode","required":false},"autoPlayInterval":{"type":"number","description":"Auto-play interval in milliseconds","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 wrapper","required":false},"tagClassName":{"type":"string","description":"Additional CSS classes for the tag badge","required":false},"titleClassName":{"type":"string","description":"Additional CSS classes for the title","required":false},"descriptionClassName":{"type":"string","description":"Additional CSS classes for the description","required":false},"actionsClassName":{"type":"string","description":"Additional CSS classes for the actions container","required":false},"navigationClassName":{"type":"string","description":"Additional CSS classes for the navigation controls","required":false},"counterClassName":{"type":"string","description":"Additional CSS classes for the slide counter","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},"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 or URL","fields":{},"typeLabel":"PatternName","required":false},"patternOpacity":{"type":"number","description":"Pattern overlay opacity (0-1)","required":false},"slideMediaOverlayIntensity":{"type":"string","description":"Intensity of the gradient overlay on slide images","typeLabel":"\"low\" | \"default\" | \"high\" | \"very-high\"","required":false},"slideMediaBrightness":{"type":"string","description":"Brightness level for slide images (deprecated - prefer slideMediaOverlayIntensity)","typeLabel":"\"10\" | \"20\" | \"25\" | \"30\" | \"40\" | \"50\" | \"75\" | \"100\"","required":false},"sectionId":{"type":"string","description":"Optional Section ID","required":false}},"defaultProps":{},"dependencies":["@opensite/ui"],"tags":["carousel","portfolio","hero","fullscreen","creative","agency","photography","design","showcase"],"performance":{},"importantUsageNotes":"Use 4-8 slides in the 'slides' array — each slide requires a real image URL via the 'image' field. DO NOT USE this block if you don't have at least 4 valid real images. The per-slide 'tag' is displayed as a badge overlay; keep tags under 20 characters (ideally 1-2 words) to prevent overflow. Do not exceed 60 characters per slide 'title' and 80 characters per slide 'description'. Only use this block if you have real portfolio work to showcase — do not fabricate project titles or descriptions. If you supply multiple 'actions', ensure to use a variant of 'default' for the first action, and 'outline' for the second action to ensure proper visual distinction between the two CTAs. Follow the example props closely for this block."}},"timestamp":"2026-05-13T10:42:20.042Z"}