import { FC, ChangeEvent, FocusEvent, ReactNode } from 'react'; import { ResponsiveProp } from '../../types'; import { BoxProps } from '../Box/Box'; export declare type TextareaInputSize = 'sm' | 'md' | 'lg'; export interface TextareaInputProps extends Omit { /** * The input's id attribute. Used to programmatically tie the input with its label. */ id: string; /** * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute. */ label: string; /** * Callback function to call on change event. */ onChange: (event: ChangeEvent) => void; /** * The text value of the input. Required since our Input is a controlled component. */ value: string; /** * The input's 'autocomplete' attribute. */ autoComplete?: boolean | string; /** * Automatically focus the input when the page is loaded. */ autoFocus?: boolean; /** * Custom class to be added to standard input classes. */ className?: string; /** * Mark the input field as invalid and display a validation message. * Pass a string or node to render a validation message below the input. */ error?: ReactNode; /** * Additional clarifying text to help describe the input */ helpText?: ReactNode; /** * Visually hide the label. */ hideLabel?: boolean; /** * The input's disabled attribute */ isDisabled?: boolean; /** * The required and aria-required attributes on the input */ isRequired?: boolean; /** * The input's 'maxlength' attribute. * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value. */ maxLength?: number; /** * The input's 'name' attribute. */ name?: string; /** * Callback function to call on blur event. */ onBlur?: (event: FocusEvent) => void; /** * Callback function to call on focus event. */ onFocus?: (event: FocusEvent) => void; /** * The input placeholder attribute. */ placeholder?: string; /** * Visual indicator that the field is required, that gets appended to the label */ requiredIndicator?: ReactNode; /** * Textarea resize behavior */ resize?: 'vertical' | 'horizontal' | 'none' | 'both'; /** * number of visible text lines for the control. */ rows?: number; /** * The size of the text input. */ size?: TextareaInputSize | ResponsiveProp; /** * Additional props to be spread to rendered element */ [x: string]: any; } export declare const TextareaInput: FC;