MicroClub Combobox
mcoli-ui-registry/mc-comboboxFreeComponent
A searchable dropdown with autocomplete functionality for MicroClub UI
Live preview
live · rendered by the registry
Rendered by mcoli-ui-registry on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://mcoli-ui.microclub.info/r/mc-combobox.jsonSource
1'use client';23import { Combobox as ComboboxPrimitive } from '@base-ui/react';4import { CheckIcon, ChevronsUpDown, SearchIcon } from 'lucide-react';5import { cn } from '@/lib/utils';67const McCombobox = ComboboxPrimitive.Root;89function McComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {10 return <ComboboxPrimitive.Value data-slot="combobox-value" {...props} />;11}1213function McComboboxTrigger({14 className,15 placeholder,16 ...props17}: ComboboxPrimitive.Trigger.Props & { placeholder?: string }) {18 return (19 <ComboboxPrimitive.Trigger20 data-slot="combobox-trigger"21 className={cn(22 'min-w-50 min-h-9 px-3 py-2 rounded-md ring-1 ring-inset ring-border shadow-xs flex justify-between items-center bg-input text-foreground paragraph-sm font-medium',23 className24 )}25 {...props}26 >27 <McComboboxValue placeholder={placeholder} />28 <ChevronsUpDown className="size-4 text-foreground" />29 </ComboboxPrimitive.Trigger>30 );31}3233function McComboboxSearch({34 className,35 placeholder,36 ...props37}: ComboboxPrimitive.Input.Props & { placeholder?: string }) {38 return (39 <div className="flex items-center border-b px-3 h-fit w-full gap-2" data-slot="combobox-search">40 <SearchIcon className="text-muted-foreground size-4" />41 <ComboboxPrimitive.Input42 className={cn(43 'flex h-10 w-full rounded-md bg-transparent py-3 outline-none paragraph-sm placeholder:text-muted-foreground',44 className45 )}46 placeholder={placeholder}47 {...props}48 />49 </div>50 );51}5253function McComboboxContent({54 className,55 side = 'bottom',56 sideOffset = 8,57 align = 'start',58 ...props59}: ComboboxPrimitive.Popup.Props &60 Pick<ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset'>) {61 return (62 <ComboboxPrimitive.Portal>63 <ComboboxPrimitive.Positioner64 side={side}65 sideOffset={sideOffset}66 align={align}67 className="isolate z-50"68 >69 <ComboboxPrimitive.Popup70 data-slot="combobox-content"71 className={cn(72 'w-[var(--anchor-width)] flex flex-col rounded-md ring-1 ring-inset ring-border bg-card-background shadow-md',73 className74 )}75 {...props}76 />77 </ComboboxPrimitive.Positioner>78 </ComboboxPrimitive.Portal>79 );80}8182function McComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {83 return (84 <ComboboxPrimitive.List85// … truncated
What it pulls in
npm packages
Files it writes
More from mcoli-ui-registry
All 42 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| MicroClub Accordionmc-accordion | mcoli-ui-registry | Components | Free | 2 deps | |
| MicroClub Alertmc-alert | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Alert Dialogmc-alert-dialog | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Avatarmc-avatar | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Badgemc-badge | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Breadcrumbmc-breadcrumb | mcoli-ui-registry | Components | Free | 2 deps | |
| MicroClub Buttonmc-button | mcoli-ui-registry | Components | Free | 2 deps | |
| MicroClub Calendarmc-calendar | mcoli-ui-registry | Components | Free | 3 deps |
