# DOC-0028 — TextArea Operation / HTML Functional Class

## 0. Document information

- DOC ID: `DOC-0028`
- TOC ID: `TOC-0028`
- UI: `UI-028` / `#028 TextArea`
- Runtime: `BoneTextArea v1.0.13`
- DOC Integration: `1.0.2`
- Normal-use HTML Functional Class: `bf-textarea`
- Shared DOC runtime is referenced, not modified or bundled by this package.

## 1. Responsibility

#028 TextArea is a multiline text input that separates **text being edited** from **text already committed**. A plain Enter inserts a line break; it does not commit.

### 1.1 Terms used in this guide

- **source textarea** — the `<textarea class="bf-textarea">` written in HTML.
- **runtime TextArea** — the generated `.bone-textarea` that is actually displayed.
- **editingValue** — the current uncommitted multiline text.
- **committedValue** — the last value accepted by shortcut, blur, or `commit()`. OUT delivery uses this value.
- **commit** — validate editingValue and accept it as committedValue.
- **Validation** — required/minlength/maxlength input rules.
- **Security** — mandatory safety checks such as control characters, malformed Unicode, unsafe object access, and security length limits.
- **Delivery Channel** — #002 Joint OUT delivery with WAIT/FIFO/BLOCKED states.

### 1.2 Basic operation

1. Typing changes editingValue.
2. Enter inserts a line break.
3. Ctrl/Cmd+Enter commits with the default shortcut.
4. Blur commits while `blurCommit=true`.
5. Validation failure blocks commit while `commitInvalid=false`; the previous committedValue remains.
6. Escape restores editingValue from committedValue.
7. Security rejection is never bypassed by `commitInvalid=true`.

## 2. HTML Functional Class `bf-textarea`

### 2.1 Minimal use

```html
<textarea class="bf-textarea">Line 1
Line 2</textarea>
```

The single normal-use class is `bf-textarea`. It mounts the real BoneTextArea v1.0.13 runtime and mirrors committed values back to the declarative textarea anchor. The legacy API-per-class bridge is not the normal-use contract.

[[BF-TEXTAREA-SAMPLE:basic]]

### 2.2 Configured use

```html
<textarea class="bf-textarea" data-rows="10" data-wrap="off"
  data-resize="both" data-commit-shortcut="ctrl-or-meta-enter"
  data-theme="neon" data-width="520" data-height="220">Multiline
sample</textarea>
```

### 2.3 Setting → live result samples

[[BF-TEXTAREA-SAMPLE:basic]]

[[BF-TEXTAREA-SAMPLE:rows]]

[[BF-TEXTAREA-SAMPLE:cols]]

[[BF-TEXTAREA-SAMPLE:wrapSoft]]

[[BF-TEXTAREA-SAMPLE:wrapHard]]

[[BF-TEXTAREA-SAMPLE:wrapOff]]

[[BF-TEXTAREA-SAMPLE:resizeNone]]

[[BF-TEXTAREA-SAMPLE:resizeVertical]]

[[BF-TEXTAREA-SAMPLE:resizeHorizontal]]

[[BF-TEXTAREA-SAMPLE:resizeBoth]]

[[BF-TEXTAREA-SAMPLE:scrollAuto]]

[[BF-TEXTAREA-SAMPLE:scrollHidden]]

[[BF-TEXTAREA-SAMPLE:scrollScroll]]

[[BF-TEXTAREA-SAMPLE:commitCtrl]]

[[BF-TEXTAREA-SAMPLE:commitMeta]]

[[BF-TEXTAREA-SAMPLE:commitBoth]]

[[BF-TEXTAREA-SAMPLE:commitNone]]

[[BF-TEXTAREA-SAMPLE:required]]

[[BF-TEXTAREA-SAMPLE:disabled]]

[[BF-TEXTAREA-SAMPLE:readonly]]

[[BF-TEXTAREA-SAMPLE:select]]

[[BF-TEXTAREA-SAMPLE:blurNo]]

[[BF-TEXTAREA-SAMPLE:commitInvalid]]

[[BF-TEXTAREA-SAMPLE:themeDefault]]

[[BF-TEXTAREA-SAMPLE:themeDark]]

[[BF-TEXTAREA-SAMPLE:themeLight]]

[[BF-TEXTAREA-SAMPLE:themeNeon]]

[[BF-TEXTAREA-SAMPLE:bgTransparent]]

[[BF-TEXTAREA-SAMPLE:bgRgba]]

[[BF-TEXTAREA-SAMPLE:appNormal]]

