{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "combobox-popover", "type": "registry:example", "author": "shadcn (https://ui.shadcn.com)", "registryDependencies": [ "combobox", "popover" ], "files": [ { "path": "examples/combobox-popover.tsx", "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArrowUpCircle,\n CheckCircle2,\n Circle,\n HelpCircle,\n LucideIcon,\n XCircle,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/default/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\ntype Status = {\n value: string\n label: string\n icon: LucideIcon\n}\n\nconst statuses: Status[] = [\n {\n value: \"backlog\",\n label: \"Backlog\",\n icon: HelpCircle,\n },\n {\n value: \"todo\",\n label: \"Todo\",\n icon: Circle,\n },\n {\n value: \"in progress\",\n label: \"In Progress\",\n icon: ArrowUpCircle,\n },\n {\n value: \"done\",\n label: \"Done\",\n icon: CheckCircle2,\n },\n {\n value: \"canceled\",\n label: \"Canceled\",\n icon: XCircle,\n },\n]\n\nexport default function ComboboxPopover() {\n const [open, setOpen] = React.useState(false)\n const [selectedStatus, setSelectedStatus] = React.useState(\n null\n )\n\n return (\n
\n

Status

\n \n \n \n {selectedStatus ? (\n <>\n \n {selectedStatus.label}\n \n ) : (\n <>+ Set status\n )}\n \n \n \n \n \n \n No results found.\n \n {statuses.map((status) => (\n {\n setSelectedStatus(\n statuses.find((priority) => priority.value === value) ||\n null\n )\n setOpen(false)\n }}\n >\n \n {status.label}\n \n ))}\n \n \n \n \n \n
\n )\n}\n", "type": "registry:example", "target": "" } ] }