npm / slate-dom
slate-dom
What changed in slate-dom 0.119 to 0.146, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
5 breaking1 security14 new APIs and options1 performance2 behavior and defaults22 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initslate-dom 0.1462 changes
New APIs and options 1
Adds a tree-walking API to find a node's path, returning undefined when the node is absent; it works without slate-react.
Fixes and other changes 1
Uses Node.findPath as a fallback when rendered node maps are stale.
slate-dom 0.1429 changes
Breaking changes 2
Multi-line plain-text paste now emits an insert_node per middle line instead of a split_node per line, affecting code that matches operation types in apply.
Multi-line plain-text paste outside inlines now calls insertFragment once, so overrides receive these pastes instead of insertText overrides; single-line pastes still use insertText.
New APIs and options 4
Adds a DOM point lookup that returns null instead of throwing when a point cannot be found.
Adds a DOM range lookup that returns null instead of throwing when a range cannot be found.
Adds an event range lookup that returns null instead of throwing when a range cannot be found.
Adds an error handler for broken DOM rendering contracts; errors are passed to the browser's reportError by default.
Performance 1
When pasting multiple lines inside an inline, the middle lines are inserted with one insertNodes call instead of one split per line.
Behavior and default changes 1
Every pasted line now receives the block properties and marks at the caret, including pending editor.marks.
Fixes and other changes 1
Fixes the beforeinput support check so legacy Chrome 75 and older uses the intended beforeinput fallback.
slate-dom 0.1402 changes
Breaking changes 1
When the browser resolves a drop position outside the editor, dropped data goes to the current selection, or the end of the document if there is no selection; internally dragged content stays where it is.
New APIs and options 1
Gained a suppressThrow option that returns null when the range cannot be resolved.
slate-dom 0.1364 changes
Breaking changes 1
Includes text that an input method is still composing.
New APIs and options 2
Returns the range of the word around a point within its block; words can cross mark changes and inline links but stop at voids.
Lets you define your own word characters for word detection.
Behavior and default changes 1
Word deletion, movement, and Editor.before/after/positions use Intl.Segmenter where available, so Chinese, Japanese, and Thai text without spaces is handled one word at a time.
slate-dom 0.1343 changes
New APIs and options 1
Adds Editor.hasRange to core; DOMEditor.hasRange and ReactEditor.hasRange use it, falling back to the path check with older Slate versions.
Fixes and other changes 2
Fixes typing immediately after toggling a mark with a collapsed selection: the caret no longer moves past the previous leaf, closing the soft keyboard, and composition into the new marked text is no longer interrupted.
Copies preserve list containers and list items when a selection spans list items, including nested lists and inline void boundaries; copies within one item retain their existing HTML and plain text.
slate-dom 0.1335 changes
Breaking changes 1
Input, selection, and history events from native contenteditable regions nested inside non-editable containers no longer reach the surrounding Slate editor; Slate text and event hosts remain preserved inside custom editable islands.
Fixes and other changes 4
Returns the correct path when called after an operation but before the editor re-renders, such as in onChange, instead of throwing or returning the old path.
Nodes shared through initialValue are copied so two Slate components given the same value render and edit independently instead of throwing.
Keeps the Firefox caret on the new line without adding zero-width characters to the document, while preserving selection offsets and copied text around the extra rendering newline.
When deleting to the start of a line produces an empty range, deletion falls back to deleting backward by character, allowing empty blocks and block starts to merge with preceding content.
slate-dom 0.1321 changes
Fixes and other changes 1
Copying text containing inline voids, such as mentions, no longer puts each void on its own line in plain text.
slate-dom 0.1312 changes
Fixes and other changes 2
Copying an empty line now produces one blank line in plain text instead of two.
Copying text inside an inline element now keeps that element in the copied HTML, preserving links when pasting into other apps or HTML-based paste handlers.
slate-dom 0.1302 changes
Fixes and other changes 2
Empty blocks are preserved as <br> in copied HTML, preventing pasted content from losing empty lines in Word and other rich-text targets.
Copies node objects already in a document or inserted before, so each position gets its own object and key; the first insertion keeps its object identity.
slate-dom 0.1296 changes
New APIs and options 1
Adds a check for whether the editor has a DOM element.
Fixes and other changes 5
Reads
data-slate-fragmentfrom an HTML attribute only when pasting, so pasted text containing that string no longer makes the paste fail.Keeps the editor's selection when focusing with a void selected by applying the DOM selection after focusing the editable.
Returns false for an editor that is not mounted instead of throwing.
Resolves drop positions inside shadow DOM by passing the editor's shadow root to
caretPositionFromPointwhere supported.Keeps a forward DOM selection ending inside a block void instead of unhanging it to the end of the previous block.
slate-dom 0.1261 changes
Fixes and other changes 1
toSlatePoint now respects suppressThrow when toSlateNode throws, preventing those errors from propagating when suppression is enabled.
slate-dom 0.1243 changes
Security 1
Property accessors are hardened against untrusted keys.
Fixes and other changes 2
Corrects the argument types for the compare and merge options.
Fixes text node lookup for toSlatePoint.
slate-dom 0.1234 changes
New APIs and options 4
Adds an efficient type discriminator for paths; use it instead of Path.isPath whenever possible.
Adds an efficient type discriminator for points; use it instead of Point.isPoint whenever possible.
Adds an efficient type discriminator for ranges; use it instead of Range.isRange whenever possible.
Adds an efficient type discriminator for spans; use it instead of Span.isSpan whenever possible.
slate-dom 0.1191 changes
Fixes and other changes 1
Fixes an editor crash when the editor is inside Shadow DOM and the user types on Android.