[[BF-TEXTAREA-SAMPLE:appFlat]]

[[BF-TEXTAREA-SAMPLE:appBorderless]]

[[BF-TEXTAREA-SAMPLE:alignAuto]]

[[BF-TEXTAREA-SAMPLE:alignLeft]]

[[BF-TEXTAREA-SAMPLE:alignCenter]]

[[BF-TEXTAREA-SAMPLE:alignRight]]

[[BF-TEXTAREA-SAMPLE:size]]

[[BF-TEXTAREA-SAMPLE:activeNeon]]

[[BF-TEXTAREA-SAMPLE:activeBlink]]

[[BF-TEXTAREA-SAMPLE:hoverNeon]]

[[BF-TEXTAREA-SAMPLE:hoverSpin]]

[[BF-TEXTAREA-SAMPLE:hoverCross]]

[[BF-TEXTAREA-SAMPLE:hoverBlink]]

[[BF-TEXTAREA-SAMPLE:inheritParent]]

[[BF-TEXTAREA-SAMPLE:security]]

[[BF-TEXTAREA-SAMPLE:posTopLeft]]

[[BF-TEXTAREA-SAMPLE:posTopCenter]]

[[BF-TEXTAREA-SAMPLE:posTopRight]]

[[BF-TEXTAREA-SAMPLE:posMiddleLeft]]

[[BF-TEXTAREA-SAMPLE:posCenter]]

[[BF-TEXTAREA-SAMPLE:posMiddleRight]]

[[BF-TEXTAREA-SAMPLE:posBottomLeft]]

[[BF-TEXTAREA-SAMPLE:posBottomCenter]]

[[BF-TEXTAREA-SAMPLE:posBottomRight]]



### 2.4 All 38 declarative properties

- `placeholder` — type `string` / default `""` / HTML `placeholder / Runtime behavior is detailed in section 3.
- `disabled` — type `boolean` / default `false` / HTML `disabled / Runtime behavior is detailed in section 3.
- `readonly` — type `boolean` / default `false` / HTML `readonly / Runtime behavior is detailed in section 3.
- `required` — type `boolean` / default `false` / HTML `required / Runtime behavior is detailed in section 3.
- `minlength` — type `integer/null` / default `null` / HTML `minlength / Runtime behavior is detailed in section 3.
- `maxlength` — type `integer/null` / default `null` / HTML `maxlength / Runtime behavior is detailed in section 3.
- `name` — type `string` / default `""` / HTML `name / Runtime behavior is detailed in section 3.
- `autocomplete` — type `string` / default `"off"` / HTML `autocomplete / Runtime behavior is detailed in section 3.
- `spellcheck` — type `boolean` / default `false` / HTML `spellcheck / Runtime behavior is detailed in section 3.
- `inputMode` — type `string` / default `"text"` / HTML `inputmode / Runtime behavior is detailed in section 3.
- `rows` — type `integer` / default `6` / HTML `rows / Runtime behavior is detailed in section 3.
- `cols` — type `integer` / default `40` / HTML `cols / Runtime behavior is detailed in section 3.
- `wrap` — type `enum` / default `"soft"` / HTML `wrap / Runtime behavior is detailed in section 3.
- `resize` — type `enum` / default `"vertical"` / HTML `data-resize` / Runtime behavior is detailed in section 3.
- `scroll` — type `enum` / default `"auto"` / HTML `data-scroll` / Runtime behavior is detailed in section 3.
- `commitShortcut` — type `enum` / default `"ctrl-or-meta-enter"` / HTML `data-commit-shortcut` / Runtime behavior is detailed in section 3.
- `blurCommit` — type `boolean` / default `true` / HTML `data-blur-commit` / Runtime behavior is detailed in section 3.
- `commitInvalid` — type `boolean` / default `false` / HTML `data-commit-invalid` / Runtime behavior is detailed in section 3.
- `selectOnFocus` — type `boolean` / default `false` / HTML `data-select-on-focus` / Runtime behavior is detailed in section 3.
- `ariaLabel` — type `string` / default `""` / HTML `aria-label / Runtime behavior is detailed in section 3.
- `className` — type `string` / default `""` / HTML `data-class-name` / Runtime behavior is detailed in section 3.
- `theme` — type `enum` / default `"default"` / HTML `data-theme` / Runtime behavior is detailed in section 3.
- `backgroundColor` — type `color` / default `"theme"` / HTML `data-background-color` / Runtime behavior is detailed in section 3.
- `appearance` — type `enum` / default `"normal"` / HTML `data-appearance` / Runtime behavior is detailed in section 3.
- `inheritParent` — type `boolean` / default `false` / HTML `data-inherit-parent` / Runtime behavior is detailed in section 3.
- `width` — type `number px` / default `480` / HTML `data-width` / Runtime behavior is detailed in section 3.
- `height` — type `number px` / default `160` / HTML `data-height` / Runtime behavior is detailed in section 3.
- `position` — type `enum` / default `"center"` / HTML `data-position` / Runtime behavior is detailed in section 3.
- `inputAlign` — type `enum` / default `"auto"` / HTML `data-input-align` / Runtime behavior is detailed in section 3.
- `activeBorderEffect` — type `enum` / default `"normal"` / HTML `data-active-border-effect` / Runtime behavior is detailed in section 3.
- `activeEffectColor` — type `color` / default `"theme"` / HTML `data-active-effect-color` / Runtime behavior is detailed in section 3.
- `activeEffectDirection` — type `enum` / default `"clockwise"` / HTML `data-active-effect-direction` / Runtime behavior is detailed in section 3.
- `activeEffectSpeed` — type `enum` / default `"normal"` / HTML `data-active-effect-speed` / Runtime behavior is detailed in section 3.
- `mouseoverBorderEffect` — type `enum` / default `"normal"` / HTML `data-mouseover-border-effect` / Runtime behavior is detailed in section 3.
- `mouseoverEffectColor` — type `color` / default `"theme"` / HTML `data-mouseover-effect-color` / Runtime behavior is detailed in section 3.
- `mouseoverEffectDirection` — type `enum` / default `"clockwise"` / HTML `data-mouseover-effect-direction` / Runtime behavior is detailed in section 3.
- `mouseoverEffectSpeed` — type `enum` / default `"normal"` / HTML `data-mouseover-effect-speed` / Runtime behavior is detailed in section 3.
- `securityMaxLength` — type `integer` / default `262144` / HTML `data-security-max-length` / Runtime behavior is detailed in section 3.

