{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "product-card-hero", "type": "registry:ui", "title": "Product Card Hero", "description": "Two-column hero with floating account menu card, pricing bar, and a four-column feature grid with icons.", "dependencies": [ "motion" ], "files": [ { "path": "registry/ruixenui/product-card-hero.tsx", "content": "\"use client\";\n\nimport * as React from \"react\";\nimport { motion } from \"motion/react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ChevronRight,\n Plus,\n Settings2,\n CircleHelp,\n MessageCircle,\n User,\n Settings,\n LogOut,\n} from \"lucide-react\";\n\nconst S = { type: \"spring\" as const, stiffness: 300, damping: 28 };\nconst S_SOFT = { type: \"spring\" as const, stiffness: 260, damping: 24 };\n\nexport interface ProductCardHeroProps {\n title?: string;\n description?: string;\n ctaText?: string;\n ctaHref?: string;\n features?: {\n title: string;\n description: string;\n }[];\n className?: string;\n}\n\nconst TICKER_ROW_1 = [\n { name: \"Oxymor NS\", price: \"$39\" },\n { name: \"Vertex AI\", price: \"$59\" },\n { name: \"Nova Pro\", price: \"$29\" },\n { name: \"Lumina\", price: \"$49\" },\n { name: \"Prism X\", price: \"$19\" },\n { name: \"Helix ML\", price: \"$35\" },\n];\n\nconst TICKER_ROW_2 = [\n { name: \"Arc Studio\", price: \"$45\" },\n { name: \"Cipher\", price: \"$25\" },\n { name: \"Nebula\", price: \"$55\" },\n { name: \"Flux API\", price: \"$15\" },\n { name: \"Zenith\", price: \"$42\" },\n { name: \"Pulse\", price: \"$33\" },\n];\n\nfunction TickerRow({\n items,\n duration = 40,\n reverse = false,\n}: {\n items: { name: string; price: string }[];\n duration?: number;\n reverse?: boolean;\n}) {\n const doubled = [...items, ...items];\n return (\n
\n {feature.description}\n
\n