Lambchop
Data Management

FilterBar

Dropdown filter system with single and multi-select.

import { FilterBar } from "lambchop";

Live Demo

Usage

import { FilterBar, type FilterDef } from "lambchop";

const filters: FilterDef[] = [
  {
    id: "site",
    label: "Site",
    options: [
      { label: "lambgoat.com", value: "lambgoat" },
      { label: "metalinjection.net", value: "metalinjection" },
    ],
  },
  {
    id: "author",
    label: "Author",
    multiple: true,
    options: [
      { label: "Alex H.", value: "alex" },
      { label: "Jordan P.", value: "jordan" },
    ],
  },
];

<FilterBar
  filters={filters}
  values={values}
  onChange={(id, val) => setValues({ ...values, [id]: val })}
  onClear={() => setValues({})}
/>

Props

PropTypeDefaultDescription
filtersFilterDef[]Filter definitions
valuesRecord<string, string | string[]>Current filter values
onChange(id: string, value: string | string[]) => voidCalled when a filter changes
onClear() => voidCalled when clear button is clicked
classNamestringAdditional CSS classes

FilterDef

FieldTypeDefaultDescription
idstringUnique filter identifier
labelstringDisplay label
options{ label: string; value: string }[]Available options
multiplebooleanfalseAllow multiple selections