v53.0.7
udecode/platev53.0.7Jun 3, 2026by zbeyens
AI Summary
A major performance optimization release featuring significant speed improvements for large documents and updates to core functionality.
Key Highlights
- Reduced large-document mount time by up to 66.9% and 3x faster for code-only documents.
- Added `transformInitialValue` and `nodeId.initialValueIds` (deprecated `normalizeInitialValue` alias).
- Added experimental `editor.tf.setNodesBatch` for faster large-document node updates.
- Speed up unmerged table range selection while preserving merged-cell handling.
New Features
- transformInitialValue
- nodeId.initialValueIds
- experimental editor.tf.setNodesBatch
Full Release Notes
## `@platejs/ai` ### Patch Changes - Updated `@platejs/table`. ## `@platejs/core` ### Patch Changes - [#4987](https://github.com/udecode/plate/pull/4987) by [@zbeyens](https://github.com/zbeyens) – Add `transformInitialValue` and `nodeId.initialValueIds` while keeping `normalizeInitialValue` as a deprecated alias - [#4987](https://github.com/udecode/plate/pull/4987) by [@zbeyens](https://github.com/zbeyens) – Improve large-document mount and render performance across core element, mark, and `nodeId` paths - Cut `10k` mixed-document core mount time from `1240.60 ms` to `468.26 ms` without `nodeId` (`62.3%`, `2.65x` faster) - Cut `10k` mixed-document core mount time from `1290.66 ms` to `477.73 ms` with `nodeId` (`63.0%`, `2.70x` faster) - Cut mixed-document `nodeId` overhead over core from `+50.06 ms` to `+9.46 ms` (`81.1%` smaller) - Cut duplicate-id paste cost from `20.06 ms` to `13.79 ms` (`31.2%`, `1.45x` faster) - Cut `10k` code-only mount time from `1500.30 ms` to `496.47 ms` (`66.9%`, `3.02x` faster) and shrink the code-only tax over core from `+280.75 ms` to `+27.89 ms` (`90.1%` smaller) - Bring the current `10k` core and basic large-document mount lanes to Slate parity or better (`core -3.5%`, `core + nodeId -1.6%`, `basic -1.2%`) - Preserve Slate children for void `render.as` tags and Slate attributes on simple leaf/text render paths ## `@platejs/csv` Published `@platejs/csv@53.0.7`. ## `@platejs/slate` ### Patch Changes - [#4987](https://github.com/udecode/plate/pull/4987) by [@zbeyens](https://github.com/zbeyens) – Add experimental `editor.tf.setNodesBatch` for exact-path node prop updates on large documents - Cut the large-document `set_node` hot path from `18.56 ms` to `2.63 ms` at `1k` blocks (`7.05x` faster) - Cut the same path from `118.54 ms` to `4.92 ms` at `5k` blocks (`24.10x` faster) - Let `@platejs/core` batch live `nodeId` normalization instead of paying one `setNodes` call per missing id - Keep `editor.tf.setNodesBatch` explicitly temporary. It is experimental and will be removed in a future release - [`231b986`](https://github.com/udecode/plate/commit/231b9869825e38678621f55a4c4d1812704056e0) by [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D) – Updated `slate-hyperscript`. ## `@platejs/table` ### Patch Changes - [#4987](https://github.com/udecode/plate/pull/4987) by [@zbeyens](https://github.com/zbeyens) – Speed up unmerged table range selection while preserving merged-cell handling ## `@platejs/test-utils` Published `@platejs/test-utils@53.0.7`. ## `@platejs/utils` ### Patch Changes - Updated `@platejs/core`, `@platejs/slate`. ## `platejs` ### Patch Changes - Updated `@platejs/core`, `@platejs/slate`, `@platejs/utils`. ## Contributors Thanks to everyone who contributed to this release: @zbeyens Full changelog: [`v53.0.6...v53.0.7`](https://github.com/udecode/plate/compare/v53.0.6...v53.0.7)