{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "gummy-combobox",
  "type": "registry:ui",
  "title": "Gummy Combobox",
  "description": "Base UI editable Combobox with filtering, typeahead, keyboard selection, empty state, and collision-aware popup.",
  "registryDependencies": [
    "https://gummyui.dev/r/gummy-primitives-styles.json"
  ],
  "dependencies": [
    "@base-ui/react"
  ],
  "files": [
    {
      "path": "components/ui/GummyCombobox.tsx",
      "type": "registry:ui",
      "content": "\"use client\";\n\nimport { Combobox } from \"@base-ui/react/combobox\";\nimport * as React from \"react\";\n\nfunction joinClassNames(...values: Array<string | false | null | undefined>) {\n  return values.filter(Boolean).join(\" \");\n}\n\nexport const GummyCombobox = Combobox.Root;\n\nexport const GummyComboboxLabel = React.forwardRef<HTMLDivElement, Combobox.Label.Props>(\n  function GummyComboboxLabel({ className, ...props }, ref) {\n    return <Combobox.Label {...props} ref={ref} className={joinClassNames(\"gummy-combobox__label\", className as string)} />;\n  },\n);\nexport const GummyComboboxInputGroup = React.forwardRef<HTMLDivElement, Combobox.InputGroup.Props>(\n  function GummyComboboxInputGroup({ className, ...props }, ref) {\n    return <Combobox.InputGroup {...props} ref={ref} className={joinClassNames(\"gummy-combobox__input-group\", className as string)} />;\n  },\n);\nexport const GummyComboboxInput = React.forwardRef<HTMLInputElement, Combobox.Input.Props>(\n  function GummyComboboxInput({ className, ...props }, ref) {\n    const generatedId = React.useId().replace(/:/g, \"\");\n    return <Combobox.Input {...props} id={props.id ?? `gummy-combobox-input-${generatedId}`} ref={ref} className={joinClassNames(\"gummy-combobox__input\", className as string)} />;\n  },\n);\nexport const GummyComboboxTrigger = React.forwardRef<HTMLButtonElement, Combobox.Trigger.Props>(\n  function GummyComboboxTrigger({ className, children, ...props }, ref) {\n    const generatedId = React.useId().replace(/:/g, \"\");\n    return <Combobox.Trigger {...props} id={props.id ?? `gummy-combobox-trigger-${generatedId}`} ref={ref} className={joinClassNames(\"gummy-combobox__trigger\", className as string)} aria-label={props[\"aria-label\"] ?? \"Show options\"}>{children ?? <span aria-hidden=\"true\">⌄</span>}</Combobox.Trigger>;\n  },\n);\nexport const GummyComboboxPortal = Combobox.Portal;\nexport const GummyComboboxPositioner = React.forwardRef<HTMLDivElement, Combobox.Positioner.Props>(\n  function GummyComboboxPositioner({ className, sideOffset = 8, ...props }, ref) {\n    return <Combobox.Positioner {...props} ref={ref} sideOffset={sideOffset} className={joinClassNames(\"gummy-menu-positioner\", className as string)} />;\n  },\n);\nexport const GummyComboboxPopup = React.forwardRef<HTMLDivElement, Combobox.Popup.Props>(\n  function GummyComboboxPopup({ className, ...props }, ref) {\n    return <Combobox.Popup {...props} ref={ref} className={joinClassNames(\"gummy-combobox__popup\", className as string)} />;\n  },\n);\nexport const GummyComboboxList = Combobox.List;\nexport const GummyComboboxEmpty = React.forwardRef<HTMLDivElement, Combobox.Empty.Props>(\n  function GummyComboboxEmpty({ className, ...props }, ref) {\n    return <Combobox.Empty {...props} ref={ref} className={joinClassNames(\"gummy-combobox__empty\", className as string)} />;\n  },\n);\nexport const GummyComboboxItem = React.forwardRef<HTMLDivElement, Combobox.Item.Props>(\n  function GummyComboboxItem({ className, children, ...props }, ref) {\n    return <Combobox.Item {...props} ref={ref} className={joinClassNames(\"gummy-combobox__item\", className as string)}><Combobox.ItemIndicator className=\"gummy-combobox__indicator\">✓</Combobox.ItemIndicator>{children}</Combobox.Item>;\n  },\n);\n\nGummyComboboxLabel.displayName = \"GummyComboboxLabel\";\nGummyComboboxInputGroup.displayName = \"GummyComboboxInputGroup\";\nGummyComboboxInput.displayName = \"GummyComboboxInput\";\nGummyComboboxTrigger.displayName = \"GummyComboboxTrigger\";\nGummyComboboxPositioner.displayName = \"GummyComboboxPositioner\";\nGummyComboboxPopup.displayName = \"GummyComboboxPopup\";\nGummyComboboxEmpty.displayName = \"GummyComboboxEmpty\";\nGummyComboboxItem.displayName = \"GummyComboboxItem\";\n"
    }
  ]
}
