Combobox Filter

Brand

About this component

Combobox Filter

Searchable dropdown for very long option lists like brands. Type to narrow options, select one or many, and see result counts inline.

Usage

The import and the props worth knowing about, in one place.

import { FilterCombobox } from "@/components/beste/component/filter-combobox";

<FilterCombobox
  label="Brand"
  placeholder="All brands"
  searchPlaceholder="Search brands"
  multiple                       // omit for single-select
  onChange={(value) => console.log("selected:", value)}
  options={[
    { label: "Acme Supply", value: "acme", count: 18 },
    { label: "Northwind", value: "northwind", count: 12 },
  ]}
/>

Playground

Turn the props on the right; the snippet under them is what you would write to get what you see.

Brand

Usage
import { FilterCombobox } from "@/components/beste/component/filter-combobox";

<FilterCombobox
  label="Brand"
  placeholder="All brands"
  searchPlaceholder="Search brands"
  className="w-64"
  defaultValue={["acme"]}
  options={[{"label":"Acme Supply","value":"acme","count":18},{"label":"Northwind","value":"northwind","count":12},{"label":"Globex","value":"globex","count":9},{"label":"Initech","value":"initech","count":7},{"label":"Umbra Works","value":"umbra","count":5},{"label":"Vandelay","value":"vandelay","count":4}]}
/>

Keyboard and gestures

Every one of these is in the component already. They are listed because a props table cannot mention a gesture, so nothing else on this page can tell you they exist.

Type anythingFilters the list as you go; the first match stays highlighted.
Arrow keysMove through what is left after the filter.
EnterToggle the highlighted option.
EscapeClose the popover and leave the selection as it is.

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
labelstringOptional group heading rendered above the trigger
optionsFilterComboboxOption[]
valuestring[]Controlled selection; omit to let the component manage its own state
defaultValuestring[]Initial selection when uncontrolled
multiplebooleanAllow selecting more than one option (default false)
placeholderstringTrigger text while nothing is selected
searchPlaceholderstringPlaceholder of the search input inside the dropdown
emptyTextstringMessage shown when the search matches nothing
disabledboolean
onChange(value: string[]) => void
classNamestring

More Filter components

View all Filter

Category

Select Filter

Single-select dropdown for long option lists that would crowd a sidebar. Supports a clear item, result counts, and a disabled state for dependent filters.

Size

Multiselect Filter

Dropdown with checkbox rows and a selection-count badge. Keeps many-option filters compact in toolbars where a checkbox list would not fit.

Category

24
18
9
12

Checkbox Filter

Multi-select checkbox list with optional result counts. Works controlled or uncontrolled, designed for filter sidebars and toolbars.

Size

Chips Filter

Multi-select button chips for compact option sets like sizes. Works controlled or uncontrolled.

Price

$25$180

Range Slider Filter

Two-thumb range slider with live numeric readouts and a commit callback, built for price ranges.

Gender

Segmented Filter

Single-select segmented control built on Tabs for mutually exclusive choices like gender or condition. Clicking the active segment clears the selection.