## textarea (`poetry_textarea`)

A form control for entering multiple lines of text.

Class: Poetry::Ui::Textarea::Component - BEM block `poetry-ui-textarea`.
- `disabled:` (boolean) - default false - Disables the control and forwards to the native element.
- `invalid:` (boolean) - default false - Marks the field errored (aria-invalid + the destructive ring); set by Field/FormBuilder from model errors.
- `name:` (string) - The submitted field name.
- `placeholder:` (string) - Hint text shown while empty - never a substitute for a label.
- `rows:` (integer) - The initial visual rows - the minimum height under CSS auto-grow, and the fixed size in browsers without it.
- `value:` (string) - The initial text, rendered as the element's content.
- PART `textarea` - The <textarea> element itself - value renders as content; auto-grow is the field-sizing-content CSS property, zero JS
- RULE: Wire through Field/FormBuilder (control_attributes) - never hand-write the aria plumbing.
- RULE: Placeholder is NOT a label - pair with Label/Field always.
- RULE: Use Textarea for free text; Input for single-line; do not bolt a JS autosizer on (auto-grow is CSS).
- RULE: Do not set native required - required flows as aria-required via Field.
