{"success":true,"data":{"block":{"id":"hero-ecommerce-product-showcase","name":"Ecommerce Product Showcase Hero","title":"Hero Ecommerce Product Showcase","category":"Hero","categorySlug":"hero","description":"A hero for ecommerce with product image grid. Features new collection badge and shopping statistics.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290395/ehanooo9hh05r5sgb1g7z98abewi/cleanshot-2026-02-18-at-13-37-36.png","mobile":"https://cdn.ing/assets/i/r/290394/7h7mm2g6fzoph7kcib27dst7ptb2/cleanshot-2026-02-18-at-13-37-53.png"},"componentPath":"blocks/hero/hero-ecommerce-product-showcase.tsx","code":"import { HeroEcommerceProductShowcase } from \"@opensite/ui/blocks/hero/hero-ecommerce-product-showcase\";\nimport { DynamicIcon } from \"@opensite/ui/components/dynamic-icon\";\n\nexport default function Demo() {\n  return (\n    <HeroEcommerceProductShowcase\n      badgeText=\"New Collection\"\n      badgeIcon=\"lucide/star\"\n      heading=\"Premium products for modern living\"\n      description=\"Discover our curated collection of handpicked items designed to elevate your everyday life. Quality craftsmanship, timeless style.\"\n      actions={[\n        {\n          label: \"Shop Now\",\n          href: \"#\",\n          variant: \"default\",\n          iconAfter: <DynamicIcon name=\"lucide/shopping-bag\" size={16} />,\n        },\n        {\n          label: \"View Lookbook\",\n          href: \"#\",\n          variant: \"outline\",\n        },\n      ]}\n      stats={[\n        {\n          icon: (\n            <DynamicIcon\n              name=\"lucide/briefcase\"\n              size={24}\n              className=\"text-primary\"\n            />\n          ),\n          value: \"500+\",\n          label: \"Projects Completed\",\n        },\n        {\n          icon: (\n            <DynamicIcon\n              name=\"lucide/users\"\n              size={24}\n              className=\"text-primary\"\n            />\n          ),\n          value: \"50M+\",\n          label: \"Users Reached\",\n        },\n        {\n          icon: (\n            <DynamicIcon\n              name=\"lucide/star\"\n              size={24}\n              className=\"text-primary\"\n            />\n          ),\n          value: \"98%\",\n          label: \"Client Satisfaction\",\n        },\n      ]}\n      images={[\n        { src: \"https://toastability-production.s3.amazonaws.com/9keidwrag6g7jtqr7rdwb1ryt6ht\", alt: \"Product 1\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/zm88vf14geh1gh0frd3yrdlb6pl8\", alt: \"Product 2\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/0x7ktdk01jfaoysst0emzvqevu19\", alt: \"Product 3\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/e83zsyvl0an0owzdmpwjnnty641x\", alt: \"Product 4\" },\n      ]}\n      background=\"gray\"\n    />\n  );\n}","propsSchema":{"badgeText":{"type":"object","description":"Badge text content","typeLabel":"React.ReactNode","required":false},"badgeIcon":{"type":"string","description":"Badge icon name","required":false},"badgeSlot":{"type":"object","description":"Custom slot for badge (overrides badge props)","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","1.variant":"outline"}},"actionsSlot":{"type":"object","description":"Custom slot for rendering actions (overrides actions array)","typeLabel":"React.ReactNode","required":false},"stats":{"type":"array","description":"Array of stat items","items":{"type":"object","description":"","fields":{"value":{"type":"object","description":"Stat value (number or formatted string)","typeLabel":"ReactNode","required":true},"label":{"type":"object","description":"Stat label/description","typeLabel":"ReactNode","required":false},"icon":{"type":"object","description":"Optional icon","typeLabel":"ReactNode | string","required":false},"className":{"type":"string","description":"Additional CSS classes","required":false}},"typeLabel":"StatItem"},"typeLabel":"StatItem[]","required":false,"minItems":2,"maxItems":4},"statsSlot":{"type":"object","description":"Custom slot for stats (overrides stats array)","typeLabel":"React.ReactNode","required":false},"images":{"type":"array","description":"Array of product images (expects 4 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":4,"mediaHints":{"path":"images[]","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"medium","required":true,"note":"Product showcase images. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"imagesSlot":{"type":"object","description":"Custom slot for images (overrides images 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},"patternClassName":{"type":"string","description":"Additional CSS classes for the pattern overlay","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 column","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},"statsClassName":{"type":"string","description":"Additional CSS classes for the stats container","required":false},"imagesClassName":{"type":"string","description":"Additional CSS classes for the images 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},"logo":{"type":"object","description":"Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.","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},"sectionId":{"type":"string","description":"Optional Section ID","required":false}},"exampleProps":{"logo":{"src":"https://cdn.ing/assets/i/r/287635/1tmeh86afyxszfz7hbmvcc0oct8w/logo-dark.png","alt":"Brand Logo"},"badgeText":"New Collection","heading":"Premium products for modern living","description":"Discover our curated collection of handpicked items.","images":[{"src":"https://toastability-production.s3.amazonaws.com/8x62o6350p1ejm3pjrp1jwvcbh4v","alt":"Product 1"},{"src":"https://toastability-production.s3.amazonaws.com/vvixyoo7ybq3h04q2q0kact0s5wc","alt":"Product 2"},{"src":"https://toastability-production.s3.amazonaws.com/t502cfynqso7ntkdvmcmfc87yjkt","alt":"Product 3"},{"src":"https://toastability-production.s3.amazonaws.com/ihgx63s5nfzp2e93e3ccljjnnrov","alt":"Product 4"}],"stats":[{"value":"500+","label":"Products"},{"value":"50K+","label":"Customers"},{"value":"98%","label":"Satisfaction"}],"actions":[{"label":"Shop Now","href":"#","variant":"default"},{"label":"View Lookbook","href":"#","variant":"outline"}]},"dependencies":["@opensite/ui"],"tags":["hero","ecommerce","product","showcase","shopping","retail","collection","store"],"performance":{},"importantUsageNotes":"Supply exactly 4 product images. Supply 2-3 stats. Only supply real stats — do not fabricate. Do not exceed 40 characters for 'heading'. Do not exceed 130 characters for 'description'.  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":4,"minItems":3,"maxItems":4},"stats":{"minItems":2,"maxItems":4,"note":"Must be real stats. Do not fabricate."},"actions":{"maxItems":2,"pinnedValues":{"0.variant":"default","1.variant":"outline"}}},"mediaSlots":{"images[]":{"path":"images[]","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"medium","required":true,"note":"Product showcase images. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"requiresSiteCapabilities":["media_library","products","stats_or_metrics"]}}},"timestamp":"2026-06-27T20:18:26.104Z"}