Multiselect Filter

Size

About this component

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.

Usage

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

import { FilterMultiselect } from "@/components/beste/component/filter-multiselect";

<FilterMultiselect
  label="Size"
  placeholder="All sizes"
  defaultValue={["m"]}
  onChange={(value) => console.log("selected:", value)}
  options={[
    { label: "S", value: "s", count: 12 },
    { label: "M", value: "m", count: 28 },
    { label: "L", value: "l", count: 24 },
  ]}
/>

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.

TabMove between the boxes — each is its own control, not one list with an inner cursor.
SpaceTick or untick the focused one.

Props

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

PropTypeDefaultDescription
labelstring—Optional group heading rendered above the trigger
optionsFilterMultiselectOption[]—
valuestring[]—Controlled selection; omit to let the component manage its own state
defaultValuestring[]—Initial selection when uncontrolled
placeholderstring—Trigger text while nothing is selected
disabledboolean—
onChange(value: string[]) => void—
classNamestring—

More Filter components

View all Filter

Category

24
18
9
12

Category

Brand