import { Color, Size, stickerOptions, tooltipOptions } from '../../types'; import { FontStyleTypeModel, ThemeTypesModel } from '../../Themes/theme_types'; type kindInteraction = 'mouse' | 'keyboard'; type availableSizes = Size; type descriptionType = 'text' | 'tooltip'; export interface StateContextOptions { size: availableSizes; isError: boolean; isDisabled: boolean; isRequired?: boolean; dayTime: 'light' | 'dark'; } interface InputWithSuggestionsProp { value?: string | tagTypes[]; label?: string; ariaLabel?: string; labelPosition?: 'external' | 'internal'; placeholder?: string; size?: availableSizes; descriptionType?: descriptionType; description?: string; isResponsive?: boolean; errorMessage?: string; theme?: ThemeTypesModel; errorState?: 'default' | 'focus out'; className?: string; minSearchSymbols?: number; isError?: boolean; isDisabled?: boolean; isRequired?: boolean; isInverse?: boolean; maxHeight?: number; searchList?: string[]; stickerOptions?: stickerOptions; tooltipOptions?: tooltipOptions; tooltipIcon?: string; tagRemoveBtnIcon?: string; valueChanged?: (e: string | tagTypes[]) => void; } interface tagTypes { title: string; id?: string; color: Color.green | Color.dark | Color.blue; isError?: boolean; } interface ContainterProps { state: StateContextOptions; } interface WrapperProps { styles: ModelView; focusWrapper: boolean; state: StateContextOptions; accessibleFocus: boolean; descriptionType: descriptionType; maxHeight: number; internalLabel: boolean; } interface TagWrapperProps { styles: ModelView; state: StateContextOptions; } interface RightIconProps { styles: ModelView; state: StateContextOptions; } interface LabelProps { styles: ModelView; state: StateContextOptions; } interface DescriptionProps { styles: ModelView; state: StateContextOptions; } interface InputFieldProps { styles: ModelView; state: StateContextOptions; internalLabel: boolean; } interface inputViewParams { placeholderColor?: string; textColor?: string; borderColor?: string; backgroundColor?: string; } interface inputStates { default: inputViewParams; hover: inputViewParams; active: inputViewParams; errorDefault: inputViewParams; errorHover: inputViewParams; } interface sizeElementsParams { inputWrapper: { paddingTop: number; paddingLeft: number; paddingRight: { withInfoIcon: number; withoutInfoIcon: number; }; paddingBottom: number; }; inputField: { paddingBottom: number; paddingLeft: number; paddingTop: number; }; tagWrapper: { margin: number; }; icon: { width: number; height: number; }; font: FontStyleTypeModel; } interface dayTimeSchema { infoIcon: { default: { backgroundColor: string; iconColor: string; }; hover: { backgroundColor: string; iconColor: string; }; error: { iconColor: string; }; }; label: { color: string; }; description: { color: string; }; limitSize: { defaultColor: string; errorColor: string; }; errorMessage: { color: string; }; input: inputStates; } interface ModelView { style: { light: dayTimeSchema; dark: dayTimeSchema; }; size: { label: { font: FontStyleTypeModel; }; description: { font: FontStyleTypeModel; }; internalLabel: { inputWrapper: { paddingTop: number; paddingLeft: number; paddingRight: { withInfoIcon: number; withoutInfoIcon: number; }; paddingBottom: number; }; }; s: sizeElementsParams; m: sizeElementsParams; l: sizeElementsParams; }; } export type { tagTypes, InputWithSuggestionsProp, LabelProps, DescriptionProps, WrapperProps, TagWrapperProps, InputFieldProps, kindInteraction, RightIconProps, ContainterProps, ModelView, };