{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "faq",
  "type": "registry:block",
  "title": "FAQ Section",
  "description": "Frequently asked questions section with accordion functionality.",
  "files": [
    {
      "path": "components/sections/faq/default.tsx",
      "content": "import Link from \"next/link\";\nimport { ReactNode } from \"react\";\n\n\nimport {\n  Accordion,\n  AccordionContent,\n  AccordionItem,\n  AccordionTrigger,\n} from \"../../ui/accordion\";\nimport { Section } from \"../../ui/section\";\n\ninterface FAQItemProps {\n  question: string;\n  answer: ReactNode;\n  value?: string;\n}\n\ninterface FAQProps {\n  title?: string;\n  items?: FAQItemProps[] | false;\n  className?: string;\n}\n\nexport default function FAQ({\n  title = \"Questions and Answers\",\n  items = [\n    {\n      question:\n        \"Why is building a great landing page critical for your business?\",\n      answer: (\n        <>\n          <p className=\"text-muted-foreground mb-4 max-w-[640px] text-balance\">\n            In today&apos;s AI-driven world, standing out is harder than ever.\n            While anyone can build a product, a professional landing page makes\n            the difference between success and failure.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[640px] text-balance\">\n            Launch UI helps you ship faster without compromising on quality.\n          </p>\n        </>\n      ),\n    },\n    {\n      question: \"Why use Launch UI instead of a no-code tool?\",\n      answer: (\n        <>\n          <p className=\"text-muted-foreground mb-4 max-w-[600px]\">\n            No-code tools lock you into their ecosystem with recurring fees and\n            limited control. They often come with performance issues and make it\n            difficult to integrate with your product.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[600px]\">\n            You can&apos;t even change your hosting provider and basic things\n            like web analytics come as extra costs and paid add-ons.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[600px]\">\n            What might seem like a convenient solution today could paint you\n            into a corner tomorrow, limiting your ability to scale and adapt.\n            Launch UI gives you full control of your code while maintaining\n            professional quality.\n          </p>\n        </>\n      ),\n    },\n    {\n      question:\n        \"How is Launch UI different from other component libraries and templates?\",\n      answer: (\n        <>\n          <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n            Launch UI stands out with premium design quality and delightful\n            touches of custom animations and illustrations.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n            All components are carefully crafted to help position your product\n            as a professional tool, avoiding the generic template look.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[640px] text-balance\">\n            Unlike many libraries that rely on outdated CSS practices and old\n            dependencies, Launch UI is built with modern technologies and best\n            practices in mind.\n          </p>\n        </>\n      ),\n    },\n    {\n      question: 'What exactly does it mean that \"The code is yours\"?',\n      answer: (\n        <>\n          <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n            The basic version of Launch UI is open-source and free forever,\n            under a do-whatever-you-want license.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n            The pro version that contains more components and options is a\n            one-time purchase that gives you lifetime access to all current and\n            future content. Use it for unlimited personal and commercial\n            projects - no recurring fees or restrictions.\n          </p>\n          <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n            For complete details about licensing and usage rights, check out{\" \"}\n            <Link\n              href={`${\"https://www.launchuicomponents.com/\"}/pricing`}\n              className=\"text-foreground underline\"\n            >\n              the pricing page\n            </Link>\n            .\n          </p>\n        </>\n      ),\n    },\n    {\n      question: \"Are Figma files included?\",\n      answer: (\n        <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n          Yes! The complete Launch UI template is available for free on the{\" \"}\n          <Link\n            href=\"https://www.figma.com/community/file/1420131743903900629/launch-ui-landing-page-components-ui-kit\"\n            className=\"text-foreground underline\"\n          >\n            Figma community\n          </Link>\n          .\n        </p>\n      ),\n    },\n    {\n      question: \"Can I get a discount?\",\n      answer: (\n        <>\n          <p className=\"text-muted-foreground mb-4 max-w-[580px]\">\n            Actually, yes! I&apos;m always actively looking for beta testers of\n            new features. If you are interested in exchanging feedback for a\n            discount, please contact me via{\" \"}\n            <a\n              href=\"https://www.launchuicomponents.com/\"\n              className=\"underline underline-offset-2\"\n            >\n              email\n            </a>\n            .\n          </p>\n        </>\n      ),\n    },\n  ],\n  className,\n}: FAQProps) {\n  return (\n    <Section className={className}>\n      <div className=\"max-w-container mx-auto flex flex-col items-center gap-8\">\n        <h2 className=\"text-center text-3xl font-semibold sm:text-5xl\">\n          {title}\n        </h2>\n        {items !== false && items.length > 0 && (\n          <Accordion type=\"single\" collapsible className=\"w-full max-w-[800px]\">\n            {items.map((item, index) => (\n              <AccordionItem\n                key={item.value ?? item.question}\n                value={item.value || `item-${index + 1}`}\n              >\n                <AccordionTrigger>{item.question}</AccordionTrigger>\n                <AccordionContent>{item.answer}</AccordionContent>\n              </AccordionItem>\n            ))}\n          </Accordion>\n        )}\n      </div>\n    </Section>\n  );\n}\n",
      "type": "registry:block",
      "target": "components/sections/faq/default.tsx"
    },
    {
      "path": "components/ui/accordion.tsx",
      "content": "\"use client\";\n\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Accordion({\n  ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n  return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n  className,\n  ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n  return (\n    <AccordionPrimitive.Item\n      data-slot=\"accordion-item\"\n      className={cn(\"border-border dark:border-border/15 border-b\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction AccordionTrigger({\n  className,\n  children,\n  ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n  return (\n    <AccordionPrimitive.Header className=\"flex\">\n      <AccordionPrimitive.Trigger\n        data-slot=\"accordion-trigger\"\n        className={cn(\n          \"focus-visible:border-ring focus-visible:ring-ring/50 text-md flex flex-1 items-center justify-between py-4 text-left font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n          className,\n        )}\n        {...props}\n      >\n        {children}\n        <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 transition-transform duration-200\" />\n      </AccordionPrimitive.Trigger>\n    </AccordionPrimitive.Header>\n  );\n}\n\nfunction AccordionContent({\n  className,\n  children,\n  ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n  return (\n    <AccordionPrimitive.Content\n      data-slot=\"accordion-content\"\n      className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm transition-all\"\n      {...props}\n    >\n      <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n    </AccordionPrimitive.Content>\n  );\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n",
      "type": "registry:ui",
      "target": "components/ui/accordion.tsx"
    }
  ],
  "dependencies": [
    "@radix-ui/react-icons",
    "@radix-ui/react-accordion"
  ]
}