import { FormControl } from '@angular/forms'; import { Color } from '@ionic/core'; import { ComponentState } from '../../types'; /** * Metadata for the comment input component. */ export interface CommentInputMetadata { /** Form control for the comment value (optional when used in val-form) */ control?: FormControl; /** Unique token for the input */ token?: string; /** Display label */ label?: string; /** Field name */ name?: string; /** Help text */ hint?: string; /** Placeholder text */ placeholder?: string; /** Field state */ state?: ComponentState; /** Maximum character length */ maxLength?: number; /** Minimum character length */ minLength?: number; /** Number of visible rows */ rows?: number; /** Show character counter */ showCounter?: boolean; /** Counter format (e.g., '{current}/{max}') */ counterFormat?: string; /** Component color */ color?: Color; /** Custom CSS class */ cssClass?: string; /** Fill style */ fill?: 'solid' | 'outline'; /** Content key for reactive label */ contentKey?: string; /** Component class name for content lookup */ contentClass?: string; /** Fallback text if content key is not found */ contentFallback?: string; /** Custom error messages */ errors?: Record; /** Show validation errors */ showErrors?: boolean; } /** * Event emitted when comment input changes. */ export interface CommentInputChangeEvent { /** Current comment value */ value: string; /** Current character count */ length: number; /** Remaining characters (if maxLength is set) */ remaining: number | null; }