{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "pricing-tiers", "type": "registry:ui", "title": "Pricing Tiers", "description": "Modern pricing component with customizable tiers, features, and glass morphism design.", "dependencies": [ "lucide-react" ], "files": [ { "path": "registry/ruixenui/pricing-tiers.tsx", "content": "\"use client\";\n\nimport React from \"react\";\nimport Link from \"next/link\";\nimport { Check } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\n// ----- Subcomponents -----\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction Header({\n children,\n className,\n glassEffect = true,\n ...props\n}: React.ComponentProps<\"div\"> & { glassEffect?: boolean }) {\n return (\n \n {glassEffect && (\n \n )}\n {children}\n \n );\n}\n\nfunction Description({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n

\n );\n}\n\nfunction PlanName({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction Badge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nfunction Price({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n

\n );\n}\n\nfunction MainPrice({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nfunction Period({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nfunction Body({ className, ...props }: React.ComponentProps<\"div\">) {\n return
;\n}\n\nfunction List({ className, ...props }: React.ComponentProps<\"ul\">) {\n return
    ;\n}\n\nfunction ListItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n \n );\n}\n\nfunction Separator({\n children = \"Upgrade to access\",\n className,\n ...props\n}: React.ComponentProps<\"div\"> & { children?: string }) {\n return (\n \n \n {children}\n \n
\n );\n}\n\n// ----- Configurable PricingTiers Component -----\nexport interface Plan {\n title: string;\n price: string;\n period: string;\n description: string;\n features: string[];\n badge?: string;\n}\n\ninterface PricingTiersProps {\n plans: Plan[];\n heading?: string;\n subheading?: string;\n}\n\nexport default function PricingTiers({\n plans,\n heading = \"Flexible Plans for Everyone\",\n subheading = \"Choose the plan that fits your workflow and budget.\",\n}: PricingTiersProps) {\n return (\n
\n
\n
\n

{heading}

\n {subheading}\n
\n\n
\n {plans.map((plan, idx) => (\n \n
\n
\n \n {plan.title} {plan.badge && {plan.badge}}\n \n \n {plan.price}\n {plan.period}\n \n
\n {plan.description}\n \n
\n\n \n \n \n {plan.features.map((feature, i) => (\n \n \n {feature}\n \n ))}\n \n \n
\n ))}\n
\n
\n
\n );\n}\n", "type": "registry:ui", "target": "components/ruixen/pricing-tiers.tsx" } ] }