{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "faq-simple",
  "type": "registry:block",
  "title": "FAQ Simple",
  "description": "Centered FAQ section with a separated accordion of consumer-supplied question/answer pairs.",
  "dependencies": [
    "@mantine/core@^9"
  ],
  "docs": "Adapted from Mantine UI FaqSimple at ffbf61c559f374a7ea28fcf00355e84dcbe9a908; the hardcoded title and Q&A list became props, variant became configurable, and two heading-hierarchy bugs were fixed — Title's implicit h1 (now titleOrder, default 2) and Accordion controls rendering as bare buttons with no place in the page's heading outline (now controlOrder).",
  "registryDependencies": [
    "@house/mantine-ui-license"
  ],
  "files": [
    {
      "path": "registry/mantine-ui/faq-simple/faq-simple.tsx",
      "type": "registry:ui",
      "content": "/**\n * Adapted from Mantine UI's FaqSimple at\n * ffbf61c559f374a7ea28fcf00355e84dcbe9a908. MIT licensed; see\n * LICENSES/MANTINE-UI.txt after installation.\n */\n\nimport { Accordion, type AccordionProps, Container, Title, type TitleOrder } from \"@mantine/core\";\nimport type { ReactNode } from \"react\";\n\nimport classes from \"./faq-simple.module.css\";\n\nexport interface FaqSimpleItem {\n  question: string;\n  answer: ReactNode;\n  /** Accordion item value; derived from the item's index when omitted. */\n  value?: string;\n}\n\nexport interface FaqSimpleProps {\n  title?: ReactNode;\n  /**\n   * Heading level for `title`. Upstream leaves this at Mantine's `Title`\n   * default (1); a dropped-in section defaulting to another page-level `h1`\n   * is a heading-hierarchy bug, so this port defaults to 2 instead and\n   * exposes the level as a real choice.\n   */\n  titleOrder?: TitleOrder;\n  items: FaqSimpleItem[];\n  /** Accordion item border/background treatment. Upstream always used \"separated\". */\n  variant?: AccordionProps[\"variant\"];\n  /** Which side the expand chevron renders on. */\n  chevronPosition?: AccordionProps[\"chevronPosition\"];\n  /**\n   * Heading level (2-6) each `Accordion.Control` renders inside. Upstream\n   * leaves Accordion's `order` unset, so its controls are bare buttons with\n   * no place in the page's heading outline; Mantine's own docs recommend\n   * setting it to meet WAI-ARIA accessibility requirements. Defaults one\n   * level below `titleOrder`.\n   */\n  controlOrder?: AccordionProps[\"order\"];\n  /** Value of the item that starts expanded; nothing is expanded by default. */\n  defaultValue?: string;\n}\n\nexport function FaqSimple({\n  title = \"Frequently Asked Questions\",\n  titleOrder = 2,\n  items,\n  variant = \"separated\",\n  chevronPosition,\n  controlOrder,\n  defaultValue,\n}: FaqSimpleProps) {\n  const resolvedControlOrder =\n    controlOrder ?? (Math.min(Math.max(titleOrder + 1, 2), 6) as AccordionProps[\"order\"]);\n\n  return (\n    <Container size=\"sm\" className={classes.wrapper}>\n      <Title ta=\"center\" order={titleOrder} className={classes.title}>\n        {title}\n      </Title>\n\n      <Accordion\n        variant={variant}\n        chevronPosition={chevronPosition}\n        order={resolvedControlOrder}\n        defaultValue={defaultValue}\n      >\n        {items.map((item, index) => (\n          <Accordion.Item\n            className={classes.item}\n            value={item.value ?? `faq-${index}`}\n            key={item.value ?? `faq-${index}`}\n          >\n            <Accordion.Control>{item.question}</Accordion.Control>\n            <Accordion.Panel>{item.answer}</Accordion.Panel>\n          </Accordion.Item>\n        ))}\n      </Accordion>\n    </Container>\n  );\n}\n"
    },
    {
      "path": "registry/mantine-ui/faq-simple/faq-simple.module.css",
      "type": "registry:file",
      "target": "@ui/faq-simple.module.css",
      "content": "/*\n * Adapted from Mantine UI's FaqSimple at\n * ffbf61c559f374a7ea28fcf00355e84dcbe9a908. MIT licensed; see\n * LICENSES/MANTINE-UI.txt after installation.\n */\n.wrapper {\n  padding-top: calc(var(--mantine-spacing-xl) * 2);\n  padding-bottom: calc(var(--mantine-spacing-xl) * 2);\n}\n\n.title {\n  margin-bottom: calc(var(--mantine-spacing-xl) * 1.5);\n}\n\n.item {\n  border-radius: var(--mantine-radius-md);\n  margin-bottom: var(--mantine-spacing-lg);\n  border: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4));\n}\n"
    }
  ],
  "meta": {
    "mantine": {
      "requires": ">=9",
      "provider": "MantineProvider",
      "props": {
        "FaqSimple": [
          {
            "name": "title",
            "type": "ReactNode",
            "required": false,
            "default": "\"Frequently Asked Questions\"",
            "description": "Section heading text."
          },
          {
            "name": "titleOrder",
            "type": "TitleOrder",
            "required": false,
            "default": "2",
            "description": "Heading level for title. Upstream leaves Title at Mantine's own default of 1; this port defaults to 2 so dropping the section into a page that already has an h1 doesn't produce two."
          },
          {
            "name": "items",
            "type": "FaqSimpleItem[]",
            "required": true,
            "description": "The question/answer list; FaqSimpleItem is { question: string; answer: ReactNode; value?: string }, value is the Accordion item id and defaults to faq-${index} when omitted."
          },
          {
            "name": "variant",
            "type": "AccordionProps[\"variant\"]",
            "required": false,
            "default": "\"separated\"",
            "description": "Accordion visual variant; upstream's hardcoded value."
          },
          {
            "name": "chevronPosition",
            "type": "AccordionProps[\"chevronPosition\"]",
            "required": false,
            "description": "Which side the expand chevron renders on; upstream never set this explicitly."
          },
          {
            "name": "controlOrder",
            "type": "AccordionProps[\"order\"]",
            "required": false,
            "description": "Heading level (2-6) each Accordion.Control renders inside; defaults to one level below titleOrder. Upstream never set Accordion's order, leaving controls as bare buttons outside the page heading outline — this fixes that."
          },
          {
            "name": "defaultValue",
            "type": "string",
            "required": false,
            "description": "Value of the item open on mount; nothing is open by default, matching upstream."
          }
        ]
      },
      "usage": {
        "path": "registry/mantine-ui/faq-simple/faq-simple.usage.tsx",
        "content": "import { FaqSimple, type FaqSimpleItem } from \"@/components/ui/faq-simple\";\n\nconst items: FaqSimpleItem[] = [\n  {\n    question: \"How can I reset my password?\",\n    answer:\n      'Open Settings > Security and select \"Reset password.\" We\\'ll send a reset link to your account email; it expires after 30 minutes.',\n  },\n  {\n    question: \"Can I create more than one account?\",\n    answer:\n      \"Each workspace supports multiple accounts under one billing plan. Invite teammates from Settings > Members.\",\n  },\n  {\n    question: \"How do I subscribe to the monthly newsletter?\",\n    answer:\n      \"Enable it from Settings > Notifications > Newsletter. You can unsubscribe from the same page at any time.\",\n  },\n  {\n    question: \"Do you store credit card information securely?\",\n    answer:\n      \"Card details are handled entirely by our PCI-compliant payment processor; we never see or store raw card numbers.\",\n  },\n  {\n    question: \"What payment systems do you work with?\",\n    answer:\n      \"We accept all major credit cards, plus ACH transfer and wire payment for annual plans.\",\n  },\n];\n\nexport function SupportFaq() {\n  return <FaqSimple title=\"Frequently Asked Questions\" items={items} />;\n}\n"
      }
    }
  }
}
