Dropdown with checkbox rows and a selection-count badge. Keeps many-option filters compact in toolbars where a checkbox list would not fit.
Requires shadcn/ui initialized. Run npx shadcn@latest init if you haven't.
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 },
]}
/>Multi-select checkbox list with optional result counts. Works controlled or uncontrolled, designed for filter sidebars and toolbars.
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.
Searchable dropdown for very long option lists like brands. Type to narrow options, select one or many, and see result counts inline.
Hierarchical checkbox tree for nested categories with expand/collapse rows. Checking a parent checks its whole subtree, and partially selected parents turn indeterminate.
Multi-select button chips for compact option sets like sizes. Works controlled or uncontrolled.
Switch rows for boolean product flags like on-sale or in-stock. Multi-select, works controlled or uncontrolled.