export enum TextInputSize { SMALL = 'sm', MEDIUM = 'md', LARGE = 'lg', } export enum TextInputState { DEFAULT = 'default', HOVER = 'hover', FOCUS = 'focus', ERROR = 'error', DISABLED = 'disabled', } export enum TextInputGroupPosition { CENTER = 'center', LEFT = 'left', RIGHT = 'right', } export type TextInputProps = { label?: string sublabel?: string hintText?: string helpIconHintText?: string error?: boolean errorMessage?: string size?: TextInputSize leftSlot?: React.ReactNode rightSlot?: React.ReactNode value: string onChange: (e: React.ChangeEvent) => void onBlur?: (e: React.FocusEvent) => void onFocus?: (e: React.FocusEvent) => void cursor?: 'text' | 'pointer' | 'default' | 'not-allowed' passwordToggle?: boolean textInputGroupPosition?: TextInputGroupPosition } & Omit< React.InputHTMLAttributes, 'size' | 'style' | 'className' | 'onBlur' | 'onFocus' >