{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "subscription-plans", "type": "registry:ui", "title": "Subscription Plans", "description": "A subscription-focused pricing component with billing options and features.", "dependencies": [ "lucide-react" ], "registryDependencies": [ "button", "card" ], "files": [ { "path": "registry/ruixenui/subscription-plans.tsx", "content": "\"use client\";\n\nimport { Card, CardContent } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\nimport { CheckCircle2 } from \"lucide-react\";\nimport Link from \"next/link\";\nimport React from \"react\";\n\ninterface Plan {\n title: string;\n price: string;\n billing: string;\n features: string[];\n button: string;\n recommended?: boolean;\n}\n\ninterface SubscriptionPlansProps {\n plans?: Plan[];\n}\n\nconst defaultPlans: Plan[] = [\n {\n title: \"Starter Pack - Yearly Subscription\",\n price: \"$19\",\n billing: \"charged annually\",\n features: [\n \"Includes 40+ UI components and patterns\",\n \"Access to 3 production-ready templates\",\n \"License for personal and freelance projects\",\n \"Continue using components after subscription ends\",\n ],\n button: \"Subscribe for a Year\",\n },\n {\n title: \"Pro Pack - Lifetime Access\",\n price: \"$39\",\n billing: \"one-time fee\",\n recommended: true,\n features: [\n \"Includes 40+ UI components and patterns\",\n \"3 production templates built with React & Tailwind\",\n \"Commercial license for client work\",\n \"Lifetime usage with no renewals\",\n \"Free access to all future updates and additions\",\n ],\n button: \"Buy Lifetime Access\",\n },\n {\n title: \"Enterprise Pack\",\n price: \"$59\",\n billing: \"single payment\",\n features: [\n \"Everything from the Pro plan\",\n \"Up to 20 team members included\",\n \"Priority support & onboarding help\",\n ],\n button: \"Get Enterprise Plan\",\n },\n];\n\nexport default function SubscriptionPlans({\n plans = defaultPlans,\n}: SubscriptionPlansProps) {\n return (\n
\n {/* Top 2 Plans */}\n
\n {plans.slice(0, 2).map((plan, index) => (\n \n \n {plan.recommended && (\n \n Recommended\n \n )}\n
\n

\n {plan.title}\n

\n

\n {plan.price}\n

\n

{plan.billing}

\n
\n
    \n {plan.features.map((feature, idx) => (\n
  • \n \n {feature}\n
  • \n ))}\n
\n
\n
\n \n
\n \n ))}\n
\n\n {/* Enterprise Plan */}\n {plans[2] && (\n
\n \n \n

\n {plans[2].title}\n

\n

\n {plans[2].price}\n

\n

\n {plans[2].billing}\n

\n
    \n {plans[2].features.map((feature, idx) => (\n
  • \n \n {feature}\n
  • \n ))}\n
\n \n
\n
\n
\n )}\n
\n );\n}\n", "type": "registry:ui", "target": "components/ruixen/subscription-plans.tsx" } ] }