{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "faq-categorized-tabs",
  "title": "FAQ — Categorized Tabs",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-react/blocks/faq-categorized-tabs/FaqCategorizedTabs.tsx",
      "content": "'use client'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\n\nconst categories = [\n  {\n    id: 'security',\n    label: 'Security',\n    entries: [\n      {\n        q: 'Where is our data stored?',\n        a: 'Definitions and query metadata sit in your chosen region. Warehouse rows are never copied out.',\n      },\n      {\n        q: 'Are you SOC 2 audited?',\n        a: 'Type II, audited annually. The report and the subprocessor list are on the trust centre.',\n      },\n      { q: 'Can we bring our own keys?', a: 'Yes, on the enterprise plan, with rotation handled through your KMS.' },\n    ],\n  },\n  {\n    id: 'billing',\n    label: 'Billing',\n    entries: [\n      {\n        q: 'How is usage counted?',\n        a: 'By query, not by seat. Materialised reads are not billed twice within their freshness window.',\n      },\n      {\n        q: 'Can we cap spend?',\n        a: 'Per-team query budgets are enforced at run time, so a runaway dashboard cannot outspend its ceiling.',\n      },\n      { q: 'Do you offer annual terms?', a: 'Yes, with a discount and an invoiced option above a threshold.' },\n    ],\n  },\n  {\n    id: 'setup',\n    label: 'Setup',\n    entries: [\n      {\n        q: 'What do you need from us?',\n        a: 'A read-only role, your identity provider, and an hour with whoever owns the warehouse.',\n      },\n      {\n        q: 'How long until first value?',\n        a: 'Most teams publish a first certified metric on day one and finish the rollout in five weeks.',\n      },\n    ],\n  },\n]\n\nexport function FaqCategorizedTabs() {\n  return (\n    <section data-slot=\"faq-categorized-tabs\" className=\"bg-background\">\n      <div className=\"mx-auto max-w-4xl px-6 py-20 lg:py-28\">\n        <div className=\"max-w-2xl\">\n          <Badge variant=\"secondary\">Support</Badge>\n          <h2 className=\"mt-4 text-3xl font-semibold tracking-tight sm:text-4xl\">Answers by topic</h2>\n          <p className=\"text-muted-foreground mt-3 text-lg\">\n            Grouped rather than listed, because one flat list of thirty questions is a list nobody reads.\n          </p>\n        </div>\n\n        <Tabs defaultValue={categories[0].id} className=\"mt-10\">\n          <TabsList variant=\"pill\" className=\"flex-nowrap overflow-x-auto\">\n            {categories.map((category) => (\n              <TabsTrigger key={category.id} value={category.id} variant=\"pill\">\n                {category.label}\n                <span className=\"text-muted-foreground ml-1.5 font-mono text-xs\">{category.entries.length}</span>\n              </TabsTrigger>\n            ))}\n          </TabsList>\n\n          {categories.map((category) => (\n            <TabsContent key={category.id} value={category.id} className=\"mt-6\">\n              <Accordion type=\"single\" collapsible className=\"w-full\">\n                {category.entries.map((entry) => (\n                  <AccordionItem key={entry.q} value={entry.q}>\n                    <AccordionTrigger className=\"text-left font-medium\">{entry.q}</AccordionTrigger>\n                    <AccordionContent className=\"text-muted-foreground leading-relaxed\">{entry.a}</AccordionContent>\n                  </AccordionItem>\n                ))}\n              </Accordion>\n            </TabsContent>\n          ))}\n        </Tabs>\n\n        <Button variant=\"ghost\" className=\"mt-8\">\n          Browse the full help centre\n        </Button>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/FaqCategorizedTabs.tsx"
    }
  ],
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/react/accordion.json",
    "https://uipkge.dev/r/react/badge.json",
    "https://uipkge.dev/r/react/button.json",
    "https://uipkge.dev/r/react/tabs.json"
  ],
  "description": "Question set grouped behind category tabs, each panel holding its own accordion with a count badge, for support pages where one flat list would run past thirty entries.",
  "categories": [
    "marketing"
  ]
}