UNPKG

mod-arch-shared

Version:

Shared UI components and utilities for modular architecture micro-frontend projects

48 lines 1.61 kB
import React from 'react'; interface CommonFilterConfig { label: string; placeholder: string; } export interface TextFilterConfig extends CommonFilterConfig { type: 'text'; } export interface SelectFilterConfig extends CommonFilterConfig { type: 'select'; options: { value: string; label: string; }[]; } export interface MultiselectFilterConfig extends CommonFilterConfig { type: 'multiselect'; options: { value: string; label: string; }[]; } export type FilterConfig = TextFilterConfig | SelectFilterConfig | MultiselectFilterConfig; export type FilterType = FilterConfig['type']; export type FilterConfigMap<K extends string> = { [key in K]: FilterConfig; }; /** Filter value type - string for text/select, string[] for multiselect */ export type FilterValue = string | string[]; export type FilterState<K extends string> = Record<K, FilterValue>; export interface ToolbarFilterProps<K extends string> { filterConfig: FilterConfigMap<K>; visibleFilterKeys: readonly K[]; filterValues: FilterState<K>; onFilterChange: (key: K, value: FilterValue) => void; onClearAllFilters: () => void; toolbarActions?: React.ReactNode; testIdPrefix?: string; } export interface ToolbarFilterRef<K extends string> { clearAll: () => void; setFilter: (key: K, value: FilterValue) => void; } declare const ToolbarFilter: <K extends string>(props: ToolbarFilterProps<K> & { ref?: React.ForwardedRef<ToolbarFilterRef<K>>; }) => React.ReactElement; export default ToolbarFilter; //# sourceMappingURL=ToolbarFilter.d.ts.map