ObjectUIObjectUI
ComponentsComplex

Filter UI

Build flexible filter panels for list and view toolbars

The Filter UI component renders configurable filters with text, select, date, and boolean inputs.

JSON Configuration

{
  type: 'filter-ui',
  layout: 'popover',
  showApply: true,
  showClear: true,
  filters: [
    { field: 'name', label: 'Name', type: 'text', placeholder: 'Search name' },
    { field: 'status', label: 'Status', type: 'select', options: [
      { label: 'Open', value: 'open' },
      { label: 'Closed', value: 'closed' }
    ] },
    { field: 'created_at', label: 'Created', type: 'date-range' }
  ]
}

Basic Usage

Filter UI

Popover-based filters with apply and clear actions.

{
  "type": "filter-ui",
  "layout": "popover",
  "showApply": true,
  "showClear": true,
  "filters": [
    {
      "field": "name",
      "label": "Name",
      "type": "text",
      "placeholder": "Search name"
    },
    {
      "field": "status",
      "label": "Status",
      "type": "select",
      "options": [
        {
          "label": "Open",
          "value": "open"
        },
        {
          "label": "Closed",
          "value": "closed"
        },
        {
          "label": "In Progress",
          "value": "in_progress"
        }
      ]
    },
    {
      "field": "priority",
      "label": "Priority",
      "type": "number"
    },
    {
      "field": "created_at",
      "label": "Created",
      "type": "date-range"
    }
  ]
}

Schema

interface FilterUISchema {
  type: 'filter-ui';
  filters: Array<{
    field: string;
    label?: string;
    type: 'text' | 'number' | 'select' | 'date' | 'date-range' | 'boolean';
    operator?: 'equals' | 'contains' | 'startsWith' | 'gt' | 'lt' | 'between' | 'in';
    options?: Array<{ label: string; value: any }>;
    placeholder?: string;
  }>;
  values?: Record<string, any>;
  onChange?: string;
  showClear?: boolean;
  showApply?: boolean;
  layout?: 'inline' | 'popover' | 'drawer';
}

On this page