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)