import { Placement } from '@floating-ui/vue'; import { HTMLAttributes } from 'vue'; import { TextFieldClassesKey, TextFieldProps } from '../TextField/types'; export type SelectClassesKey = "container" | "optionContainer" | "option" | "helperText" | "optionName" | "optionDesc" | "optionIcon" | "optionImg" | "activeItem" | "multipleFilter" | "itemContainer"; export type SelectOption = { name: string; value: string; description?: string; icon?: string; imgSrc?: string; }; export interface SelectProps extends /* @vue-ignore */ HTMLAttributes { size?: "small" | "medium" | "large"; options?: SelectOption[]; iconPlacement?: "left" | "right"; label?: string; placeholder?: string; modelValue?: string | string[]; multiple?: boolean; error?: boolean; success?: boolean; disabled?: boolean; id?: string; helperText?: string; trailingIcon?: string; trailingImage?: string; endIcon?: string; classes?: Partial>; inputClasses?: Partial>; toolTipIcon?: string; showToolTipIcon?: boolean; allowFilter?: boolean; inputProps?: TextFieldProps; filterProps?: TextFieldProps; filterPlaceholder?: string; showClearAllIcon?: boolean; showSelectAllIcon?: boolean; customFilter?: (option: SelectOption[]) => SelectOption[]; fixedPlaceholder?: string; showCheckBox?: boolean; disableDeselect?: boolean; placement?: Placement; matchParentsWidth?: boolean; }