refactor: move the text editor surface into beui as TextArea (#71)

* refactor: move the text editor surface into beui as TextArea

editors/text_block was a whole text editor: document layout, painting,
input handling, find and replace, and a block-aware toolbar. Everything
but the block-specific parts now lives in beui.

unstyled::TextArea owns a text-editor-core Core through TextAreaState,
which the caller holds and hands to the component, so a toolbar beside
it runs commands on the same document without going through the view.
It lays the document out with a gutter, wrapping, collapsible sections,
markdown checkboxes and syntax highlighting, answers the keyboard, the
pointer and touch selection handles, and paints through the new
beui::Page display list. Callers name inline and block TextWidgets that
reserve room in the text, put their own canvas items over the laid-out
rects, and take a press on a block widget with on_widget_press.
styled::TextArea adds the theme colours, the copy/cut/select-all menu
and the find and replace bar.

text_block keeps what is about blocks: the BlockDocument, embed
resolution and the embedded child editors, the toolbar, presence, image
paste and drop, and the hex view.

Block widget rectangles now follow the layout rather than being fixed at
the position they were first built at.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SYkjhk42auY2d9om5N7spV

* demo: show the multiline editor in the beui catalog

An Editor card puts a styled::TextArea beside two buttons that run
markdown commands on the TextAreaState the card holds, which is how a
toolbar drives the document it sits next to.

It shares the main panel's flexible height with the rows card rather
than taking a fixed slice out of it, so the panel still fits a short
window, and sits above the cards whose content is taller than the
window it is scrolled in.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SYkjhk42auY2d9om5N7spV

---------

Co-authored-by: Claude <noreply@anthropic.com>
b90d3ccca0pfg committed on 9/22/2026, 12:06:58 AM· committed by GitHubparent813c690
31 files changedLine totals unavailable