import { CSSProperties, ReactNode } from 'react'; /** * Font size value - can be a theme token key or a CSS value */ export type FontSizeValue = 'xs' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | CSSProperties['fontSize']; /** * Option for the Multiselect component */ export interface MultiselectOption { /** Unique value for the option */ value: string; /** Display label for the option */ label: string; /** Whether the option is disabled */ disabled?: boolean; /** Optional icon to display with the option */ icon?: ReactNode; } /** * Size variants for the Multiselect (sm: 32px, md: 36px) */ export type MultiselectSize = 'sm' | 'md'; /** * Props for the Multiselect component */ export interface MultiselectProps { /** * Available options to select from */ options: MultiselectOption[]; /** * Currently selected values (array of option values) */ value: string[]; /** * Change handler - called when selection changes */ onChange: (values: string[]) => void; /** * Label for the multiselect */ label?: string; /** * Placeholder text when no values are selected * @default 'Select...' */ placeholder?: string; /** * Disabled state * @default false */ disabled?: boolean; /** * Whether the field is required * @default false */ required?: boolean; /** * Error state * @default false */ error?: boolean; /** * Error message to display */ errorMessage?: string; /** * Size variant * @default 'md' */ size?: MultiselectSize; /** * Maximum number of chips to display before showing "+N more" * @default 3 */ maxDisplayedChips?: number; /** * Show clear all button when values are selected * @default true */ clearable?: boolean; /** * Show "Select All" and "Clear All" action buttons in the dropdown * @default false */ showBulkActions?: boolean; /** * Label for the "Select All" action * @default 'Select All' */ selectAllLabel?: string; /** * Label for the "Clear All" action * @default 'Clear All' */ clearAllLabel?: string; /** * Allow filtering options by typing * @default false */ searchable?: boolean; /** * Placeholder text for the search input * @default 'Search...' */ searchPlaceholder?: string; /** * Full width mode * @default false */ fullWidth?: boolean; /** * Additional CSS classes */ className?: string; /** * Accessible name */ 'aria-label'?: string; /** * Test ID for testing (deprecated, use dataTestId) */ 'data-testid'?: string; /** * Test identifier for automated testing */ dataTestId?: string; /** * Data identifier for ib-ui compatibility */ dataId?: string; /** * Font size for the field label * Can be a theme token key ('xs', 'sm', 'base', 'md', 'lg', 'xl') or CSS value */ labelFontSize?: FontSizeValue; /** * Font size for the selected value chips * Can be a theme token key ('xs', 'sm', 'base', 'md', 'lg', 'xl') or CSS value */ chipFontSize?: FontSizeValue; /** * Font size for options in the dropdown menu * Can be a theme token key ('xs', 'sm', 'base', 'md', 'lg', 'xl') or CSS value */ optionFontSize?: FontSizeValue; } //# sourceMappingURL=Multiselect.types.d.ts.map