/** * @typedef {Object} OnInputInfo * @property {number} breakLines - Total number of `\n` line breaks in the textarea value. * @property {number} height - Final calculated height (in pixels) applied to the textarea. * @property {number} scrollHeight - Internal scrollHeight before limiting. * @property {number} maxHeight - Maximum allowed height before scrolling is forced. * @property {number} lineHeight - Height of one line of text, computed from CSS. * @property {number} maxRows - Maximum number of visible rows allowed. * @property {number} rows - Effective number of visual rows being used. */ export type OnInputInfo = { /** * - Total number of `\n` line breaks in the textarea value. */ breakLines: number; /** * - Final calculated height (in pixels) applied to the textarea. */ height: number; /** * - Internal scrollHeight before limiting. */ scrollHeight: number; /** * - Maximum allowed height before scrolling is forced. */ maxHeight: number; /** * - Height of one line of text, computed from CSS. */ lineHeight: number; /** * - Maximum number of visible rows allowed. */ maxRows: number; /** * - Effective number of visual rows being used. */ rows: number; }; /** * A lightweight utility class that automatically adjusts the height of a `