FilterBar

molecules

Horizontal filter bar — search input + filter chips + sort + view toggle. Used on every admin list page.

ARIA Role: search (for input)

Demo

Demo for FilterBar (molecules)

Horizontal filter bar — search input + filter chips + sort + view toggle. Used on every admin list page.

Props

PropTypeRequiredDefaultDescription
onSearch(query: string) => voidYes
filtersFilterConfig[]Yes0-4 filters

TypeScript Interface

interface FilterBarProps {
  searchPlaceholder?: string;
  onSearch: (query: string) => void;
  filters: { id: string; label: string; options: { value: string; label: string; count?: number }[]; value: string[]; onChange: (v: string[]) => void }[];
  sort?: { value: string; options: { value: string; label: string }[]; onChange: (v: string) => void };
  viewToggle?: { value: 'grid' | 'list'; onChange: (v: 'grid' | 'list') => void };
  primaryAction?: { label: string; onClick: () => void; icon?: React.ReactNode };
}

Assertions (NASA Rule 5)

  • [type]filters bounded 0-4 (NASA Rule 2)(NASA Rule 2)
  • [aria]Search uses role='search'; each filter group has role='group' aria-label(WCAG 1.3.1)

Usage

Import

import { Filterbar } from '@epasslive/design-system'

Basic

<Filterbar />

With Variants

<Filterbar variant="primary" size="md" />