import { UseInputParameters } from '@mui/base'; import { ForwardedRef, HTMLInputTypeAttribute, InputHTMLAttributes, KeyboardEventHandler } from 'react'; import { CountryCode } from '../../../Base/FlagIcon/FlagIcon.types'; import { IconProps } from '../../../Base/Icon/Icon.types'; import { IconButtonIcon16Props, IconButtonIcon24Props } from '../../Buttons/IconButton/IconButton.types'; export interface CommonTextInputProps extends UseInputParameters { ariaActivedescendant?: string; ariaAutocomplete?: 'none' | 'inline' | 'list' | 'both' | undefined; ariaControls?: string; ariaDescribedby?: string; ariaExpanded?: boolean; autoFocus?: boolean; autocomplete?: string; charLimit?: number; colorScheme?: 'outline' | 'filled'; errorText?: string | string[]; hintText?: string; id: string; label: string; maxLength?: InputHTMLAttributes['maxLength']; name?: string; onKeyDown?: KeyboardEventHandler; progressBar?: React.ReactNode; readonly?: boolean; role?: 'combobox'; withoutFloatingLabel?: boolean; wrapperClassName?: string; } export interface TextInputProps extends CommonTextInputProps { flagIcon?: CountryCode; icon?: IconProps; iconButton?: (IconButtonIcon24Props & { ariaExpanded?: boolean; ariaHaspopup?: boolean; ref?: ForwardedRef; }) | (IconButtonIcon16Props & { ariaExpanded?: boolean; ariaHaspopup?: boolean; ref?: ForwardedRef; }); iconRight?: IconProps; inputFieldType?: HTMLInputTypeAttribute; size?: 'medium' | 'large' | 'small'; }