{"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/308447/kfnh3v0cx1inkyeao6wwlersddwi/hero-floating-images-desktop.jpg","mobile":"https://cdn.ing/assets/i/r/308448/fohcugnky8vl4zysfhls8ffqeexy/hero-floating-images-mobile.jpg"},"componentPath":"blocks/hero/hero-floating-images.tsx","code":"import { 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      logo={{\n        src: \"https://cdn.ing/assets/i/r/308446/g4ykz8o4phw84yo9ly1lxhv0hqsd/logo-light.webp\",\n        alt: \"Brand Logo\",\n      }}\n      actions={[\n        {\n          label: \"View Portfolio\",\n          href: \"#\",\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: \"#\",\n          size: \"lg\",\n          variant: \"outline\",\n        },\n      ]}\n      images={[\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/vrezhtksoqbw1nyo4hwnoqizrus5\",\n          alt: \"Floating Image 1\",\n          className: \"rounded-lg shadow-lg\",\n        },\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/z37cidvud212bzqhhalrhvk7ipaa\",\n          alt: \"Floating Image 2\",\n          className: \"rounded-lg shadow-lg\",\n        },\n        {\n          src: \"https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo\",\n          alt: \"Floating Image 3\",\n          className: \"rounded-lg shadow-lg\",\n        },\n      ]}\n      optixFlowConfig={{ apiKey: \"os-bcf1c82f-0c47-49ec-a303-807eec0a25c6\" }}\n      className=\"flex items-center justify-center\"\n      background=\"dark\"\n      pattern=\"gridFadeBottomLeft\"\n      patternOpacity={0.15}\n    />\n  );\n}","propsSchema":{"logo":{"type":"object","description":"Brand logo configuration — renders centered above the heading.\nLOGO MEDIA ONLY. Do not use photos, hero images, or video assets.","fields":{"url":{"type":"string","description":"URL to navigate to when logo is clicked","required":false},"src":{"type":"string","description":"Image source for the logo","required":false},"alt":{"type":"string","description":"Alt text for the logo image","required":false},"title":{"type":"object","description":"Text title to display (alternative to image)","typeLabel":"React.ReactNode","required":false},"className":{"type":"string","description":"Additional CSS classes for the logo","required":false}},"typeLabel":"LogoConfig","required":false},"logoSlot":{"type":"object","description":"Custom slot for logo (overrides logo prop)","typeLabel":"React.ReactNode","required":false},"logoClassName":{"type":"string","description":"Additional CSS classes for the logo container","required":false},"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":true,"maxLength":40},"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"}},"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":true,"count":3,"minItems":3,"maxItems":3,"mediaHints":{"path":"images[]","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"medium","required":false,"note":"Floating decorative images. Use varied, visually interesting photos. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"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}},"exampleProps":{"logo":{"src":"https://cdn.ing/assets/i/r/287634/e4cmvu8nbwoqy2qer90t4gpap0ed/logo-light.png","alt":"Brand Logo"},"badge":"Featured Work","heading":"Build Stunning Websites","description":"We design and build beautiful digital products.","images":[{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Image 1"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Image 2"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Image 3"}],"background":"dark"},"dependencies":["@opensite/ui","@page-speed/img","@page-speed/lightbox"],"tags":["hero","floating","images","centered","decorative","playful","brand","landing","visual"],"performance":{},"importantUsageNotes":"Supply exactly 3 images. Do not exceed 40 characters for 'heading'. Do not exceed 130 characters for 'description'. If you supply multiple 'actions', use 'default' for the first and 'outline' or 'link' for the second.  All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.","usageRequirements":{"requiredProps":["heading","images"],"propConstraints":{"heading":{"required":true,"maxLength":40},"description":{"maxLength":130},"images":{"required":true,"count":3,"minItems":3,"maxItems":3},"actions":{"maxItems":2,"pinnedValues":{"0.variant":"default"}}},"mediaSlots":{"images[]":{"path":"images[]","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"medium","required":false,"note":"Floating decorative images. Use varied, visually interesting photos. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"requiresSiteCapabilities":["media_library"]}}},"timestamp":"2026-06-27T20:09:54.966Z"}