## 3. Default properties — 38 detailed references

### 3.1 `placeholder`

- Type: `string`
- Runtime default: `""`
- HTML: `placeholder / data-placeholder`
- Purpose: Applies the formal `placeholder` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `placeholder="Enter multiline text"`
- Result: The `placeholder` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.2 `disabled`

- Type: `boolean`
- Runtime default: `false`
- HTML: `disabled / data-disabled`
- Purpose: Applies the formal `disabled` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-disabled="true"`
- Result: The `disabled` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.3 `readonly`

- Type: `boolean`
- Runtime default: `false`
- HTML: `readonly / data-readonly`
- Purpose: Applies the formal `readonly` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-readonly="true"`
- Result: The `readonly` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.4 `required`

- Type: `boolean`
- Runtime default: `false`
- HTML: `required / data-required`
- Purpose: Applies the formal `required` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-required="true"`
- Result: The `required` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.5 `minlength`

- Type: `integer/null`
- Runtime default: `null`
- HTML: `minlength / data-minlength`
- Purpose: Applies the formal `minlength` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-minlength="3"`
- Result: The `minlength` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.6 `maxlength`

- Type: `integer/null`
- Runtime default: `null`
- HTML: `maxlength / data-maxlength`
- Purpose: Applies the formal `maxlength` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-maxlength="100"`
- Result: The `maxlength` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.7 `name`

- Type: `string`
- Runtime default: `""`
- HTML: `name / data-name`
- Purpose: Applies the formal `name` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `name="memo"`
- Result: The `name` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.8 `autocomplete`

- Type: `string`
- Runtime default: `"off"`
- HTML: `autocomplete / data-autocomplete`
- Purpose: Applies the formal `autocomplete` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `autocomplete="off"`
- Result: The `autocomplete` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.9 `spellcheck`

- Type: `boolean`
- Runtime default: `false`
- HTML: `spellcheck / data-spellcheck`
- Purpose: Applies the formal `spellcheck` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-spellcheck="true"`
- Result: The `spellcheck` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.10 `inputMode`

- Type: `string`
- Runtime default: `"text"`
- HTML: `inputmode / data-input-mode`
- Purpose: Applies the formal `inputMode` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-input-mode="text"`
- Result: The `inputMode` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.11 `rows`

- Type: `integer`
- Runtime default: `6`
- HTML: `rows / data-rows`
- Purpose: Applies the formal `rows` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-rows="10"`
- Result: The `rows` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.12 `cols`

