Releases

PreviousNext
v53.0.8

@platejs/docx-io

Bug Fixes

  • Fix exportToDocx adding blank paragraphs at the top of the document. wrapHtmlForDocx emitted a <!DOCTYPE html> and indented the template; html-to-docx (html-to-vdom) keeps the DOCTYPE and the whitespace-only text nodes between tags and renders each as a blank paragraph. The wrapper now emits tight markup with no DOCTYPE. (#4991)

v53.0.7...v53.0.8 · By @WilliamPeralta

v53.0.7

@platejs/ai

Bug Fixes

  • Updated @platejs/table.

@platejs/core

Bug Fixes

  • Add transformInitialValue and nodeId.initialValueIds while keeping normalizeInitialValue as a deprecated alias (#4987)

  • Improve large-document mount and render performance across core element, mark, and nodeId paths (#4987)

    • 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

Bug Fixes

  • Updated @platejs/core, @platejs/slate, @platejs/utils.

@platejs/slate

Bug Fixes

  • Add experimental editor.tf.setNodesBatch for exact-path node prop updates on large documents (#4987)

    • 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
  • Updated slate-hyperscript. (231b986)

@platejs/table

Bug Fixes

  • Speed up unmerged table range selection while preserving merged-cell handling (#4987)

@platejs/utils

Bug Fixes

  • Updated @platejs/core, @platejs/slate.

v53.0.6...v53.0.7 · By @zbeyens, @github-actions[bot]

v53.0.6

@platejs/core

Bug Fixes

  • Fix .configure({ inputRules }) losing rules on subsequent editor instances (#4983)

    The user's config object was shared across resolutions via closure; clearing inputRules on the first resolve left later editors (StrictMode remounts, HMR, multi-editor pages) with no configured rules.

  • Fix createTextSubstitutionInputRule not firing on the final character of flat matches (e.g. ->, (c)©) (#4983)

platejs

Bug Fixes

  • Updated @platejs/core, @platejs/utils.

@platejs/utils

Bug Fixes

  • Updated @platejs/core.

v53.0.5...v53.0.6 · By @bbyiringiro

v53.0.5

platejs

Bug Fixes

  • Updated @platejs/core, @platejs/slate, @platejs/utils.

@platejs/slate

Bug Fixes

@platejs/utils

Bug Fixes

  • Updated @platejs/core, @platejs/slate.

v53.0.4...v53.0.5 · By @github-actions[bot]

v53.0.3

@platejs/ai

Bug Fixes

  • Clear block streaming state when aiChat.stop() stops generation (#4945)

@platejs/link

Bug Fixes

  • Fix empty link normalization when suggestion acceptance removes the last link character (#4945)

platejs

Bug Fixes

  • Updated @platejs/utils.

@platejs/suggestion

Bug Fixes

  • Fix inline-void delete and replace suggestions around mentions and paragraph boundaries (#4945)

@platejs/utils

Bug Fixes

  • Add a trailing-block insert hook for normalization-driven insert behavior (#4945)

CHANGELOG · v53.0.2...v53.0.3 · By @felixfeng33

v53.0.0

@platejs/autoformat

Breaking Changes

  • Deprecate @platejs/autoformat. Markdown shortcuts and text substitutions are now authored as inputRules on each feature plugin, and AutoformatPlugin remains only as an inert compatibility export. (#4941)

    Migration:

    1. Remove AutoformatPlugin from your plugins and replace @platejs/autoformat after migrating rules.
    2. Replace each old AutoformatRule with the matching rule factory on the plugin that owns the feature. See the table below.
    3. Replace symbol substitutions (arrows, fractions, smart quotes, legal, math operators) with createTextSubstitutionInputRule registered on a local createSlatePlugin.
    4. Replace rules[].query with enabled on the rule factory call. Replace the global code-block guard with a per-plugin enabled check.
    5. Drop enableUndoOnDelete — undo-on-delete is the built-in behavior.
    6. Replace custom AutoformatRule definitions with createRuleFactory from platejs.
    tsx
    1// Before 2import { AutoformatPlugin } from "@platejs/autoformat"; 3 4const editor = createPlateEditor({ 5 plugins: [ 6 AutoformatPlugin.configure({ 7 options: { 8 enableUndoOnDelete: true, 9 rules: [ 10 { match: "# ", mode: "block", type: KEYS.h1 }, 11 { match: "**", mode: "mark", type: KEYS.bold }, 12 { 13 match: "* ", 14 mode: "block", 15 type: "list", 16 format: (editor) => 17 toggleList(editor, { listStyleType: KEYS.ul }), 18 }, 19 ], 20 }, 21 }), 22 ], 23}); 24 25// After 26import { BoldRules } from "@platejs/basic-nodes"; 27import { BoldPlugin } from "@platejs/basic-nodes/react"; 28import { HeadingRules } from "@platejs/basic-nodes"; 29import { H1Plugin } from "@platejs/basic-nodes/react"; 30import { BulletedListRules } from "@platejs/list"; 31import { ListPlugin } from "@platejs/list/react"; 32 33const editor = createPlateEditor({ 34 plugins: [ 35 H1Plugin.configure({ inputRules: [HeadingRules.markdown()] }), 36 BoldPlugin.configure({ 37 inputRules: [BoldRules.markdown({ variant: "*" })], 38 }), 39 ListPlugin.configure({ 40 inputRules: [BulletedListRules.markdown({ variant: "-" })], 41 }), 42 ], 43});

    Rule Map

    Basic blocks — @platejs/basic-nodes

    Old ruleNew rule
    { match: '# '..'###### ', mode: 'block', type: KEYS.h1..h6 }HxPlugin.configure({ inputRules: [HeadingRules.markdown()] }) — register on each H1Plugin..H6Plugin
    { match: '> ', mode: 'block', type: KEYS.blockquote }BlockquotePlugin.configure({ inputRules: [BlockquoteRules.markdown()] })
    { match: ['---', '—-', '___ '], mode: 'block', type: KEYS.hr }HorizontalRulePlugin.configure({ inputRules: [HorizontalRuleRules.markdown({ variant: '-' }), HorizontalRuleRules.markdown({ variant: '_' })] })

    Basic marks — @platejs/basic-nodes

    Old ruleNew ruleOwning plugin
    { match: '**', mode: 'mark', type: KEYS.bold }BoldRules.markdown({ variant: '*' })BoldPlugin
    { match: '__', mode: 'mark', type: KEYS.underline }UnderlineRules.markdown()UnderlinePlugin
    { match: '*', mode: 'mark', type: KEYS.italic }ItalicRules.markdown({ variant: '*' })ItalicPlugin
    { match: '_', mode: 'mark', type: KEYS.italic }ItalicRules.markdown({ variant: '_' })ItalicPlugin
    { match: '`', mode: 'mark', type: KEYS.code }CodeRules.markdown()CodePlugin
    { match: '~~', mode: 'mark', type: KEYS.strikethrough }StrikethroughRules.markdown()StrikethroughPlugin
    { match: '~', mode: 'mark', type: KEYS.sub }SubscriptRules.markdown()SubscriptPlugin
    { match: '^', mode: 'mark', type: KEYS.sup }SuperscriptRules.markdown()SuperscriptPlugin
    { match: '==', mode: 'mark', type: KEYS.highlight }HighlightRules.markdown({ variant: '==' })HighlightPlugin
    { match: '≡', mode: 'mark', type: KEYS.highlight }HighlightRules.markdown({ variant: '≡' })HighlightPlugin
    { match: '***', mode: 'mark', type: [bold, italic] }MarkComboRules.markdown({ variant: 'boldItalic' })BoldPlugin
    { match: '__*', mode: 'mark', type: [underline, italic] }MarkComboRules.markdown({ variant: 'italicUnderline' })BoldPlugin
    { match: '__**', mode: 'mark', type: [underline, bold] }MarkComboRules.markdown({ variant: 'boldUnderline' })BoldPlugin
    { match: '___***', mode: 'mark', type: [underline, bold, italic] }MarkComboRules.markdown({ variant: 'boldItalicUnderline' })BoldPlugin

    Register each family on its owning plugin:

    tsx
    1BoldPlugin.configure({ 2 inputRules: [ 3 BoldRules.markdown({ variant: "*" }), 4 BoldRules.markdown({ variant: "_" }), 5 MarkComboRules.markdown({ variant: "boldItalic" }), 6 MarkComboRules.markdown({ variant: "boldUnderline" }), 7 MarkComboRules.markdown({ variant: "boldItalicUnderline" }), 8 MarkComboRules.markdown({ variant: "italicUnderline" }), 9 ], 10});

    Code block — @platejs/code-block

    Old ruleNew rule
    { match: '```', mode: 'block', type: KEYS.codeBlock, format: insertEmptyCodeBlock }CodeBlockPlugin.configure({ inputRules: [CodeBlockRules.markdown({ on: 'match' })] })

    Lists — @platejs/list and @platejs/list-classic

    Old ruleNew rule
    { match: ['- ', '* '], mode: 'block', format: toggleList(..., { listStyleType: KEYS.ul }) }BulletedListRules.markdown({ variant: '-' }), BulletedListRules.markdown({ variant: '*' })
    { match: /^\d+\.$ |^\d+\)$ /, matchByRegex: true, format: toggleList(..., { listStyleType: KEYS.ol }) }OrderedListRules.markdown({ variant: '.' }), OrderedListRules.markdown({ variant: ')' })
    { match: '[] ', mode: 'block', format: toggleList(..., { listStyleType: KEYS.listTodo }) }TaskListRules.markdown({ checked: false })
    { match: '[x] ', mode: 'block', format: toggleList + setNodes({ checked: true }) }TaskListRules.markdown({ checked: true })
    tsx
    1ListPlugin.configure({ 2 inputRules: [ 3 BulletedListRules.markdown({ variant: "-" }), 4 BulletedListRules.markdown({ variant: "*" }), 5 OrderedListRules.markdown({ variant: "." }), 6 OrderedListRules.markdown({ variant: ")" }), 7 TaskListRules.markdown({ checked: false }), 8 TaskListRules.markdown({ checked: true }), 9 ], 10});

    Replace @platejs/list with @platejs/list-classic imports when using the classic list model. The factory names are identical.

    Math — @platejs/math

    Old ruleNew rule
    Inline equation $…$InlineEquationPlugin.configure({ inputRules: [MathRules.markdown({ variant: '$' })] })
    Block equation $$…$$EquationPlugin.configure({ inputRules: [MathRules.markdown({ on: 'break', variant: '$$' })] })

    Link — @platejs/link

    Old behaviorNew rule
    [text](url) markdownLinkRules.markdown()
    Autolink on pasteLinkRules.autolink({ variant: 'paste' })
    Autolink on spaceLinkRules.autolink({ variant: 'space' })
    Autolink on EnterLinkRules.autolink({ variant: 'break' })
    tsx
    1LinkPlugin.configure({ 2 inputRules: [ 3 LinkRules.markdown(), 4 LinkRules.autolink({ variant: "paste" }), 5 LinkRules.autolink({ variant: "space" }), 6 LinkRules.autolink({ variant: "break" }), 7 ], 8});

    Text substitutions (arrows, fractions, legal, math operators, smart quotes)

    Move these to a local createSlatePlugin with createTextSubstitutionInputRule:

    tsx
    1import { 2 createSlatePlugin, 3 createTextSubstitutionInputRule, 4 KEYS, 5} from "platejs"; 6 7const isTextSubstitutionBlocked = (editor) => 8 editor.api.some({ match: { type: [editor.getType(KEYS.codeBlock)] } }); 9 10const ShortcutsPlugin = createSlatePlugin({ 11 key: "shortcuts", 12 inputRules: [ 13 createTextSubstitutionInputRule({ 14 enabled: ({ editor }) => !isTextSubstitutionBlocked(editor), 15 patterns: [ 16 { format: "→", match: "->" }, 17 { format: "⇒", match: "=>" }, 18 { format: "½", match: "1/2" }, 19 { format: "™", match: ["(tm)", "(TM)"] }, 20 { format: ["“", "”"], match: '"' }, 21 ], 22 }), 23 ], 24});

    Each pattern set is just data — autoformatArrow, autoformatLegal, autoformatMath, autoformatPunctuation, autoformatSmartQuotes, and autoformatLegalHtml from the old package map 1:1 onto patterns arrays. AutoformatKit in the Plate registry is pre-built with all of them.

    Custom rules

    Old AutoformatRule objects have no direct replacement. Build a rule family with createRuleFactory:

    tsx
    1import { createRuleFactory } from "platejs"; 2 3const MyRules = { 4 markdown: createRuleFactory({ 5 type: "blockMatch", 6 match: "!! ", 7 format: "my-block", 8 }), 9}; 10 11MyPlugin.configure({ inputRules: [MyRules.markdown()] });

    Option removals

    • enableUndoOnDelete — removed. Backspace on a rule-inserted node restores the source text by default.
    • rules[].query — replaced by enabled on the rule factory call.
    • rules[].preFormat / rules[].format — replaced by rule-family format and resolve callbacks inside createRuleFactory.
    • rules[].trigger — rule families set their own trigger. Override it with the trigger option on a custom createRuleFactory call.

    See the Autoformat doc for the kit path and the Plugin Input Rules guide for the full runtime.

@platejs/basic-nodes

Breaking Changes

  • Store blockquotes as container blocks with block children. Lift every selected nested quoted block one level on Shift+Tab. Reset headings to paragraphs on Backspace at block start before any merge. (#4941)

    Migration:

    1. Update persisted values, fixtures, and tests to use block children instead of direct text children.
    2. Expect editor.tf.blockquote.toggle() to wrap or unwrap blocks instead of retagging one text block in place.
    3. Empty later quoted paragraphs delete in place on Backspace instead of jumping out of the quote.
    4. Backspace at the start of a heading now resets the heading to a paragraph before any merge.
    5. Legacy flat blockquote values still normalize on load, but persisted snapshots and fixtures should move to the new shape.
    tsx
    1// Before 2{ type: 'blockquote', children: [{ text: 'Quote' }] } 3 4// After 5{ 6 type: 'blockquote', 7 children: [{ type: 'p', children: [{ text: 'Quote' }] }], 8}

@platejs/code-block

Breaking Changes

  • Keep Backspace at the start of a non-empty first code line inside the code block. Merge an empty inner code line into the previous code line instead of unwrapping the block. (#4941)

@platejs/markdown

Breaking Changes

  • Round-trip blockquotes as nested block content instead of flat newline-packed text. Serialize image titles from node.title instead of copying the caption into the markdown title slot. Preserve MDX media attribute expressions during markdown serialization instead of stringifying them into JSON text. Serialize plain URL links back to bare URL markdown instead of bracket-link form. Round-trip footnote references and definitions as dedicated footnote nodes instead of collapsing them to plain-text fallback. (#4941)

    Migration:

    1. Update snapshots and direct value assertions to expect blockquote.children to contain block nodes such as paragraphs and lists.
    2. If you generate initial editor values from markdown, hydrate blockquotes with paragraph children instead of flat text.
    3. If you want markdown output like ![alt](url "title"), set node.title. Images without a title now serialize as ![alt](url).
    4. If you serialize MDX media nodes with expression attributes like width={640}, expect those expressions to stay as expressions instead of turning into quoted JSON.
    5. Plain URL links such as https://platejs.org now serialize as bare URLs instead of [https://platejs.org](https://platejs.org).
    6. If you enable footnote-aware markdown input, install @platejs/footnote and include BaseFootnoteReferencePlugin and BaseFootnoteDefinitionPlugin so footnote nodes have real editor semantics instead of falling back to unknown node types.
    tsx
    1// Before 2{ type: 'blockquote', children: [{ text: 'Quote\\nNext line' }] } 3 4// After 5{ 6 type: 'blockquote', 7 children: [ 8 { type: 'p', children: [{ text: 'Quote' }] }, 9 { type: 'p', children: [{ text: 'Next line' }] }, 10 ], 11}

Bug Fixes

  • Write canonical date nodes as <date value="..."/> and round-trip normalized media embed metadata (#4941)

  • Preserve unknown MDX and raw HTML block source more faithfully during markdown deserialization fallback (#4941)

@platejs/table

Breaking Changes

  • Escalate the second selectAll from the current table to the whole document. (#4941)

@platejs/core

Features

  • Add lift as a break and delete rule action for blocks that should leave one ancestor level instead of resetting or exiting. Reset the trailing block to a paragraph when splitReset handles selected heading text. (#4941)

Bug Fixes

  • Add createRuleFactory for building input rule families with overridable defaults and required options (#4941)

  • Add useNavigationHighlight(path) for React node components that need the current navigation-feedback target without reading plugin options directly (#4941)

@platejs/footnote

Features

  • Add FootnoteReferencePlugin, FootnoteDefinitionPlugin, and FootnoteInputPlugin for real footnote nodes and inline [^ combobox insertion in Plate editors. (#4941)

@platejs/date

Bug Fixes

  • Store date nodes as canonical YYYY-MM-DD values and preserve unparseable legacy text as fallback data (#4941)

@platejs/link

Bug Fixes

  • Keep pasted URLs literal inside markdown link source entry by default (#4941)

@platejs/list

Bug Fixes

  • Allow list markdown rule families to override shared runtime rule fields while keeping semantic variant and checked options (#4941)

@platejs/list-classic

Bug Fixes

  • Allow classic list markdown rule families to override shared runtime rule fields while keeping semantic variant and checked options (#4941)

@platejs/media

Bug Fixes

  • Support allowlisted Twitter/X embed snippet extraction in media embed URL transforms (#4941)

  • Normalize supported media embeds into canonical provider metadata and preserve source URLs for embed editing (#4941)

@platejs/slate

Bug Fixes

  • Updated slate, slate-dom. (081cbe9)

@platejs/toc

Bug Fixes

  • Add active section state to useTocElementState so TOC elements can mark the current heading while the document scrolls (#4941)

  • Fix TOC activation to navigate without entering block-selection mode (#4941)

@platejs/utils

Bug Fixes

  • Add KEYS.footnoteDefinition, KEYS.footnoteReference, and KEYS.footnoteInput (#4941)

CHANGELOG · v52.3.22...v53.0.0 · By @zbeyens, @github-actions[bot]

v52.3.20

@platejs/ai

Bug Fixes

  • Updated @platejs/table.

@platejs/table

Bug Fixes

  • Fix Shift+Arrow table selection to switch cells without showing a transient native range (#4931)

  • Fix merged table border toggles targeting the wrong adjacent cell (#4930)

CHANGELOG · v52.3.19...v52.3.20 · By @hhhjin, @zbeyens

v52.3.19

@platejs/ai

Bug Fixes

  • Updated @platejs/markdown.

@platejs/markdown

Bug Fixes

  • Fix ordered markdown lists starting above 1 losing their numbering after editor.tf.setValue() (#4926)

CHANGELOG · v52.3.18...v52.3.19 · By @zbeyens

v52.3.18

@platejs/ai

Bug Fixes

  • Updated @platejs/table.

@platejs/table

Bug Fixes

  • Fixed ArrowUp and ArrowDown table navigation to avoid the transient caret flash when moving between table cells. (#4923)

CHANGELOG · v52.3.17...v52.3.18 · By @hhhjin

v52.3.17

@platejs/ai

Bug Fixes

  • Updated @platejs/table.

@platejs/link

Bug Fixes

  • Fixed custom isUrl handling so it can reject internal paths like /docs and anchor links like #top instead of those shortcuts always being accepted. (#4919)

  • Fixed link validation so text starting with // is no longer treated as an internal path. This stops comment-style paste content from being autolinked by mistake, including inside code blocks. (#4917)

@platejs/table

Bug Fixes

  • Fixed table border toggling so left-border updates apply to every selected row in a multi-row cell selection instead of only the topmost row. (#4922)

CHANGELOG · v52.3.16...v52.3.17 · By @zbeyens

v52.3.16

@platejs/code-block

Bug Fixes

  • Refresh @platejs/code-block release metadata. (3465ee1)

@platejs/core

Bug Fixes

  • Republish @platejs/core to refresh the release graph for downstream packages. (#4915)

@platejs/dnd

Bug Fixes

  • Refresh @platejs/dnd release metadata. (3465ee1)

platejs

Bug Fixes

  • Updated @platejs/core, @platejs/utils.

@platejs/utils

Bug Fixes

  • Updated @platejs/core.

CHANGELOG · v52.3.15...v52.3.16 · By @zbeyens

v52.3.15

@platejs/core

Bug Fixes

  • Added normalizeStaticValue to @platejs/core for normalizing example editor values with deterministic node IDs and stable numeric createdAt metadata before SSR hydration. (#4912)

    text
    1 ```ts 2 import { normalizeStaticValue } from "@platejs/core"; 3 4 const value = normalizeStaticValue(exampleValue); 5 ```

@platejs/dnd

Bug Fixes

  • Fixed server prerender crashes in @platejs/dnd by returning inert drag-and-drop connectors when DOM DnD is unavailable, preventing Expected drag drop context during SSR builds. (#4912)

CHANGELOG · v52.3.14...v52.3.15 · By @zbeyens

v52.3.14

@platejs/code-block

Bug Fixes

  • Fixed formatCodeBlock to rewrite formatted code into real code_line nodes and trigger a redecorate pass so syntax highlighting persists after formatting. (#4907)

CHANGELOG · v52.3.13...v52.3.14 · By @zbeyens

v52.3.13

@platejs/core

Bug Fixes

  • perf(static): avoid O(n²) findPath in PlateStatic by passing pre-computed path (#4903)

    Pass pre-computed path through PlateStatic component tree instead of calling editor.api.findPath() per node. For 1,872 nodes: paragraph-only 593ms → 68.6ms (8.6x), full plugins 1,661ms → 892ms (1.9x).

CHANGELOG · v52.3.12...v52.3.13 · By @liangzr

v52.3.12

@platejs/ai

Bug Fixes

  • Fix insert-mode AI preview history so streamed chunks stay out of undo history and selection survives accept, undo, and redo (#4902)

@platejs/slate

Bug Fixes

  • Fix redo to restore selection after undoing history batches that clear the active selection (#4902)

CHANGELOG · v52.3.11...v52.3.12 · By @zbeyens

v52.3.11

platejs

Bug Fixes

  • Use compatible internal dependency ranges so platejs can resolve the current @platejs/* package graph without nested stale installs. (4af5ea4)

@platejs/utils

Bug Fixes

  • Refresh the published internal core dependency range so consumers can resolve the current Plate package graph without nested stale installs. (4af5ea4)

CHANGELOG · v52.3.10...v52.3.11 · By @zbeyens

v52.3.10

@platejs/ai

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/autoformat

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/basic-nodes

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/basic-styles

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/callout

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/caption

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/code-block

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/code-drawing

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/combobox

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/comment

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/csv

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/cursor

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/date

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/diff

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/dnd

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/docx

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/docx-io

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/emoji

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/excalidraw

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/find-replace

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/floating

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/indent

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/juice

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/layout

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/link

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/list

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/list-classic

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/markdown

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/math

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/media

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/mention

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/playwright

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/resizable

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/selection

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/slash-command

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/suggestion

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/tabbable

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/table

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/tag

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/toc

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/toggle

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

@platejs/yjs

Bug Fixes

  • Fix declaration bundling by restoring the workspace platejs build edge during package builds (#4897)

CHANGELOG · v52.3.9...v52.3.10 · By @zbeyens

v52.3.9

@platejs/code-block

Bug Fixes

  • Redecorate code blocks when the language changes to avoid stale highlighting. (#4893)

@platejs/core

Bug Fixes

  • Typed editor.api.redecorate() on the base slate extension API so shared plugins can call it without local casts. (d5dfd21)

CHANGELOG · v52.3.8...v52.3.9 · By @hhhjin, @zbeyens

v52.3.8

@platejs/ai

Bug Fixes

  • Fix replacePlaceholders replacing only the first {prompt} and markdown placeholder occurrence in AI prompt templates (#4882)

@platejs/csv

Bug Fixes

  • Fixed Papa Parse interop so native Node ESM runtimes like Vitest can import @platejs/csv without failing on a CommonJS named export. (#4890)

@platejs/docx

Bug Fixes

  • Fix RTF image extraction matching control words like shp inside longer tokens such as shppict (#4882)

@platejs/docx-io

Bug Fixes

  • Fix htmlToDocxBlob failing TypeScript 6 BlobPart checks when wrapping generated Uint8Array output. (#4891)

@platejs/layout

Bug Fixes

  • Fix invalid column group normalization preserving wrapped paragraph content instead of dropping it (#4882)

@platejs/suggestion

Bug Fixes

  • Fix suggestion metadata lookups using the actual per-suggestion keys and IDs for active descriptions, node matching, and line-break detection (#4882)

CHANGELOG · v52.3.7...v52.3.8 · By @zbeyens

v52.3.6

@platejs/docx-io

Bug Fixes

  • Fixed Mammoth comment preprocessing so block-level comment text keeps spacing instead of collapsing words together during DOCX import. (#4876)

  • Fixed decimal-bracket-end ordered lists to keep decimal DOCX numbering instead of falling back to the package default ordered style. (#4876)

  • Fixed HTML-to-DOCX list rendering so whitespace-only nodes around list items no longer drop visible list item text in generated documents. (#4876)

@platejs/selection

Bug Fixes

  • Fixed selection trigger evaluation so multiple configured triggers are checked correctly instead of stopping after the first one. (#4876)

@platejs/table

Bug Fixes

  • Reduce large-table selection latency by deriving reactive table selection from editor selectors, keeping selected-cell DOM sync at the table root, and avoiding plugin-store writes on every set_selection. (#4872)

CHANGELOG · v52.3.5...v52.3.6 · By @zbeyens, @felixfeng33

v52.3.4

@platejs/autoformat

Bug Fixes

  • Fixed readonly array support for autoformat rule options like match, trigger, type, and text format so as const rule definitions typecheck cleanly. (#4857)

@platejs/core

Bug Fixes

  • Fix PlateSlate so it passes the Slate remount key directly instead of spreading key through JSX props. (#4857)

  • Fix usePlateStore so it no longer relies on a conditional hook path that breaks React Compiler. (#4857)

  • Fix usePluginOption(plugin, 'state') so it returns the plugin option state instead of reporting an undefined option. (#4857)

  • Update internal @udecode/* dependency ranges to workspace references. (#4857)

platejs

Bug Fixes

  • Update internal @platejs/* and @udecode/* dependency ranges to workspace references. (#4857)

@platejs/slate

Bug Fixes

  • Fixed editor.tf.duplicateNodes({ block: true }) to duplicate the selected block even when nodes is omitted. (#4857)

  • Fixed withHistory(createEditor()) legacy method sync so editor, editor.api, and editor.tf all use the history-aware apply, undo, and redo methods. (#4857)

  • Fixed queryEditor, isAt, and editor.api.descendant so bottom-up location checks, point start/end checks, and non-path descendant searches behave consistently. (#4857)

  • Update internal @udecode/* dependency ranges to workspace references. (#4857)

@udecode/cn

Bug Fixes

  • Update internal @udecode/* dependency ranges to workspace references. (#4857)

@udecode/react-utils

Bug Fixes

  • Fixed createPrimitiveComponent so setProps is applied without leaking onto DOM elements. (#4857)

  • Fixed createPrimitiveComponent to preserve merged hook and consumer style props instead of overwriting hook styles when a consumer passes style.

  • Update internal @udecode/* dependency ranges to workspace references. (#4857)

@udecode/utils

Bug Fixes

  • Fixed escapeRegExp() to stop escaping plain s characters and only escape actual regular-expression syntax. (#4857)

@platejs/utils

Bug Fixes

  • Update internal @udecode/* dependency ranges to workspace references. (#4857)

CHANGELOG · v52.3.3...v52.3.4 · By @zbeyens

v52.2.0

@platejs/docx-io

Features

  • Add DOCX import/export package: (#4814)

    Import:

    • importDocx: Convert DOCX files to Plate nodes with comment extraction

    Export:

    • exportToDocx: Convert Plate content to DOCX blob
    • downloadDocx: Download DOCX files
    • exportEditorToDocx: Export and download in one call
    • DocxExportPlugin: Plugin with editor.api.docxExport and editor.tf.docxExport methods
    • DOCX_EXPORT_STYLES: Default CSS styles for Word rendering

    DOCX Static Components (in existing static files):

    • CalloutElementDocx
    • CodeBlockElementDocx, CodeLineElementDocx, CodeSyntaxLeafDocx
    • ColumnElementDocx, ColumnGroupElementDocx
    • EquationElementDocx, InlineEquationElementDocx
    • TocElementDocx

CHANGELOG · v52.1.0...v52.2.0 · By @felixfeng33

v52.1.0

@platejs/ai

Features

  • Upgraded AI SDK from v5 to v6: (#4800)

    • Updated ai peer dependency to ^6.0.0
    • Updated @ai-sdk/react peer dependency to ^3.0.0

    Enhanced AI capabilities with better table cell handling:

    • Added applyTableCellSuggestion utility for handling single-cell table operations
    • Added nestedContainerUtils for managing nested containers in table cells
    • Enhanced getMarkdown with improved table structure handling and better cell content serialization
    • Improved applyAISuggestions with more robust cell manipulation support
    • Added comprehensive tests for markdown generation from complex table structures

@platejs/markdown

Bug Fixes

  • Enhanced table cell serialization to support multiple blocks within cells: (#4800)

    • Table cells (td/th) now insert <br/> separators between multiple blocks when serializing to markdown
    • This allows markdown tables to better represent complex cell content that contains multiple paragraphs or other block elements

CHANGELOG · v52.0.17...v52.1.0 · By @felixfeng33

v52.0.16

@platejs/selection

Bug Fixes

  • Added disableSelectAll option to BlockSelectionPlugin. Set to true to disable the plugin's custom selectAll (Cmd+A) behavior and use the editor's default behavior instead. (#4799)

    text
    1 ```ts 2 BlockSelectionPlugin.configure({ 3 options: { disableSelectAll: true }, 4 }); 5 ```

CHANGELOG · v52.0.15...v52.0.16 · By @felixfeng33

v52.0.15

@platejs/combobox

Bug Fixes

  • Add userId option to editor for collaborative features (#4792)

    • Add userId option to usePlateEditor/createSlateEditor options
    • Add editor.meta.userId for accessing the current user ID
    • Breaking: Remove getUserId option from TriggerComboboxPluginOptions. Use editor.meta.userId instead.

    Migration:

    tsx
    1// Before 2MentionPlugin.configure({ 3 options: { 4 getUserId: (editor) => "123", 5 }, 6}); 7 8// After 9const editor = usePlateEditor({ 10 plugins: [MentionPlugin], 11 userId: "123", 12});

@platejs/core

Bug Fixes

  • Add userId option to editor for collaborative features (#4792)

    • Add userId option to usePlateEditor/createSlateEditor options
    • Add editor.meta.userId for accessing the current user ID
    • Breaking: Remove getUserId option from TriggerComboboxPluginOptions. Use editor.meta.userId instead.

    Migration:

    tsx
    1// Before 2MentionPlugin.configure({ 3 options: { 4 getUserId: (editor) => "123", 5 }, 6}); 7 8// After 9const editor = usePlateEditor({ 10 plugins: [MentionPlugin], 11 userId: "123", 12});

CHANGELOG · v52.0.14...v52.0.15 · By @felixfeng33

v52.0.13

@platejs/combobox

Bug Fixes

  • Add getUserId option to TriggerComboboxPluginOptions to fix combobox popover opening for all users in Yjs collaboration mode (#4762)

    When a user types a trigger character (e.g. / or @), the combobox input now stores the creator's userId. Only the creator will see the auto-focused combobox popover.

    tsx
    1SlashPlugin.configure({ 2 options: { 3 getUserId: (editor) => editor.getOption(YjsPlugin, "userId"), 4 }, 5}); 6 7MentionPlugin.configure({ 8 options: { 9 getUserId: (editor) => editor.getOption(YjsPlugin, "userId"), 10 }, 11});

@platejs/yjs

Bug Fixes

  • Add userId option to YjsPlugin for combobox collaboration support (#4762)

    tsx
    1YjsPlugin.configure({ 2 options: { 3 userId: user?.id, 4 }, 5});

CHANGELOG · v52.0.12...v52.0.13 · By @felixfeng33

v52.0.11

@platejs/ai

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/autoformat

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/basic-nodes

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/basic-styles

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/callout

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/caption

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/code-block

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/combobox

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/comment

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/core

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/csv

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/cursor

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/date

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/diff

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/dnd

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/docx

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/emoji

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/excalidraw

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/find-replace

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/floating

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/indent

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/juice

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/layout

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/link

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/list

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/list-classic

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/markdown

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/math

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/media

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/mention

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

platejs

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/playwright

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/resizable

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/selection

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/slash-command

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/suggestion

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/tabbable

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/table

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/tag

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/toc

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/toggle

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@udecode/cn

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@udecode/react-hotkeys

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@udecode/react-utils

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/utils

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

@platejs/yjs

Bug Fixes

  • Fixed "Cannot find module 'react/compiler-runtime'" error for React 18 users (#4784)

CHANGELOG · v52.0.10...v52.0.11 · By @zbeyens

v52.0.1

@platejs/ai

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/autoformat

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/basic-nodes

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/basic-styles

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/callout

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/caption

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/code-block

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/combobox

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/comment

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/core

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/csv

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/cursor

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/date

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/diff

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/dnd

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/docx

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/emoji

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/excalidraw

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/find-replace

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/floating

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/indent

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/juice

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/layout

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/link

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/list

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/list-classic

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/markdown

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/math

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/media

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/mention

Bug Fixes

  • Add React Compiler support. (#4750)

platejs

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/playwright

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/resizable

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/selection

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/slash-command

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/slate

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/suggestion

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/tabbable

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/table

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/tag

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/test-utils

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/toc

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/toggle

Bug Fixes

  • Add React Compiler support. (#4750)

@udecode/cn

Bug Fixes

  • Add React Compiler support. (#4750)

@udecode/react-hotkeys

Bug Fixes

  • Add React Compiler support. (#4750)

@udecode/react-utils

Bug Fixes

  • Add React Compiler support. (#4750)

@udecode/utils

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/utils

Bug Fixes

  • Add React Compiler support. (#4750)

@platejs/yjs

Bug Fixes

  • Add React Compiler support. (#4750)

CHANGELOG · v52.0.0...v52.0.1 · By @zbeyens

v52.0.0

@platejs/ai

Breaking Changes

@platejs/autoformat

Breaking Changes

@platejs/basic-nodes

Breaking Changes

@platejs/basic-styles

Breaking Changes

@platejs/callout

Breaking Changes

@platejs/caption

Breaking Changes

@platejs/code-block

Breaking Changes

@platejs/combobox

Breaking Changes

@platejs/comment

Breaking Changes

@platejs/core

Breaking Changes

@platejs/csv

Breaking Changes

@platejs/cursor

Breaking Changes

@platejs/date

Breaking Changes

@platejs/diff

Breaking Changes

@platejs/dnd

Breaking Changes

@platejs/docx

Breaking Changes

@platejs/emoji

Breaking Changes

@platejs/excalidraw

Breaking Changes

@platejs/find-replace

Breaking Changes

@platejs/floating

Breaking Changes

@platejs/indent

Breaking Changes

@platejs/juice

Breaking Changes

@platejs/layout

Breaking Changes

@platejs/link

Breaking Changes

@platejs/list

Breaking Changes

@platejs/list-classic

Breaking Changes

@platejs/markdown

Breaking Changes

@platejs/math

Breaking Changes

@platejs/media

Breaking Changes

@platejs/mention

Breaking Changes

platejs

Breaking Changes

@platejs/playwright

Breaking Changes

@platejs/resizable

Breaking Changes

@platejs/selection

Breaking Changes

@platejs/slash-command

Breaking Changes

@platejs/slate

Breaking Changes

@platejs/suggestion

Breaking Changes

@platejs/tabbable

Breaking Changes

@platejs/table

Breaking Changes

@platejs/tag

Breaking Changes

@platejs/test-utils

Breaking Changes

@platejs/toc

Breaking Changes

@platejs/toggle

Breaking Changes

@udecode/cn

Breaking Changes

@udecode/react-hotkeys

Breaking Changes

@udecode/react-utils

Breaking Changes

@udecode/utils

Breaking Changes

@platejs/utils

Breaking Changes

@platejs/yjs

Breaking Changes

CHANGELOG · v51.1.3...v52.0.0 · By @zbeyens