{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "dependencies": [
    "react-aria-components",
    "lucide-react"
  ],
  "files": [
    {
      "content": "export * from \"./combobox\";\nexport * as Combobox from \"./namespace\";\nexport * from \"./styles\";\n",
      "path": "src/registry/ui/combobox/index.ts",
      "type": "registry:ui"
    },
    {
      "content": "\"use client\";\n\nimport { ChevronsUpDownIcon } from \"lucide-react\";\nimport { ComboBox, composeRenderProps, Input } from \"react-aria-components\";\nimport { Button } from \"../button/button\";\nimport { ComboboxStyles } from \"./styles\";\n\nexport interface ComboboxRootProps<T extends object>\n  extends React.ComponentProps<typeof ComboBox<T>> {}\n\nexport function ComboboxRoot<T extends object>({\n  className,\n  ...props\n}: ComboboxRootProps<T>) {\n  return (\n    <ComboBox\n      {...props}\n      className={composeRenderProps(className, (className) =>\n        ComboboxStyles.Root({ className })\n      )}\n      data-slot=\"combobox-root\"\n    />\n  );\n}\n\nexport interface ComboboxTriggerProps extends React.ComponentProps<\"div\"> {}\n\nexport function ComboboxTrigger({ className, ...props }: ComboboxTriggerProps) {\n  return (\n    <div\n      {...props}\n      className={ComboboxStyles.Trigger({ className })}\n      data-slot=\"combobox-trigger\"\n    />\n  );\n}\n\nexport interface ComboboxInputProps\n  extends React.ComponentProps<typeof Input> {}\n\nexport function ComboboxInput({ className, ...props }: ComboboxInputProps) {\n  return (\n    <Input\n      {...props}\n      className={composeRenderProps(className, (className) =>\n        ComboboxStyles.Input({ className })\n      )}\n      data-slot=\"combobox-input\"\n    />\n  );\n}\n\nexport interface ComboboxIcon extends React.ComponentProps<\"svg\"> {}\n\nexport function ComboboxIcon({ className, ...props }: ComboboxIcon) {\n  return (\n    <Button variant=\"unstyled\">\n      <ChevronsUpDownIcon\n        {...props}\n        className={ComboboxStyles.Icon({ className })}\n      />\n    </Button>\n  );\n}\n",
      "path": "src/registry/ui/combobox/combobox.tsx",
      "type": "registry:ui"
    },
    {
      "content": "import { cva } from \"~/registry/lib/cva\";\n\nexport const ComboboxStyles = {\n  Icon: cva({\n    base: [\"text-muted-foreground\"],\n  }),\n  Input: cva({\n    base: [\"size-full flex-1 bg-transparent py-2 outline-none\"],\n  }),\n  Root: cva({\n    base: [\"[&_[data-slot=combobox-trigger]]:w-full\"],\n  }),\n  Trigger: cva({\n    base: [\n      \"inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm outline-none\",\n      \"transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n      \"pending:opacity-50 disabled:opacity-50\",\n      \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n      \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n      \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n      \"*:first:pl-4 *:last:pr-4\",\n    ],\n  }),\n};\n",
      "path": "src/registry/ui/combobox/styles.ts",
      "type": "registry:ui"
    },
    {
      "content": "export {\n  ComboboxIcon as Icon,\n  ComboboxInput as Input,\n  ComboboxRoot as Root,\n  ComboboxTrigger as Trigger,\n} from \"./combobox\";\n",
      "path": "src/registry/ui/combobox/namespace.ts",
      "type": "registry:ui"
    }
  ],
  "name": "combobox",
  "registryDependencies": [
    "@kanpeki/cva",
    "@kanpeki/custom-plugin",
    "@kanpeki/button"
  ],
  "type": "registry:ui"
}