{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "pricing-card", "title": "Pricing Card", "description": "A focused pricing card layout with clear hierarchy.", "dependencies": [ "motion", "@hugeicons/core-free-icons", "@hugeicons/react", "lucide-react", "@number-flow/react", "clsx", "tailwind-merge" ], "files": [ { "path": "registry/default/example/pricing-card.tsx", "content": "\"use client\";\r\n\r\nimport {\r\n Add01Icon,\r\n MinusPlus01Icon,\r\n MinusSignIcon,\r\n Tick02Icon,\r\n UserGroupIcon,\r\n UserStoryIcon,\r\n} from \"@hugeicons/core-free-icons\";\r\nimport { HugeiconsIcon } from \"@hugeicons/react\";\r\nimport NumberFlow from \"@number-flow/react\";\r\nimport { AnimatePresence, motion, LayoutGroup } from \"motion/react\";\r\nimport { useState } from \"react\";\r\n\r\n// Change Here\r\nconst plans = [\r\n {\r\n id: \"plus\",\r\n name: \"Plus\",\r\n description: \"solo\",\r\n monthlyPrice: 8.99,\r\n yearlyPrice: 6.99,\r\n features: [\r\n \"1TB of Space\",\r\n \"30 days of file recovery\",\r\n \"256-bit AES and SSL/TLS\",\r\n ],\r\n },\r\n {\r\n id: \"standard\",\r\n name: \"Standard\",\r\n description: \"startup\",\r\n monthlyPrice: 12.99,\r\n yearlyPrice: 9.99,\r\n features: [\r\n \"1TB of Space\",\r\n \"30 days of file recovery\",\r\n \"256-bit AES and SSL/TLS\",\r\n ],\r\n },\r\n {\r\n id: \"advanced\",\r\n name: \"Advanced\",\r\n description: \"teams\",\r\n monthlyPrice: 24.99,\r\n yearlyPrice: 19.99,\r\n features: [\r\n \"1TB of Space\",\r\n \"30 days of file recovery\",\r\n \"256-bit AES and SSL/TLS\",\r\n ],\r\n },\r\n];\r\n\r\nconst TRANSITION = {\r\n type: \"spring\" as const,\r\n stiffness: 300,\r\n damping: 30,\r\n mass: 0.8,\r\n};\r\n\r\nfunction PricingCard() {\r\n const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"yearly\">(\r\n \"monthly\"\r\n );\r\n const [selectedPlan, setSelectedPlan] = useState(\"standard\");\r\n const [userCount, setUserCount] = useState(3);\r\n\r\n return (\r\n
\r\n {plan.description}\r\n
\r\n