- Type: `integer`
- Runtime default: `40`
- HTML: `cols / data-cols`
- Purpose: Applies the formal `cols` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-cols="60"`
- Result: The `cols` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.13 `wrap`

- Type: `enum`
- Runtime default: `"soft"`
- HTML: `wrap / data-wrap`
- Purpose: Applies the formal `wrap` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-wrap="off"`
- Result: The `wrap` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.14 `resize`

- Type: `enum`
- Runtime default: `"vertical"`
- HTML: `data-resize`
- Purpose: Applies the formal `resize` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-resize="both"`
- Result: The `resize` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.15 `scroll`

- Type: `enum`
- Runtime default: `"auto"`
- HTML: `data-scroll`
- Purpose: Applies the formal `scroll` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-scroll="scroll"`
- Result: The `scroll` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.16 `commitShortcut`

- Type: `enum`
- Runtime default: `"ctrl-or-meta-enter"`
- HTML: `data-commit-shortcut`
- Purpose: Applies the formal `commitShortcut` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-commit-shortcut="ctrl-enter"`
- Result: The `commitShortcut` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.17 `blurCommit`

- Type: `boolean`
- Runtime default: `true`
- HTML: `data-blur-commit`
- Purpose: Applies the formal `blurCommit` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-blur-commit="false"`
- Result: The `blurCommit` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.18 `commitInvalid`

- Type: `boolean`
- Runtime default: `false`
- HTML: `data-commit-invalid`
- Purpose: Applies the formal `commitInvalid` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-commit-invalid="true"`
- Result: The `commitInvalid` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.19 `selectOnFocus`

- Type: `boolean`
- Runtime default: `false`
- HTML: `data-select-on-focus`
- Purpose: Applies the formal `selectOnFocus` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-select-on-focus="true"`
- Result: The `selectOnFocus` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.20 `ariaLabel`

- Type: `string`
- Runtime default: `""`
- HTML: `aria-label / data-aria-label`
- Purpose: Applies the formal `ariaLabel` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-aria-label="Notes"`
- Result: The `ariaLabel` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.21 `className`

- Type: `string`
- Runtime default: `""`
- HTML: `data-class-name`
- Purpose: Applies the formal `className` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-class-name="memo-field"`
- Result: The `className` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.22 `theme`

- Type: `enum`
- Runtime default: `"default"`
- HTML: `data-theme`
- Purpose: Applies the formal `theme` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-theme="neon"`
- Result: The `theme` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.23 `backgroundColor`

- Type: `color`
- Runtime default: `"theme"`
- HTML: `data-background-color`
- Purpose: Applies the formal `backgroundColor` option to the live BoneTextArea runtime.
- Accepted values / range: theme / transparent / #RGB / #RGBA / #RRGGBB / #RRGGBBAA。
- Concrete example: `data-background-color="#26354acc"`
- Result: The `backgroundColor` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.24 `appearance`

- Type: `enum`
- Runtime default: `"normal"`
- HTML: `data-appearance`
- Purpose: Applies the formal `appearance` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-appearance="borderless"`
- Result: The `appearance` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.25 `inheritParent`

- Type: `boolean`
- Runtime default: `false`
- HTML: `data-inherit-parent`
- Purpose: Applies the formal `inheritParent` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-inherit-parent="true"`
- Result: The `inheritParent` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.26 `width`

- Type: `number px`
- Runtime default: `480`
- HTML: `data-width`
- Purpose: Applies the formal `width` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-width="600"`
- Result: The `width` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.27 `height`

- Type: `number px`
- Runtime default: `160`
- HTML: `data-height`
- Purpose: Applies the formal `height` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-height="240"`
- Result: The `height` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.28 `position`

- Type: `enum`
- Runtime default: `"center"`
- HTML: `data-position`
- Purpose: Applies the formal `position` option to the live BoneTextArea runtime.
- Accepted values / range: top-left / top-center / top-right / middle-left / center / middle-right / bottom-left / bottom-center / bottom-right。
- Concrete example: `data-position="bottom-right"`
- Result: The `position` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.29 `inputAlign`

- Type: `enum`
- Runtime default: `"auto"`
- HTML: `data-input-align`
- Purpose: Applies the formal `inputAlign` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-input-align="center"`
- Result: The `inputAlign` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.30 `activeBorderEffect`

