Whether an active text block can receive an undo command. Today the undo
stack is text-input scoped and lives inside core — granular emptiness is
not exposed, so this returns true iff a text block is active. A
canRedo counterpart is intentionally not exposed until core reports
actual stack emptiness; it could not answer differently from this method.
Create a new text block at the given anchor. Resolves with the id of the new block, which can immediately be passed to focusBlock or selectAllText.
Delete the currently active or selected block.
Enter "add a new text block" mode — the next pointer down on the page creates a block.
Exit create mode, returning to plain edit mode.
Put the given block into Active state (cursor inside, edit mode). Pass null to clear.
Synchronous read of a single block by id. Narrow on block.type.
Synchronous read of all blocks (or the blocks on one page). Narrow on block.type.
OptionalpageIndex: numberStyle at the cursor / selection inside the active block, or null if no block is active.
Fonts referenced by detected text blocks that could not be matched to an available face. Populates as blocks are interacted with — paragraphs that have not yet been touched are not yet inspected.
Fonts that are embedded in the document as subsets. Populates as blocks are interacted with — see getFontMismatches.
Insert text at the current cursor / over the current selection inside the active block. Mirrors what typing does, but driven from a custom toolbar.
True iff any session — UI or programmatic — is live.
Opening a UI session programmatically: call
instance.setViewState(vs => vs.set('interactionMode', NutrientViewer.InteractionMode.CONTENT_EDITOR)).
Closing: call Instance#saveContentEditingSession or
Instance#discardContentEditingSession.
Whether the session is currently in create mode.
Redo the last undone change in the active text block.
Select every character in the given text block. Await the returned promise before calling setTextStyle; the style then applies to the entire block.
Put the given block into Selected state (clicked, but not in edit mode). Pass null to clear.
Apply layout properties to a specific text block in the active UI session.
Apply list formatting to the selected text in the active block. If no text is selected,
the operation applies to the whole active block. Use "none" to remove list markers.
Select a character range inside the given block. The block must already be
active (in edit mode). Pass null to clear the selection. Character indices
map to the plain-text content returned by
getBlock(id).text.
Apply style to the current UI selection (or to the cursor for next-typed text).
Undo the last change in the active text block (text-input scoped today).
The
instance.contentEditornamespace exposes the headless APIs that let a custom toolbar read state from and write state to the live UI content editor session.Session save/discard/dirty-flag/export and starting a programmatic session stay on
Instanceitself — see Instance#saveContentEditingSession, Instance#discardContentEditingSession, Instance#hasUnsavedContentEditingChanges, Instance#exportContentEditorPDF, and Instance#beginContentEditingSession. This namespace fills the gaps those methods do not cover.The read methods expose the live session — UI or programmatic, whichever is currently active. UI state methods such as selection, focus, text styling, undo, redo, and layout changes require an active UI session. Programmatic sessions should use the ContentEditing.Session returned by Instance#beginContentEditingSession for mutations.
Subscribe to "contentEditor.stateChange" to keep a custom toolbar in sync with state changes.