import type { HTMLProps, ReactNode } from 'react'; export type TTextFieldSize = 'sm' | 'md' | 'lg'; export type TTextFieldStatus = 'default' | 'error' | 'success'; export type TTextFieldVariant = 'inline' | 'outline'; export type TTextFieldProps = { /** Set the TextField to have full width */ block?: boolean; /** Set the TextField's caption. Have a certain icon according to the TextField's status */ caption?: ReactNode; /** Set the TextField's caption class name */ captionClassName?: string; /** Set the TextField to be disabled */ disabled?: boolean; /** Set the TextField's hint */ hint?: ReactNode; /** Set the TextField's hint class name */ hintClassName?: string; /** Set the TextField's icon on the left side */ iconLeft?: ReactNode; /** Set the TextField's icon on the right side */ iconRight?: ReactNode; /** Set the TextField's input class name */ inputClassName?: string; /** Set the TextField's label */ label?: ReactNode; /** Set the TextField's label class name */ labelClassName?: string; /** Set the TextField's placeholder */ placeholder?: string; /** Set the TextField's prefix. The prefix is separated from the icons and the TextField's input by a divider */ prefix?: ReactNode; /** Set the TextField's size */ size?: TTextFieldSize; /** Set the TextField's status. This status affects the icon that is shown in caption when the caption is provided */ status?: TTextFieldStatus; /** Set the TextField's suffix. The suffix is separated from the icons and the TextField's input by a divider */ suffix?: ReactNode; /** Set the TextField's variant */ variant?: TTextFieldVariant; } & Omit, 'size' | 'prefix' | 'suffix'>;