- Type: `enum`
- Runtime default: `"normal"`
- HTML: `data-active-border-effect`
- Purpose: Applies the formal `activeBorderEffect` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-active-border-effect="neon"`
- Result: The `activeBorderEffect` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.31 `activeEffectColor`

- Type: `color`
- Runtime default: `"theme"`
- HTML: `data-active-effect-color`
- Purpose: Applies the formal `activeEffectColor` option to the live BoneTextArea runtime.
- Accepted values / range: theme / HEX(#RGB/#RGBA/#RRGGBB/#RRGGBBAA)。
- Concrete example: `data-active-effect-color="#35f4ff"`
- Result: The `activeEffectColor` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.32 `activeEffectDirection`

- Type: `enum`
- Runtime default: `"clockwise"`
- HTML: `data-active-effect-direction`
- Purpose: Applies the formal `activeEffectDirection` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-active-effect-direction="counterclockwise"`
- Result: The `activeEffectDirection` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.33 `activeEffectSpeed`

- Type: `enum`
- Runtime default: `"normal"`
- HTML: `data-active-effect-speed`
- Purpose: Applies the formal `activeEffectSpeed` option to the live BoneTextArea runtime.
- Accepted values / range: slow=2s / normal=1.2s / fast=.65s。
- Concrete example: `data-active-effect-speed="fast"`
- Result: The `activeEffectSpeed` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.34 `mouseoverBorderEffect`

- Type: `enum`
- Runtime default: `"normal"`
- HTML: `data-mouseover-border-effect`
- Purpose: Applies the formal `mouseoverBorderEffect` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-mouseover-border-effect="spin"`
- Result: The `mouseoverBorderEffect` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.35 `mouseoverEffectColor`

- Type: `color`
- Runtime default: `"theme"`
- HTML: `data-mouseover-effect-color`
- Purpose: Applies the formal `mouseoverEffectColor` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-mouseover-effect-color="#ff33cc"`
- Result: The `mouseoverEffectColor` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.36 `mouseoverEffectDirection`

- Type: `enum`
- Runtime default: `"clockwise"`
- HTML: `data-mouseover-effect-direction`
- Purpose: Applies the formal `mouseoverEffectDirection` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-mouseover-effect-direction="counterclockwise"`
- Result: The `mouseoverEffectDirection` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.37 `mouseoverEffectSpeed`

- Type: `enum`
- Runtime default: `"normal"`
- HTML: `data-mouseover-effect-speed`
- Purpose: Applies the formal `mouseoverEffectSpeed` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-mouseover-effect-speed="fast"`
- Result: The `mouseoverEffectSpeed` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.

### 3.38 `securityMaxLength`

- Type: `integer`
- Runtime default: `262144`
- HTML: `data-security-max-length`
- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Accepted values / range: The exact type, range, enum set, and conflicts are enforced by `BoneTextArea.normalizeOptions()` and documented in the corresponding property reference.
- Concrete example: `data-security-max-length="4096"`
- Result: The `securityMaxLength` contract is reflected by the real runtime; verify it with the live sample or public state getter.
- Invalid values are rejected with the corresponding `TEXTAREA_*` error; invalid configuration is not silently accepted.
- Related/conflicts: normalized Runtime options are authoritative; see inheritParent, Security, Validation and #022 sections.


## 4. Multiline properties

`rows` and `cols` are integer hints in 1..1000. `wrap` is `soft / hard / off`. `resize` is `none / vertical / horizontal / both`. `scroll` is `auto / hidden / scroll`. With `inheritParent=true`, parent sizing wins and resize becomes none.

## 5. Commit shortcut — all 4 values

- `ctrl-or-meta-enter` — default; Ctrl+Enter or Cmd+Enter commits.
- `ctrl-enter` — Ctrl+Enter only.
- `meta-enter` — Meta/Cmd+Enter only.
- `none` — no shortcut commit; use blur or API.

Plain Enter always inserts a newline. IME composition suppresses shortcut commit until compositionend. Escape restores the committed value.

## 6. Theme / appearance / background

Theme values:

- `default` — standard Bone Flow palette.
- `dark` — dark palette.
- `light` — light palette.
- `neon` — neon palette and accent.

Appearance values:

- `normal` — default framed appearance.
- `flat` — flat appearance.
- `borderless` — border-suppressed appearance.
- `inherit` — compatibility input normalized to normal + inheritParent.

Background accepts `theme / transparent / #RGB / #RGBA / #RRGGBB / #RRGGBBAA`.

## 7. Position and alignment

All 9 positions are supported: `top-left / top-center / top-right / middle-left / center / middle-right / bottom-left / bottom-center / bottom-right`. inputAlign is `auto / left / center / right`; auto resolves to left. Parent text-align wins with inheritParent.

