# What changed in slate-dom

> 45 changes in slate-dom 0.119 to 0.146 from its official release notes, upgrade guides and advisories: 5 breaking, 1 security, 14 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/slate-dom/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## slate-dom 0.146

### New APIs and options

- Adds a tree-walking API to find a node's path, returning undefined when the node is absent; it works without slate-react. (0.146.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.146.0)

### Fixes and other changes

- Uses Node.findPath as a fallback when rendered node maps are stale. (0.146.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.146.0)

## slate-dom 0.142

### Breaking changes

- 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. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)
- 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. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)

### New APIs and options

- Adds a DOM point lookup that returns null instead of throwing when a point cannot be found. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)
- Adds a DOM range lookup that returns null instead of throwing when a range cannot be found. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)
- Adds an event range lookup that returns null instead of throwing when a range cannot be found. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)
- Adds an error handler for broken DOM rendering contracts; errors are passed to the browser's reportError by default. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)

### Performance

- When pasting multiple lines inside an inline, the middle lines are inserted with one insertNodes call instead of one split per line. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)

### Behavior and default changes

- Every pasted line now receives the block properties and marks at the caret, including pending editor.marks. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)

### Fixes and other changes

- Fixes the beforeinput support check so legacy Chrome 75 and older uses the intended beforeinput fallback. (0.142.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.142.0)

## slate-dom 0.140

### Breaking changes

- 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. (0.140.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.140.0)

### New APIs and options

- Gained a suppressThrow option that returns null when the range cannot be resolved. (0.140.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.140.0)

## slate-dom 0.136

### Breaking changes

- Includes text that an input method is still composing. (0.136.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.136.0)

### New APIs and options

- Returns the range of the word around a point within its block; words can cross mark changes and inline links but stop at voids. (0.136.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.136.0)
- Lets you define your own word characters for word detection. (0.136.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.136.0)

### Behavior and default changes

- 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. (0.136.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.136.0)

## slate-dom 0.134

### New APIs and options

- Adds Editor.hasRange to core; DOMEditor.hasRange and ReactEditor.hasRange use it, falling back to the path check with older Slate versions. (0.134.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.134.0)

### Fixes and other changes

- 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. (0.134.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.134.0)
- 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. (0.134.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.134.0)

## slate-dom 0.133

### Breaking changes

- 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. (0.133.5) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.133.5)

### Fixes and other changes

- 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. (0.133.6) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.133.6)
- Nodes shared through initialValue are copied so two Slate components given the same value render and edit independently instead of throwing. (0.133.6) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.133.6)
- 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. (0.133.5) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.133.5)
- 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. (0.133.1) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.133.1)

## slate-dom 0.132

### Fixes and other changes

- Copying text containing inline voids, such as mentions, no longer puts each void on its own line in plain text. (0.132.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.132.0)

## slate-dom 0.131

### Fixes and other changes

- Copying an empty line now produces one blank line in plain text instead of two. (0.131.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.131.0)
- 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. (0.131.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.131.0)

## slate-dom 0.130

### Fixes and other changes

- Empty blocks are preserved as <br> in copied HTML, preventing pasted content from losing empty lines in Word and other rich-text targets. (0.130.1) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.130.1)
- 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. (0.130.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.130.0)

## slate-dom 0.129

### New APIs and options

- Adds a check for whether the editor has a DOM element. (0.129.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.129.0)

### Fixes and other changes

- Reads `data-slate-fragment` from an HTML attribute only when pasting, so pasted text containing that string no longer makes the paste fail. (0.129.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.129.0)
- Keeps the editor's selection when focusing with a void selected by applying the DOM selection after focusing the editable. (0.129.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.129.0)
- Returns false for an editor that is not mounted instead of throwing. (0.129.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.129.0)
- Resolves drop positions inside shadow DOM by passing the editor's shadow root to `caretPositionFromPoint` where supported. (0.129.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.129.0)
- Keeps a forward DOM selection ending inside a block void instead of unhanging it to the end of the previous block. (0.129.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.129.0)

## slate-dom 0.126

### Fixes and other changes

- toSlatePoint now respects suppressThrow when toSlateNode throws, preventing those errors from propagating when suppression is enabled. (0.126.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.126.0)

## slate-dom 0.124

### Security

- Property accessors are hardened against untrusted keys. (0.124.1) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.124.1)

### Fixes and other changes

- Corrects the argument types for the compare and merge options. (0.124.1) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.124.1)
- Fixes text node lookup for toSlatePoint. (0.124.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.124.0)

## slate-dom 0.123

### New APIs and options

- Adds an efficient type discriminator for paths; use it instead of Path.isPath whenever possible. (0.123.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.123.0)
- Adds an efficient type discriminator for points; use it instead of Point.isPoint whenever possible. (0.123.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.123.0)
- Adds an efficient type discriminator for ranges; use it instead of Range.isRange whenever possible. (0.123.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.123.0)
- Adds an efficient type discriminator for spans; use it instead of Span.isSpan whenever possible. (0.123.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.123.0)

## slate-dom 0.119

### Fixes and other changes

- Fixes an editor crash when the editor is inside Shadow DOM and the user types on Android. (0.119.0) — [release notes](https://github.com/ianstormtaylor/slate/releases/tag/slate-dom%400.119.0)
