Implement text editing: cursor, selection, and keyboard input (Phase 16)
Add full text editing support for <input> and <textarea> elements:
- InputState module in DOM crate tracks cursor position, selection range,
and edited text buffer per form control
- Platform crate: KeyModifiers struct with Cmd/Option/Ctrl/Shift flags,
mouse-down/drag handlers, NSPasteboard clipboard read/write
- Keyboard input: character insertion, Backspace/Delete, Return for textarea
- Cursor movement: arrow keys, Home/End, Cmd+arrows (line start/end),
Option+arrows (word navigation), Cmd+Up/Down (document start/end)
- Text selection: Shift+arrows extend selection, Cmd+A select all,
click to position cursor, double-click to select word, click-drag to
extend selection
- Clipboard: Cmd+C copy, Cmd+X cut, Cmd+V paste via macOS pasteboard
- Rendering: cursor caret and selection highlight in focused text inputs
- Value sync: edited text synced back to DOM value attribute
- 25+ unit tests for cursor movement, selection, editing, word/line
navigation, Unicode handling, and change detection
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>