## 8. Active / Mouse Over Effects

Active border effect values:

- `normal`
- `neon`
- `blink`

Mouseover uses #022 and supports:

- `normal`
- `neon`
- `spin`
- `cross`
- `blink`

Directions are `clockwise / counterclockwise`; speeds are `slow / normal / fast`.

## 9. ColorPicker boundary

BoneTextArea consumes color strings and does not depend on #040. A caller may use #040 solid color RETURN as the source for `backgroundColor`, `activeEffectColor`, or `mouseoverEffectColor`.

## 10. Security

Newlines and CRLF are accepted. HTML-like strings remain text. Objects are not string-coerced, getters are not invoked, Proxy traps are safely rejected, dangerous control characters, unpaired surrogates and over-limit strings are rejected while preserving committed state.

## 11. inheritParent

Parent background, text color, border, radius, text-align, width and height are synchronized. Parent sizing overrides standalone width/height/resize/inputAlign.

## 12. JavaScript-only callbacks — 15

#### 12.1 `onInput`

- Fires on the same Runtime dispatch path as `bone-textarea:input`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onInput: detail => console.log(detail)});`

#### 12.2 `onChange`

- Fires on the same Runtime dispatch path as `bone-textarea:change`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onChange: detail => console.log(detail)});`

#### 12.3 `onCommit`

- Fires on the same Runtime dispatch path as `bone-textarea:commit`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onCommit: detail => console.log(detail)});`

#### 12.4 `onInvalid`

- Fires on the same Runtime dispatch path as `bone-textarea:invalid`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onInvalid: detail => console.log(detail)});`

#### 12.5 `onFocus`

- Fires on the same Runtime dispatch path as `bone-textarea:focus`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onFocus: detail => console.log(detail)});`

#### 12.6 `onBlur`

- Fires on the same Runtime dispatch path as `bone-textarea:blur`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onBlur: detail => console.log(detail)});`

#### 12.7 `onCompositionstart`

- Fires on the same Runtime dispatch path as `bone-textarea:compositionstart`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onCompositionstart: detail => console.log(detail)});`

#### 12.8 `onCompositionupdate`

- Fires on the same Runtime dispatch path as `bone-textarea:compositionupdate`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onCompositionupdate: detail => console.log(detail)});`

#### 12.9 `onCompositionend`

- Fires on the same Runtime dispatch path as `bone-textarea:compositionend`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onCompositionend: detail => console.log(detail)});`

#### 12.10 `onReset`

- Fires on the same Runtime dispatch path as `bone-textarea:reset`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onReset: detail => console.log(detail)});`

#### 12.11 `onInAccepted`

- Fires on the same Runtime dispatch path as `bone-textarea:in-accepted`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onInAccepted: detail => console.log(detail)});`

#### 12.12 `onInRejected`

- Fires on the same Runtime dispatch path as `bone-textarea:in-rejected`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onInRejected: detail => console.log(detail)});`

#### 12.13 `onSecurityRejected`

- Fires on the same Runtime dispatch path as `bone-textarea:security-rejected`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onSecurityRejected: detail => console.log(detail)});`

#### 12.14 `onDeliveryState`

- Fires on the same Runtime dispatch path as `bone-textarea:delivery-state`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onDeliveryState: detail => console.log(detail)});`

#### 12.15 `onDelivery`

- Fires on the same Runtime dispatch path as `bone-textarea:delivery`.
- Common payload: `componentId / componentName / version / boneId / boneType`, plus event-specific detail.
- State: callback is a notification path, not permission to mutate internal DOM.
- Example: `BoneTextArea.create(bone, {onDelivery: detail => console.log(detail)});`


## 13. Joint IN

`applyJointInput()` validates untrusted payloads. Accepted input updates editing/committed/Bone values; rejected input returns blocked rejection without modifying the previous committed value.

## 14. OUT WAIT / FIFO / BLOCKED

Connect with `connectOutput()`. When targetReady=false, committed outputs remain queued and the connection stays alive. Once ready, #002 delivers FIFO. Guard rejection produces BLOCKED without delivery; `clearOutputBlock()` clears the block.

## 15. Operation

Type multiline content, use Enter for newline, configured shortcut/blur/API for commit, Escape for reset-to-committed, selection/focus APIs for editing control, and destroy for cleanup.

## 16. Events / callbacks

Events are dispatched on `bone-textarea:*` paths. Callbacks are notifications tied to the same formal state transitions.

## 17. Public API — 35

