docs/plans/2026-04-15-slate-v2-declaration-merging-recovery.md
Recover the legacy declaration-merging typing contract in package code first, then remove the example-side bandaids that only existed because the package surface drifted.
.agents/rules/repair-drift.mdcslate CustomTypes fixtures under
/Users/zbeyens/git/slate/packages/slate/test/interfaces/CustomTypes/Users/zbeyens/git/slate-v2/packages/slate/Users/zbeyens/git/slate-v2/packages/slate-react/Users/zbeyens/git/slate-v2/packages/slate-historyslateslate-react / slate-historyCustomTypes covered more than Editor / Element / Text; it also
covered Node, Point, Range, Selection, and Operation.CustomTypes as a hard cut, so this
work will need doc cleanup after the code truth is restored.RenderElementProps is nongeneric, so narrowing element.type does
not narrow the whole props object in examples like check-lists.slate now restores base aliases and the ExtendedType
seam for editor/element/text/point/range/selection/operation contractsslate-react restores package-side custom-types
augmentation and shared render-element typing; slate-history now composes
from BaseEditor againslate, slate-history,
slate-reactembedsiframeimagesinlinesmentionssearch-highlightingpaste-html still has one red Playwright row, but the failure is a strict
locator ambiguity in the test (textbox.locator('code') resolves to three
nodes), not a typing regression from this recoverycheck-lists still has separate checkbox behavior debt; that proof lane was
not closed by this typing recovery