{"success":true,"data":{"block":{"id":"hero-gradient-avatars-rating","name":"Gradient Avatars Rating Hero","title":"Hero Gradient Avatars Rating","category":"Hero","categorySlug":"hero","description":"A hero with gradient background, user avatars, and star ratings. Combines visual appeal with social proof elements.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290326/etbwj8ay5e67esk15c9ckmb1o0q7/cleanshot-2026-02-18-at-08-45-29.png","mobile":"https://cdn.ing/assets/i/r/290325/mcamqx25pmyquzxlovj2rw9m0zkt/cleanshot-2026-02-18-at-08-45-40.png"},"componentPath":"blocks/hero/hero-gradient-avatars-rating.tsx","code":"import { imagePlaceholders } from \"@/lib/media\";\nimport { HeroGradientAvatarsRating } from \"@opensite/ui/blocks/hero/hero-gradient-avatars-rating\";\nimport { DynamicIcon } from \"@opensite/ui/components/dynamic-icon\";\n\nexport default function Demo() {\n  return (\n    <HeroGradientAvatarsRating\n      heading=\"Loved by thousands of users\"\n      description=\"Join our community of satisfied customers and experience the difference. Rated 4.9/5 by over 10,000 users.\"\n      actions={[\n        {\n          label: \"Start Free Trial\",\n          href: \"#\",\n          variant: \"outline\",\n          iconAfter: <DynamicIcon name=\"lucide/arrow-right\" size={16} />,\n        },\n        {\n          label: \"Read Reviews\",\n          href: \"#\",\n          variant: \"ghost\",\n          icon: <DynamicIcon name=\"lucide/star\" size={16} />,\n        },\n      ]}\n      avatars={[\n        { src: imagePlaceholders[1], alt: \"User 1\" },\n        { src: imagePlaceholders[2], alt: \"User 2\" },\n        { src: imagePlaceholders[3], alt: \"User 3\" },\n        { src: imagePlaceholders[4], alt: \"User 4\" },\n      ]}\n      images={[\n        { src: imagePlaceholders[100], alt: \"Hero 1\" },\n        { src: imagePlaceholders[101], alt: \"Hero 2\" },\n      ]}\n      ratingValue=\"4.9\"\n      ratingLabel=\"10,000+ happy users\"\n      background=\"gradient\"\n      pattern=\"gridFadeTopLeft\"\n      patternOpacity={0.15}\n    />\n  );\n}","propsSchema":{"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},"avatars":{"type":"array","description":"Array of avatar items for social proof","items":{"type":"object","description":"","fields":{"src":{"type":"string","description":"Avatar image source URL","required":true},"alt":{"type":"string","description":"Alt text for the avatar","required":true},"className":{"type":"string","description":"Additional CSS classes for the avatar","required":false}},"typeLabel":"AvatarItem"},"typeLabel":"AvatarItem[]","required":false},"avatarsSlot":{"type":"object","description":"Custom slot for avatars (overrides avatars array)","typeLabel":"React.ReactNode","required":false},"ratingValue":{"type":"string","description":"Rating value (e.g., \"5.0\")","required":false},"ratingLabel":{"type":"object","description":"Rating label (e.g., \"1000+ happy developers\")","typeLabel":"React.ReactNode","required":false},"starCount":{"type":"number","description":"Number of stars to display","required":false},"images":{"type":"array","description":"Array of showcase images (expects 2 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":false},"imagesSlot":{"type":"object","description":"Custom slot for images (overrides images array)","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},"actionsClassName":{"type":"string","description":"Additional CSS classes for the actions 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},"sectionId":{"type":"string","description":"Optional Section ID","required":false}},"defaultProps":{},"dependencies":["@opensite/ui"],"tags":["hero","gradient","avatars","rating","stars","social-proof","reviews","trust"],"performance":{},"importantUsageNotes":"Only use this block if there you have actual avatar images to showcase and a ratingValue and ratingLabel - this block should only be used if a site has the type of social proof that can be showcased with actual avatar images of people and a compelling social proof text to go along with it. 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:28.153Z"}