{"success":true,"data":{"block":{"id":"hero-mobile-app-download","name":"Mobile App Download Hero","title":"Hero Mobile App Download","category":"Hero","categorySlug":"hero","description":"A hero for mobile apps with download buttons. Features app store badges, phone mockup, and ratings.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290383/coe3dhtbdvx93i1wgqtjhxoed51p/cleanshot-2026-02-18-at-12-56-33.png","mobile":"https://cdn.ing/assets/i/r/290382/f0nnmsvdp90i04ezpuukbgwsvsa6/cleanshot-2026-02-18-at-12-56-47.png"},"componentPath":"blocks/hero/hero-mobile-app-download.tsx","code":"import { HeroMobileAppDownload } from \"@opensite/ui/blocks/hero/hero-mobile-app-download\";\n\nexport default function Demo() {\n  return (\n    <HeroMobileAppDownload\n      badgeText=\"Now on Mobile\"\n      badgeIcon=\"lucide/smartphone\"\n      heading=\"Take us with you, everywhere\"\n      description=\"Download our mobile app and access all your favorite features on the go. Available for iOS and Android.\"\n      storeActions={[\n        {\n          href: \"#\",\n          label: \"Download on the\",\n          storePrefix: \"Download on the\",\n          storeName: \"App Store\",\n          storeIcon: \"cib/apple\",\n        },\n        {\n          href: \"#\",\n          label: \"Get it on\",\n          storePrefix: \"Get it on\",\n          storeName: \"Google Play\",\n          storeIcon: \"cib/google\",\n        },\n      ]}\n      ratingValue=\"4.9\"\n      ratingLabel=\"from 50K+ reviews\"\n      starCount={5}\n      image={{ src: \"https://toastability-production.s3.amazonaws.com/6fffnb4phovtqkjhtzifs4rhb84u\", alt: \"Mobile app screenshot\" }}\n      background=\"gray\"\n      pattern=\"crossPattern\"\n      patternOpacity={0.15}\n    />\n  );\n}","propsSchema":{"badgeText":{"type":"object","description":"Badge text","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},"storeActions":{"type":"array","description":"Array of app store action configurations","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},"storePrefix":{"type":"string","description":"Store label prefix (e.g., \"Download on the\")","required":false},"storeName":{"type":"string","description":"Store name (e.g., \"App Store\")","required":false},"storeIcon":{"type":"string","description":"Store icon name","required":false}},"typeLabel":"AppStoreAction"},"typeLabel":"AppStoreAction[]","required":false},"storeActionsSlot":{"type":"object","description":"Custom slot for store actions (overrides storeActions array)","typeLabel":"React.ReactNode","required":false},"ratingValue":{"type":"string","description":"Rating value (e.g., \"4.9\")","required":false},"ratingLabel":{"type":"object","description":"Rating label (e.g., \"rating from 50K+ reviews\")","typeLabel":"React.ReactNode","required":false},"starCount":{"type":"number","description":"Number of stars to display","required":false},"ratingSlot":{"type":"object","description":"Custom slot for rating section (overrides rating props)","typeLabel":"React.ReactNode","required":false},"image":{"type":"object","description":"Mobile app screenshot image","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","required":true,"mediaHints":{"path":"image.src","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"large","required":true,"note":"Mobile app screenshot. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"imageSlot":{"type":"object","description":"Custom slot for image (overrides image prop)","typeLabel":"React.ReactNode","required":false},"notification":{"type":"object","description":"Notification popup configuration","fields":{"icon":{"type":"string","description":"Notification icon name","required":false},"iconBgClass":{"type":"string","description":"Icon background class","required":false},"iconColorClass":{"type":"string","description":"Icon color class","required":false},"title":{"type":"string","description":"Notification title","required":false},"subtitle":{"type":"string","description":"Notification subtitle","required":false}},"typeLabel":"NotificationItem","required":false},"notificationSlot":{"type":"object","description":"Custom slot for notification (overrides notification prop)","typeLabel":"React.ReactNode","required":false},"background":{"type":"string","description":"","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 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},"imageClassName":{"type":"string","description":"Additional CSS classes for the image 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":"Now on Mobile","badgeIcon":"lucide/smartphone","heading":"Take us with you, everywhere","description":"Download our mobile app and access all your favorite features on the go.","storeActions":[{"href":"#","label":"Download on the","storePrefix":"Download on the","storeName":"App Store","storeIcon":"cib/apple"},{"href":"#","label":"Get it on","storePrefix":"Get it on","storeName":"Google Play","storeIcon":"cib/google"}],"ratingValue":"4.9","ratingLabel":"from 50K+ reviews","image":{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"App screenshot"}},"dependencies":["@opensite/ui"],"tags":["hero","mobile","app","download","ios","android","phone","ratings"],"performance":{},"importantUsageNotes":"Requires a real app screenshot ('image'). Only supply real 'ratingValue'/'ratingLabel' — do not fabricate review counts. 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","image"],"propConstraints":{"heading":{"required":true,"maxLength":40},"description":{"maxLength":130},"image":{"required":true},"ratingValue":{"note":"Must be a real rating. Do not fabricate."}},"mediaSlots":{"image.src":{"path":"image.src","roles":["feature","hero"],"disallowedRoles":["logo","favicon","video-thumbnail"],"minPixelClass":"large","required":true,"note":"Mobile app screenshot. IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets."}},"requiresSiteCapabilities":["media_library"]}}},"timestamp":"2026-06-27T20:17:25.735Z"}