{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "hero-3", "title": "Hero 3", "description": "Marketing hero with heading, reviews row, CTAs, and side image (React Native + Uniwind).", "dependencies": [], "registryDependencies": [], "files": [ { "path": "src/blocks/marketing/hero3.tsx", "content": "import { Linking } from 'react-native'\nimport { Image, View } from 'uniwind/components'\nimport { cn } from '../../../reusables/lib/utils'\nimport { Avatar, AvatarImage, Button, UIText } from '../../reusables'\n\nexport interface Hero3Props {\n heading?: string\n description?: string\n buttons?: {\n primary?: {\n text: string\n url: string\n className?: string\n }\n secondary?: {\n text: string\n url: string\n }\n }\n reviews?: {\n count: number\n avatars: {\n src: string\n alt: string\n }[]\n rating?: number\n }\n /** Remote image shown on the wide layout (SVG/PNG URLs may vary by platform). */\n imageUrl?: string\n imageAccessibilityLabel?: string\n className?: string\n}\n\nconst DEFAULT_IMAGE = 'https://deifkwefumgah.cloudfront.net/shadcnblocks/block/placeholder-1.svg'\n\nfunction openUrl(url: string) {\n void Linking.openURL(url)\n}\n\nfunction Hero3({\n heading = 'Blocks built with Shadcn & Tailwind',\n description = 'Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.',\n buttons = {\n primary: {\n text: 'Sign Up',\n url: 'https://www.shadcnblocks.com',\n },\n secondary: {\n text: 'Get Started',\n url: 'https://www.shadcnblocks.com',\n },\n },\n reviews = {\n count: 200,\n rating: 5.0,\n avatars: [\n {\n src: 'https://deifkwefumgah.cloudfront.net/shadcnblocks/block/avatar-1.webp',\n alt: 'Avatar 1',\n },\n {\n src: 'https://deifkwefumgah.cloudfront.net/shadcnblocks/block/avatar-2.webp',\n alt: 'Avatar 2',\n },\n {\n src: 'https://deifkwefumgah.cloudfront.net/shadcnblocks/block/avatar-3.webp',\n alt: 'Avatar 3',\n },\n {\n src: 'https://deifkwefumgah.cloudfront.net/shadcnblocks/block/avatar-4.webp',\n alt: 'Avatar 4',\n },\n {\n src: 'https://deifkwefumgah.cloudfront.net/shadcnblocks/block/avatar-5.webp',\n alt: 'Avatar 5',\n },\n ],\n },\n className,\n imageAccessibilityLabel = 'Hero illustration',\n imageUrl = DEFAULT_IMAGE,\n}: Hero3Props) {\n return (\n \n \n \n \n {heading}\n \n \n {description}\n \n\n \n \n {reviews.avatars.map((avatar, index) => (\n 0 && '-ml-4')}\n >\n \n \n ))}\n \n \n \n {[0, 1, 2, 3, 4].map(index => (\n \n ★\n \n ))}\n {reviews.rating?.toFixed(1)}\n \n from {reviews.count}+ reviews\n \n \n\n \n {buttons.primary ? (\n \n ) : null}\n {buttons.secondary ? (\n \n ) : null}\n \n \n\n \n \n \n \n \n )\n}\n\nexport { Hero3 }\n", "type": "registry:component" }, { "path": "src/blocks/marketing/index.ts", "content": "export type { Hero3Props } from './hero3'\nexport { Hero3 } from './hero3'\n", "type": "registry:lib" } ], "docs": "Uses `Avatar`, `Button`, `UIText`, `Linking.openURL` for button URLs. Remote SVG hero images may need a raster `imageUrl` on some platforms.", "categories": [ "blocks", "marketing" ], "type": "registry:block" }