Anchor in page coordinates.
Bounding box in page coordinates.
Cursor (insertion point). Present only when interactionState === "active"
and the selection is collapsed.
Caret height in page coordinates.
Pixel x within the block (page coordinates, before zoom).
Pixel y within the block (page coordinates, before zoom).
Opaque block identifier. Do not parse; use pageIndex / textBlockId for structured data.
Whether the block is idle, selected (clicked), active (editing), or being moved.
Paragraph-level layout.
Text broken into runs of uniform style — what a renderer needs to draw mixed-styled content (e.g. half a sentence bold, half italic).
Text selection inside this block. Present only when
interactionState === "active" and a non-empty range is selected.
Plain text content of the block.
Per-block rendering state handed to the
UI.ContentEditorSlots#textBlockslot. The SDK still owns gesture recognition, text input / IME, and layout — the slot owns the visual representation.The slot is invoked once per visible text block. Its render function returns a DOM node that the SDK positions as an overlay aligned to the block's bounding box. The customer can render decorations (a selection ring, custom handles, a styled caret) and use CSS to hide the bundled chrome they want to replace.