{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tailwind-disclosure",
  "type": "registry:ui",
  "title": "Disclosure",
  "dependencies": [
    "react",
    "react-aria-components",
    "tailwind-variants",
    "lucide-react",
    "tailwindcss-react-aria-components",
    "tw-animate-css"
  ],
  "registryDependencies": [
    "https://react-aria.adobe.com/registry/tailwind-button.json",
    "https://react-aria.adobe.com/registry/tailwind-utils.json"
  ],
  "files": [
    {
      "path": "components/ui/Disclosure.tsx",
      "type": "registry:ui",
      "content": "'use client';\nimport React, {useContext} from 'react';\nimport {\n  Disclosure as AriaDisclosure,\n  DisclosurePanel as AriaDisclosurePanel,\n  DisclosureStateContext,\n  Heading,\n  type DisclosurePanelProps as AriaDisclosurePanelProps,\n  type DisclosureProps as AriaDisclosureProps\n} from 'react-aria-components/Disclosure';\nimport {composeRenderProps} from 'react-aria-components/composeRenderProps';\nimport {Button} from '@/registry/react-aria/ui/Button';\nimport {tv} from 'tailwind-variants';\nimport {ChevronRight} from 'lucide-react';\nimport {composeTailwindRenderProps} from '@/registry/react-aria/lib/react-aria-utils';\n\nconst disclosure = tv({\n  base: 'group min-w-50 font-sans rounded-lg text-neutral-900 dark:text-neutral-200'\n});\n\nconst chevron = tv({\n  base: 'w-4 h-4 text-neutral-500 dark:text-neutral-400 transition-transform duration-200 ease-in-out',\n  variants: {\n    isExpanded: {\n      true: 'transform rotate-90'\n    },\n    isDisabled: {\n      true: 'text-neutral-300 dark:text-neutral-600 forced-colors:text-[GrayText]'\n    }\n  }\n});\n\nexport interface DisclosureProps extends AriaDisclosureProps {\n  children: React.ReactNode;\n}\n\nexport function Disclosure({children, ...props}: DisclosureProps) {\n  return (\n    <AriaDisclosure\n      {...props}\n      className={composeRenderProps(props.className, (className, renderProps) =>\n        disclosure({...renderProps, className})\n      )}>\n      {children}\n    </AriaDisclosure>\n  );\n}\n\nexport interface DisclosureHeaderProps {\n  children: React.ReactNode;\n}\n\nexport function DisclosureHeader({children}: DisclosureHeaderProps) {\n  let {isExpanded} = useContext(DisclosureStateContext)!;\n  return (\n    <Heading className=\"text-lg font-semibold m-0\">\n      <Button slot=\"trigger\" variant=\"quiet\" className=\"w-full justify-start font-medium\">\n        {({isDisabled}) => (\n          <>\n            <ChevronRight aria-hidden className={chevron({isExpanded, isDisabled})} />\n            <span>{children}</span>\n          </>\n        )}\n      </Button>\n    </Heading>\n  );\n}\n\nexport interface DisclosurePanelProps extends AriaDisclosurePanelProps {\n  children: React.ReactNode;\n}\n\nexport function DisclosurePanel({children, ...props}: DisclosurePanelProps) {\n  return (\n    <AriaDisclosurePanel\n      {...props}\n      className={composeTailwindRenderProps(\n        props.className,\n        'h-(--disclosure-panel-height) motion-safe:transition-[height] overflow-clip'\n      )}>\n      <div className=\"px-4 py-2\">{children}</div>\n    </AriaDisclosurePanel>\n  );\n}\n"
    }
  ],
  "css": {
    "@plugin \"tailwindcss-react-aria-components\"": {},
    "@import \"tw-animate-css\"": {}
  }
}