#### 17.1 `defaults()`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: use the parameters shown in the API signature and pass values that satisfy the documented runtime contract.
- Returns: `Object`.
- When to use: use `defaults()` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `const defaults = BoneTextArea.defaults();`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.2 `normalizeOptions(options)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: options: plain object.
- Returns: `Object`.
- When to use: use `normalizeOptions(options)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.normalizeOptions({rows:10,wrap:"soft"});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.3 `validateValue(value, options)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: value, options.
- Returns: `Validation Object`.
- When to use: use `validateValue(value, options)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.validateValue("A\nB", {required:true});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.4 `inspectUntrustedText(value, limit)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: value, limit.
- Returns: `Inspection Object`.
- When to use: use `inspectUntrustedText(value, limit)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.inspectUntrustedText("A\nB", 1024);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.5 `create(boneInput, options)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: boneInput, options.
- Returns: `HTMLElement`.
- When to use: use `create(boneInput, options)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `const box = BoneTextArea.create(bone, {rows:8});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.6 `isInstance(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `boolean`.
- When to use: use `isInstance(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.isInstance(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.7 `getInput(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `HTMLTextAreaElement`.
- When to use: use `getInput(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `const ta = BoneTextArea.getInput(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.8 `getValue(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `string`.
- When to use: use `getValue(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getValue(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.9 `getEditingValue(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `string`.
- When to use: use `getEditingValue(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getEditingValue(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.10 `getCommittedValue(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `string`.
- When to use: use `getCommittedValue(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getCommittedValue(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.11 `getBone(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `Object`.
- When to use: use `getBone(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getBone(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.12 `getOptions(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `Object`.
- When to use: use `getOptions(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getOptions(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.13 `getState(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: instance root.
- Returns: `Object`.
- When to use: use `getState(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getState(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.14 `setValue(element,value,options)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,value,options.
- Returns: `string`.
- When to use: use `setValue(element,value,options)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.setValue(box,"A\nB",{emit:false});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.15 `setOptions(element,patch)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,patch.
- Returns: `Object`.
- When to use: use `setOptions(element,patch)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.setOptions(box,{rows:12,wrap:"off"});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.16 `applyBone(element,boneInput)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,boneInput.
- Returns: `Object`.
- When to use: use `applyBone(element,boneInput)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.applyBone(box,{id:"x",type:"TEXTAREA",value:"A\nB"});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.17 `applyJointInput(element,payload)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,payload.
- Returns: `Result Object`.
- When to use: use `applyJointInput(element,payload)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.applyJointInput(box,{source:"joint",value:"A\nB",state:{status:"connected"}});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.18 `buildOutput(element,source)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,source.
- Returns: `Object`.
- When to use: use `buildOutput(element,source)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.buildOutput(box,"user");`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.19 `connectOutput(element,options)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,{targetReady,guard,deliver,onStateChange}.
- Returns: `State`.
- When to use: use `connectOutput(element,options)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.connectOutput(box,{targetReady:false,deliver:p=>console.log(p.value)});`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.20 `disconnectOutput(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `boolean`.
- When to use: use `disconnectOutput(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.disconnectOutput(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.21 `setTargetReady(element,ready)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,boolean.
- Returns: `State`.
- When to use: use `setTargetReady(element,ready)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.setTargetReady(box,true);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.22 `clearOutputBlock(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: use the parameters shown in the API signature and pass values that satisfy the documented runtime contract.
- Returns: `State`.
- When to use: use `clearOutputBlock(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.clearOutputBlock(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.23 `getOutputState(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `Object`.
- When to use: use `getOutputState(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getOutputState(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.24 `getOutputQueue(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `Array`.
- When to use: use `getOutputQueue(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getOutputQueue(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.25 `commit(element,source)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,source.
- Returns: `Commit Result`.
- When to use: use `commit(element,source)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.commit(box,"api");`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.26 `reset(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `string`.
- When to use: use `reset(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.reset(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.27 `validate(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `Validation Object`.
- When to use: use `validate(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.validate(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.28 `focus(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `void`.
- When to use: use `focus(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.focus(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.29 `blur(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `void`.
- When to use: use `blur(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.blur(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.30 `select(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `void`.
- When to use: use `select(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.select(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.31 `setSelectionRange(element,start,end,direction)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,start,end,direction.
- Returns: `void`.
- When to use: use `setSelectionRange(element,start,end,direction)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.setSelectionRange(box,0,3,"forward");`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.32 `getSelection(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `Object`.
- When to use: use `getSelection(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.getSelection(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.33 `setFeedback(element,feedback)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element,plain object.
- Returns: `Object`.
- When to use: use `setFeedback(element,feedback)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
Runtime behavior follows the formal BoneTextArea v1.0.13 contract described by this section.
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.34 `syncParentStyle(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `Object/null`.
- When to use: use `syncParentStyle(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.syncParentStyle(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.

#### 17.35 `destroy(element)`

- Purpose: Applies the formal `securityMaxLength` option to the live BoneTextArea runtime.
- Arguments: element.
- Returns: `true`.
- When to use: use `destroy(element)` for its documented public operation instead of mutating internal DOM.
- State/DOM: uses the formal BoneTextArea v1.0.13 API path; do not replace it with direct internal DOM mutation.
- Errors/rejection: invalid instances, values, options or dependencies are rejected with the corresponding `TEXTAREA_*` error while preserving existing state where possible.
- Example: `BoneTextArea.destroy(box);`
- Checkpoint: verify the result with the relevant public getter such as `getState()`, `getValue()` or `getOutputState()`.


## 18. Error codes

### 18.1 Runtime errors — 42

**`TEXTAREA_UNTRUSTED_RECORD_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_UNTRUSTED_PROPERTY_TRAP`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_UNTRUSTED_PROPERTY_MISSING`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_UNTRUSTED_ACCESSOR_REJECTED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_VALUE_TYPE_REJECTED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_SECURITY_LENGTH_EXCEEDED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_CONTROL_CHARACTER_REJECTED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_UNPAIRED_SURROGATE_REJECTED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_LENGTH_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_INTEGER_RANGE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_SECURITY_LIMIT_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OPTION_TYPE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OPTION_ENUM_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_BACKGROUND_COLOR_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_ACTIVE_EFFECT_COLOR_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_SIZE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OPTIONS_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_MAXLENGTH_SECURITY_RANGE`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_LENGTH_RANGE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: normalizeOptions/create/setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_DEPENDENCY_CORE_MISSING`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_DEPENDENCY_JOINT_MISSING`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_BONE_INPUT_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: create/applyBone.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_BONE_ID_TYPE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: create/applyBone.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_JOINT_STATE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: applyJointInput.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_JOINT_STATE_STATUS_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: applyJointInput.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_JOINT_STATE_REASON_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: applyJointInput.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_JOINT_INPUT_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: applyJointInput.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_JOINT_SOURCE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: applyJointInput.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_REQUIRED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_MINLENGTH`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_MAXLENGTH`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_022_DEPENDENCY_REQUIRED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_INSTANCE_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_DOM_REQUIRED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_IN_REJECTED`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: inspectUntrustedText/applyJointInput/setValue.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OUTPUT_OPTIONS_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OUTPUT_GUARD_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OUTPUT_DELIVER_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OUTPUT_STATE_CALLBACK_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_OUTPUT_CHANNEL_UNBOUND`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: raised from the documented option, security, instance, Joint, or delivery validation path.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_EXISTING_VALUE_SECURITY_LIMIT`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: setOptions.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.

**`TEXTAREA_FEEDBACK_INVALID`**
- Meaning: Runtime rejected the corresponding invalid contract.
- Path: setFeedback.
- Invalid example: pass a value outside the documented type/range/structure.
- Correct example/fix: follow the documented property/API/security contract.
- Impact: invalid state is not silently applied; existing state is preserved where the Runtime contract specifies preservation.


### 18.2 HTML Functional Class integration errors

- `TEXTAREA_FUNCTIONAL_CLASS_RUNTIME_MISSING`: load BoneTextArea before the functional class bridge.
- `TEXTAREA_FUNCTIONAL_CLASS_ANCHOR_INVALID`: mount an Element carrying `bf-textarea`.
- `TEXTAREA_FUNCTIONAL_CLASS_BOOLEAN_INVALID`: use a recognized Boolean token.

## 19. Lifecycle

create → edit → validate/commit → Joint delivery → destroy. destroy disposes delivery, detaches #022 if attached, unregisters the instance and removes Runtime DOM.

## 20. Troubleshooting

Plain Enter not committing is correct. Check commitShortcut for shortcut behavior, wrap/scroll for horizontal lines, resize/inheritParent for resize behavior, #022 loading for hover effects, and the formal DOC source path if the guide cannot load DOC-0028.

## 21. Responsibility boundaries

#001 normalizes Bone data; #002 owns delivery and connection states; #017 owns text display boundary; #022 owns mouseover border visuals; #040 may supply caller-side solid colors; #028 owns multiline input/edit/commit/validation/security.
