{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "faq-1",
  "title": "FAQ 1: accordion with heading",
  "author": "Ballmac <https://ui.ballmac.com>",
  "description": "Frequently asked questions in an accessible accordion, with the heading and a help line in a side column on desktop.",
  "registryDependencies": [
    "utils",
    "https://ui.ballmac.com/r/accordion.json"
  ],
  "files": [
    {
      "path": "registry/ballmac/components/blocks/faq-1/faq-1.tsx",
      "content": "// Ballmac UI: FAQ 1. https://ui.ballmac.com/blocks/faq-1\nimport * as React from \"react\"\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from \"@/components/ballmac/accordion\"\nimport { cn } from \"@/lib/utils\"\n\ntype Faq = { question: string; answer: string }\n\ntype Faq1Props = Omit<React.ComponentProps<\"section\">, \"title\"> & {\n  /** Section heading. */\n  title?: string\n  /** Text under the heading, e.g. where to get more help. */\n  description?: React.ReactNode\n  /** Questions and answers. */\n  items?: Faq[]\n}\n\nconst defaults: Faq[] = [\n  { question: \"Is there a free plan?\", answer: \"Yes. The Hobby plan is free forever for personal projects, with no credit card required.\" },\n  { question: \"Can I change plans later?\", answer: \"Anytime. Upgrades take effect immediately; downgrades apply at the end of your billing period.\" },\n  { question: \"Do you offer refunds?\", answer: \"If you're not happy within 14 days of upgrading, contact support for a full refund.\" },\n  { question: \"Where is my data stored?\", answer: \"In the region you choose when you create a project. You can export everything at any time.\" },\n  { question: \"Do you support single sign-on?\", answer: \"SAML SSO is available on the Pro plan and above.\" },\n]\n\nfunction Faq1({\n  title = \"Frequently asked questions\",\n  description = \"Can't find what you're looking for? Contact our support team.\",\n  items = defaults,\n  className,\n  ...props\n}: Faq1Props) {\n  return (\n    <section data-slot=\"faq-1\" className={cn(\"mx-auto grid max-w-6xl gap-10 px-4 py-20 sm:px-6 md:py-28 lg:grid-cols-[1fr_1.6fr]\", className)} {...props}>\n      <div>\n        <h2 className=\"text-3xl font-semibold tracking-[-0.035em] text-balance sm:text-4xl\">{title}</h2>\n        <p className=\"mt-4 text-muted-foreground\">{description}</p>\n      </div>\n      <Accordion type=\"single\" collapsible defaultValue=\"item-0\">\n        {items.map((item, i) => (\n          <AccordionItem key={item.question} value={`item-${i}`}>\n            <AccordionTrigger>{item.question}</AccordionTrigger>\n            <AccordionContent>{item.answer}</AccordionContent>\n          </AccordionItem>\n        ))}\n      </Accordion>\n    </section>\n  )\n}\n\nexport { Faq1, type Faq1Props }\n",
      "type": "registry:component",
      "target": "@components/ballmac/blocks/faq-1/faq-1.tsx"
    }
  ],
  "meta": {
    "schema": 1,
    "tier": "free",
    "tags": [
      "faq",
      "accordion",
      "questions",
      "support"
    ],
    "version": "1.0.0",
    "updated": "2026-09-28",
    "ai": {
      "summary": "An FAQ section. Pass items=[{ question, answer }]; the first answer starts open.",
      "whenToUse": [
        "Pricing pages and landing pages",
        "Support and onboarding pages"
      ],
      "whenNotToUse": [
        "Long documentation (use a docs page)"
      ],
      "composesWith": [
        "pricing-1",
        "cta-1"
      ],
      "a11y": [],
      "customization": [
        "items: { question, answer }[]",
        "title and description props"
      ]
    },
    "examples": [
      "faq-1-demo"
    ],
    "url": "https://ui.ballmac.com/components/faq-1"
  },
  "categories": [
    "blocks",
    "faq"
  ],
  "type": "registry:block"
}