Combobox
muffled-ui-registry/comboboxFreeComponent
Autocomplete input with filterable suggestions on paper, hairline border, no shadow.
Live preview
live · rendered by the registry
Rendered by muffled-ui-registry on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.muffled.studio/r/combobox.jsonSource
1import * as React from "react"2import { Combobox as ComboboxPrimitive } from "@base-ui/react"34import { cn } from "@/registry/lib/surface"5import { floatingSurfaceClasses } from "@/registry/lib/surface"6import { ThemedPortalShell } from "@/registry/lib/portal-container"7import { Button } from "@/registry/ui/button"8import {9 InputGroup,10 InputGroupAddon,11 InputGroupButton,12 InputGroupInput,13} from "@/registry/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="pointer-events-none size-4 text-muted-foreground" />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 <ComboboxTrigger72 render={73 <InputGroupButton74 size="icon-xs"75 variant="ghost"76 data-slot="input-group-button"77 className="group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent"78 disabled={disabled}79 />80 }81 />82 )}83 {showClear && <ComboboxClear disabled={disabled} />}84 </InputGroupAddon>85 {children}86 </InputGroup>87 )88}8990function ComboboxContent({91 className,92// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from muffled-ui-registry
All 55 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | muffled-ui-registry | Components | Free | 2 deps | |
| Alertalert | muffled-ui-registry | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | muffled-ui-registry | Components | Free | 1 dep | |
| Avataravatar | muffled-ui-registry | Components | Free | 1 dep | |
| Badgebadge | muffled-ui-registry | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | muffled-ui-registry | Components | Free | 2 deps | |
| Buttonbutton | muffled-ui-registry | Components | Free | 2 deps | |
| Button Groupbutton-group | muffled-ui-registry | Components | Free | 2 deps |
