{"success":true,"data":{"block":{"id":"hero-floating-images","name":"Floating Images Hero","title":"Hero Floating Images","category":"Hero","categorySlug":"hero","description":"A centered hero with decorative swirl lines and floating image accents around the headline. Great for lifestyle, hospitality, or brand-forward landing pages that need a playful visual tone.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/287651/iqa7polbmolw2cz1ykaxayyq437f/hero-preview-desktop.jpg","mobile":"https://cdn.ing/assets/i/r/287652/5nuzgffs2qsop76mz7ckuvek9xp9/hero-preview-mobile.jpg"},"componentPath":"blocks/hero/hero-floating-images.tsx","code":"import { imagePlaceholders, optixFlowApiKey } from \"@/lib/media\";\nimport { HeroFloatingImages } from \"@opensite/ui/blocks/hero/hero-floating-images\";\nimport { DynamicIcon } from \"@opensite/ui/components/dynamic-icon\";\n\nexport default function Demo() {\n  return (\n    <HeroFloatingImages\n      badge=\"Featured Work\"\n      heading=\"Build Stunning Websites with OpenSite UI\"\n      description=\"We design and build beautiful digital products that help brands connect with their audience. From concept to launch, we bring visions to life.\"\n      actions={[\n        {\n          label: \"View Portfolio\",\n          href: \"/portfolio\",\n          size: \"lg\",\n          variant: \"default\",\n          iconAfter: (\n            <DynamicIcon name=\"lucide/arrow-right\" className=\"h-4 w-4\" />\n          ),\n        },\n        {\n          label: \"Our Process\",\n          href: \"/process\",\n          size: \"lg\",\n          variant: \"link\",\n        },\n      ]}\n      images={[\n        {\n          src: imagePlaceholders[10],\n          alt: \"Floating Image 1\",\n          className: \"rounded-lg shadow-lg\",\n        },\n        {\n          src: imagePlaceholders[15],\n          alt: \"Floating Image 2\",\n          className: \"rounded-lg shadow-lg\",\n        },\n        {\n          src: imagePlaceholders[20],\n          alt: \"Floating Image 3\",\n          className: \"rounded-lg shadow-lg\",\n        },\n      ]}\n      optixFlowConfig={{ apiKey: optixFlowApiKey as string }}\n      className=\"flex items-center justify-center\"\n      background=\"dark\"\n      pattern=\"gridFadeBottomLeft\"\n      patternOpacity={0.15}\n    />\n  );\n}","propsSchema":{"badge":{"type":"object","description":"Badge content displayed above the heading","typeLabel":"React.ReactNode","required":false},"badgeIcon":{"type":"object","description":"Badge icon","typeLabel":"React.ReactNode","required":false},"heading":{"type":"object","description":"Main heading content","typeLabel":"React.ReactNode","required":false},"description":{"type":"object","description":"Description text below heading","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},"images":{"type":"array","description":"Array of images for the gallery section.\nFirst image with `featured: true` (or first image if none marked) displays as the tall featured image.\nRemaining images display in a stacked layout beside it.","items":{"type":"object","description":"","fields":{"src":{"type":"string","description":"Image source URL","required":true},"alt":{"type":"string","description":"Alt text for accessibility","required":true},"featured":{"type":"boolean","description":"Whether this is a featured image (displays larger/taller in the gallery)","required":false},"className":{"type":"string","description":"Additional CSS classes for the image","required":false}},"typeLabel":"HeroFloatingImagesImage"},"typeLabel":"HeroFloatingImagesImage[]","required":false},"imagesSlot":{"type":"object","description":"Custom slot for rendering the gallery (overrides images array).\nUse when you need complete control over the gallery layout.","typeLabel":"React.ReactNode","required":false},"zoomIconName":{"type":"string","description":"Icon name for the zoom indicator on gallery images.\nUses DynamicIcon format: \"prefix/icon-name\"","required":false},"enableLightbox":{"type":"boolean","description":"Whether to enable lightbox functionality for gallery images.\nWhen enabled, clicking an image opens it in a fullscreen lightbox.","required":false},"background":{"type":"string","description":"Background style for the section","typeLabel":"SectionBackground","required":false},"containerClassName":{"type":"string","description":"Additional CSS classes for the container","required":false},"spacing":{"type":"object","description":"Section spacing variant","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 wrapper","required":false},"gridClassName":{"type":"string","description":"Additional CSS classes for the main grid container","required":false},"contentClassName":{"type":"string","description":"Additional CSS classes for the content area (left side)","required":false},"badgeClassName":{"type":"string","description":"Additional CSS classes for the badge","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},"actionsClassName":{"type":"string","description":"Additional CSS classes for the actions container","required":false},"galleryClassName":{"type":"string","description":"Additional CSS classes for the gallery container (right side)","required":false},"featuredImageClassName":{"type":"string","description":"Additional CSS classes for the featured image wrapper","required":false},"secondaryImageClassName":{"type":"string","description":"Additional CSS classes for secondary image wrappers","required":false},"imageClassName":{"type":"string","description":"Additional CSS classes for all images","required":false},"zoomIndicatorClassName":{"type":"string","description":"Additional CSS classes for the zoom indicator overlay","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}},"defaultProps":{"zoomIconName":"lucide/zoom-in","enableLightbox":true,"spacing":"lg"},"dependencies":["@opensite/ui","@page-speed/img","@page-speed/lightbox"],"tags":["hero","floating","images","centered","decorative","playful","brand","landing","visual"],"performance":{},"importantUsageNotes":"Do not exceed 40 characters for the 'heading' prop. Do not exceed 130 characters for the 'description' prop. 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:41:38.450Z"}