Skip to content

Bump the lexical group with 18 updates#1092

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/lexical-dd132352ad
Open

Bump the lexical group with 18 updates#1092
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/lexical-dd132352ad

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 6, 2026

Copy link
Copy Markdown
Contributor

Bumps the lexical group with 18 updates:

Package From To
@lexical/clipboard 0.44.0 0.45.0
@lexical/code 0.44.0 0.45.0
@lexical/extension 0.44.0 0.45.0
@lexical/history 0.44.0 0.45.0
@lexical/html 0.44.0 0.45.0
@lexical/link 0.44.0 0.45.0
@lexical/list 0.44.0 0.45.0
@lexical/markdown 0.44.0 0.45.0
@lexical/plain-text 0.44.0 0.45.0
@lexical/rich-text 0.44.0 0.45.0
@lexical/selection 0.44.0 0.45.0
@lexical/table 0.44.0 0.45.0
@lexical/utils 0.44.0 0.45.0
lexical 0.44.0 0.45.0
@lexical/code-core 0.44.0 0.45.0
@lexical/code-prism 0.44.0 0.45.0
@lexical/dragon 0.44.0 0.45.0
@lexical/text 0.44.0 0.45.0

Updates @lexical/clipboard from 0.44.0 to 0.45.0

Release notes

Sourced from @​lexical/clipboard's releases.

v0.45.0 is a monthly release with several breaking changes around selection and reconcile semantics, a major new experimental DOMImportExtension API for composable HTML import that replaces importDOM, a generalized DOMSlot and DOM render override surface, new HistoryExtension ergonomics (canUndo/canRedo signals, maxDepth), notable reconciler/selection performance work, and a wide range of bug fixes across IME, mobile keyboards, list/code/table editing, and markdown round-tripping.

Breaking Changes

