{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "pricing-section-1", "title": "Pricing Section 1", "description": "Pricing table with billing toggle and feature tooltips", "registryDependencies": [ "card", "button", "badge", "tabs", "tooltip", "https://shadcndesign-free.vercel.app/r/styles.json", "https://shadcndesign-free.vercel.app/r/tagline.json" ], "files": [ { "path": "components/pro-blocks/landing-page/pricing-sections/pricing-section-1.tsx", "content": "\"use client\";\n\nimport * as React from \"react\";\nimport { Card, CardContent } from \"@/components/ui/card\";\nimport { Button, buttonVariants } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Tabs, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Check, Info } from \"lucide-react\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n TooltipProvider,\n} from \"@/components/ui/tooltip\";\nimport { Tagline } from \"@/components/pro-blocks/landing-page/tagline\";\nimport { VariantProps } from \"class-variance-authority\";\n\nconst pricingData = {\n plans: [\n {\n name: \"Basic\",\n description: \"Perfect for individuals and small projects\",\n features: [\n {\n name: \"Up to 5 team members\",\n tooltip:\n \"Collaborate with up to 5 team members on unlimited projects\",\n },\n {\n name: \"10GB storage space\",\n tooltip: \"Secure cloud storage for all your project files and assets\",\n },\n {\n name: \"Basic analytics\",\n tooltip: \"Access to essential metrics and performance tracking\",\n },\n ],\n pricing: {\n monthly: 29,\n annually: 290,\n },\n variant: \"secondary\",\n },\n {\n name: \"Standard\",\n description: \"Ideal for growing teams and businesses\",\n badge: \"Most popular\",\n features: [\n {\n name: \"Up to 20 team members\",\n tooltip: \"Scale your team with expanded collaboration capabilities\",\n },\n {\n name: \"50GB storage space\",\n tooltip: \"More storage for larger projects and asset libraries\",\n },\n {\n name: \"Advanced analytics\",\n tooltip: \"Detailed insights with custom reporting and dashboards\",\n },\n {\n name: \"Priority support\",\n tooltip: \"Get help within 24 hours from our dedicated support team\",\n },\n ],\n pricing: {\n monthly: 49,\n annually: 490,\n },\n variant: \"default\",\n highlighted: true,\n },\n {\n name: \"Premium\",\n description: \"For large enterprises and advanced needs\",\n features: [\n {\n name: \"Unlimited team members\",\n tooltip: \"No limits on team size or collaboration\",\n },\n {\n name: \"250GB storage space\",\n tooltip: \"Enterprise-grade storage with advanced security\",\n },\n {\n name: \"Custom analytics\",\n tooltip: \"Tailored analytics solutions with API access\",\n },\n {\n name: \"24/7 premium support\",\n tooltip:\n \"Round-the-clock dedicated support with 4-hour response time\",\n },\n {\n name: \"White-labeling\",\n tooltip: \"Custom branding and white-label solutions\",\n },\n ],\n pricing: {\n monthly: 99,\n annually: 990,\n },\n variant: \"secondary\",\n },\n ],\n};\n\nexport function PricingSection1() {\n const [billingPeriod, setBillingPeriod] = React.useState(\"monthly\");\n\n return (\n \n
\n
\n
\n Pricing section\n \n Choose your plan\n \n

\n Add a concise value statement that addresses price sensitivity and\n showcases plan flexibility while keeping it under two lines.\n

\n
\n\n \n \n \n Monthly\n \n \n Annually Save 20%\n \n \n \n\n
\n {pricingData.plans.map((plan, index) => (\n \n \n
\n
\n {plan.badge && (\n \n {plan.badge}\n \n )}\n \n {plan.name}\n \n

\n {plan.description}\n

\n
\n\n
\n \n $\n {\n plan.pricing[\n billingPeriod as keyof typeof plan.pricing\n ]\n }\n \n \n /{billingPeriod === \"monthly\" ? \"month\" : \"year\"}\n \n
\n\n [\"variant\"]\n }\n className=\"w-full\"\n size=\"lg\"\n >\n Purchase plan\n \n
\n\n
\n

\n {index === 0\n ? \"What's included:\"\n : `Everything in ${pricingData.plans[index - 1].name}, plus:`}\n

\n
\n {plan.features.map((feature, i) => (\n
\n \n \n {feature.name}\n \n \n \n \n \n \n \n

{feature.tooltip}

\n
\n
\n
\n
\n ))}\n
\n
\n
\n \n ))}\n
\n
\n
\n \n );\n}\n", "type": "registry:component", "target": "components/pro-blocks/landing-page/pricing-sections/pricing-section-1.tsx" } ], "type": "registry:component" }