Combobox
tdds/comboboxFreeComponent
Searchable select dropdown
Install it
npx shadcn@latest add https://raw.githubusercontent.com/gjohnsx/ttb-label-verification/main/tdds-registry/public/r/combobox.jsonSource
1"use client"23import * as React from "react"4import { Combobox as ComboboxPrimitive } from "@base-ui/react"56import { cn } from "@/lib/utils"7import { Button } from "@/components/ui/button"8import {9 InputGroup,10 InputGroupAddon,11 InputGroupButton,12 InputGroupInput,13} from "@/components/ui/input-group"14import { ChevronDownIcon, XIcon, CheckIcon } from "lucide-react"1516const Combobox = ComboboxPrimitive.Root1718function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {19 return <ComboboxPrimitive.Value data-slot="combobox-value" {...props} />20}2122function ComboboxTrigger({23 className,24 children,25 ...props26}: ComboboxPrimitive.Trigger.Props) {27 return (28 <ComboboxPrimitive.Trigger29 data-slot="combobox-trigger"30 className={cn("[&_svg:not([class*='size-'])]:size-4", className)}31 {...props}32 >33 {children}34 <ChevronDownIcon className="text-muted-foreground size-4 pointer-events-none" />35 </ComboboxPrimitive.Trigger>36 )37}3839function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {40 return (41 <ComboboxPrimitive.Clear42 data-slot="combobox-clear"43 render={<InputGroupButton variant="ghost" size="icon-xs" />}44 className={cn(className)}45 {...props}46 >47 <XIcon className="pointer-events-none" />48 </ComboboxPrimitive.Clear>49 )50}5152function ComboboxInput({53 className,54 children,55 disabled = false,56 showTrigger = true,57 showClear = false,58 ...props59}: ComboboxPrimitive.Input.Props & {60 showTrigger?: boolean61 showClear?: boolean62}) {63 return (64 <InputGroup className={cn("w-auto", className)}>65 <ComboboxPrimitive.Input66 render={<InputGroupInput disabled={disabled} />}67 {...props}68 />69 <InputGroupAddon align="inline-end">70 {showTrigger && (71 <InputGroupButton72 size="icon-xs"73 variant="ghost"74 asChild75 data-slot="input-group-button"76 className="group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent"77 disabled={disabled}78 >79 <ComboboxTrigger />80 </InputGroupButton>81 )}82 {showClear && <ComboboxClear disabled={disabled} />}83 </InputGroupAddon>84 {children}85 </InputGroup>86 )87}8889function ComboboxContent({90 className,91 side = "bottom",92 sideOffset = 6,93 align = "start",94 alignOffset = 0,95 anchor,96 ...props97}: ComboboxPrimitive.Popup.Props &98 Pick<99// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from tdds
All 43 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | tdds | Components | Free | 2 deps | |
| Alertalert | tdds | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | tdds | Components | Free | 1 dep | |
| Avataravatar | tdds | Components | Free | 1 dep | |
| Badgebadge | tdds | Components | Free | 1 dep | |
| Breadcrumbbreadcrumb | tdds | Components | Free | 2 deps | |
| Buttonbutton | tdds | Components | Free | 2 deps | |
| Button Groupbutton-group | tdds | Components | Free | 1 dep |
