Marvz UI
Components

Combobox

A combobox is an input widget with an associated popup that enables users to select a value from a collection of possible values.

Docs

Installation

pnpx shadcn@latest add https://ui.marviuz.me/r/combobox.json

Usage

import { ChevronDown, X } from 'lucide-react';
import {
  ComboboxClearTrigger,
  ComboboxContent,
  ComboboxControl,
  ComboboxInput,
  ComboboxItem,
  ComboboxItemGroup,
  ComboboxItemGroupLabel,
  ComboboxItemIndicator,
  ComboboxItemText,
  ComboboxLabel,
  ComboboxList,
  ComboboxPortal,
  ComboboxPositioner,
  ComboboxProvider,
  ComboboxRoot,
  ComboboxTrigger,
} from './combobox';
<ComboboxProvider>
  <ComboboxRoot>
    <ComboboxLabel>Pick Option</ComboboxLabel>
    <ComboboxControl>
      <ComboboxInput />
      <ComboboxTrigger size="icon" variant="ghost">
        <ChevronDown />
      </ComboboxTrigger>
      <ComboboxClearTrigger size="icon" variant="ghost">
        <X />
      </ComboboxClearTrigger>
    </ComboboxControl>
    <ComboboxPortal>
      <ComboboxPositioner>
        <ComboboxContent>
          <ComboboxList>
            <ComboboxItemGroup id="some_id">
              <ComboboxItemGroupLabel htmlFor="some_id">
                Group 1
              </ComboboxItemGroupLabel>
              {options.map((option) => (
                <ComboboxItem item={option} key={option.value}>
                  <ComboboxItemText item={option}>
                    {option.label}
                  </ComboboxItemText>
                  <ComboboxItemIndicator item={option} />
                </ComboboxItem>
              ))}
            </ComboboxItemGroup>
          </ComboboxList>
        </ComboboxContent>
      </ComboboxPositioner>
    </ComboboxPortal>
  </ComboboxRoot>
</ComboboxProvider>

On this page