lexical — Shadow root inclusion in $getReconciledDirection (#8479)

$getReconciledDirection now walks through shadow roots when resolving the reconciled dir attribute on a node, so nested ShadowRoot-style elements (e.g. tables) inherit direction consistently with regular elements. Callers that relied on direction inheritance stopping at shadow roots will need to update.

lexical / @lexical/rich-text — Backspace at block start preserves the current block (#8493)

Pressing Backspace at the start of a non-empty block previously merged the current block into the previous block, which discarded the current block's type/format. The new behavior merges the previous block's children into the current block instead, preserving the current block's type (heading, list item, quote, etc.). A new $mergeBlockBackward helper on RangeSelection is exposed for custom command handlers that want the same behavior.

lexical — Selection adjustment in removeFromParent callers (#8501)

LexicalNode.replace, insertBefore, insertAfter, and related callers that move a node between parents now correctly adjust the current selection to follow the moved node instead of leaving the selection pointing at the (now empty) original slot. This may change selection state observed by transforms or update listeners that previously relied on the stale offsets.

@lexical/markdown — Apply markdown shortcuts on composition-committed triggers (#8503)

Markdown shortcuts (e.g. *, _, ~) typed via IME composition now trigger after the composition is committed, not just on raw beforeinput. This fixes shortcuts being silently dropped during Japanese / Korean / Chinese input but may also fire shortcuts in some flows that previously didn't.

@lexical/extension / @lexical/rich-text / @lexical/plain-textNormalizeInlineElementsExtension (#8497)

registerRichText and registerPlainText now register a transform that removes empty inline elements (e.g. LinkNode, formatted TextNode wrappers with no children) instead of leaving them in the tree. The transform is also exported as NormalizeInlineElementsExtension from @lexical/extension for use with extension-based setups. Editors that intentionally kept empty inline wrappers will need to disable the extension or override the transform. See Included Extensions.

lexical / @lexical/extension / @lexical/rich-text / @lexical/plain-textNormalizeTripleClickSelectionExtension (#8520)

The "triple-click selects the whole paragraph including the trailing newline" normalization has moved out of LexicalEvents and into a new NormalizeTripleClickSelectionExtension registered by both rich-text and plain-text. The core LexicalEditor no longer performs this normalization on its own, so editors that bypass registerRichText / registerPlainText (or the equivalent extensions) need to register the extension explicitly to keep the previous behavior. See Included Extensions.

lexical / @lexical/html / @lexical/selection / @lexical/utils / @lexical/playground — Generalized DOMSlot and DOMRenderExtension override surface (#8519)

DOMSlot is now generalized so child slots can be expressed for arbitrary DOM containers (not just the direct child element), and $createDOM, $updateDOM, $exportDOM, $getDOMSlot etc. all flow through the new override surface. The previously-exported AutocompleteNode in the playground has been replaced by a VisibleLineBreakExtension that demonstrates the new override surface, and markSelection in @lexical/utils has been rewritten on top of the generalized slot API. Custom nodes that override getDOMSlot to return a non-element wrapper now have a real way to express that. See the DOMRenderExtension docs.

New APIs

@lexical/htmlDOMImportExtension (experimental) (#8528)

A new DOMImportExtension replaces the legacy node-class importDOM static method with a composable middleware-style API. Rules declare a CSS-selector-style matcher, an optional schema for child handling, and a DOMImportFn that builds Lexical nodes from the matching DOM. Many helpers ship alongside it: $distributeInlineWrapper, ImportSession, DOMPreprocessFn for source-specific cleanup (Word, VS Code, etc.), and full TypeScript types for rules, captures, and contexts. A new dev-examples/dom-import showcase wires it up to a Word/VS Code paste flow. The legacy importDOM continues to work; new code can opt in to DOMImportExtension for richer composition and explicit ordering. The companion ClipboardDOMImportExtension (in @lexical/clipboard) routes text/html pastes through the new pipeline. See the DOMImportExtension guide and the "Migrating from importDOM" section.

@lexical/html / @lexical/playground — Conditional DOM render overrides (#8575)

domOverride now supports disabledForEditor and disabledForSession predicates so render overrides can be conditionally skipped on a per-editor or per-session basis (e.g. only apply during export, or only when a feature flag is on). Useful when one extension provides multiple overrides whose applicability depends on context that isn't known at registration time. See the DOMRenderExtension docs.

lexicalElementNode import/export of data-lexical-indent (#8536)

ElementNode now uniformly imports and exports the data-lexical-indent attribute so any subclass round-trips its indent level through HTML without having to override exportDOM / importDOM (fixes the long-standing #7729 regression around indented headings/paragraphs).

lexical — Infinite recursion detection in update listeners (#8542)

Update listeners and update transforms that re-trigger themselves are now caught by a runtime guard that throws a descriptive error after a configurable number of nested updates, instead of hanging the tab. See Updates and Listeners.

... (truncated)

Changelog

Sourced from @​lexical/clipboard's changelog.

v0.45.0 (2026-05-29)

  • cilexical Bug Fix Upgrade playwrighttest to 1.60.0 (#8582) Bob Ippolito
  • lexical-htmllexical-playground Feature Conditional DOM render overrides (disabledForEditordisabledForSession) (#8575) Bob Ippolito
  • fix prevent MOVETOENDMOVETOSTART crash on decorator-only elements (#8577) Sherry
  • Refactor Publish packages from their root directory (#8554) Bob Ippolito
  • lexical-website Documentation Tuning HistoryExtension for long sessions (#8546) Bob Ippolito
  • lexical-html Feature DOMImportExtension - replacement for importDOM (#8528) Bob Ippolito
  • lexical-website Feature Server-rendered Copy page Markdown button (#8570) Bob Ippolito
  • ci Use playwright install-deps instead of apt-get (#8572) Bob Ippolito
  • lexical-website Bug Fix Fix crash on docserror page from undefined process (#8557) Bob Ippolito
  • lexical Bug Fix Correct children fast-path text size for cross-parent-moved elements (#8569) Bob Ippolito
  • Breaking Changelexicallexical-htmllexical-selectionlexical-utilslexical-playground Feature Generalize DOMSlot and add DOMRenderExtension override surface (#8519) mayrang
  • lexical-playground Bug Fix Build dev playground in development mode (#8565) Bob Ippolito
  • lexical Bug Fix Skip reconcileChildren fast path during full reconcile (#8564) Bob Ippolito
  • lexicallexical-rich-textlexical-code-core Bug Fix Cursor stuck before leading inline DecoratorNode (#8558) mayrang
  • lexical-code-prismlexical-code-shikilexical-playground Feature Allow null Tokenizer.defaultLanguage to preserve markdown round-trip (#8553) mayrang
  • lexical-extensionlexical-playground Feature Insert paragraph on click after the last block (#8549) mayrang
  • lexical-playground Bug Fix Normalize collapsible content children (#8539) Rohan Patnaik
  • lexical Bug Fix Cache last-child kind for trailing-br reconcile (#8548) mayrang
  • lexical-markdown Chore Cover bold italic markdown round trip (#8541) Rohan Patnaik
  • lexical-extensionlexical-htmllexical-utilslexical Chore Migrate away from legacy flow syntax (#8547) Sam Zhou
  • lexical Feature Detect infinite recursion in update listeners (#8542) mayrang
  • lexical-playground Bug Fix EquationNode click NodeSelection empty-input Backspace removes (#8534) mayrang
  • build(deps) bump serialize-javascript from 6.0.2 to 7.0.4 (#8540) dependabotbot
  • lexical-history Feature Add maxDepth option to HistoryExtension (#8537) Bob Ippolito
  • lexical Feature ElementNode importexport support for data-lexical-indent (#8536) Bob Ippolito
  • lexical-markdown Bug Fix Fix Markdown import with Unicode whitespace (#8535) Rodrigo Lungui
  • lexical-website Bug Fix Remove embed1 from non-iframe StackBlitz links (#8531) Bob Ippolito
  • lexical Bug Fix handle triple-click overselection in setBlocksType (#8517) Mike Dalessio
  • Breaking Changelexicallexical-extensionlexical-rich-textlexical-plain-text Feature Move triple click selection handling to NormalizeTripleClickSelectionExtension (#8520) Bob Ippolito
  • lexical-rich-text Bug Fix Insert paragraph on Enter for a block DecoratorNode NodeSelection (#8526) mayrang
  • lexical-yjs Chore Fix RenderSnapshot comment typo (#8527) Shaurya Singh
  • lexical-playground Bug Fix Fix unawaited playwright promises in e2e test suite (#8521) Bob Ippolito
  • ci Chore pin Windows e2e runners to windows-2022 (#8522) Bob Ippolito
  • lexicallexical-yjslexical-playground Chore Respect browserslist (#8512) Sergey Gorbachev
  • lexical-react Feature optional async onClose for LexicalTypeaheadMenuPlugin (#8489) Abhinav Gautam
  • lexical-markdown Bug Fix run element markdown shortcuts on Enter (#8488) Abhinav Gautam
  • lexical-website Bug Fix Correct links to included extensions (#8523) duyda
  • lexical-code-shikinextjs-code-shiki Bug Fix Externalize shiki dependencies in the published bundle (#8514) Bob Ippolito
  • lexical-website Bug Fix Drop Vercel Analytics inject and unwrap chat input from flex parent (#8509) mayrang
  • lexical-website Refactor Drop docusaurus-plugin-internaldocs-fb preset (#8516) Gerard Rovira
  • ci Refactor Use composite actions to simplify github workflows (#8504) Bob Ippolito
  • lexical-extension Bug Fix Set the correct default canIndent (#8510) Sergey Gorbachev
  • lexicallexical-listlexical-selectionlexical-link Refactor Centralize replace-area selection mapping bulk splice (#8505) mayrang
  • lexical-table Bug Fix prevent crash when moving selection with arrow key outside of nested table (#8502) Randal
  • Breaking Changelexical-extensionlexical-rich-textlexical-plain-text Feature Remove empty inline elements (#8497) Sergey Gorbachev
  • Breaking Changelexical-markdown Bug Fix Apply markdown shortcuts on composition-committed triggers (#8503) mayrang
  • lexical-playground Chore Drop FIXME #8348 Firefox ArrowDown workaround in Tables.spec.mjs (#8508) Mark Feng
  • lexical Perf Children fast path with suffix-incremental cache update in reconcileChildren (#8482) mayrang

... (truncated)

Commits

Updates @lexical/code from 0.44.0 to 0.45.0

Release notes

Sourced from @​lexical/code's releases.

v0.45.0 is a monthly release with several breaking changes around selection and reconcile semantics, a major new experimental DOMImportExtension API for composable HTML import that replaces importDOM, a generalized DOMSlot and DOM render override surface, new HistoryExtension ergonomics (canUndo/canRedo signals, maxDepth), notable reconciler/selection performance work, and a wide range of bug fixes across IME, mobile keyboards, list/code/table editing, and markdown round-tripping.

Breaking Changes

lexical — Shadow root inclusion in $getReconciledDirection (#8479)

$getReconciledDirection now walks through shadow roots when resolving the reconciled dir attribute on a node, so nested ShadowRoot-style elements (e.g. tables) inherit direction consistently with regular elements. Callers that relied on direction inheritance stopping at shadow roots will need to update.

lexical / @lexical/rich-text — Backspace at block start preserves the current block (#8493)

Pressing Backspace at the start of a non-empty block previously merged the current block into the previous block, which discarded the current block's type/format. The new behavior merges the previous block's children into the current block instead, preserving the current block's type (heading, list item, quote, etc.). A new $mergeBlockBackward helper on RangeSelection is exposed for custom command handlers that want the same behavior.

lexical — Selection adjustment in removeFromParent callers (#8501)

LexicalNode.replace, insertBefore, insertAfter, and related callers that move a node between parents now correctly adjust the current selection to follow the moved node instead of leaving the selection pointing at the (now empty) original slot. This may change selection state observed by transforms or update listeners that previously relied on the stale offsets.

@lexical/markdown — Apply markdown shortcuts on composition-committed triggers (#8503)

Markdown shortcuts (e.g. *, _, ~) typed via IME composition now trigger after the composition is committed, not just on raw beforeinput. This fixes shortcuts being silently dropped during Japanese / Korean / Chinese input but may also fire shortcuts in some flows that previously didn't.

@lexical/extension / @lexical/rich-text / @lexical/plain-textNormalizeInlineElementsExtension (#8497)

registerRichText and registerPlainText now register a transform that removes empty inline elements (e.g. LinkNode, formatted TextNode wrappers with no children) instead of leaving them in the tree. The transform is also exported as NormalizeInlineElementsExtension from @lexical/extension for use with extension-based setups. Editors that intentionally kept empty inline wrappers will need to disable the extension or override the transform. See Included Extensions.

lexical / @lexical/extension / @lexical/rich-text / @lexical/plain-textNormalizeTripleClickSelectionExtension (#8520)

The "triple-click selects the whole paragraph including the trailing newline" normalization has moved out of LexicalEvents and into a new NormalizeTripleClickSelectionExtension registered by both rich-text and plain-text. The core LexicalEditor no longer performs this normalization on its own, so editors that bypass registerRichText / registerPlainText (or the equivalent extensions) need to register the extension explicitly to keep the previous behavior. See Included Extensions.

lexical / @lexical/html / @lexical/selection / @lexical/utils / @lexical/playground — Generalized DOMSlot and DOMRenderExtension override surface (#8519)

DOMSlot is now generalized so child slots can be expressed for arbitrary DOM containers (not just the direct child element), and $createDOM, $updateDOM, $exportDOM, $getDOMSlot etc. all flow through the new override surface. The previously-exported AutocompleteNode in the playground has been replaced by a VisibleLineBreakExtension that demonstrates the new override surface, and markSelection in @lexical/utils has been rewritten on top of the generalized slot API. Custom nodes that override getDOMSlot to return a non-element wrapper now have a real way to express that. See the DOMRenderExtension docs.

New APIs

@lexical/htmlDOMImportExtension (experimental) (#8528)

A new DOMImportExtension replaces the legacy node-class importDOM static method with a composable middleware-style API. Rules declare a CSS-selector-style matcher, an optional schema for child handling, and a DOMImportFn that builds Lexical nodes from the matching DOM. Many helpers ship alongside it: $distributeInlineWrapper, ImportSession, DOMPreprocessFn for source-specific cleanup (Word, VS Code, etc.), and full TypeScript types for rules, captures, and contexts. A new dev-examples/dom-import showcase wires it up to a Word/VS Code paste flow. The legacy importDOM continues to work; new code can opt in to DOMImportExtension for richer composition and explicit ordering. The companion ClipboardDOMImportExtension (in @lexical/clipboard) routes text/html pastes through the new pipeline. See the DOMImportExtension guide and the "Migrating from importDOM" section.

@lexical/html / @lexical/playground — Conditional DOM render overrides (#8575)

domOverride now supports disabledForEditor and disabledForSession predicates so render overrides can be conditionally skipped on a per-editor or per-session basis (e.g. only apply during export, or only when a feature flag is on). Useful when one extension provides multiple overrides whose applicability depends on context that isn't known at registration time. See the DOMRenderExtension docs.

lexicalElementNode import/export of data-lexical-indent (#8536)

ElementNode now uniformly imports and exports the data-lexical-indent attribute so any subclass round-trips its indent level through HTML without having to override exportDOM / importDOM (fixes the long-standing #7729 regression around indented headings/paragraphs).

lexical — Infinite recursion detection in update listeners (#8542)

Update listeners and update transforms that re-trigger themselves are now caught by a runtime guard that throws a descriptive error after a configurable number of nested updates, instead of hanging the tab. See Updates and Listeners.

... (truncated)

Changelog

Sourced from @​lexical/code's changelog.

v0.45.0 (2026-05-29)

  • cilexical Bug Fix Upgrade playwrighttest to 1.60.0 (#8582) Bob Ippolito
  • lexical-htmllexical-playground Feature Conditional DOM render overrides (disabledForEditordisabledForSession) (#8575) Bob Ippolito
  • fix prevent MOVETOENDMOVETOSTART crash on decorator-only elements (#8577) Sherry
  • Refactor Publish packages from their root directory (#8554) Bob Ippolito
  • lexical-website Documentation Tuning HistoryExtension for long sessions (#8546) Bob Ippolito
  • lexical-html Feature DOMImportExtension - replacement for importDOM (#8528) Bob Ippolito
  • lexical-website Feature Server-rendered Copy page Markdown button (#8570) Bob Ippolito
  • ci Use playwright install-deps instead of apt-get (#8572) Bob Ippolito
  • lexical-website Bug Fix Fix crash on docserror page from undefined process (#8557) Bob Ippolito
  • lexical Bug Fix Correct children fast-path text size for cross-parent-moved elements (#8569) Bob Ippolito
  • Breaking Changelexicallexical-htmllexical-selectionlexical-utilslexical-playground Feature Generalize DOMSlot and add DOMRenderExtension override surface (#8519) mayrang
  • lexical-playground Bug Fix Build dev playground in development mode (#8565) Bob Ippolito
  • lexical Bug Fix Skip reconcileChildren fast path during full reconcile (#8564) Bob Ippolito
  • lexicallexical-rich-textlexical-code-core Bug Fix Cursor stuck before leading inline DecoratorNode (#8558) mayrang
  • lexical-code-prismlexical-code-shikilexical-playground Feature Allow null Tokenizer.defaultLanguage to preserve markdown round-trip (#8553) mayrang
  • lexical-extensionlexical-playground Feature Insert paragraph on click after the last block (#8549) mayrang
  • lexical-playground Bug Fix Normalize collapsible content children (#8539) Rohan Patnaik
  • lexical Bug Fix Cache last-child kind for trailing-br reconcile (#8548) mayrang
  • lexical-markdown Chore Cover bold italic markdown round trip (#8541) Rohan Patnaik
  • lexical-extensionlexical-htmllexical-utilslexical Chore Migrate away from legacy flow syntax (#8547) Sam Zhou
  • lexical Feature Detect infinite recursion in update listeners (#8542) mayrang
  • lexical-playground Bug Fix EquationNode click NodeSelection empty-input Backspace removes (#8534) mayrang
  • build(deps) bump serialize-javascript from 6.0.2 to 7.0.4 (#8540) dependabotbot
  • lexical-history Feature Add maxDepth option to HistoryExtension (#8537) Bob Ippolito
  • lexical Feature ElementNode importexport support for data-lexical-indent (#8536) Bob Ippolito
  • lexical-markdown Bug Fix Fix Markdown import with Unicode whitespace (#8535) Rodrigo Lungui
  • lexical-website Bug Fix Remove embed1 from non-iframe StackBlitz links (#8531) Bob Ippolito
  • lexical Bug Fix handle triple-click overselection in setBlocksType (#8517) Mike Dalessio
  • Breaking Changelexicallexical-extensionlexical-rich-textlexical-plain-text Feature Move triple click selection handling to NormalizeTripleClickSelectionExtension (#8520) Bob Ippolito
  • lexical-rich-text Bug Fix Insert paragraph on Enter for a block DecoratorNode NodeSelection (#8526) mayrang
  • lexical-yjs Chore Fix RenderSnapshot comment typo (#8527) Shaurya Singh
  • lexical-playground Bug Fix Fix unawaited playwright promises in e2e test suite (#8521) Bob Ippolito
  • ci Chore pin Windows e2e runners to windows-2022 (#8522) Bob Ippolito
  • lexicallexical-yjslexical-playground Chore Respect browserslist (#8512) Sergey Gorbachev
  • lexical-react Feature optional async onClose for LexicalTypeaheadMenuPlugin (#8489) Abhinav Gautam
  • lexical-markdown Bug Fix run element markdown shortcuts on Enter (#8488) Abhinav Gautam
  • lexical-website Bug Fix Correct links to included extensions (#8523) duyda
  • lexical-code-shikinextjs-code-shiki Bug Fix Externalize shiki dependencies in the published bundle (#8514) Bob Ippolito
  • lexical-website Bug Fix Drop Vercel Analytics inject and unwrap chat input from flex parent (#8509) mayrang
  • lexical-website Refactor Drop docusaurus-plugin-internaldocs-fb preset (#8516) Gerard Rovira
  • ci Refactor Use composite actions to simplify github workflows (#8504) Bob Ippolito
  • lexical-extension Bug Fix Set the correct default canIndent (#8510) Sergey Gorbachev
  • lexicallexical-listlexical-selectionlexical-link Refactor Centralize replace-area selection mapping bulk splice (#8505) mayrang
  • lexical-table Bug Fix prevent crash when moving selection with arrow key outside of nested table (#8502) Randal
  • Breaking Changelexical-extensionlexical-rich-textlexical-plain-text Feature Remove empty inline elements (#8497) Sergey Gorbachev
  • Breaking Changelexical-markdown Bug Fix Apply markdown shortcuts on composition-committed triggers (#8503) mayrang
  • lexical-playground Chore Drop FIXME #8348 Firefox ArrowDown workaround in Tables.spec.mjs (#8508) Mark Feng
  • lexical Perf Children fast path with suffix-incremental cache update in reconcileChildren (#8482) mayrang

... (truncated)

Commits
  • 0cfcc16 v0.45.0
  • 47b9ccc [*] Refactor: Publish packages from their root directory (#8554)
  • a1e1a38 [lexical][lexical-rich-text][lexical-code-core] Bug Fix: Cursor stuck before ...
  • 168f803 [lexical-code-prism][lexical-code-shiki][lexical-playground] Feature: Allow n...
  • c4083d5 [lexical-code-core][lexical-code-shiki][lexical-code-prism] Feature: Outdent ...
  • eaf5b65 v0.44.0 (#8394)
  • See full diff in compare view

Updates @lexical/extension from 0.44.0 to 0.45.0

Release notes

Sourced from @​lexical/extension's releases.

v0.45.0 is a monthly release with several breaking changes around selection and reconcile semantics, a major new experimental DOMImportExtension API for composable HTML import that replaces importDOM, a generalized DOMSlot and DOM render override surface, new HistoryExtension ergonomics (canUndo/canRedo signals, maxDepth), notable reconciler/selection performance work, and a wide range of bug fixes across IME, mobile keyboards, list/code/table editing, and markdown round-tripping.

Breaking Changes

lexical — Shadow root inclusion in $getReconciledDirection (#8479)

$getReconciledDirection now walks through shadow roots when resolving the reconciled dir attribute on a node, so nested ShadowRoot-style elements (e.g. tables) inherit direction consistently with regular elements. Callers that relied on direction inheritance stopping at shadow roots will need to update.

lexical / @lexical/rich-text — Backspace at block start preserves the current block (#8493)

Pressing Backspace at the start of a non-empty block previously merged the current block into the previous block, which discarded the current block's type/format. The new behavior merges the previous block's children into the current block instead, preserving the current block's type (heading, list item, quote, etc.). A new $mergeBlockBackward helper on RangeSelection is exposed for custom command handlers that want the same behavior.

lexical — Selection adjustment in removeFromParent callers (#8501)

LexicalNode.replace, insertBefore, insertAfter, and related callers that move a node between parents now correctly adjust the current selection to follow the moved node instead of leaving the selection pointing at the (now empty) original slot. This may change selection state observed by transforms or update listeners that previously relied on the stale offsets.

@lexical/markdown — Apply markdown shortcuts on composition-committed triggers (#8503)

Markdown shortcuts (e.g. *, _, ~) typed via IME composition now trigger after the composition is committed, not just on raw beforeinput. This fixes shortcuts being silently dropped during Japanese / Korean / Chinese input but may also fire shortcuts in some flows that previously didn't.

@lexical/extension / @lexical/rich-text / @lexical/plain-textNormalizeInlineElementsExtension (#8497)

registerRichText and registerPlainText now register a transform that removes empty inline elements (e.g. LinkNode, formatted TextNode wrappers with no children) instead of leaving them in the tree. The transform is also exported as NormalizeInlineElementsExtension from @lexical/extension for use with extension-based setups. Editors that intentionally kept empty inline wrappers will need to disable the extension or override the transform. See Included Extensions.

lexical / @lexical/extension / @lexical/rich-text / @lexical/plain-textNormalizeTripleClickSelectionExtension (#8520)

The "triple-click selects the whole paragraph including the trailing newline" normalization has moved out of LexicalEvents and into a new NormalizeTripleClickSelectionExtension registered by both rich-text and plain-text. The core LexicalEditor no longer performs this normalization on its own, so editors that bypass registerRichText / registerPlainText (or the equivalent extensions) need to register the extension explicitly to keep the previous behavior. See Included Extensions.

lexical / @lexical/html / @lexical/selection / @lexical/utils / @lexical/playground — Generalized DOMSlot and DOMRenderExtension override surface (#8519)

DOMSlot is now generalized so child slots can be expressed for arbitrary DOM containers (not just the direct child element), and $createDOM, $updateDOM, $exportDOM, $getDOMSlot etc. all flow through the new override surface. The previously-exported AutocompleteNode in the playground has been replaced by a VisibleLineBreakExtension that demonstrates the new override surface, and markSelection in @lexical/utils has been rewritten on top of the generalized slot API. Custom nodes that override getDOMSlot to return a non-element wrapper now have a real way to express that. See the DOMRenderExtension docs.

New APIs

@lexical/htmlDOMImportExtension (experimental) (#8528)

A new DOMImportExtension replaces the legacy node-class importDOM static method with a composable middleware-style API. Rules declare a CSS-selector-style matcher, an optional schema for child handling, and a DOMImportFn that builds Lexical nodes from the matching DOM. Many helpers ship alongside it: $distributeInlineWrapper, ImportSession, DOMPreprocessFn for source-specific cleanup (Word, VS Code, etc.), and full TypeScript types for rules, captures, and contexts. A new dev-examples/dom-import showcase wires it up to a Word/VS Code paste flow. The legacy importDOM continues to work; new code can opt in to DOMImportExtension for richer composition and explicit ordering. The companion ClipboardDOMImportExtension (in @lexical/clipboard) routes text/html pastes through the new pipeline. See the DOMImportExtension guide and the "Migrating from importDOM" section.

@lexical/html / @lexical/playground — Conditional DOM render overrides (#8575)

domOverride now supports disabledForEditor and disabledForSession predicates so render overrides can be conditionally skipped on a per-editor or per-session basis (e.g. only apply during export, or only when a feature flag is on). Useful when one extension provides multiple overrides whose applicability depends on context that isn't known at registration time. See the DOMRenderExtension docs.

lexicalElementNode import/export of data-lexical-indent (#8536)

ElementNode now uniformly imports and exports the data-lexical-indent attribute so any subclass round-trips its indent level through HTML without having to override exportDOM / importDOM (fixes the long-standing #7729 regression around indented headings/paragraphs).

lexical — Infinite recursion detection in update listeners (#8542)

Update listeners and update transforms that re-trigger themselves are now caught by a runtime guard that throws a descriptive error after a configurable number of nested updates, instead of hanging the tab. See Updates and Listeners.

... (truncated)

Changelog

Sourced from @​lexical/extension's changelog.

v0.45.0 (2026-05-29)

  • cilexical Bug Fix Upgrade playwrighttest to 1.60.0 (#8582) Bob Ippolito
  • lexical-htmllexical-playground Feature Conditional DOM render overrides (disabledForEditordisabledForSession) (#8575) Bob Ippolito
  • fix prevent MOVETOENDMOVETOSTART crash on decorator-only elements (#8577) Sherry
  • Refactor Publish packages from their root directory (#8554) Bob Ippolito
  • lexical-website Documentation Tuning HistoryExtension for long sessions (#8546) Bob Ippolito
  • lexical-html Feature DOMImportExtension - replacement for importDOM (#8528) Bob Ippolito
  • lexical-website Feature Server-rendered Copy page Markdown button (#8570) Bob Ippolito
  • ci Use playwright install-deps instead of apt-get (#8572) Bob Ippolito
  • lexical-website Bug Fix Fix crash on docserror page from undefined process (#8557) Bob Ippolito
  • lexical Bug Fix Correct children fast-path text size for cross-parent-moved elements (#8569) Bob Ippolito
  • Breaking Changelexicallexical-htmllexical-selectionlexical-utilslexical-playground Feature Generalize DOMSlot and add DOMRenderExtension override surface (#8519) mayrang
  • lexical-playground Bug Fix Build dev playground in development mode (#8565) Bob Ippolito
  • lexical Bug Fix Skip reconcileChildren fast path during full reconcile (#8564) Bob Ippolito
  • lexicallexical-rich-textlexical-code-core Bug Fix Cursor stuck before leading inline DecoratorNode (#8558) mayrang
  • lexical-code-prismlexical-code-shikilexical-playground Feature Allow null Tokenizer.defaultLanguage to preserve markdown round-trip (#8553) mayrang
  • lexical-extensionlexical-playground Feature Insert paragraph on click after the last block (#8549) mayrang
  • lexical-playground Bug Fix Normalize collapsible content children (#8539) Rohan Patnaik
  • lexical Bug Fix Cache last-child kind for trailing-br reconcile (#8548) mayrang
  • lexical-markdown Chore Cover bold italic markdown round trip (#8541) Rohan Patnaik
  • lexical-extensionlexical-htmllexical-utilslexical Chore Migrate away from legacy flow syntax (#8547) Sam Zhou
  • lexical Feature Detect infinite recursion in update listeners (#8542) mayrang
  • lexical-playground Bug Fix EquationNode click NodeSelection empty-input Backspace removes (#8534) mayrang
  • build(deps) bump serialize-javascript from 6.0.2 to 7.0.4 (#8540) dependabotbot
  • lexical-history Feature Add maxDepth option to HistoryExtension (#8537) Bob Ippolito
  • lexical Feature ElementNode importexport support for data-lexical-indent (#8536) Bob Ippolito
  • lexical-markdown Bug Fix Fix Markdown import with Unicode whitespace (#8535) Rodrigo Lungui
  • lexical-website Bug Fix Remove embed1 from non-iframe StackBlitz links (#8531) Bob Ippolito
  • lexical Bug Fix handle triple-click overselection in setBlocksType (#8517) Mike Dalessio
  • Breaking Changelexicallexical-extensionlexical-rich-textlexical-plain-text Feature Move triple click selection handling to NormalizeTripleClickSelectionExtension (#8520) Bob Ippolito
  • lexical-rich-text Bug Fix Insert paragraph on Enter for a block DecoratorNode NodeSelection (#8526) mayrang
  • lexical-yjs Chore Fix RenderSnapshot comment typo (#8527) Shaurya Singh
  • lexical-playground Bug Fix Fix unawaited playwright promises in e2e test suite (#8521) Bob Ippolito
  • ci Chore pin Windows e2e runners to windows-2022 (#8522) Bob Ippolito
  • lexicallexical-yjslexical-playground Chore Respect browserslist (#8512) Sergey Gorbachev
  • lexical-react Feature optional async onClose for LexicalTypeaheadMenuPlugin (#8489) Abhinav Gautam
  • lexical-markdown Bug Fix run element markdown shortcuts on Enter (#8488) Abhinav Gautam
  • lexical-website Bug Fix Correct links to included extensions (#8523) duyda
  • lexical-code-shikinextjs-code-shiki Bug Fix Externalize shiki dependencies in the published bundle (#8514) Bob Ippolito
  • lexical-website Bug Fix Drop Vercel Analytics inject and unwrap chat input from flex parent (#8509) mayrang
  • lexical-website Refactor Drop docusaurus-plugin-internaldocs-fb preset (#8516) Gerard Rovira
  • ci Refactor Use composite actions to simplify github workflows (#8504) Bob Ippolito
  • lexical-extension Bug Fix Set the correct default canIndent (#8510) Sergey Gorbachev
  • lexicallexical-listlexical-selectionlexical-link Refactor Centralize replace-area selection mapping bulk splice (#8505) mayrang
  • lexical-table Bug Fix prevent crash when moving selection with arrow key outside of nested table (#8502) Randal
  • Breaking Changelexical-extensionlexical-rich-textlexical-plain-text Feature Remove empty inline elements (#8497) Sergey Gorbachev
  • Breaking Changelexical-markdown Bug Fix Apply markdown shortcuts on composition-committed triggers (#8503) mayrang
  • lexical-playground Chore Drop FIXME #8348 Firefox ArrowDown workaround in Tables.spec.mjs (#8508) Mark Feng
  • lexical Perf Children fast path with suffix-incremental cache update in reconcileChildren (#8482) mayrang

... (truncated)

Commits
  • 0cfcc16 v0.45.0
  • 47b9ccc [*] Refactor: Publish packages from their root directory (#8554)
  • dddda7a [lexical-html] Feature: DOMImportExtension - replacement for importDOM (#8528)
  • Description has been truncated

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jun 6, 2026
Copilot AI review requested due to automatic review settings June 6, 2026 12:24
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jun 6, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Bumps the lexical group with 18 updates:

| Package | From | To |
| --- | --- | --- |
| [@lexical/clipboard](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-clipboard) | `0.44.0` | `0.45.0` |
| [@lexical/code](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-code) | `0.44.0` | `0.45.0` |
| [@lexical/extension](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-extension) | `0.44.0` | `0.45.0` |
| [@lexical/history](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-history) | `0.44.0` | `0.45.0` |
| [@lexical/html](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html) | `0.44.0` | `0.45.0` |
| [@lexical/link](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link) | `0.44.0` | `0.45.0` |
| [@lexical/list](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-list) | `0.44.0` | `0.45.0` |
| [@lexical/markdown](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-markdown) | `0.44.0` | `0.45.0` |
| [@lexical/plain-text](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-plain-text) | `0.44.0` | `0.45.0` |
| [@lexical/rich-text](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-rich-text) | `0.44.0` | `0.45.0` |
| [@lexical/selection](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-selection) | `0.44.0` | `0.45.0` |
| [@lexical/table](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-table) | `0.44.0` | `0.45.0` |
| [@lexical/utils](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-utils) | `0.44.0` | `0.45.0` |
| [lexical](https://github.com/facebook/lexical/tree/HEAD/packages/lexical) | `0.44.0` | `0.45.0` |
| [@lexical/code-core](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-code-core) | `0.44.0` | `0.45.0` |
| [@lexical/code-prism](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-code-prism) | `0.44.0` | `0.45.0` |
| [@lexical/dragon](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-dragon) | `0.44.0` | `0.45.0` |
| [@lexical/text](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-text) | `0.44.0` | `0.45.0` |


Updates `@lexical/clipboard` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-clipboard)

Updates `@lexical/code` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-code)

Updates `@lexical/extension` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-extension)

Updates `@lexical/history` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-history)

Updates `@lexical/html` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-html)

Updates `@lexical/link` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-link)

Updates `@lexical/list` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-list)

Updates `@lexical/markdown` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-markdown)

Updates `@lexical/plain-text` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-plain-text)

Updates `@lexical/rich-text` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-rich-text)

Updates `@lexical/selection` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-selection)

Updates `@lexical/table` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-table)

Updates `@lexical/utils` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-utils)

Updates `lexical` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical)

Updates `@lexical/code-core` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-code-core)

Updates `@lexical/code-prism` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-code-prism)

Updates `@lexical/dragon` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-dragon)

Updates `@lexical/text` from 0.44.0 to 0.45.0
- [Release notes](https://github.com/facebook/lexical/releases)
- [Changelog](https://github.com/facebook/lexical/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/lexical/commits/v0.45.0/packages/lexical-text)

---
updated-dependencies:
- dependency-name: "@lexical/clipboard"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/code"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/extension"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/history"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/html"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/link"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/list"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/markdown"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/plain-text"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/rich-text"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/selection"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/table"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/utils"
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: lexical
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/code-core"
  dependency-version: 0.45.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/code-prism"
  dependency-version: 0.45.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/dragon"
  dependency-version: 0.45.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: lexical
- dependency-name: "@lexical/text"
  dependency-version: 0.45.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: lexical
...

Signed-off-by: dependabot[bot] <support@github.com>
@samuelpecher samuelpecher force-pushed the dependabot/npm_and_yarn/lexical-dd132352ad branch from e0b9fe3 to d93642c Compare June 8, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant