import { FormControl } from '@angular/forms'; import { Color } from '@ionic/core'; import { ComponentState } from '../../types'; /** * Metadata for the textarea input component. */ export interface TextareaInputMetadata { /** Associated form control */ control: FormControl; /** Unique token for the input */ token?: string; /** Display label */ label?: string; /** Field name */ name?: string; /** Help text */ hint?: string; /** Input placeholder */ placeholder?: string; /** Field state */ state?: ComponentState; /** Initial value for the field */ value?: string; /** Default value configuration */ withDefault?: string | boolean; /** Number of visible rows */ rows?: number; /** Minimum number of rows (for autoGrow) */ minRows?: number; /** Maximum number of rows (for autoGrow) */ maxRows?: number; /** Auto grow textarea based on content */ autoGrow?: boolean; /** Maximum character count */ maxLength?: number; /** Minimum character count */ minLength?: number; /** Show character counter */ showCounter?: boolean; /** Counter format: 'remaining' shows remaining chars, 'current' shows current/max */ counterFormat?: 'remaining' | 'current'; /** Disable resize */ disableResize?: boolean; /** Input mode for virtual keyboard */ inputMode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'; /** Autocapitalize behavior */ autocapitalize?: 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'; /** Enable spellcheck */ spellcheck?: boolean; /** Wrap mode */ wrap?: 'hard' | 'soft' | 'off'; /** Component color */ color?: Color; /** Fill style */ fill?: 'outline' | 'solid'; /** Label placement */ labelPlacement?: 'fixed' | 'floating' | 'stacked' | 'start' | 'end'; /** Show clear button */ clearOnEdit?: boolean; /** Custom CSS class */ cssClass?: string; /** Content key for reactive label */ labelContentKey?: string; /** Content key for reactive placeholder */ placeholderContentKey?: string; /** Content key for reactive hint */ hintContentKey?: string; /** Component class name for content lookup */ contentClass?: string; /** Custom error messages */ errors?: Record; /** Show validation errors */ showErrors?: boolean; }