import { Color } from '@ionic/core'; /** * Option for the popover selector. */ export interface PopoverOption { /** Option value */ value: string; /** Option display label */ label: string; /** Option icon (optional) */ icon?: string; /** Whether the option is disabled */ disabled?: boolean; } /** * Props for val-popover-selector component. * A generic reusable popover selector component. * * @property options - Array of selectable options. * @property selectedValue - Currently selected value. * @property label - Display label for the selector. * @property icon - Icon to display in the trigger button (optional). * @property placeholder - Placeholder text when no option is selected. * @property color - Button color (Ionic color string). * @property size - Button size ('small' | 'default' | 'large'). * @property fill - Button fill style ('clear' | 'outline' | 'solid' | 'default'). * @property shape - Button shape ('round' | undefined). * @property expand - Button expansion ('full' | 'block' | undefined). * @property disabled - Whether the selector is disabled. * @property interface - Popover interface style ('popover' | 'action-sheet' | 'alert'). * @property showCheckmark - Whether to show checkmarks for selected options. * @property multiple - Whether multiple selection is allowed. * @property cancelText - Text for cancel button. * @property okText - Text for OK button. */ export interface PopoverSelectorMetadata { /** Array of selectable options */ options: PopoverOption[]; /** Currently selected value(s) */ selectedValue?: string | string[]; /** Display label for the selector */ label?: string; /** Icon to display in the trigger */ icon?: string; /** Placeholder text when no option is selected */ placeholder?: string; /** Button color */ color?: Color; /** Button size */ size?: 'small' | 'default' | 'large'; /** Button fill style */ fill?: 'clear' | 'outline' | 'solid' | 'default'; /** Button shape */ shape?: 'round'; /** Button expansion */ expand?: 'full' | 'block'; /** Whether the selector is disabled */ disabled?: boolean; /** Popover interface style */ interface?: 'popover' | 'action-sheet' | 'alert'; /** Whether to show checkmarks for selected options */ showCheckmark?: boolean; /** Whether multiple selection is allowed */ multiple?: boolean; /** Cancel button text */ cancelText?: string; /** OK button text */ okText?: string; }