docs/plans/2026-04-08-slate-v2-instance-surface-recovery.md
Start True Slate RC tranche 2 by restoring an overrideable editor instance
surface for the methods the current engine already supports.
createEditor() instance methods and helper delegationEditor type and createEditor() instance shapeEditor and Transforms namespace helpers delegate through instance
methods where the engine already supports those seamswithoutNormalizing is still a separate explicit decision unless the current
transaction seam proves it is an honest alias.createEditor() now attaches an overrideable instance surface for the
methods the current engine already supports.Editor.* delegates through that instance seam.Transforms.* stays low-level and unchanged, so the slice restores the
override seam without silently changing transform semantics.slate source barrel again exports the runtime helper surface currently
consumed by sibling packages:
Node, Text, Element, Range, Path, and isObject.deleteBackward, deleteForward,
deleteFragment) is now also restored on the editor instance and on
Editor.* using the current delete transform semantics.withoutNormalizing is now restored as an explicit compatibility alias over
the current transaction boundary.insertBreak and insertSoftBreak are now recovered for the currently
proved top-level block split seam, including edge-position always behavior
at the start and end of a text node.editor.isInline, editor.isVoid, Editor.isInline, Editor.isVoid, and
Editor.isEditor are now restored on the current query seam, with
EditableTextBlocks using editor.isInline as the default runtime fallback
when no explicit isInline prop is supplied.markableVoid is now restored on the current seam, and addMark /
removeMark honor it for the text child inside a void element when the hook
returns true.normalizeNode is now restored as a real outer-transaction multi-pass seam,
and the forced-layout example/runtime proof uses that seam instead of the old
subscribe-based workaround.yarn test:customyarn lint:typescript