import { default as React } from 'react'; /** Tracking event data for textarea interactions */ export interface TextAreaTrackingData { /** Action performed */ action: 'focus' | 'blur' | 'change'; /** Optional custom label for tracking */ trackingLabel?: string; /** Optional component context */ componentName?: string; } export interface TextAreaProps { /** Current value */ value: string; /** Callback when value changes */ onChange: (value: string) => void; /** Placeholder text */ placeholder?: string; /** Number of visible rows */ rows?: number; /** Disabled state */ disabled?: boolean; /** Read-only state */ readOnly?: boolean; /** Show character count */ showCount?: boolean; /** Maximum character count */ maxLength?: number; /** Resize behavior */ resize?: 'none' | 'vertical' | 'horizontal' | 'both'; /** Size variant */ size?: 'sm' | 'md' | 'lg'; /** Additional className */ className?: string; /** Additional textarea props */ textareaProps?: React.TextareaHTMLAttributes; /** Optional callback for tracking textarea interactions */ onTrack?: (data: TextAreaTrackingData) => void; /** Custom label for tracking */ trackingLabel?: string; /** Component name for tracking context */ componentName?: string; } /** * TextArea Component * * Multi-line text input with character counting, resize options, * and consistent styling across the application. * * @example * ```tsx *