{
	"$schema": "https://ui.shadcn.com/schema/registry-item.json",
	"name": "autocomplete",
	"dependencies": [],
	"registryDependencies": [],
	"files": [
		{
			"path": "ui/autocomplete.tsx",
			"content": "import * as React from \"react\"\nimport { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Autocomplete({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Root>) {\n\treturn <BaseAutocomplete.Root data-slot=\"autocomplete\" {...props} />\n}\n\nfunction AutocompletePortal({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Portal>) {\n\treturn <BaseAutocomplete.Portal data-slot=\"autocomplete-portal\" {...props} />\n}\n\nfunction AutocompletePositioner({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Positioner>) {\n\treturn (\n\t\t<BaseAutocomplete.Positioner\n\t\t\tdata-slot=\"autocomplete-positioner\"\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction AutocompleteValue({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Value>) {\n\treturn <BaseAutocomplete.Value data-slot=\"autocomplete-value\" {...props} />\n}\n\nfunction AutocompleteTrigger({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Trigger>) {\n\treturn (\n\t\t<BaseAutocomplete.Trigger data-slot=\"autocomplete-trigger\" {...props} />\n\t)\n}\n\nfunction AutocompleteIcon({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Icon>) {\n\treturn <BaseAutocomplete.Icon data-slot=\"autocomplete-icon\" {...props} />\n}\n\nfunction AutocompleteClear({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Clear>) {\n\treturn <BaseAutocomplete.Clear data-slot=\"autocomplete-clear\" {...props} />\n}\n\nfunction AutocompleteInput({\n\tclassName,\n\tinputContainerClassName,\n\tshowClear = false,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Input> & {\n\tinputContainerClassName?: string\n\tshowClear?: boolean\n}) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"group relative w-full has-[[data-slot=autocomplete-input][data-disabled]]:pointer-events-none has-[[data-slot=autocomplete-input][data-disabled]]:opacity-50\",\n\t\t\t\tinputContainerClassName\n\t\t\t)}\n\t\t\tdata-slot=\"autocomplete-input-container\"\n\t\t>\n\t\t\t<BaseAutocomplete.Input\n\t\t\t\tdata-slot=\"autocomplete-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground selection:bg-primary group-hover:border-ring/70 selection:text-primary-foreground bg-input aria-invalid:ring-destructive/50 aria-invalid:border-destructive focus-visible:border-ring focus-visible:ring-ring/50 flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow,border-color] outline-none focus-visible:ring-[3px] md:text-sm\",\n\t\t\t\t\tshowClear && \"pr-8\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t\t{showClear && (\n\t\t\t\t<AutocompleteClear\n\t\t\t\t\tdata-slot=\"autocomplete-clear\"\n\t\t\t\t\tclassName=\"text-muted-foreground absolute top-1/2 right-3 shrink-0 -translate-y-1/2 [&_svg]:shrink-0\"\n\t\t\t\t>\n\t\t\t\t\t<XIcon className=\"size-4\" />\n\t\t\t\t</AutocompleteClear>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nfunction AutocompleteContent({\n\tclassName,\n\tchildren,\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Popup> & {\n\tsideOffset?: BaseAutocomplete.Positioner.Props[\"sideOffset\"]\n}) {\n\treturn (\n\t\t<AutocompletePortal>\n\t\t\t<AutocompletePositioner className=\"outline-none\" sideOffset={sideOffset}>\n\t\t\t\t<BaseAutocomplete.Popup\n\t\t\t\t\tdata-slot=\"autocomplete-content\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"bg-popover text-popover-foreground relative z-50 max-h-[min(var(--available-height),20rem)] min-w-[var(--anchor-width)] origin-[var(--transform-origin)] overflow-x-hidden overflow-y-auto overscroll-contain rounded-md border p-1 shadow-md transition-all data-ending-style:duration-0 data-starting-style:scale-98 data-starting-style:opacity-0\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</BaseAutocomplete.Popup>\n\t\t\t</AutocompletePositioner>\n\t\t</AutocompletePortal>\n\t)\n}\n\nfunction AutocompleteItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Item>) {\n\treturn (\n\t\t<BaseAutocomplete.Item\n\t\t\tdata-slot=\"autocomplete-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-highlighted:bg-accent data-highlighted:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</BaseAutocomplete.Item>\n\t)\n}\n\nfunction AutocompleteEmpty({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Empty>) {\n\treturn (\n\t\t<BaseAutocomplete.Empty\n\t\t\tdata-slot=\"autocomplete-empty\"\n\t\t\tclassName={cn(\"py-6 text-center text-sm empty:m-0 empty:p-0\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction AutocompleteStatus({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Status>) {\n\treturn (\n\t\t<BaseAutocomplete.Status\n\t\t\tdata-slot=\"autocomplete-status\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground flex items-center gap-2 px-2 py-1.5 text-sm\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction AutocompleteGroup({\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Group>) {\n\treturn <BaseAutocomplete.Group data-slot=\"autocomplete-group\" {...props} />\n}\n\nfunction AutocompleteGroupLabel({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.GroupLabel>) {\n\treturn (\n\t\t<BaseAutocomplete.GroupLabel\n\t\t\tdata-slot=\"autocomplete-group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground px-2 py-1.5 text-xs font-medium\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction AutocompleteSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Separator>) {\n\treturn (\n\t\t<BaseAutocomplete.Separator\n\t\t\tdata-slot=\"autocomplete-separator\"\n\t\t\tclassName={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction AutocompleteList(\n\tprops: React.ComponentProps<typeof BaseAutocomplete.List>\n) {\n\treturn <BaseAutocomplete.List data-slot=\"autocomplete-list\" {...props} />\n}\n\nfunction AutocompleteCollection(\n\tprops: React.ComponentProps<typeof BaseAutocomplete.Collection>\n) {\n\treturn (\n\t\t<BaseAutocomplete.Collection\n\t\t\tdata-slot=\"autocomplete-collection\"\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction AutocompleteRow({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseAutocomplete.Row>) {\n\treturn (\n\t\t<BaseAutocomplete.Row\n\t\t\tdata-slot=\"autocomplete-row\"\n\t\t\tclassName={cn(\"grid w-full scroll-my-1.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tAutocomplete,\n\tAutocompleteClear,\n\tAutocompleteCollection,\n\tAutocompleteContent,\n\tAutocompleteEmpty,\n\tAutocompleteGroup,\n\tAutocompleteGroupLabel,\n\tAutocompleteIcon,\n\tAutocompleteInput,\n\tAutocompleteItem,\n\tAutocompleteList,\n\tAutocompletePortal,\n\tAutocompletePositioner,\n\tAutocompleteRow,\n\tAutocompleteSeparator,\n\tAutocompleteStatus,\n\tAutocompleteTrigger,\n\tAutocompleteValue,\n}\n\nexport const useFilter = BaseAutocomplete.useFilter\n",
			"type": "registry:ui",
			"target": ""
		}
	],
	"type": "registry:ui"
}
