{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "pricing",
  "title": "Pricing",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-react/blocks/pricing/Pricing01.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, Check, ChevronDown, ChevronUp, ShieldCheck, Users, Zap } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Separator } from '@/components/ui/separator'\nimport { Slider } from '@/components/ui/slider'\nimport { Switch } from '@/components/ui/switch'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'\nimport { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group'\nimport { cn } from '@/lib/utils'\n\ntype BillingCycle = 'monthly' | 'yearly'\ntype Currency = 'USD' | 'EUR' | 'GBP'\n\nconst currencySymbols: Record<Currency, string> = {\n  USD: '$',\n  EUR: '€',\n  GBP: '£',\n}\n\nconst currencyRates: Record<Currency, number> = {\n  USD: 1.0,\n  EUR: 0.92,\n  GBP: 0.79,\n}\n\nconst comparisonMatrix = [\n  {\n    category: 'Platform & Compute Core',\n    features: [\n      { name: 'Active Team Members', starter: 'Up to 10', team: 'Unlimited', enterprise: 'Unlimited + Org Units' },\n      { name: 'Monthly API Requests', starter: '100,000 / mo', team: '2,500,000 / mo', enterprise: 'Custom Unlimited' },\n      { name: 'Workflow Automations', starter: '10 active', team: '100 active', enterprise: 'Unlimited real-time' },\n      { name: 'Data Retention History', starter: '30 days', team: '365 days', enterprise: '7 years immutable' },\n    ],\n  },\n  {\n    category: 'Security & Enterprise Governance',\n    features: [\n      {\n        name: 'SOC 2 Type II & ISO 27001',\n        starter: 'Standard',\n        team: 'Included',\n        enterprise: 'Included + Auditor Portal',\n      },\n      { name: 'SAML SSO & SCIM Provisioning', starter: '—', team: 'Google / Okta', enterprise: 'Custom IdP + SCIM v2' },\n      {\n        name: 'Role-Based Access (RBAC)',\n        starter: '3 predefined roles',\n        team: 'Granular permissions',\n        enterprise: 'Custom policy engine',\n      },\n      {\n        name: 'Immutable Audit Trail Logs',\n        starter: '—',\n        team: '90 days exportable',\n        enterprise: 'Real-time SIEM streaming',\n      },\n    ],\n  },\n  {\n    category: 'Support & Success SLAs',\n    features: [\n      {\n        name: 'Support Channel',\n        starter: 'Community & Email',\n        team: 'Priority Email + Chat',\n        enterprise: 'Dedicated Private Slack',\n      },\n      {\n        name: 'First-Response SLA',\n        starter: '24 business hours',\n        team: '4 business hours',\n        enterprise: '< 15 mins (24/7/365)',\n      },\n      { name: 'Uptime SLA Guarantee', starter: '99.9%', team: '99.95%', enterprise: '99.99% financially backed' },\n      { name: 'Dedicated Solutions Architect', starter: '—', team: '—', enterprise: 'Assigned Principal Engineer' },\n    ],\n  },\n]\n\nexport function Pricing01({ className }: { className?: string }) {\n  const [billingCycle, setBillingCycle] = React.useState<BillingCycle>('yearly')\n  const [currency, setCurrency] = React.useState<Currency>('USD')\n  const [teamSeats, setTeamSeats] = React.useState<number[]>([12])\n  const [addDedicatedSla, setAddDedicatedSla] = React.useState(false)\n  const [addAuditVault, setAddAuditVault] = React.useState(false)\n  const [showComparisonTable, setShowComparisonTable] = React.useState(false)\n\n  const rates = currencyRates[currency]\n  const sym = currencySymbols[currency]\n\n  const starterBase = billingCycle === 'yearly' ? 12 : 15\n  const teamBase = billingCycle === 'yearly' ? 28 : 35\n  const enterpriseBase = billingCycle === 'yearly' ? 68 : 85\n\n  const slaCost = addDedicatedSla ? 99 : 0\n  const vaultCost = addAuditVault ? 49 : 0\n\n  const currentSeats = teamSeats[0] || 1\n\n  const starterMonthlyTotal = Math.round((starterBase * currentSeats + (addAuditVault ? 29 : 0)) * rates)\n  const teamMonthlyTotal = Math.round((teamBase * currentSeats + slaCost + vaultCost) * rates)\n  const enterpriseMonthlyTotal = Math.round((enterpriseBase * currentSeats + slaCost + vaultCost) * rates)\n\n  const annualSavingsTeam = Math.round((35 * currentSeats * 12 - 28 * currentSeats * 12) * rates)\n\n  return (\n    <section data-slot=\"pricing-01\" className={cn('bg-background w-full py-16 sm:py-24', className)}>\n      <div className=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n        {/* Section Header */}\n        <div className=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <div className=\"border-primary/20 bg-primary/5 text-primary inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-medium shadow-2xs\">\n            <ShieldCheck className=\"size-3.5\" />\n            <span>Predictable Enterprise Pricing</span>\n          </div>\n          <h2 className=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl lg:text-5xl\">\n            Scale effortlessly without seat tax surprises\n          </h2>\n          <p className=\"text-muted-foreground text-base sm:text-lg\">\n            Zero setup fees, transparent volume discounts, and instant self-serve provisioning. Switch or cancel plans\n            anytime.\n          </p>\n\n          {/* Billing Cycle & Currency Switcher Toolbar */}\n          <div className=\"mt-8 flex flex-wrap items-center justify-center gap-4 pt-2\">\n            {/* Monthly vs Yearly */}\n            <div className=\"border-border bg-card inline-flex rounded-lg border p-1 shadow-2xs\">\n              <ToggleGroup\n                type=\"single\"\n                value={billingCycle}\n                onValueChange={(v) => v && setBillingCycle(v as BillingCycle)}\n              >\n                <ToggleGroupItem value=\"monthly\" className=\"px-3.5 py-1.5 text-xs font-medium\">\n                  Monthly\n                </ToggleGroupItem>\n                <ToggleGroupItem value=\"yearly\" className=\"flex items-center gap-1.5 px-3.5 py-1.5 text-xs font-medium\">\n                  <span>Annual</span>\n                  <Badge\n                    variant=\"secondary\"\n                    className=\"bg-primary/10 text-primary border-primary/20 px-1.5 py-0 text-xs\"\n                  >\n                    Save 20%\n                  </Badge>\n                </ToggleGroupItem>\n              </ToggleGroup>\n            </div>\n\n            {/* Currency Selector */}\n            <div className=\"border-border bg-card inline-flex rounded-lg border p-1 shadow-2xs\">\n              <ToggleGroup type=\"single\" value={currency} onValueChange={(v) => v && setCurrency(v as Currency)}>\n                <ToggleGroupItem value=\"USD\" className=\"px-2.5 py-1 font-mono text-xs font-medium\">\n                  USD ($)\n                </ToggleGroupItem>\n                <ToggleGroupItem value=\"EUR\" className=\"px-2.5 py-1 font-mono text-xs font-medium\">\n                  EUR (€)\n                </ToggleGroupItem>\n                <ToggleGroupItem value=\"GBP\" className=\"px-2.5 py-1 font-mono text-xs font-medium\">\n                  GBP (£)\n                </ToggleGroupItem>\n              </ToggleGroup>\n            </div>\n          </div>\n\n          {/* Interactive Team Seat Simulator Bar */}\n          <div className=\"border-border bg-card/60 mx-auto mt-6 max-w-xl rounded-xl border p-4 shadow-2xs backdrop-blur-xs\">\n            <div className=\"flex flex-wrap items-center justify-between gap-2 text-xs\">\n              <div className=\"text-foreground flex items-center gap-2 font-medium\">\n                <Users className=\"text-primary size-4\" />\n                <span>Simulate Team Size:</span>\n              </div>\n              <div className=\"flex items-center gap-2\">\n                <span className=\"bg-muted text-foreground rounded px-2 py-0.5 font-mono text-xs font-semibold\">\n                  {currentSeats} {currentSeats === 1 ? 'seat' : 'seats'}\n                </span>\n                {billingCycle === 'yearly' && annualSavingsTeam > 0 && (\n                  <span className=\"text-success text-xs font-medium\">\n                    (Saves ~{sym}\n                    {annualSavingsTeam.toLocaleString()}/yr on Team plan)\n                  </span>\n                )}\n              </div>\n            </div>\n            <div className=\"mt-3\">\n              <Slider\n                value={teamSeats}\n                onValueChange={setTeamSeats}\n                min={1}\n                max={50}\n                step={1}\n                className=\"cursor-pointer\"\n              />\n            </div>\n            <div className=\"text-muted-foreground mt-2 flex justify-between font-mono text-xs\">\n              <span>1 seat</span>\n              <span>25 seats</span>\n              <span>50+ seats</span>\n            </div>\n          </div>\n        </div>\n\n        {/* Plan Cards Grid */}\n        <div className=\"mt-12 grid grid-cols-1 gap-8 lg:grid-cols-3 lg:items-stretch\">\n          {/* Tier 1: Starter */}\n          <Card className=\"border-border bg-card hover:border-primary/40 relative flex flex-col justify-between shadow-xs transition-colors duration-200 hover:shadow-md\">\n            <div>\n              <CardHeader className=\"pb-4\">\n                <div className=\"flex items-center justify-between\">\n                  <Badge variant=\"outline\" className=\"font-mono text-xs\">\n                    Bootstrap & Indie\n                  </Badge>\n                </div>\n                <CardTitle className=\"text-foreground text-xl font-bold tracking-tight\">Starter Studio</CardTitle>\n                <CardDescription className=\"text-muted-foreground text-xs\">\n                  For agile squads and early-stage product teams validating core workflows.\n                </CardDescription>\n\n                <div className=\"mt-6 space-y-1\">\n                  <div className=\"flex items-baseline gap-1.5\">\n                    <span className=\"text-foreground text-4xl font-bold tracking-tight\">\n                      {sym}\n                      {Math.round(starterBase * rates)}\n                    </span>\n                    <span className=\"text-muted-foreground text-xs font-medium\">/ seat / month</span>\n                  </div>\n                  <div className=\"text-muted-foreground font-mono text-xs\">\n                    Est. {sym}\n                    {starterMonthlyTotal.toLocaleString()}/mo for {currentSeats} {currentSeats === 1 ? 'seat' : 'seats'}\n                  </div>\n                </div>\n              </CardHeader>\n\n              <CardContent className=\"space-y-4 pt-2\">\n                <Separator />\n                <div className=\"space-y-2.5\">\n                  <p className=\"text-muted-foreground text-xs font-semibold tracking-wider uppercase\">\n                    Included features\n                  </p>\n                  <ul className=\"text-foreground space-y-2.5 text-xs\">\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Up to 10 team seats & unlimited guests</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>100,000 monthly API event calls</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>30-day continuous audit & revision history</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Standard Community & Email support (24h)</span>\n                    </li>\n                    <li className=\"text-muted-foreground flex items-start gap-2\">\n                      <Check className=\"text-muted-foreground/50 mt-0.5 size-4 shrink-0\" />\n                      <span>Community Discord access & quickstarts</span>\n                    </li>\n                  </ul>\n                </div>\n              </CardContent>\n            </div>\n\n            <CardFooter className=\"border-border mt-auto border-t pt-4\">\n              <Button variant=\"outline\" className=\"h-10 w-full gap-1.5 text-xs font-semibold\">\n                <span>Start Free 14-Day Trial</span>\n                <ArrowRight className=\"size-3.5\" />\n              </Button>\n            </CardFooter>\n          </Card>\n\n          {/* Tier 2: Team Pro (Highlighted Flagship) */}\n          <Card className=\"border-primary bg-card ring-primary/20 relative flex flex-col justify-between shadow-lg ring-2 transition-colors duration-200 hover:shadow-xl lg:-translate-y-2\">\n            <div className=\"absolute -top-3.5 left-1/2 -translate-x-1/2\">\n              <Badge className=\"bg-primary text-primary-foreground gap-1.5 px-3 py-0.5 text-xs font-semibold shadow-sm\">\n                <Zap className=\"size-3 fill-current\" />\n                <span>Most Popular Choice</span>\n              </Badge>\n            </div>\n\n            <div>\n              <CardHeader className=\"pt-7 pb-4\">\n                <div className=\"flex items-center justify-between\">\n                  <Badge variant=\"secondary\" className=\"bg-primary/10 text-primary border-primary/20 font-mono text-xs\">\n                    Scale & High-Growth\n                  </Badge>\n                </div>\n                <CardTitle className=\"text-foreground text-2xl font-bold tracking-tight\">Team Scale</CardTitle>\n                <CardDescription className=\"text-muted-foreground text-xs\">\n                  For fast-scaling engineering and product organizations requiring deep automation.\n                </CardDescription>\n\n                <div className=\"mt-6 space-y-1\">\n                  <div className=\"flex items-baseline gap-1.5\">\n                    <span className=\"text-foreground text-4xl font-bold tracking-tight\">\n                      {sym}\n                      {Math.round(teamBase * rates)}\n                    </span>\n                    <span className=\"text-muted-foreground text-xs font-medium\">/ seat / month</span>\n                  </div>\n                  <div className=\"text-primary font-mono text-xs font-medium\">\n                    Est. {sym}\n                    {teamMonthlyTotal.toLocaleString()}/mo for {currentSeats} {currentSeats === 1 ? 'seat' : 'seats'}\n                  </div>\n                </div>\n              </CardHeader>\n\n              <CardContent className=\"space-y-4 pt-2\">\n                <Separator />\n                <div className=\"space-y-2.5\">\n                  <p className=\"text-muted-foreground text-xs font-semibold tracking-wider uppercase\">\n                    Everything in Starter, plus\n                  </p>\n                  <ul className=\"text-foreground space-y-2.5 text-xs\">\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span className=\"font-medium\">Unlimited team seats & custom workspace roles</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>2.5M monthly API calls & priority queue</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Google & Okta SAML SSO integration</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>365-day immutable compliance logs</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Priority ticketing with 4h guaranteed SLA</span>\n                    </li>\n                  </ul>\n                </div>\n\n                {/* Addons Selector for Team */}\n                <div className=\"border-border bg-muted/30 space-y-2.5 rounded-lg border p-3\">\n                  <p className=\"text-foreground text-xs font-semibold\">Optional Power Add-ons</p>\n                  <div className=\"flex items-center justify-between text-xs\">\n                    <label htmlFor=\"react-sla-addon\" className=\"text-muted-foreground cursor-pointer\">\n                      24/7 Dedicated SLA (+{sym}\n                      {Math.round(99 * rates)}/mo)\n                    </label>\n                    <Switch id=\"react-sla-addon\" checked={addDedicatedSla} onCheckedChange={setAddDedicatedSla} />\n                  </div>\n                  <div className=\"flex items-center justify-between text-xs\">\n                    <label htmlFor=\"react-vault-addon\" className=\"text-muted-foreground cursor-pointer\">\n                      SOC 2 Vault Streaming (+{sym}\n                      {Math.round(49 * rates)}/mo)\n                    </label>\n                    <Switch id=\"react-vault-addon\" checked={addAuditVault} onCheckedChange={setAddAuditVault} />\n                  </div>\n                </div>\n              </CardContent>\n            </div>\n\n            <CardFooter className=\"border-border mt-auto border-t pt-4\">\n              <Button className=\"h-10 w-full gap-1.5 text-xs font-semibold shadow-sm\">\n                <span>Deploy Team Workspace</span>\n                <ArrowRight className=\"size-3.5\" />\n              </Button>\n            </CardFooter>\n          </Card>\n\n          {/* Tier 3: Enterprise Platform */}\n          <Card className=\"border-border bg-card hover:border-primary/40 relative flex flex-col justify-between shadow-xs transition-colors duration-200 hover:shadow-md\">\n            <div>\n              <CardHeader className=\"pb-4\">\n                <div className=\"flex items-center justify-between\">\n                  <Badge variant=\"outline\" className=\"font-mono text-xs\">\n                    Enterprise & Security\n                  </Badge>\n                </div>\n                <CardTitle className=\"text-foreground text-xl font-bold tracking-tight\">Enterprise Suite</CardTitle>\n                <CardDescription className=\"text-muted-foreground text-xs\">\n                  Dedicated infrastructure, custom security controls, and bespoke compliance SLAs.\n                </CardDescription>\n\n                <div className=\"mt-6 space-y-1\">\n                  <div className=\"flex items-baseline gap-1.5\">\n                    <span className=\"text-foreground text-4xl font-bold tracking-tight\">\n                      {sym}\n                      {Math.round(enterpriseBase * rates)}\n                    </span>\n                    <span className=\"text-muted-foreground text-xs font-medium\">/ seat / month</span>\n                  </div>\n                  <div className=\"text-muted-foreground font-mono text-xs\">\n                    Custom volume licensing available for 100+ seats\n                  </div>\n                </div>\n              </CardHeader>\n\n              <CardContent className=\"space-y-4 pt-2\">\n                <Separator />\n                <div className=\"space-y-2.5\">\n                  <p className=\"text-muted-foreground text-xs font-semibold tracking-wider uppercase\">\n                    Everything in Team, plus\n                  </p>\n                  <ul className=\"text-foreground space-y-2.5 text-xs\">\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Custom SCIM v2 user provisioning & directory sync</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Dedicated VPC peering & custom data residency</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>99.99% uptime SLA with financial penalty backing</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Assigned Principal Solutions Engineer & private Slack</span>\n                    </li>\n                    <li className=\"flex items-start gap-2\">\n                      <Check className=\"text-success mt-0.5 size-4 shrink-0\" />\n                      <span>Custom Master Service Agreement (MSA) & DPA</span>\n                    </li>\n                  </ul>\n                </div>\n              </CardContent>\n            </div>\n\n            <CardFooter className=\"border-border mt-auto border-t pt-4\">\n              <Button variant=\"outline\" className=\"h-10 w-full gap-1.5 text-xs font-semibold\">\n                <ShieldCheck className=\"text-primary size-3.5\" />\n                <span>Contact Solutions Team</span>\n              </Button>\n            </CardFooter>\n          </Card>\n        </div>\n\n        {/* Collapsible Feature Matrix Trigger */}\n        <div className=\"mt-12 text-center\">\n          <Button\n            variant=\"ghost\"\n            size=\"sm\"\n            className=\"text-foreground hover:bg-muted gap-2 text-xs font-semibold\"\n            onClick={() => setShowComparisonTable(!showComparisonTable)}\n          >\n            <span>\n              {showComparisonTable ? 'Hide Detailed Feature Comparison' : 'Compare All Features & Enterprise Limits'}\n            </span>\n            {showComparisonTable ? <ChevronUp className=\"size-4\" /> : <ChevronDown className=\"size-4\" />}\n          </Button>\n        </div>\n\n        {/* Feature Comparison Matrix Table */}\n        {showComparisonTable && (\n          <div className=\"border-border bg-card mt-8 overflow-hidden rounded-xl border shadow-xs\">\n            <div className=\"border-border bg-muted/20 flex flex-wrap items-center justify-between gap-4 border-b p-4 sm:p-6\">\n              <div>\n                <h3 className=\"text-foreground text-base font-bold\">Detailed Specification & Limits</h3>\n                <p className=\"text-muted-foreground text-xs\">Comprehensive side-by-side breakdown across every tier.</p>\n              </div>\n              <Badge variant=\"outline\" className=\"font-mono text-xs\">\n                All plans include SSL & automated backups\n              </Badge>\n            </div>\n\n            <div className=\"overflow-x-auto\">\n              <Table>\n                <TableHeader>\n                  <TableRow className=\"bg-muted/40\">\n                    <TableHead className=\"text-foreground w-[34%] text-xs font-semibold\">Capabilities</TableHead>\n                    <TableHead className=\"text-foreground w-[22%] text-xs font-semibold\">Starter Studio</TableHead>\n                    <TableHead className=\"text-primary w-[22%] text-xs font-bold font-semibold\">Team Scale</TableHead>\n                    <TableHead className=\"text-foreground w-[22%] text-xs font-semibold\">Enterprise Suite</TableHead>\n                  </TableRow>\n                </TableHeader>\n                <TableBody>\n                  {comparisonMatrix.map((group, idx) => (\n                    <React.Fragment key={idx}>\n                      <TableRow className=\"bg-muted/60 text-muted-foreground text-xs font-semibold\">\n                        <TableCell colSpan={4} className=\"py-2.5 font-mono text-xs tracking-wider uppercase\">\n                          {group.category}\n                        </TableCell>\n                      </TableRow>\n                      {group.features.map((feat, fIdx) => (\n                        <TableRow key={fIdx} className=\"text-xs\">\n                          <TableCell className=\"text-foreground py-3 font-medium\">{feat.name}</TableCell>\n                          <TableCell className=\"text-muted-foreground py-3\">{feat.starter}</TableCell>\n                          <TableCell className=\"text-foreground bg-primary/5 py-3 font-medium\">{feat.team}</TableCell>\n                          <TableCell className=\"text-foreground py-3\">{feat.enterprise}</TableCell>\n                        </TableRow>\n                      ))}\n                    </React.Fragment>\n                  ))}\n                </TableBody>\n              </Table>\n            </div>\n          </div>\n        )}\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/Pricing01.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingCalculator.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, Check, HardDrive, Headphones, KeyRound, ShieldCheck, Users, Zap } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Separator } from '@/components/ui/separator'\nimport { Slider } from '@/components/ui/slider'\nimport { Switch } from '@/components/ui/switch'\n\ninterface RequestTier {\n  label: string\n  requests: number\n  cost: number\n}\n\ninterface StorageTier {\n  label: string\n  gb: number\n  cost: number\n}\n\nconst REQUEST_TIERS: RequestTier[] = [\n  { label: '10K requests', requests: 10_000, cost: 0 },\n  { label: '50K requests', requests: 50_000, cost: 25 },\n  { label: '100K requests', requests: 100_000, cost: 60 },\n  { label: '250K requests', requests: 250_000, cost: 120 },\n  { label: '500K requests', requests: 500_000, cost: 220 },\n  { label: '1M requests', requests: 1_000_000, cost: 400 },\n  { label: '2.5M requests', requests: 2_500_000, cost: 750 },\n  { label: '5M requests', requests: 5_000_000, cost: 1200 },\n]\n\nconst STORAGE_TIERS: StorageTier[] = [\n  { label: '100 GB', gb: 100, cost: 10 },\n  { label: '250 GB', gb: 250, cost: 25 },\n  { label: '500 GB', gb: 500, cost: 45 },\n  { label: '1 TB', gb: 1_000, cost: 80 },\n  { label: '2 TB', gb: 2_000, cost: 150 },\n  { label: '5 TB', gb: 5_000, cost: 320 },\n  { label: '10 TB', gb: 10_000, cost: 580 },\n]\n\nconst SEAT_PRICE = 15\nconst SUPPORT_MANAGER_PRICE = 200\nconst CUSTOM_SLA_PRICE = 500\nconst SSO_PRICE = 100\n\nconst SEAT_MARKS = {\n  1: '1',\n  25: '25',\n  50: '50',\n  75: '75',\n  100: '100',\n}\n\nconst REQUEST_MARKS = {\n  0: '10K',\n  2: '100K',\n  4: '500K',\n  7: '5M',\n}\n\nconst STORAGE_MARKS = {\n  0: '100 GB',\n  2: '500 GB',\n  4: '2 TB',\n  6: '10 TB',\n}\n\nexport function PricingCalculator({ className }: { className?: string }) {\n  const [isAnnual, setIsAnnual] = React.useState(true)\n  const [seats, setSeats] = React.useState(12)\n  const [requestIndex, setRequestIndex] = React.useState(2)\n  const [storageIndex, setStorageIndex] = React.useState(2)\n  const [addonSupport, setAddonSupport] = React.useState(false)\n  const [addonSla, setAddonSla] = React.useState(false)\n  const [addonSso, setAddonSso] = React.useState(true)\n\n  const currentRequestTier = REQUEST_TIERS[requestIndex] ?? REQUEST_TIERS[0]\n  const currentStorageTier = STORAGE_TIERS[storageIndex] ?? STORAGE_TIERS[0]\n\n  const seatTier = React.useMemo(() => {\n    if (seats <= 5) return { label: 'Starter Team', variant: 'secondary' as const }\n    if (seats <= 25) return { label: 'Growth Team', variant: 'outline' as const }\n    return { label: 'Scale Team', variant: 'default' as const }\n  }, [seats])\n\n  const recommendedPlan = React.useMemo(() => {\n    if (addonSla || requestIndex >= 6 || storageIndex >= 5 || seats >= 30) {\n      return { name: 'Enterprise', badge: 'Enterprise Plan', baseFee: 199, variant: 'default' as const }\n    }\n    if (seats >= 8 || requestIndex >= 3 || storageIndex >= 3 || addonSupport) {\n      return { name: 'Growth', badge: 'Growth Plan', baseFee: 79, variant: 'default' as const }\n    }\n    return { name: 'Starter', badge: 'Starter Plan', baseFee: 29, variant: 'secondary' as const }\n  }, [addonSla, requestIndex, storageIndex, seats, addonSupport])\n\n  const baseCost = recommendedPlan.baseFee\n  const seatsCost = seats * SEAT_PRICE\n  const requestsCost = currentRequestTier.cost\n  const storageCost = currentStorageTier.cost\n  const addonsCost =\n    (addonSupport ? SUPPORT_MANAGER_PRICE : 0) + (addonSla ? CUSTOM_SLA_PRICE : 0) + (addonSso ? SSO_PRICE : 0)\n\n  const activeAddonsCount = (addonSupport ? 1 : 0) + (addonSla ? 1 : 0) + (addonSso ? 1 : 0)\n\n  const subtotalMonthly = baseCost + seatsCost + requestsCost + storageCost + addonsCost\n  const discountMultiplier = isAnnual ? 0.8 : 1.0\n  const totalMonthly = Math.round(subtotalMonthly * discountMultiplier)\n  const totalAnnual = totalMonthly * 12\n  const annualSavings = Math.round(subtotalMonthly * 0.2 * 12)\n\n  return (\n    <div\n      data-slot=\"pricing-calculator\"\n      className={cn('mx-auto w-full max-w-6xl space-y-10 p-4 sm:p-6 lg:p-8', className)}\n    >\n      <div className=\"flex flex-col items-center gap-4 text-center\">\n        <Badge variant=\"outline\" className=\"gap-1.5 px-3 py-1 text-xs font-medium tracking-wider uppercase\">\n          <ShieldCheck className=\"text-primary size-3.5\" />\n          Pricing Calculator\n        </Badge>\n        <div className=\"space-y-2\">\n          <h2 className=\"text-foreground text-2xl font-bold tracking-tight sm:text-3xl lg:text-4xl\">\n            Interactive Pricing Calculator\n          </h2>\n          <p className=\"text-muted-foreground mx-auto max-w-2xl text-sm sm:text-base\">\n            Calculate your exact monthly or annual investment based on usage.\n          </p>\n        </div>\n\n        <div className=\"border-border bg-card mt-2 inline-flex items-center gap-3 rounded-full border px-4 py-2 shadow-xs\">\n          <span\n            className={cn(\n              'text-xs font-medium transition-colors',\n              !isAnnual ? 'text-foreground font-semibold' : 'text-muted-foreground',\n            )}\n          >\n            Monthly\n          </span>\n          <Switch checked={isAnnual} onCheckedChange={setIsAnnual} />\n          <span\n            className={cn(\n              'text-xs font-medium transition-colors',\n              isAnnual ? 'text-foreground font-semibold' : 'text-muted-foreground',\n            )}\n          >\n            Pay Annually\n          </span>\n          <Badge variant=\"secondary\" className=\"bg-primary/10 text-primary border-primary/20 text-xs font-semibold\">\n            Save 20%\n          </Badge>\n        </div>\n      </div>\n\n      <div className=\"grid grid-cols-1 gap-8 lg:grid-cols-12 lg:items-start\">\n        <div className=\"space-y-6 lg:col-span-7\">\n          <Card>\n            <CardHeader>\n              <CardTitle>Capacity &amp; Scale</CardTitle>\n              <CardDescription>Configure team seats, API request throughput, and dedicated storage.</CardDescription>\n            </CardHeader>\n            <CardContent className=\"space-y-8\">\n              <div className=\"space-y-4\">\n                <div className=\"flex items-center justify-between\">\n                  <div className=\"flex items-center gap-2.5\">\n                    <div className=\"bg-primary/10 text-primary border-primary/20 flex size-8 shrink-0 items-center justify-center rounded-md border\">\n                      <Users className=\"size-4\" />\n                    </div>\n                    <div>\n                      <span className=\"text-foreground text-sm font-medium\">Team Seats</span>\n                      <Badge variant={seatTier.variant} className=\"ml-2 text-xs font-normal\">\n                        {seatTier.label}\n                      </Badge>\n                    </div>\n                  </div>\n                  <div className=\"text-right\">\n                    <span className=\"text-foreground text-base font-semibold tabular-nums\">{seats}</span>\n                    <span className=\"text-muted-foreground text-xs\"> seats (${seats * SEAT_PRICE}/mo)</span>\n                  </div>\n                </div>\n                <div className=\"pb-6\">\n                  <Slider\n                    value={[seats]}\n                    min={1}\n                    max={100}\n                    step={1}\n                    marks={SEAT_MARKS}\n                    tooltip={(val) => `${val} seats`}\n                    onValueChange={(val) => setSeats(val[0])}\n                  />\n                </div>\n                <p className=\"text-muted-foreground text-xs\">\n                  Full workspace access, fine-grained permission controls, and audit log tracking for each member.\n                </p>\n              </div>\n\n              <Separator />\n\n              <div className=\"space-y-4\">\n                <div className=\"flex items-center justify-between\">\n                  <div className=\"flex items-center gap-2.5\">\n                    <div className=\"bg-primary/10 text-primary border-primary/20 flex size-8 shrink-0 items-center justify-center rounded-md border\">\n                      <Zap className=\"size-4\" />\n                    </div>\n                    <div>\n                      <span className=\"text-foreground text-sm font-medium\">Monthly API Requests</span>\n                    </div>\n                  </div>\n                  <div className=\"text-right\">\n                    <span className=\"text-foreground text-base font-semibold tabular-nums\">\n                      {currentRequestTier.label}\n                    </span>\n                    <span className=\"text-muted-foreground text-xs\">\n                      {' '}\n                      ({currentRequestTier.cost === 0 ? 'Included' : `+$${currentRequestTier.cost}/mo`})\n                    </span>\n                  </div>\n                </div>\n                <div className=\"pb-6\">\n                  <Slider\n                    value={[requestIndex]}\n                    min={0}\n                    max={REQUEST_TIERS.length - 1}\n                    step={1}\n                    marks={REQUEST_MARKS}\n                    tooltip={(idx) => REQUEST_TIERS[idx]?.label ?? ''}\n                    onValueChange={(val) => setRequestIndex(val[0])}\n                  />\n                </div>\n                <p className=\"text-muted-foreground text-xs\">\n                  Globally distributed edge endpoints, automatic rate limiting, and sub-50ms p99 latency SLA.\n                </p>\n              </div>\n\n              <Separator />\n\n              <div className=\"space-y-4\">\n                <div className=\"flex items-center justify-between\">\n                  <div className=\"flex items-center gap-2.5\">\n                    <div className=\"bg-primary/10 text-primary border-primary/20 flex size-8 shrink-0 items-center justify-center rounded-md border\">\n                      <HardDrive className=\"size-4\" />\n                    </div>\n                    <div>\n                      <span className=\"text-foreground text-sm font-medium\">Dedicated Cloud Storage</span>\n                    </div>\n                  </div>\n                  <div className=\"text-right\">\n                    <span className=\"text-foreground text-base font-semibold tabular-nums\">\n                      {currentStorageTier.label}\n                    </span>\n                    <span className=\"text-muted-foreground text-xs\"> (+${currentStorageTier.cost}/mo)</span>\n                  </div>\n                </div>\n                <div className=\"pb-6\">\n                  <Slider\n                    value={[storageIndex]}\n                    min={0}\n                    max={STORAGE_TIERS.length - 1}\n                    step={1}\n                    marks={STORAGE_MARKS}\n                    tooltip={(idx) => STORAGE_TIERS[idx]?.label ?? ''}\n                    onValueChange={(val) => setStorageIndex(val[0])}\n                  />\n                </div>\n                <p className=\"text-muted-foreground text-xs\">\n                  Encrypted at rest (AES-256) with multi-region automated replication and daily disaster backups.\n                </p>\n              </div>\n            </CardContent>\n          </Card>\n\n          <Card>\n            <CardHeader>\n              <CardTitle>Enterprise Add-ons</CardTitle>\n              <CardDescription>\n                Enhance your infrastructure with enterprise compliance, reliability, and support.\n              </CardDescription>\n            </CardHeader>\n            <CardContent className=\"space-y-3\">\n              <div className=\"border-border bg-card hover:border-primary/30 flex flex-col justify-between gap-4 rounded-lg border p-4 transition-colors sm:flex-row sm:items-center\">\n                <div className=\"flex items-start gap-3\">\n                  <div className=\"bg-primary/10 text-primary border-primary/20 mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border\">\n                    <Headphones className=\"size-4\" />\n                  </div>\n                  <div className=\"space-y-0.5\">\n                    <div className=\"flex items-center gap-2\">\n                      <span className=\"text-foreground text-sm font-medium\">Dedicated Support Manager</span>\n                      <Badge variant=\"outline\" className=\"text-xs font-normal\">\n                        +$200/mo\n                      </Badge>\n                    </div>\n                    <p className=\"text-muted-foreground text-xs\">\n                      Direct Slack channel, named technical account manager &amp; 1-hour response SLA.\n                    </p>\n                  </div>\n                </div>\n                <div className=\"flex sm:justify-end\">\n                  <Switch checked={addonSupport} onCheckedChange={setAddonSupport} />\n                </div>\n              </div>\n\n              <div className=\"border-border bg-card hover:border-primary/30 flex flex-col justify-between gap-4 rounded-lg border p-4 transition-colors sm:flex-row sm:items-center\">\n                <div className=\"flex items-start gap-3\">\n                  <div className=\"bg-primary/10 text-primary border-primary/20 mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border\">\n                    <ShieldCheck className=\"size-4\" />\n                  </div>\n                  <div className=\"space-y-0.5\">\n                    <div className=\"flex items-center gap-2\">\n                      <span className=\"text-foreground text-sm font-medium\">Custom SLA Guarantee</span>\n                      <Badge variant=\"outline\" className=\"text-xs font-normal\">\n                        +$500/mo\n                      </Badge>\n                    </div>\n                    <p className=\"text-muted-foreground text-xs\">\n                      99.99% uptime guarantee with financial commitments and priority disaster recovery.\n                    </p>\n                  </div>\n                </div>\n                <div className=\"flex sm:justify-end\">\n                  <Switch checked={addonSla} onCheckedChange={setAddonSla} />\n                </div>\n              </div>\n\n              <div className=\"border-border bg-card hover:border-primary/30 flex flex-col justify-between gap-4 rounded-lg border p-4 transition-colors sm:flex-row sm:items-center\">\n                <div className=\"flex items-start gap-3\">\n                  <div className=\"bg-primary/10 text-primary border-primary/20 mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border\">\n                    <KeyRound className=\"size-4\" />\n                  </div>\n                  <div className=\"space-y-0.5\">\n                    <div className=\"flex items-center gap-2\">\n                      <span className=\"text-foreground text-sm font-medium\">Single Sign-On (SSO / SAML)</span>\n                      <Badge variant=\"outline\" className=\"text-xs font-normal\">\n                        +$100/mo\n                      </Badge>\n                    </div>\n                    <p className=\"text-muted-foreground text-xs\">\n                      Okta, Azure AD, Google Workspace, and SAML 2.0 enterprise identity integration.\n                    </p>\n                  </div>\n                </div>\n                <div className=\"flex sm:justify-end\">\n                  <Switch checked={addonSso} onCheckedChange={setAddonSso} />\n                </div>\n              </div>\n            </CardContent>\n          </Card>\n        </div>\n\n        <div className=\"lg:sticky lg:top-8 lg:col-span-5\">\n          <Card className=\"border-border bg-card shadow-xs\">\n            <CardHeader className=\"pb-4\">\n              <div className=\"flex items-center justify-between\">\n                <span className=\"text-muted-foreground text-xs font-semibold tracking-wider uppercase\">\n                  Estimated Investment\n                </span>\n                <Badge variant={recommendedPlan.variant} className=\"gap-1 shadow-xs\">\n                  {recommendedPlan.name === 'Enterprise' && <ShieldCheck className=\"size-3\" />}\n                  {recommendedPlan.badge}\n                </Badge>\n              </div>\n              <div className=\"mt-4\">\n                <div className=\"flex items-baseline gap-1.5\">\n                  <span className=\"text-foreground text-4xl font-bold tracking-tight tabular-nums sm:text-5xl\">\n                    ${totalMonthly}\n                  </span>\n                  <span className=\"text-muted-foreground text-sm font-normal\"> / month</span>\n                </div>\n                {isAnnual ? (\n                  <p className=\"text-muted-foreground mt-2 text-xs\">\n                    Billed annually (${totalAnnual.toLocaleString('en-US')}/yr) ·\n                    <span className=\"text-success font-semibold\">\n                      {' '}\n                      Save ${annualSavings.toLocaleString('en-US')}/yr\n                    </span>\n                  </p>\n                ) : (\n                  <p className=\"text-muted-foreground mt-2 text-xs\">\n                    Billed monthly · Switch to annual to save 20% (${annualSavings.toLocaleString('en-US')}/yr)\n                  </p>\n                )}\n              </div>\n            </CardHeader>\n            <CardContent className=\"space-y-4\">\n              <Separator />\n              <div className=\"space-y-2.5\">\n                <div className=\"flex items-center justify-between text-sm\">\n                  <span className=\"text-muted-foreground\">Base platform ({recommendedPlan.name})</span>\n                  <span className=\"font-medium tabular-nums\">\n                    ${isAnnual ? Math.round(baseCost * 0.8) : baseCost}/mo\n                  </span>\n                </div>\n                <div className=\"flex items-center justify-between text-sm\">\n                  <span className=\"text-muted-foreground\">\n                    Team seats ({seats} × ${SEAT_PRICE})\n                  </span>\n                  <span className=\"font-medium tabular-nums\">\n                    ${isAnnual ? Math.round(seatsCost * 0.8) : seatsCost}/mo\n                  </span>\n                </div>\n                <div className=\"flex items-center justify-between text-sm\">\n                  <span className=\"text-muted-foreground\">API throughput ({currentRequestTier.label})</span>\n                  <span className=\"font-medium tabular-nums\">\n                    {requestsCost === 0\n                      ? 'Included'\n                      : `$${isAnnual ? Math.round(requestsCost * 0.8) : requestsCost}/mo`}\n                  </span>\n                </div>\n                <div className=\"flex items-center justify-between text-sm\">\n                  <span className=\"text-muted-foreground\">Cloud storage ({currentStorageTier.label})</span>\n                  <span className=\"font-medium tabular-nums\">\n                    ${isAnnual ? Math.round(storageCost * 0.8) : storageCost}/mo\n                  </span>\n                </div>\n                <div className=\"flex items-center justify-between text-sm\">\n                  <span className=\"text-muted-foreground\">Add-ons ({activeAddonsCount} active)</span>\n                  <span className=\"font-medium tabular-nums\">\n                    {addonsCost === 0 ? '$0/mo' : `$${isAnnual ? Math.round(addonsCost * 0.8) : addonsCost}/mo`}\n                  </span>\n                </div>\n                {isAnnual && (\n                  <div className=\"bg-success/10 text-success flex items-center justify-between rounded-md px-2.5 py-1.5 text-xs font-medium\">\n                    <span>Annual discount applied</span>\n                    <span className=\"font-semibold tabular-nums\">20% off</span>\n                  </div>\n                )}\n              </div>\n              <Separator />\n              <ul className=\"text-muted-foreground space-y-2 text-xs\">\n                <li className=\"flex items-center gap-2\">\n                  <Check className=\"text-primary size-3.5 shrink-0\" />\n                  <span>14-day fully featured free trial</span>\n                </li>\n                <li className=\"flex items-center gap-2\">\n                  <Check className=\"text-primary size-3.5 shrink-0\" />\n                  <span>No credit card required upfront</span>\n                </li>\n                <li className=\"flex items-center gap-2\">\n                  <Check className=\"text-primary size-3.5 shrink-0\" />\n                  <span>Zero-downtime migration assistance</span>\n                </li>\n              </ul>\n            </CardContent>\n            <CardFooter className=\"flex flex-col gap-2.5 pt-2\">\n              <Button className=\"w-full gap-2 font-semibold shadow-xs\" size=\"lg\">\n                Start 14-Day Free Trial\n                <ArrowRight className=\"size-4\" />\n              </Button>\n              <Button variant=\"outline\" className=\"w-full\" size=\"default\">\n                Request Custom Quote\n              </Button>\n            </CardFooter>\n          </Card>\n        </div>\n      </div>\n    </div>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingCalculator.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingEnterpriseSlaCard.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, Building2, Calendar, CheckCircle2, Lock, Server } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { cn } from '@/lib/utils'\n\nexport interface SlaGuarantee {\n  title: string\n  metric: string\n  description: string\n  icon: string\n}\n\nexport interface ComplianceCert {\n  id: string\n  name: string\n  status: string\n  badgeVariant?: 'default' | 'outline' | 'secondary'\n}\n\nexport interface PricingEnterpriseSlaCardProps {\n  title?: string\n  description?: string\n  guarantees?: SlaGuarantee[]\n  certifications?: ComplianceCert[]\n  className?: string\n}\n\nconst DEFAULT_GUARANTEES: SlaGuarantee[] = [\n  {\n    title: 'High-Availability SLA',\n    metric: '99.999%',\n    description: 'Financial penalty-backed monthly uptime commitment across multi-region clusters.',\n    icon: 'ShieldCheck',\n  },\n  {\n    title: 'P1 Incident Response',\n    metric: '< 15 mins',\n    description: 'Direct paging to designated Staff Infrastructure Commanders 24/7/365.',\n    icon: 'Headphones',\n  },\n  {\n    title: 'Global Edge TTFB',\n    metric: '< 12ms',\n    description: 'Sub-15ms Time-To-First-Byte guaranteed via Anycast network mesh.',\n    icon: 'Zap',\n  },\n  {\n    title: 'Custom Legal & DPA',\n    metric: 'Bespoke',\n    description: 'Dedicated legal counsel review, redline allowances, and customized BAAs.',\n    icon: 'Scale',\n  },\n]\n\nconst DEFAULT_CERTS: ComplianceCert[] = [\n  { id: 'soc2', name: 'SOC 2 Type II Certified', status: 'Continuous Audit' },\n  { id: 'hipaa', name: 'HIPAA Compliant BAA', status: 'Available' },\n  { id: 'iso27001', name: 'ISO/IEC 27001:2022', status: 'Certified' },\n  { id: 'gdpr', name: 'GDPR & CCPA Verified', status: 'Compliant' },\n  { id: 'fedramp', name: 'FedRAMP In-Process', status: 'High Baseline' },\n]\n\nexport function PricingEnterpriseSlaCard({\n  title = 'Mission-critical infrastructure with contractual legal guarantees.',\n  description = 'Tailored enterprise licensing, custom security reviews, isolated VPC deployments, and white-glove migration engineering.',\n  guarantees = DEFAULT_GUARANTEES,\n  certifications = DEFAULT_CERTS,\n  className,\n}: PricingEnterpriseSlaCardProps) {\n  const [isMeetingRequested, setIsMeetingRequested] = React.useState(false)\n\n  function requestMeeting() {\n    setIsMeetingRequested(true)\n    setTimeout(() => {\n      setIsMeetingRequested(false)\n    }, 3000)\n  }\n\n  return (\n    <section\n      data-slot=\"pricing-enterprise-sla-card\"\n      className={cn('bg-background relative overflow-hidden py-16 sm:py-24', className)}\n    >\n      <div className=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n        {/* Section Header */}\n        <div className=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <a\n            href=\"#enterprise-contract\"\n            className=\"group border-border/80 bg-secondary/60 hover:bg-secondary text-foreground inline-flex items-center gap-2 rounded-full border px-3.5 py-1 text-xs font-medium shadow-2xs transition-colors\"\n          >\n            <Building2 className=\"text-primary size-3.5\" />\n            <span>Enterprise Custom Contracting</span>\n            <ArrowRight className=\"text-muted-foreground size-3 transition-transform group-hover:translate-x-0.5\" />\n          </a>\n\n          <h2 className=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">{title}</h2>\n\n          <p className=\"text-muted-foreground text-base sm:text-lg\">{description}</p>\n        </div>\n\n        {/* Main Enterprise Showcase Container */}\n        <div className=\"border-border bg-card mt-12 overflow-hidden rounded-2xl border shadow-sm\">\n          <div className=\"divide-border grid grid-cols-1 divide-y lg:grid-cols-12 lg:divide-x lg:divide-y-0\">\n            {/* Left: SLA Guarantees & Contractual Commitments (7 Cols) */}\n            <div className=\"space-y-8 p-8 lg:col-span-7\">\n              <div className=\"space-y-1\">\n                <div className=\"text-primary text-xs font-bold tracking-wider uppercase\">Service Level Agreement</div>\n                <h3 className=\"text-foreground text-xl font-bold\">Penalty-Backed Contractual Metrics</h3>\n                <p className=\"text-muted-foreground text-xs\">\n                  Every commitment is codified into your master service agreement with direct financial remedies.\n                </p>\n              </div>\n\n              {/* Guarantees 2x2 Grid */}\n              <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\n                {guarantees.map((item, idx) => (\n                  <div key={idx} className=\"border-border bg-muted/20 space-y-2 rounded-xl border p-4\">\n                    <div className=\"flex items-center justify-between\">\n                      <span className=\"text-foreground text-xs font-bold\">{item.title}</span>\n                      <span className=\"text-primary font-mono text-xs font-bold\">{item.metric}</span>\n                    </div>\n                    <p className=\"text-muted-foreground text-xs leading-relaxed\">{item.description}</p>\n                  </div>\n                ))}\n              </div>\n\n              {/* Compliance & Governance Strip */}\n              <div className=\"space-y-3 pt-2\">\n                <div className=\"text-muted-foreground flex items-center gap-2 text-xs font-bold tracking-wider uppercase\">\n                  <Lock className=\"text-primary size-3.5\" />\n                  <span>Security & Regulatory Attestations</span>\n                </div>\n                <div className=\"flex flex-wrap gap-2\">\n                  {certifications.map((cert) => (\n                    <Badge\n                      key={cert.id}\n                      variant=\"outline\"\n                      className=\"border-border bg-background text-foreground gap-1.5 px-3 py-1 text-xs font-medium\"\n                    >\n                      <CheckCircle2 className=\"text-success size-3\" />\n                      <span>{cert.name}</span>\n                      <span className=\"text-muted-foreground font-mono text-xs\">({cert.status})</span>\n                    </Badge>\n                  ))}\n                </div>\n              </div>\n            </div>\n\n            {/* Right: Direct Enterprise Solution Consultation Card (5 Cols) */}\n            <div className=\"bg-muted/30 flex flex-col justify-between space-y-6 p-8 lg:col-span-5\">\n              <div className=\"space-y-4\">\n                <div className=\"border-border flex items-center justify-between border-b pb-3\">\n                  <div className=\"flex items-center gap-2\">\n                    <Server className=\"text-primary size-4\" />\n                    <span className=\"text-foreground text-sm font-semibold\">Custom Private Deployment</span>\n                  </div>\n                  <Badge variant=\"outline\" className=\"border-success/30 bg-success/10 text-success font-mono text-xs\">\n                    Tailored\n                  </Badge>\n                </div>\n\n                <div className=\"space-y-2.5\">\n                  <div className=\"text-foreground text-xs font-bold\">Included with Custom Tier:</div>\n                  <ul className=\"text-muted-foreground space-y-2 text-xs\">\n                    <li className=\"flex items-center gap-2\">\n                      <CheckCircle2 className=\"text-success size-3.5 shrink-0\" />\n                      <span>Dedicated AWS / GCP VPC peering or self-hosted air-gap</span>\n                    </li>\n                    <li className=\"flex items-center gap-2\">\n                      <CheckCircle2 className=\"text-success size-3.5 shrink-0\" />\n                      <span>Custom SAML 2.0 / Okta / Azure AD SCIM provisioning</span>\n                    </li>\n                    <li className=\"flex items-center gap-2\">\n                      <CheckCircle2 className=\"text-success size-3.5 shrink-0\" />\n                      <span>Dedicated Solution Architect & design system migration team</span>\n                    </li>\n                    <li className=\"flex items-center gap-2\">\n                      <CheckCircle2 className=\"text-success size-3.5 shrink-0\" />\n                      <span>Invoiced payment via ACH, Wire Transfer, or AWS Marketplace</span>\n                    </li>\n                  </ul>\n                </div>\n              </div>\n\n              {/* Action Block */}\n              <div className=\"border-border space-y-3 border-t pt-4\">\n                <Button className=\"w-full gap-2 shadow-xs\" size=\"lg\" onClick={requestMeeting}>\n                  <Calendar className=\"size-4\" />\n                  <span>\n                    {isMeetingRequested ? 'Direct Routing to Architect...' : 'Book Enterprise Technical Review'}\n                  </span>\n                </Button>\n                <div className=\"text-muted-foreground text-center text-xs\">\n                  Average executive response time: <strong>under 20 minutes</strong>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingEnterpriseSlaCard.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingFeatureAddonBuilder.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, Calculator, Check, CreditCard } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { cn } from '@/lib/utils'\n\nexport interface PricingPlan {\n  id: string\n  name: string\n  monthlyPrice: number\n  description: string\n  includedSeats: number\n}\n\nexport interface PricingAddon {\n  id: string\n  name: string\n  monthlyPrice: number\n  description: string\n  category: string\n}\n\nexport interface PricingFeatureAddonBuilderProps {\n  title?: string\n  description?: string\n  plans?: PricingPlan[]\n  addons?: PricingAddon[]\n  className?: string\n}\n\nconst DEFAULT_PLANS: PricingPlan[] = [\n  {\n    id: 'starter',\n    name: 'Starter Tier',\n    monthlyPrice: 29,\n    description: 'For indie developers and early-stage prototypes needing unbundled speed.',\n    includedSeats: 2,\n  },\n  {\n    id: 'growth',\n    name: 'Growth Core',\n    monthlyPrice: 99,\n    description: 'For scaling product engineering teams building high-conversion platforms.',\n    includedSeats: 5,\n  },\n  {\n    id: 'scale',\n    name: 'Scale Enterprise',\n    monthlyPrice: 299,\n    description: 'For mission-critical production clusters requiring sub-10ms global edge delivery.',\n    includedSeats: 15,\n  },\n]\n\nconst DEFAULT_ADDONS: PricingAddon[] = [\n  {\n    id: 'dedicated-ip',\n    name: 'Dedicated Static Edge IP',\n    monthlyPrice: 49,\n    description: 'Static IPv4/IPv6 address allocations with zero-reputation penalty.',\n    category: 'Network',\n  },\n  {\n    id: 'audit-logs',\n    name: 'Immutable SOC2 Audit Logs',\n    monthlyPrice: 79,\n    description: 'Cryptographically signed telemetry logs with 365-day cold storage retention.',\n    category: 'Security',\n  },\n  {\n    id: 'multi-region',\n    name: 'Multi-Region Active-Active Mesh',\n    monthlyPrice: 129,\n    description: 'Synchronized cross-continental database replicas and automatic DNS failover.',\n    category: 'Reliability',\n  },\n  {\n    id: 'priority-sla',\n    name: '1-Hour Enterprise Response SLA',\n    monthlyPrice: 199,\n    description: 'Direct Slack / Discord hotline with senior design engineering staff.',\n    category: 'Support',\n  },\n]\n\nexport function PricingFeatureAddonBuilder({\n  title = 'Build your custom plan with transparent, zero-surprise pricing.',\n  description = 'Select your base tier, adjust seat allocations, and toggle modular enterprise add-ons with real-time invoice calculations.',\n  plans = DEFAULT_PLANS,\n  addons = DEFAULT_ADDONS,\n  className,\n}: PricingFeatureAddonBuilderProps) {\n  const [selectedPlanId, setSelectedPlanId] = React.useState('growth')\n  const [selectedAddonIds, setSelectedAddonIds] = React.useState<string[]>(['dedicated-ip', 'audit-logs'])\n  const [seatCount, setSeatCount] = React.useState(8)\n  const [isAnnual, setIsAnnual] = React.useState(true)\n\n  const selectedPlan = React.useMemo(() => {\n    return plans.find((p) => p.id === selectedPlanId) || plans[0]\n  }, [plans, selectedPlanId])\n\n  const extraSeats = React.useMemo(() => {\n    return Math.max(0, seatCount - selectedPlan.includedSeats)\n  }, [seatCount, selectedPlan])\n\n  const extraSeatCost = React.useMemo(() => extraSeats * 15, [extraSeats])\n\n  const totalAddonsCost = React.useMemo(() => {\n    return addons.filter((a) => selectedAddonIds.includes(a.id)).reduce((sum, a) => sum + a.monthlyPrice, 0)\n  }, [addons, selectedAddonIds])\n\n  const monthlySubtotal = React.useMemo(() => {\n    return selectedPlan.monthlyPrice + extraSeatCost + totalAddonsCost\n  }, [selectedPlan, extraSeatCost, totalAddonsCost])\n\n  const finalMonthlyRate = React.useMemo(() => {\n    if (isAnnual) {\n      return Math.round(monthlySubtotal * 0.8)\n    }\n    return monthlySubtotal\n  }, [isAnnual, monthlySubtotal])\n\n  const annualSavings = React.useMemo(() => {\n    return (monthlySubtotal - Math.round(monthlySubtotal * 0.8)) * 12\n  }, [monthlySubtotal])\n\n  function toggleAddon(addonId: string) {\n    if (selectedAddonIds.includes(addonId)) {\n      setSelectedAddonIds(selectedAddonIds.filter((id) => id !== addonId))\n    } else {\n      setSelectedAddonIds([...selectedAddonIds, addonId])\n    }\n  }\n\n  return (\n    <section\n      data-slot=\"pricing-feature-addon-builder\"\n      className={cn('bg-background relative overflow-hidden py-16 sm:py-24', className)}\n    >\n      <div className=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n        {/* Section Header */}\n        <div className=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <a\n            href=\"#pricing-calculator\"\n            className=\"group border-border/80 bg-secondary/60 hover:bg-secondary text-foreground inline-flex items-center gap-2 rounded-full border px-3.5 py-1 text-xs font-medium shadow-2xs transition-colors\"\n          >\n            <Calculator className=\"text-primary size-3.5\" />\n            <span>Real-time Add-on Cost Synthesizer</span>\n            <ArrowRight className=\"text-muted-foreground size-3 transition-transform group-hover:translate-x-0.5\" />\n          </a>\n\n          <h2 className=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">{title}</h2>\n\n          <p className=\"text-muted-foreground text-base sm:text-lg\">{description}</p>\n\n          {/* Billing Cadence Toggle */}\n          <div className=\"flex items-center justify-center gap-3 pt-2\">\n            <span\n              className={cn(\n                'text-xs font-medium',\n                !isAnnual ? 'text-foreground font-semibold' : 'text-muted-foreground',\n              )}\n            >\n              Monthly Billing\n            </span>\n            <button\n              type=\"button\"\n              className={cn(\n                'focus-visible:ring-ring relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus-visible:ring-2 focus-visible:outline-none',\n                isAnnual ? 'bg-primary' : 'bg-muted',\n              )}\n              onClick={() => setIsAnnual(!isAnnual)}\n            >\n              <span\n                className={cn(\n                  'bg-background pointer-events-none inline-block size-5 transform rounded-full shadow-lg ring-0 transition duration-200 ease-in-out',\n                  isAnnual ? 'translate-x-5' : 'translate-x-0',\n                )}\n              />\n            </button>\n            <span\n              className={cn(\n                'flex items-center gap-1.5 text-xs font-medium',\n                isAnnual ? 'text-foreground font-semibold' : 'text-muted-foreground',\n              )}\n            >\n              <span>Annual Billing</span>\n              <Badge variant=\"outline\" className=\"border-success/30 bg-success/10 text-success text-xs\">\n                Save 20%\n              </Badge>\n            </span>\n          </div>\n        </div>\n\n        {/* Add-on Builder Workbench */}\n        <div className=\"mt-12 grid grid-cols-1 gap-6 lg:grid-cols-12\">\n          {/* Left: Plan Selection & Addon Toggles (7 Cols) */}\n          <div className=\"space-y-6 lg:col-span-7\">\n            {/* Step 1: Base Tier Cards */}\n            <div className=\"space-y-3\">\n              <div className=\"text-muted-foreground text-xs font-bold tracking-wider uppercase\">\n                Step 1: Choose Base Core Tier\n              </div>\n              <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-3\">\n                {plans.map((plan) => (\n                  <button\n                    key={plan.id}\n                    type=\"button\"\n                    className={cn(\n                      'flex flex-col justify-between rounded-xl border p-4 text-left transition-colors',\n                      selectedPlanId === plan.id\n                        ? 'border-primary bg-primary/5 ring-primary/20 shadow-xs ring-1'\n                        : 'border-border bg-card hover:bg-muted/40 text-muted-foreground hover:text-foreground',\n                    )}\n                    onClick={() => setSelectedPlanId(plan.id)}\n                  >\n                    <div>\n                      <div className=\"text-foreground text-xs font-bold\">{plan.name}</div>\n                      <div className=\"text-foreground mt-1 font-mono text-lg font-bold\">\n                        ${plan.monthlyPrice}\n                        <span className=\"text-muted-foreground text-xs font-normal\">/mo</span>\n                      </div>\n                    </div>\n                    <div className=\"text-muted-foreground mt-2 text-xs\">\n                      Includes {plan.includedSeats} engineer seats\n                    </div>\n                  </button>\n                ))}\n              </div>\n            </div>\n\n            {/* Step 2: Seat Allocation Slider */}\n            <Card className=\"border-border bg-card/60 shadow-2xs\">\n              <CardContent className=\"space-y-2.5 p-4\">\n                <div className=\"flex items-center justify-between text-xs\">\n                  <span className=\"text-foreground font-bold\">Engineer Team Seats</span>\n                  <span className=\"text-foreground font-mono text-sm font-bold\">\n                    {seatCount} seats (${extraSeatCost}/mo extra)\n                  </span>\n                </div>\n                <input\n                  type=\"range\"\n                  min=\"2\"\n                  max=\"50\"\n                  step=\"1\"\n                  value={seatCount}\n                  onChange={(e) => setSeatCount(parseInt(e.target.value))}\n                  className=\"accent-primary w-full cursor-pointer\"\n                />\n                <div className=\"text-muted-foreground flex justify-between font-mono text-xs\">\n                  <span>2 seats</span>\n                  <span>50 seats</span>\n                </div>\n              </CardContent>\n            </Card>\n\n            {/* Step 3: Enterprise Add-ons Checklist */}\n            <div className=\"space-y-3\">\n              <div className=\"text-muted-foreground text-xs font-bold tracking-wider uppercase\">\n                Step 3: Select Modular Capabilities\n              </div>\n              <div className=\"grid grid-cols-1 gap-2.5\">\n                {addons.map((addon) => (\n                  <button\n                    key={addon.id}\n                    type=\"button\"\n                    className={cn(\n                      'flex items-center justify-between rounded-xl border p-3.5 text-left transition-colors',\n                      selectedAddonIds.includes(addon.id)\n                        ? 'border-primary/60 bg-primary/5 shadow-2xs'\n                        : 'border-border bg-card hover:bg-muted/30 text-muted-foreground hover:text-foreground',\n                    )}\n                    onClick={() => toggleAddon(addon.id)}\n                  >\n                    <div className=\"flex min-w-0 items-center gap-3\">\n                      <div\n                        className={cn(\n                          'flex size-5 shrink-0 items-center justify-center rounded border transition-colors',\n                          selectedAddonIds.includes(addon.id)\n                            ? 'border-primary bg-primary text-primary-foreground'\n                            : 'border-border bg-background',\n                        )}\n                      >\n                        {selectedAddonIds.includes(addon.id) ? <Check className=\"size-3.5\" /> : null}\n                      </div>\n                      <div className=\"min-w-0 space-y-0.5\">\n                        <div className=\"flex items-center gap-2\">\n                          <span className=\"text-foreground text-xs font-bold\">{addon.name}</span>\n                          <Badge variant=\"outline\" className=\"border-border text-muted-foreground text-xs\">\n                            {addon.category}\n                          </Badge>\n                        </div>\n                        <div className=\"text-muted-foreground truncate text-xs\">{addon.description}</div>\n                      </div>\n                    </div>\n\n                    <div className=\"text-foreground shrink-0 pl-2 font-mono text-xs font-bold\">\n                      +${addon.monthlyPrice}\n                      <span className=\"text-muted-foreground text-xs font-normal\">/mo</span>\n                    </div>\n                  </button>\n                ))}\n              </div>\n            </div>\n          </div>\n\n          {/* Right: Real-time Invoice Estimate Card (5 Cols) */}\n          <div className=\"lg:col-span-5\">\n            <Card className=\"border-border bg-card/90 sticky top-8 shadow-md backdrop-blur-xs\">\n              <CardContent className=\"space-y-6 p-6\">\n                <div className=\"border-border flex items-center justify-between border-b pb-3\">\n                  <div className=\"flex items-center gap-2\">\n                    <CreditCard className=\"text-primary size-4\" />\n                    <span className=\"text-foreground text-sm font-semibold\">Estimated Monthly Invoice</span>\n                  </div>\n                  <Badge variant=\"outline\" className=\"border-border text-primary font-mono text-xs\">\n                    {isAnnual ? 'Annualized' : 'Monthly'}\n                  </Badge>\n                </div>\n\n                {/* Price Breakdown List */}\n                <div className=\"space-y-3 text-xs\">\n                  <div className=\"text-muted-foreground flex justify-between\">\n                    <span>{selectedPlan.name}</span>\n                    <span className=\"text-foreground font-mono\">${selectedPlan.monthlyPrice}.00</span>\n                  </div>\n\n                  {extraSeats > 0 ? (\n                    <div className=\"text-muted-foreground flex justify-between\">\n                      <span>Extra Seats ({extraSeats} &times; $15)</span>\n                      <span className=\"text-foreground font-mono\">${extraSeatCost}.00</span>\n                    </div>\n                  ) : null}\n\n                  {addons\n                    .filter((a) => selectedAddonIds.includes(a.id))\n                    .map((addon) => (\n                      <div key={addon.id} className=\"text-muted-foreground flex justify-between\">\n                        <span className=\"truncate pr-2\">{addon.name}</span>\n                        <span className=\"text-foreground font-mono\">${addon.monthlyPrice}.00</span>\n                      </div>\n                    ))}\n\n                  {isAnnual ? (\n                    <div className=\"border-border/60 text-success flex justify-between border-t pt-2 font-medium\">\n                      <span>Annual Billing Discount (20%)</span>\n                      <span className=\"font-mono\">&minus;${monthlySubtotal - finalMonthlyRate}.00</span>\n                    </div>\n                  ) : null}\n                </div>\n\n                {/* Total Sum Band */}\n                <div className=\"border-border bg-muted/40 space-y-1 rounded-lg border p-4\">\n                  <div className=\"text-muted-foreground text-xs font-medium\">Net Monthly Investment</div>\n                  <div className=\"flex items-baseline gap-1.5\">\n                    <span className=\"text-foreground font-mono text-3xl font-bold tracking-tight\">\n                      ${finalMonthlyRate}\n                    </span>\n                    <span className=\"text-muted-foreground font-mono text-xs\">/ month</span>\n                  </div>\n                  {isAnnual ? (\n                    <div className=\"text-success text-xs font-medium\">\n                      Billed annually (${finalMonthlyRate * 12}/yr &bull; Save ${annualSavings}/yr)\n                    </div>\n                  ) : null}\n                </div>\n\n                <Button className=\"w-full gap-2 shadow-xs\" size=\"lg\">\n                  <span>Start 14-Day Free Evaluation</span>\n                  <ArrowRight className=\"size-4\" />\n                </Button>\n              </CardContent>\n            </Card>\n          </div>\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingFeatureAddonBuilder.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingFeatureTierSlider.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, CheckCircle2, Sliders } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { cn } from '@/lib/utils'\n\nexport interface PricingFeatureTierSliderProps {\n  title?: string\n  description?: string\n  className?: string\n}\n\nconst TIERS = [\n  {\n    label: '10K MAU',\n    mauCount: '10,000',\n    basePriceMonthly: 19,\n    tierName: 'Starter Hobbyist',\n    features: [\n      '10,000 Monthly Users',\n      '2 Dedicated Edge Locations',\n      'Community Discord SLA',\n      'Standard 1-Day Log Retention',\n    ],\n  },\n  {\n    label: '50K MAU',\n    mauCount: '50,000',\n    basePriceMonthly: 49,\n    tierName: 'Pro Creator',\n    features: [\n      '50,000 Monthly Users',\n      '12 Global Anycast Edges',\n      'Next-Business-Day Support SLA',\n      '7-Day Immutable Log Retention',\n    ],\n  },\n  {\n    label: '250K MAU',\n    mauCount: '250,000',\n    basePriceMonthly: 149,\n    tierName: 'Growth Scale',\n    features: [\n      '250,000 Monthly Users',\n      'All 36 Global Edge Regions',\n      '4-Hour Priority Engineering SLA',\n      '30-Day SOC2 Audit Logs',\n    ],\n  },\n  {\n    label: '1M MAU',\n    mauCount: '1,000,000',\n    basePriceMonthly: 399,\n    tierName: 'Enterprise Core',\n    features: [\n      '1,000,000 Monthly Users',\n      'Dedicated VPC & Multi-Region Mesh',\n      '15-Minute Critical Incident SLA',\n      '365-Day Cold Storage Logs',\n    ],\n  },\n  {\n    label: '5M+ MAU',\n    mauCount: '5,000,000+',\n    basePriceMonthly: 899,\n    tierName: 'Hyperscale Cluster',\n    features: [\n      '5,000,000+ Monthly Users',\n      'Custom Bare-Metal Cloud Partitions',\n      'Dedicated Solutions Architect',\n      'Custom Security Review & BAA',\n    ],\n  },\n]\n\nexport function PricingFeatureTierSlider({\n  title = 'Predictable usage pricing with dynamic linear scale.',\n  description = 'Slide to your estimated monthly active users or edge invocations to calculate your exact monthly investment.',\n  className,\n}: PricingFeatureTierSliderProps) {\n  const [sliderIndex, setSliderIndex] = React.useState(2)\n  const [isAnnual, setIsAnnual] = React.useState(true)\n\n  const currentTier = TIERS[sliderIndex]\n  const effectivePrice = isAnnual ? Math.round(currentTier.basePriceMonthly * 0.8) : currentTier.basePriceMonthly\n  const annualSavings = (currentTier.basePriceMonthly - effectivePrice) * 12\n\n  return (\n    <section\n      data-slot=\"pricing-feature-tier-slider\"\n      className={cn('bg-background relative overflow-hidden py-16 sm:py-24', className)}\n    >\n      <div className=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n        {/* Section Header */}\n        <div className=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <a\n            href=\"#scale-pricing\"\n            className=\"group border-border/80 bg-secondary/60 hover:bg-secondary text-foreground inline-flex items-center gap-2 rounded-full border px-3.5 py-1 text-xs font-medium shadow-2xs transition-colors\"\n          >\n            <Sliders className=\"text-primary size-3.5\" />\n            <span>Continuous Scale Synthesizer</span>\n            <ArrowRight className=\"text-muted-foreground size-3 transition-transform group-hover:translate-x-0.5\" />\n          </a>\n\n          <h2 className=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">{title}</h2>\n\n          <p className=\"text-muted-foreground text-base sm:text-lg\">{description}</p>\n\n          {/* Cadence Switcher */}\n          <div className=\"flex items-center justify-center gap-3 pt-2\">\n            <span\n              className={cn(\n                'text-xs font-medium',\n                !isAnnual ? 'text-foreground font-semibold' : 'text-muted-foreground',\n              )}\n            >\n              Monthly\n            </span>\n            <button\n              type=\"button\"\n              className={cn(\n                'relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out',\n                isAnnual ? 'bg-primary' : 'bg-muted',\n              )}\n              onClick={() => setIsAnnual(!isAnnual)}\n            >\n              <span\n                className={cn(\n                  'bg-background pointer-events-none inline-block size-5 transform rounded-full shadow-lg ring-0 transition duration-200 ease-in-out',\n                  isAnnual ? 'translate-x-5' : 'translate-x-0',\n                )}\n              />\n            </button>\n            <span\n              className={cn(\n                'flex items-center gap-1.5 text-xs font-medium',\n                isAnnual ? 'text-foreground font-semibold' : 'text-muted-foreground',\n              )}\n            >\n              <span>Annual Billing</span>\n              <Badge variant=\"outline\" className=\"border-success/30 bg-success/10 text-success text-xs\">\n                Save 20%\n              </Badge>\n            </span>\n          </div>\n        </div>\n\n        {/* Pricing Slider Main Card */}\n        <div className=\"mx-auto mt-12 max-w-4xl\">\n          <Card className=\"border-border bg-card overflow-hidden shadow-sm\">\n            <CardContent className=\"space-y-8 p-8\">\n              {/* Scale Indicator Bar */}\n              <div className=\"border-border flex flex-wrap items-center justify-between gap-4 border-b pb-6\">\n                <div className=\"space-y-1\">\n                  <span className=\"text-muted-foreground text-xs font-bold tracking-wider uppercase\">\n                    Calculated Tier Plan\n                  </span>\n                  <h3 className=\"text-foreground text-2xl font-bold\">{currentTier.tierName}</h3>\n                  <div className=\"text-muted-foreground text-xs\">\n                    Engineered for {currentTier.mauCount} active user sessions\n                  </div>\n                </div>\n\n                {/* Price Box */}\n                <div className=\"text-right\">\n                  <div className=\"flex items-baseline justify-end gap-1\">\n                    <span className=\"text-foreground font-mono text-4xl font-bold\">${effectivePrice}</span>\n                    <span className=\"text-muted-foreground font-mono text-xs\">/ month</span>\n                  </div>\n                  {isAnnual ? (\n                    <div className=\"text-success font-mono text-xs font-medium\">Save ${annualSavings}/yr on annual</div>\n                  ) : null}\n                </div>\n              </div>\n\n              {/* Interactive Stepped Range Slider */}\n              <div className=\"space-y-3\">\n                <div className=\"text-foreground flex items-center justify-between text-xs font-bold\">\n                  <span>Monthly Traffic Volume</span>\n                  <span className=\"text-primary font-mono font-bold\">{currentTier.mauCount} Users</span>\n                </div>\n\n                <input\n                  type=\"range\"\n                  min=\"0\"\n                  max=\"4\"\n                  step=\"1\"\n                  value={sliderIndex}\n                  onChange={(e) => setSliderIndex(parseInt(e.target.value))}\n                  className=\"accent-primary h-2 w-full cursor-pointer\"\n                />\n\n                {/* Slider Step Labels */}\n                <div className=\"text-muted-foreground flex justify-between font-mono text-xs\">\n                  {TIERS.map((t, idx) => (\n                    <span\n                      key={idx}\n                      className={cn(\n                        'hover:text-foreground cursor-pointer transition-colors',\n                        sliderIndex === idx ? 'text-primary font-bold' : '',\n                      )}\n                      onClick={() => setSliderIndex(idx)}\n                    >\n                      {t.label}\n                    </span>\n                  ))}\n                </div>\n              </div>\n\n              {/* Features Checklist Grid for Current Tier */}\n              <div className=\"border-border space-y-3 border-t pt-4\">\n                <span className=\"text-muted-foreground text-xs font-bold tracking-wider uppercase\">\n                  Guaranteed Tier Deliverables\n                </span>\n                <div className=\"grid grid-cols-1 gap-2.5 sm:grid-cols-2\">\n                  {currentTier.features.map((feat, fIdx) => (\n                    <div key={fIdx} className=\"text-foreground flex items-center gap-2 text-xs\">\n                      <CheckCircle2 className=\"text-success size-4 shrink-0\" />\n                      <span>{feat}</span>\n                    </div>\n                  ))}\n                </div>\n              </div>\n\n              {/* Action Button */}\n              <div className=\"pt-2\">\n                <Button size=\"lg\" className=\"w-full gap-2 shadow-xs\">\n                  <span>Deploy with {currentTier.tierName}</span>\n                  <ArrowRight className=\"size-4\" />\n                </Button>\n              </div>\n            </CardContent>\n          </Card>\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingFeatureTierSlider.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingMatrixGrouped.tsx",
      "content": "'use client'\n\nimport { useState } from 'react'\nimport { Check, ChevronDown, Minus } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Separator } from '@/components/ui/separator'\nimport { Table, TableBody, TableCell, TableRow } from '@/components/ui/table'\n\nconst plans = ['Team', 'Business', 'Enterprise']\n\nconst groups: {\n  id: string\n  label: string\n  summary: string\n  rows: { feature: string; values: (boolean | string)[] }[]\n}[] = [\n  {\n    id: 'modelling',\n    label: 'Modelling',\n    summary: 'Definitions, versioning, and review',\n    rows: [\n      { feature: 'Certified definitions', values: ['50', '500', 'Unlimited'] },\n      { feature: 'Version history', values: ['30 days', 'Unlimited', 'Unlimited'] },\n      { feature: 'Required review', values: [false, true, true] },\n      { feature: 'Period locking', values: [false, true, true] },\n    ],\n  },\n  {\n    id: 'access',\n    label: 'Access & identity',\n    summary: 'Who sees which rows',\n    rows: [\n      { feature: 'SSO (SAML)', values: [true, true, true] },\n      { feature: 'SCIM provisioning', values: [false, true, true] },\n      { feature: 'Row-level scope', values: [false, true, true] },\n      { feature: 'Customer-managed keys', values: [false, false, true] },\n    ],\n  },\n  {\n    id: 'ops',\n    label: 'Operations',\n    summary: 'Cost, alerting, and support',\n    rows: [\n      { feature: 'Query budgets', values: [false, true, true] },\n      { feature: 'Drift alerting', values: [false, true, true] },\n      { feature: 'Audit log export', values: [false, '90 days', 'Unlimited'] },\n      { feature: 'Named support engineer', values: [false, false, true] },\n    ],\n  },\n]\n\nexport function PricingMatrixGrouped() {\n  // Opens on the first group only: a fully expanded matrix is the thing readers\n  // bounce off, and every group is one click from open.\n  const [open, setOpen] = useState<string[]>([groups[0].id])\n\n  const toggle = (id: string) =>\n    setOpen((current) => (current.includes(id) ? current.filter((entry) => entry !== id) : [...current, id]))\n\n  return (\n    <section data-slot=\"pricing-matrix-grouped\" className=\"bg-background\">\n      <div className=\"mx-auto max-w-4xl px-6 py-20 lg:py-28\">\n        <Badge variant=\"secondary\">Compare plans</Badge>\n        <h2 className=\"mt-4 text-3xl font-semibold tracking-tight sm:text-4xl\">Grouped, so it stays readable</h2>\n\n        <Card className=\"mt-8\">\n          <CardContent className=\"p-0\">\n            <div className=\"text-muted-foreground grid grid-cols-[1fr_repeat(3,5rem)] gap-2 px-4 py-3 text-xs font-medium sm:grid-cols-[1fr_repeat(3,7rem)]\">\n              <span>Capability</span>\n              {plans.map((plan) => (\n                <span key={plan} className=\"text-center\">\n                  {plan}\n                </span>\n              ))}\n            </div>\n            <Separator />\n\n            {groups.map((group) => (\n              <div key={group.id}>\n                <button\n                  type=\"button\"\n                  className=\"hover:bg-muted focus-visible:ring-ring flex w-full items-center gap-3 px-4 py-3 text-left transition-colors focus-visible:ring-2 focus-visible:outline-none\"\n                  aria-expanded={open.includes(group.id)}\n                  aria-controls={`group-${group.id}`}\n                  onClick={() => toggle(group.id)}\n                >\n                  <ChevronDown\n                    className={`text-muted-foreground size-4 shrink-0 transition-transform ${\n                      open.includes(group.id) ? '' : '-rotate-90'\n                    }`}\n                    aria-hidden=\"true\"\n                  />\n                  <span className=\"min-w-0\">\n                    <span className=\"block text-sm font-medium\">{group.label}</span>\n                    <span className=\"text-muted-foreground block text-xs\">{group.summary}</span>\n                  </span>\n                  <span className=\"text-muted-foreground ml-auto shrink-0 font-mono text-xs\">{group.rows.length}</span>\n                </button>\n\n                {open.includes(group.id) && (\n                  <div id={`group-${group.id}`}>\n                    <Table>\n                      <TableBody>\n                        {group.rows.map((row) => (\n                          <TableRow key={row.feature}>\n                            <TableCell className=\"pl-11 text-sm\">{row.feature}</TableCell>\n                            {row.values.map((value, index) => (\n                              <TableCell key={index} className=\"w-20 text-center sm:w-28\">\n                                {value === true && (\n                                  <>\n                                    <Check className=\"text-success mx-auto size-4\" aria-hidden=\"true\" />\n                                    <span className=\"sr-only\">Included</span>\n                                  </>\n                                )}\n                                {value === false && (\n                                  <>\n                                    <Minus className=\"text-muted-foreground/50 mx-auto size-4\" aria-hidden=\"true\" />\n                                    <span className=\"sr-only\">Not included</span>\n                                  </>\n                                )}\n                                {typeof value === 'string' && <span className=\"font-mono text-xs\">{value}</span>}\n                              </TableCell>\n                            ))}\n                          </TableRow>\n                        ))}\n                      </TableBody>\n                    </Table>\n                  </div>\n                )}\n                <Separator />\n              </div>\n            ))}\n          </CardContent>\n        </Card>\n\n        <Button className=\"mt-6\">Start on Business</Button>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingMatrixGrouped.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingMatrixPlanCards.tsx",
      "content": "'use client'\n\nimport { Check, Minus } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Separator } from '@/components/ui/separator'\n\nconst capabilities = [\n  'Certified metric definitions',\n  'Connected warehouses',\n  'Query budget per team',\n  'Row-level access control',\n  'SCIM provisioning',\n  'Audit log export',\n  'Embedded dashboards',\n  'Data residency choice',\n  'Customer-managed keys',\n  'Named support engineer',\n]\n\nconst plans = [\n  { name: 'Team', price: '$0', cadence: 'while in beta', included: [0, 1], note: 'For one team proving it out.' },\n  {\n    name: 'Business',\n    price: '$1,400',\n    cadence: 'per month',\n    included: [0, 1, 2, 3, 4, 5, 6],\n    note: 'For finance and analytics running together.',\n    featured: true,\n  },\n  {\n    name: 'Enterprise',\n    price: 'Custom',\n    cadence: 'annual',\n    included: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n    note: 'For regulated estates and multi-region.',\n  },\n]\n\nexport function PricingMatrixPlanCards() {\n  return (\n    <section data-slot=\"pricing-matrix-plan-cards\" className=\"bg-background\">\n      <div className=\"mx-auto max-w-6xl px-6 py-20 lg:py-28\">\n        <div className=\"max-w-2xl\">\n          <Badge variant=\"secondary\">Plans</Badge>\n          <h2 className=\"mt-4 text-3xl font-semibold tracking-tight sm:text-4xl\">What each plan actually includes</h2>\n          <p className=\"text-muted-foreground mt-3 text-lg\">\n            The same list on every card, with what is missing shown rather than omitted.\n          </p>\n        </div>\n\n        <div className=\"mt-10 grid gap-4 lg:grid-cols-3\">\n          {plans.map((plan) => (\n            <Card key={plan.name} className={plan.featured ? 'border-primary' : undefined}>\n              <CardContent className=\"flex h-full flex-col p-6\">\n                <div className=\"flex items-center justify-between gap-3\">\n                  <p className=\"text-sm font-semibold\">{plan.name}</p>\n                  {plan.featured && <Badge variant=\"secondary\">Most chosen</Badge>}\n                </div>\n\n                <p className=\"font-display mt-4 text-3xl font-bold tracking-tight\">{plan.price}</p>\n                <p className=\"text-muted-foreground mt-1 text-xs\">{plan.cadence}</p>\n                <p className=\"text-muted-foreground mt-3 text-sm leading-relaxed\">{plan.note}</p>\n\n                <Separator className=\"my-5\" />\n\n                <ul className=\"space-y-2.5\">\n                  {capabilities.map((capability, index) => (\n                    <li\n                      key={capability}\n                      className={`flex items-start gap-2.5 text-sm ${\n                        plan.included.includes(index) ? '' : 'text-muted-foreground/60'\n                      }`}\n                    >\n                      {plan.included.includes(index) ? (\n                        <Check className=\"text-success mt-0.5 size-4 shrink-0\" aria-hidden=\"true\" />\n                      ) : (\n                        <Minus className=\"text-muted-foreground/40 mt-0.5 size-4 shrink-0\" aria-hidden=\"true\" />\n                      )}\n                      <span>{capability}</span>\n                    </li>\n                  ))}\n                </ul>\n\n                <Button variant={plan.featured ? 'default' : 'outline'} className=\"mt-auto pt-0 [&]:mt-8\">\n                  {plan.name === 'Enterprise' ? 'Talk to us' : `Start on ${plan.name}`}\n                </Button>\n              </CardContent>\n            </Card>\n          ))}\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingMatrixPlanCards.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingMatrixStickyHeader.tsx",
      "content": "'use client'\n\nimport { Check, Minus } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'\n\nconst plans = ['Team', 'Business', 'Enterprise']\n\n// Cells are true / false / a string, so a plan can state a limit rather than\n// only claiming a feature exists.\nconst rows: { feature: string; values: (boolean | string)[] }[] = [\n  { feature: 'Certified metric definitions', values: ['50', '500', 'Unlimited'] },\n  { feature: 'Connected warehouses', values: ['1', '3', 'Unlimited'] },\n  { feature: 'Query budget per team', values: [false, true, true] },\n  { feature: 'Row-level access control', values: [false, true, true] },\n  { feature: 'SCIM provisioning', values: [false, true, true] },\n  { feature: 'Audit log export', values: [false, '90 days', 'Unlimited'] },\n  { feature: 'Period locking', values: [false, true, true] },\n  { feature: 'Embedded dashboards', values: [false, true, true] },\n  { feature: 'Data residency choice', values: [false, false, true] },\n  { feature: 'Customer-managed keys', values: [false, false, true] },\n  { feature: 'Private link', values: [false, false, true] },\n  { feature: 'Named support engineer', values: [false, false, true] },\n]\n\nexport function PricingMatrixStickyHeader() {\n  return (\n    <section data-slot=\"pricing-matrix-sticky-header\" className=\"bg-background\">\n      <div className=\"mx-auto max-w-4xl px-6 py-20 lg:py-28\">\n        <Badge variant=\"secondary\">Compare plans</Badge>\n        <h2 className=\"mt-4 text-3xl font-semibold tracking-tight sm:text-4xl\">Every line, no asterisks</h2>\n        <p className=\"text-muted-foreground mt-3 text-lg\">\n          Limits differ between plans. Where a plan caps something, the cap is written in the cell.\n        </p>\n\n        <Card className=\"mt-8\">\n          <CardContent className=\"p-0\">\n            {/* The header pins with CSS alone. Thirty rows down, a checkmark is\n                still attributable to a column without scrolling back up. */}\n            <div className=\"max-h-[28rem] overflow-auto\">\n              <Table>\n                <TableHeader className=\"bg-card sticky top-0 z-10\">\n                  <TableRow>\n                    <TableHead className=\"bg-card\">Capability</TableHead>\n                    {plans.map((plan) => (\n                      <TableHead key={plan} className=\"bg-card text-center\">\n                        {plan}\n                      </TableHead>\n                    ))}\n                  </TableRow>\n                </TableHeader>\n                <TableBody>\n                  {rows.map((row) => (\n                    <TableRow key={row.feature}>\n                      <TableCell className=\"font-medium\">{row.feature}</TableCell>\n                      {row.values.map((value, index) => (\n                        <TableCell key={index} className=\"text-center\">\n                          {value === true && (\n                            <>\n                              <Check className=\"text-success mx-auto size-4\" aria-hidden=\"true\" />\n                              <span className=\"sr-only\">Included</span>\n                            </>\n                          )}\n                          {value === false && (\n                            <>\n                              <Minus className=\"text-muted-foreground/50 mx-auto size-4\" aria-hidden=\"true\" />\n                              <span className=\"sr-only\">Not included</span>\n                            </>\n                          )}\n                          {typeof value === 'string' && <span className=\"font-mono text-xs\">{value}</span>}\n                        </TableCell>\n                      ))}\n                    </TableRow>\n                  ))}\n                </TableBody>\n              </Table>\n            </div>\n          </CardContent>\n        </Card>\n\n        <div className=\"mt-6 flex flex-wrap gap-3\">\n          <Button>Start on Team</Button>\n          <Button variant=\"outline\">Talk about Enterprise</Button>\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingMatrixStickyHeader.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingSinglePlan.tsx",
      "content": "'use client'\n\nimport { ArrowRight, Check, X } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Separator } from '@/components/ui/separator'\n\nconst included = [\n  'Unlimited certified metric definitions',\n  'Unlimited viewers and editors',\n  'Row-level access from your identity provider',\n  'Query budgets enforced per team',\n  'Audit log export, 7-year retention',\n  'SOC 2 report under NDA',\n]\n\n// Naming exclusions is what makes a single plan credible. A list of only\n// inclusions invites the reader to assume the gap is hidden somewhere.\nconst excluded = [\n  'On-premise deployment behind your firewall',\n  'Custom SLAs below 99.9%',\n  'Professional services beyond the five-week rollout',\n]\n\nexport function PricingSinglePlan() {\n  return (\n    <section data-slot=\"pricing-single-plan\" className=\"bg-background\">\n      <div className=\"mx-auto max-w-3xl px-6 py-20 lg:py-28\">\n        <div className=\"text-center\">\n          <Badge variant=\"secondary\">Pricing</Badge>\n          <h2 className=\"mt-4 text-3xl font-semibold tracking-tight text-balance sm:text-4xl\">One plan, one number</h2>\n          <p className=\"text-muted-foreground mt-3 text-lg\">\n            No seat maths and no feature gates. The only thing that scales is query volume.\n          </p>\n        </div>\n\n        <Card className=\"mt-10\">\n          <CardContent className=\"p-8\">\n            <div className=\"flex flex-wrap items-baseline gap-3\">\n              <span className=\"font-display text-4xl font-bold tracking-tight\">£1,400</span>\n              <span className=\"text-muted-foreground\">per month, billed annually</span>\n            </div>\n            <p className=\"text-muted-foreground mt-2 text-sm\">\n              Includes 2 million queries a month. Beyond that it is £0.0004 per query, capped by your own budgets.\n            </p>\n\n            <Button size=\"lg\" className=\"mt-6 w-full sm:w-auto\">\n              Start the 30-day trial\n              <ArrowRight className=\"ml-2 size-4\" aria-hidden=\"true\" />\n            </Button>\n\n            <Separator className=\"my-8\" />\n\n            <p className=\"text-muted-foreground font-mono text-xs tracking-[0.14em] uppercase\">Included</p>\n            <ul className=\"mt-3 grid gap-2.5 sm:grid-cols-2\">\n              {included.map((item) => (\n                <li key={item} className=\"flex items-start gap-2.5 text-sm\">\n                  <Check className=\"text-success mt-0.5 size-4 shrink-0\" aria-hidden=\"true\" />\n                  <span>{item}</span>\n                </li>\n              ))}\n            </ul>\n\n            <Separator className=\"my-6\" />\n\n            <p className=\"text-muted-foreground font-mono text-xs tracking-[0.14em] uppercase\">Not included</p>\n            <ul className=\"mt-3 space-y-2.5\">\n              {excluded.map((item) => (\n                <li key={item} className=\"flex items-start gap-2.5 text-sm\">\n                  <X className=\"text-muted-foreground/50 mt-0.5 size-4 shrink-0\" aria-hidden=\"true\" />\n                  <span className=\"text-muted-foreground\">{item}</span>\n                </li>\n              ))}\n            </ul>\n\n            <Separator className=\"my-6\" />\n\n            <p className=\"text-muted-foreground text-sm leading-relaxed\">\n              Past roughly 20 million queries a month, or if any of the exclusions above are hard requirements, a\n              conversation will get you a better answer than this page can.\n            </p>\n            <Button variant=\"outline\" className=\"mt-4\">\n              Talk to us instead\n            </Button>\n          </CardContent>\n        </Card>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingSinglePlan.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingTierComparisonMatrix.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, Check, Minus, ShieldCheck } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card } from '@/components/ui/card'\nimport { cn } from '@/lib/utils'\n\ntype BillingCycle = 'monthly' | 'annual'\n\ninterface Plan {\n  id: string\n  name: string\n  description: string\n  monthlyPrice: number\n  annualPrice: number\n  highlight: boolean\n  badge?: string\n  ctaText: string\n  ctaVariant: 'default' | 'outline' | 'secondary'\n}\n\nconst plans: Plan[] = [\n  {\n    id: 'community',\n    name: 'Community OSS',\n    description: 'For indie hackers and developers building open source products.',\n    monthlyPrice: 0,\n    annualPrice: 0,\n    highlight: false,\n    ctaText: 'Start Building Free',\n    ctaVariant: 'outline',\n  },\n  {\n    id: 'pro',\n    name: 'Pro Team',\n    description: 'For growing startup engineering teams that require high velocity.',\n    monthlyPrice: 29,\n    annualPrice: 24,\n    highlight: true,\n    badge: 'Most Popular',\n    ctaText: 'Claim Pro License',\n    ctaVariant: 'default',\n  },\n  {\n    id: 'enterprise',\n    name: 'Enterprise Scale',\n    description: 'Dedicated registry syncing, SSO, SOC2 compliance audits, and SLA.',\n    monthlyPrice: 119,\n    annualPrice: 99,\n    highlight: false,\n    ctaText: 'Talk to Sales',\n    ctaVariant: 'outline',\n  },\n]\n\ninterface FeatureComparisonRow {\n  category: string\n  features: {\n    name: string\n    tooltip: string\n    community: boolean | string\n    pro: boolean | string\n    enterprise: boolean | string\n  }[]\n}\n\nconst comparisonData: FeatureComparisonRow[] = [\n  {\n    category: 'Registry & Core Primitives',\n    features: [\n      {\n        name: 'Full AST Component Source Access',\n        tooltip: 'Raw SFC and TSX source files copied directly into your repository.',\n        community: true,\n        pro: true,\n        enterprise: true,\n      },\n      {\n        name: 'Dual-Framework Parity (Vue + React)',\n        tooltip: 'Identical DOM semantics and CVA tokens across both ecosystems.',\n        community: true,\n        pro: true,\n        enterprise: true,\n      },\n      {\n        name: 'Curated Marketing & SaaS Blocks',\n        tooltip: 'Access to 450+ production-grade unbundled layout blocks.',\n        community: '100+ Blocks',\n        pro: 'All 450+ Blocks',\n        enterprise: 'All Blocks + Custom',\n      },\n      {\n        name: 'Tailwind CSS v4 OKLCH Token System',\n        tooltip: 'Hardware-calibrated color spaces and spring curves.',\n        community: true,\n        pro: true,\n        enterprise: true,\n      },\n    ],\n  },\n  {\n    category: 'Enterprise & Security Compliance',\n    features: [\n      {\n        name: 'Private Registry Mirroring',\n        tooltip: 'Host your organization’s customized internal registry behind a firewall.',\n        community: false,\n        pro: '1 Private Repo',\n        enterprise: 'Unlimited Private Hubs',\n      },\n      {\n        name: 'SOC2 & ISO 27001 Audit Packs',\n        tooltip: 'Pre-certified security documentation and architecture proofs.',\n        community: false,\n        pro: false,\n        enterprise: true,\n      },\n      {\n        name: 'Guaranteed 99.99% Registry CDN SLA',\n        tooltip: 'Global multi-region edge distribution uptime guarantee.',\n        community: false,\n        pro: '99.9% SLA',\n        enterprise: '99.99% High Availability',\n      },\n      {\n        name: 'Dedicated Design Engineering Support',\n        tooltip: 'Direct Slack / Discord channel with core design system maintainers.',\n        community: false,\n        pro: 'Priority Email',\n        enterprise: 'Dedicated Slack Channel',\n      },\n    ],\n  },\n]\n\nexport interface PricingTierComparisonMatrixProps {\n  className?: string\n}\n\nexport function PricingTierComparisonMatrix({ className }: PricingTierComparisonMatrixProps) {\n  const [billing, setBilling] = React.useState<BillingCycle>('annual')\n\n  return (\n    <section\n      data-slot=\"pricing-tier-comparison-matrix\"\n      className={cn('bg-background relative overflow-hidden px-4 py-16 sm:px-6 sm:py-24 lg:px-8', className)}\n    >\n      <div className=\"mx-auto max-w-7xl space-y-16\">\n        {/* Header */}\n        <div className=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <Badge variant=\"secondary\" className=\"gap-1.5 px-3 py-1 font-mono text-xs shadow-xs\">\n            <ShieldCheck className=\"text-primary size-3.5\" />\n            Predictable Pricing\n          </Badge>\n          <h2 className=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">\n            Zero seat taxes. Own your source code forever.\n          </h2>\n          <p className=\"text-muted-foreground text-base\">\n            Choose the tier that fits your engineering team's delivery scale and compliance needs.\n          </p>\n\n          {/* Billing Toggle */}\n          <div className=\"flex items-center justify-center gap-3 pt-4\">\n            <span\n              className={cn(\n                'font-mono text-xs',\n                billing === 'monthly' ? 'text-foreground font-bold' : 'text-muted-foreground',\n              )}\n            >\n              Monthly\n            </span>\n            <div className=\"border-border bg-card relative flex items-center rounded-full border p-1\">\n              <button\n                type=\"button\"\n                className={cn(\n                  'relative z-10 rounded-full px-3 py-1 font-mono text-xs transition-colors',\n                  billing === 'monthly'\n                    ? 'bg-primary text-primary-foreground font-semibold shadow-xs'\n                    : 'text-muted-foreground',\n                )}\n                onClick={() => setBilling('monthly')}\n              >\n                Monthly\n              </button>\n              <button\n                type=\"button\"\n                className={cn(\n                  'relative z-10 flex items-center gap-1.5 rounded-full px-3 py-1 font-mono text-xs transition-colors',\n                  billing === 'annual'\n                    ? 'bg-primary text-primary-foreground font-semibold shadow-xs'\n                    : 'text-muted-foreground',\n                )}\n                onClick={() => setBilling('annual')}\n              >\n                <span>Annual</span>\n                <span className=\"bg-success rounded-full px-1.5 py-0.5 text-xs font-bold text-white\">Save 20%</span>\n              </button>\n            </div>\n          </div>\n        </div>\n\n        {/* Pricing Plan Cards Grid (3 Columns) */}\n        <div className=\"grid grid-cols-1 items-stretch gap-6 md:grid-cols-3\">\n          {plans.map((plan) => (\n            <Card\n              key={plan.id}\n              className={cn(\n                'border-border bg-card relative flex flex-col justify-between space-y-6 rounded-2xl p-6 text-left shadow-xl transition-colors sm:p-8',\n                plan.highlight\n                  ? 'border-primary/80 ring-primary/20 scale-[1.02] shadow-sm ring-2'\n                  : 'hover:border-border/80',\n              )}\n            >\n              {/* Top Badge */}\n              {plan.badge && (\n                <div className=\"absolute -top-3 left-1/2 -translate-x-1/2\">\n                  <Badge className=\"px-3 py-0.5 font-mono text-xs tracking-wider uppercase shadow-md\">\n                    {plan.badge}\n                  </Badge>\n                </div>\n              )}\n\n              <div className=\"space-y-4\">\n                <div>\n                  <h3 className=\"text-foreground font-mono text-xl font-bold\">{plan.name}</h3>\n                  <p className=\"text-muted-foreground mt-1 min-h-[36px] text-xs\">{plan.description}</p>\n                </div>\n\n                {/* Price display */}\n                <div className=\"flex items-baseline gap-1.5 font-mono\">\n                  <span className=\"text-foreground text-4xl font-bold\">\n                    ${billing === 'annual' ? plan.annualPrice : plan.monthlyPrice}\n                  </span>\n                  <span className=\"text-muted-foreground text-xs\">/ month</span>\n                </div>\n                <p className=\"text-muted-foreground font-mono text-xs\">\n                  {billing === 'annual' && plan.annualPrice > 0\n                    ? `Billed annually ($${plan.annualPrice * 12}/yr)`\n                    : 'Billed monthly'}\n                </p>\n              </div>\n\n              <Button variant={plan.ctaVariant} className=\"h-10 w-full gap-1.5 font-mono text-xs shadow-xs\">\n                <span>{plan.ctaText}</span>\n                <ArrowRight className=\"size-3.5\" />\n              </Button>\n            </Card>\n          ))}\n        </div>\n\n        {/* Deep Feature Comparison Matrix Table */}\n        <div className=\"space-y-6\">\n          <div className=\"text-center\">\n            <h3 className=\"text-foreground font-mono text-xl font-bold\">Detailed Feature Comparison</h3>\n            <p className=\"text-muted-foreground mt-1 text-xs\">Full granular matrix of capabilities and entitlements.</p>\n          </div>\n\n          <Card className=\"border-border bg-card overflow-hidden rounded-2xl text-left shadow-sm\">\n            <div className=\"overflow-x-auto\">\n              <table className=\"w-full border-collapse text-left text-xs\">\n                <thead>\n                  <tr className=\"border-border bg-muted/40 text-muted-foreground border-b font-mono\">\n                    <th className=\"w-1/2 p-4 font-semibold\">Capability</th>\n                    <th className=\"p-4 text-center font-semibold\">Community</th>\n                    <th className=\"text-primary p-4 text-center font-bold font-semibold\">Pro Team</th>\n                    <th className=\"p-4 text-center font-semibold\">Enterprise</th>\n                  </tr>\n                </thead>\n                <tbody>\n                  {comparisonData.map((section, sIdx) => (\n                    <React.Fragment key={sIdx}>\n                      <tr className=\"bg-muted/20 border-border/80 border-b\">\n                        <td\n                          colSpan={4}\n                          className=\"text-muted-foreground p-3 px-4 font-mono text-xs font-bold tracking-wider uppercase\"\n                        >\n                          {section.category}\n                        </td>\n                      </tr>\n                      {section.features.map((row, rIdx) => (\n                        <tr key={rIdx} className=\"border-border/60 hover:bg-muted/10 border-b transition-colors\">\n                          <td className=\"p-4\">\n                            <div className=\"text-foreground font-medium\">{row.name}</div>\n                            <div className=\"text-muted-foreground mt-0.5 text-xs\">{row.tooltip}</div>\n                          </td>\n                          <td className=\"p-4 text-center font-mono\">\n                            {typeof row.community === 'boolean' ? (\n                              row.community ? (\n                                <Check className=\"text-success mx-auto size-4\" />\n                              ) : (\n                                <Minus className=\"text-muted-foreground/40 mx-auto size-4\" />\n                              )\n                            ) : (\n                              <span className=\"text-muted-foreground\">{row.community}</span>\n                            )}\n                          </td>\n                          <td className=\"p-4 text-center font-mono font-semibold\">\n                            {typeof row.pro === 'boolean' ? (\n                              row.pro ? (\n                                <Check className=\"text-success mx-auto size-4\" />\n                              ) : (\n                                <Minus className=\"text-muted-foreground/40 mx-auto size-4\" />\n                              )\n                            ) : (\n                              <span className=\"text-primary\">{row.pro}</span>\n                            )}\n                          </td>\n                          <td className=\"p-4 text-center font-mono\">\n                            {typeof row.enterprise === 'boolean' ? (\n                              row.enterprise ? (\n                                <Check className=\"text-success mx-auto size-4\" />\n                              ) : (\n                                <Minus className=\"text-muted-foreground/40 mx-auto size-4\" />\n                              )\n                            ) : (\n                              <span className=\"text-foreground font-semibold\">{row.enterprise}</span>\n                            )}\n                          </td>\n                        </tr>\n                      ))}\n                    </React.Fragment>\n                  ))}\n                </tbody>\n              </table>\n            </div>\n          </Card>\n        </div>\n      </div>\n    </section>\n  )\n}\nexport default PricingTierComparisonMatrix\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingTierComparisonMatrix.tsx"
    },
    {
      "path": "packages/registry-react/blocks/pricing/PricingUsageCalculatorSlider.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { ArrowRight, Calculator, Globe, Server, Users } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card } from '@/components/ui/card'\nimport { cn } from '@/lib/utils'\n\nexport interface PricingUsageCalculatorSliderProps {\n  className?: string\n}\n\nexport function PricingUsageCalculatorSlider({ className }: PricingUsageCalculatorSliderProps) {\n  const [mau, setMau] = React.useState(100000)\n  const [qps, setQps] = React.useState(500)\n  const [edgeReplicas, setEdgeReplicas] = React.useState(3)\n\n  const formatNumber = (num: number): string => {\n    if (num >= 1000000) return (num / 1000000).toFixed(1) + 'M'\n    if (num >= 1000) return (num / 1000).toFixed(0) + 'k'\n    return num.toString()\n  }\n\n  const applyPreset = (preset: 'seed' | 'growth' | 'scale') => {\n    if (preset === 'seed') {\n      setMau(25000)\n      setQps(150)\n      setEdgeReplicas(2)\n    } else if (preset === 'growth') {\n      setMau(350000)\n      setQps(2500)\n      setEdgeReplicas(5)\n    } else {\n      setMau(2500000)\n      setQps(12000)\n      setEdgeReplicas(10)\n    }\n  }\n\n  const traditionalCost = React.useMemo(() => {\n    const baseSeatFee = 350\n    const perUserFee = (mau / 1000) * 1.8\n    const qpsSurcharge = qps * 0.25\n    return Math.round(baseSeatFee + perUserFee + qpsSurcharge)\n  }, [mau, qps])\n\n  const uipkgeCost = React.useMemo(() => {\n    const rawBandwidth = (mau / 100000) * 4\n    const flatProLicense = 24\n    return Math.round(flatProLicense + rawBandwidth)\n  }, [mau])\n\n  const monthlySavings = Math.max(0, traditionalCost - uipkgeCost)\n  const annualSavings = monthlySavings * 12\n\n  return (\n    <section\n      data-slot=\"pricing-usage-calculator-slider\"\n      className={cn('bg-background relative overflow-hidden px-4 py-16 sm:px-6 sm:py-24 lg:px-8', className)}\n    >\n      <div className=\"mx-auto max-w-6xl space-y-12\">\n        {/* Section Header */}\n        <div className=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <Badge variant=\"secondary\" className=\"gap-1.5 px-3 py-1 font-mono text-xs shadow-xs\">\n            <Calculator className=\"text-primary size-3.5\" />\n            Interactive Infrastructure ROI Calculator\n          </Badge>\n          <h2 className=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">\n            Calculate your annual savings with unbundled architecture.\n          </h2>\n          <p className=\"text-muted-foreground text-base\">\n            See how eliminating proprietary seat licenses and runtime SaaS wrappers cuts your front-end TCO.\n          </p>\n\n          {/* Presets Bar */}\n          <div className=\"flex flex-wrap items-center justify-center gap-2 pt-2\">\n            <Button size=\"sm\" variant=\"outline\" className=\"font-mono text-xs\" onClick={() => applyPreset('seed')}>\n              Seed Startup (25k MAU)\n            </Button>\n            <Button size=\"sm\" variant=\"outline\" className=\"font-mono text-xs\" onClick={() => applyPreset('growth')}>\n              Growth Scale (350k MAU)\n            </Button>\n            <Button size=\"sm\" variant=\"outline\" className=\"font-mono text-xs\" onClick={() => applyPreset('scale')}>\n              Hypergrowth (2.5M MAU)\n            </Button>\n          </div>\n        </div>\n\n        {/* 2-Column Split: Sliders Workbench Left (7 Cols), Savings Scorecard Right (5 Cols) */}\n        <div className=\"grid grid-cols-1 items-stretch gap-8 lg:grid-cols-12\">\n          {/* Sliders Controls (7 Cols) */}\n          <Card className=\"border-border bg-card/95 flex flex-col justify-between space-y-6 rounded-2xl p-6 text-left shadow-xl sm:p-8 lg:col-span-7\">\n            <div className=\"space-y-6\">\n              <div className=\"border-border flex items-center justify-between border-b pb-4\">\n                <h3 className=\"text-foreground font-mono text-sm font-bold\">Traffic &amp; Telemetry Inputs</h3>\n                <span className=\"text-muted-foreground font-mono text-xs\">Dynamic Projection</span>\n              </div>\n\n              {/* Slider 1: MAU */}\n              <div className=\"space-y-2\">\n                <div className=\"flex items-center justify-between font-mono text-xs\">\n                  <span className=\"text-muted-foreground flex items-center gap-1.5\">\n                    <Users className=\"text-primary size-3.5\" /> Monthly Active Users (MAU)\n                  </span>\n                  <span className=\"text-foreground text-sm font-bold\">{formatNumber(mau)} users</span>\n                </div>\n                <input\n                  type=\"range\"\n                  min=\"10000\"\n                  max=\"5000000\"\n                  step=\"25000\"\n                  value={mau}\n                  onChange={(e) => setMau(Number(e.target.value))}\n                  className=\"accent-primary bg-border h-2 w-full cursor-pointer rounded-lg\"\n                />\n              </div>\n\n              {/* Slider 2: QPS */}\n              <div className=\"space-y-2\">\n                <div className=\"flex items-center justify-between font-mono text-xs\">\n                  <span className=\"text-muted-foreground flex items-center gap-1.5\">\n                    <Server className=\"text-primary size-3.5\" /> Peak Query Throughput\n                  </span>\n                  <span className=\"text-foreground text-sm font-bold\">{formatNumber(qps)} QPS</span>\n                </div>\n                <input\n                  type=\"range\"\n                  min=\"100\"\n                  max=\"20000\"\n                  step=\"100\"\n                  value={qps}\n                  onChange={(e) => setQps(Number(e.target.value))}\n                  className=\"accent-primary bg-border h-2 w-full cursor-pointer rounded-lg\"\n                />\n              </div>\n\n              {/* Slider 3: Global Replicas */}\n              <div className=\"space-y-2\">\n                <div className=\"flex items-center justify-between font-mono text-xs\">\n                  <span className=\"text-muted-foreground flex items-center gap-1.5\">\n                    <Globe className=\"text-primary size-3.5\" /> Global Edge POP Replicas\n                  </span>\n                  <span className=\"text-foreground text-sm font-bold\">{edgeReplicas} Edge Regions</span>\n                </div>\n                <input\n                  type=\"range\"\n                  min=\"1\"\n                  max=\"12\"\n                  step=\"1\"\n                  value={edgeReplicas}\n                  onChange={(e) => setEdgeReplicas(Number(e.target.value))}\n                  className=\"accent-primary bg-border h-2 w-full cursor-pointer rounded-lg\"\n                />\n              </div>\n            </div>\n\n            <div className=\"border-border text-muted-foreground flex items-center justify-between border-t pt-4 font-mono text-xs\">\n              <span>Formula: Direct AST + Raw Static Hosting</span>\n              <span className=\"text-success font-semibold\">&check; Zero Seat Surcharges</span>\n            </div>\n          </Card>\n\n          {/* ROI Cost & Savings Projection Card (5 Cols) */}\n          <Card className=\"border-border bg-card/95 flex flex-col justify-between space-y-6 rounded-2xl p-6 text-left shadow-sm sm:p-8 lg:col-span-5\">\n            <div className=\"space-y-6\">\n              <Badge variant=\"outline\" className=\"border-success/20 bg-success/10 text-success font-mono text-xs\">\n                Projected Annual Net Savings\n              </Badge>\n\n              {/* Big Stat Display */}\n              <div className=\"space-y-1\">\n                <div className=\"text-success font-mono text-4xl font-bold tracking-tight sm:text-5xl\">\n                  ${annualSavings.toLocaleString()}\n                </div>\n                <p className=\"text-muted-foreground font-mono text-xs\">\n                  Saved every year (${monthlySavings.toLocaleString()}/month)\n                </p>\n              </div>\n\n              {/* Comparative Cost Bars */}\n              <div className=\"space-y-3 pt-2\">\n                <div className=\"space-y-1\">\n                  <div className=\"flex items-center justify-between font-mono text-xs\">\n                    <span className=\"text-destructive font-medium\">Traditional Monolith Stack:</span>\n                    <span className=\"text-foreground font-bold\">${traditionalCost.toLocaleString()}/mo</span>\n                  </div>\n                  <div className=\"bg-destructive/20 h-2 overflow-hidden rounded-full\">\n                    <div className=\"bg-destructive h-full w-full\" />\n                  </div>\n                </div>\n\n                <div className=\"space-y-1\">\n                  <div className=\"flex items-center justify-between font-mono text-xs\">\n                    <span className=\"text-success font-semibold\">UIPKGE Unbundled Registry:</span>\n                    <span className=\"text-foreground font-bold\">${uipkgeCost.toLocaleString()}/mo</span>\n                  </div>\n                  <div className=\"bg-success/20 h-2 overflow-hidden rounded-full\">\n                    <div\n                      className=\"bg-success h-full transition-[width] duration-300\"\n                      style={{ width: `${Math.max(5, (uipkgeCost / traditionalCost) * 100)}%` }}\n                    />\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <Button className=\"mt-4 h-10 w-full gap-1.5 font-mono text-xs shadow-md\">\n              <span>Lock In Pro Savings</span>\n              <ArrowRight className=\"size-3.5\" />\n            </Button>\n          </Card>\n        </div>\n      </div>\n    </section>\n  )\n}\nexport default PricingUsageCalculatorSlider\n",
      "type": "registry:block",
      "target": "~/components/blocks/pricing/PricingUsageCalculatorSlider.tsx"
    }
  ],
  "dependencies": [
    "lucide-react"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/react/badge.json",
    "https://uipkge.dev/r/react/button.json",
    "https://uipkge.dev/r/react/card.json",
    "https://uipkge.dev/r/react/separator.json",
    "https://uipkge.dev/r/react/slider.json",
    "https://uipkge.dev/r/react/switch.json",
    "https://uipkge.dev/r/react/table.json",
    "https://uipkge.dev/r/react/toggle-group.json"
  ],
  "description": "Pricing collection with eleven interchangeable variants: seat matrix, interactive calculator, enterprise SLA card, feature add-on builder, feature tier slider, grouped matrix, per-plan cards, sticky-header matrix, single plan, tier comparison matrix, and usage calculator slider.",
  "categories": [
    "pricing",
    "marketing",
    "billing"
  ]
}