Skip to content

chore: bump lexical from 0.44.0 to 0.49.0 in /site - #28117

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

chore: bump lexical from 0.44.0 to 0.49.0 in /site#28117
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/site/lexical-0.49.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 13, 2026

Copy link
Copy Markdown
Contributor

Bumps lexical from 0.44.0 to 0.49.0.

Release notes

Sourced from lexical's releases.

v0.49.0 is a monthly release headlined by the completion of the $config() protocol migration for Lexical's built-in node classes (#8640), a breaking change that replaces per-node getType()/clone()/importJSON()/importDOM()/transform() boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized getType() and clone() (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.

Breaking Changes

  • lexical — Built-in node classes are ported to the $config() protocol. The static importJSON(), importDOM(), clone(), and transform() methods are no longer present on ported nodes; use the higher-level equivalents instead (LexicalEditor.parseEditorState/$generateNodesFromDOM, the $cloneWithProperties helper, and extensions or $transform in $config). getType() is unchanged and safe to keep using, __type is now readonly, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting $config() is recommended (#8640)
  • lexicalLexicalCommand<T>'s payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe LexicalCommand<unknown> usage must switch to the newly exported AnyLexicalCommand alias. dispatchCommand's payload argument is now optional when a command's payload type is undefined or void, and redundant explicit type parameters were dropped from the registerCommand/registerNodeTransform call sites (#8877)

New APIs & Features

  • @lexical/table — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with hasStickyScrollbar: true in the table config; style it via the new tableStickyScrollbar theme key (#8790)
  • @lexical/table — The <colgroup> element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (#8850)
  • lexical — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (#8856)

Deprecations

  • @lexical/table$createTableSelection is deprecated in favor of $createTableSelectionFrom, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder 'root' keys that must be overwritten (#8855)
  • @lexical/tablegetShape() is deprecated because it computes incorrect bounds for merged cells; use the now-exported $computeTableCellRectBoundary (with $computeTableMap) instead (#8853)

Notable Fixes

$config() follow-ups (#8640)

  • The synthesized clone() now applies afterCloneFrom() when called directly (e.g. NodeClass.clone(node)), fixing silent property loss across 25+ core nodes (#8864)
  • The synthesized getType() no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (#8867)
  • The synthesized getType() no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (#8869)

Tables

  • DELETE_LINE_COMMAND (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (#8851)
  • Table alignment now works when cells are selected in any direction, not just top-left→bottom-right (#8883)

Selection & editing

  • Editor updates dispatched from a read-only context (e.g. inside editor.read()) now run in a fresh writable update instead of being silently dropped, with a dev warning (#8863)
  • Firefox now creates a selection and shows the block cursor when clicking in the gap between block decorators (#8862)
  • Pressing ArrowUp before a leading non-inline decorator no longer moves the selection out of the editor (#8887)

Markdown, HTML & code

  • Typing a list marker at the start of a heading no longer converts the heading into a list (#8879)
  • HTML import now evaluates unrestricted CSS selector groups (e.g. p, .foo) against all elements instead of only tag-matched ones (#8873)
  • Concurrent async language/theme loads in the Shiki highlighter are deduplicated and merged into a single history entry, avoiding spurious undo states (#8854)
  • QuoteNode.updateDOM now accepts the EditorConfig argument the reconciler passes to every other node, for API consistency (#8882)

Playground & website

  • Playground scroll padding now accounts for the sticky toolbar so selections scrolled into view from above aren't hidden behind it (#8849)
  • Fixed a homepage crash caused by a minified dev build, and isolated each embedded example in its own error boundary so one failure no longer takes down the page (#8861)

What's Changed

... (truncated)

Changelog

Sourced from lexical's changelog.

v0.49.0 (2026-07-29)

  • lexical-markdown Bug Fix Preserve headings when typing list shortcuts (#8879) Steven Dang
  • lexical-rich-text Bug Fix Forward editorConfig to QuoteNode.updateDOM (#8882) Sha Halimi
  • lexical-table Bug Fix Table alignment fails when selecting in non-TL-BR direction (#8883) sahir
  • Breaking Changelexical Chore Remove redundant registerCommandregisterNodeTransform generics (#8877) mayrang
  • lexical-html Bug Fix Dispatch unrestricted CSS selector groups (#8873) Madan kumar
  • lexical-playground Bug Fix Deterministic history coalescing for flaky webkit undo tests (#8874) Bob Ippolito
  • lexical Performance Skip redundant selection restoration in removeTextFromCaretRange (#8872) mayrang
  • lexical Refactor Simplify RangeSelection.insertText via removeText decomposition (#8870) mayrang
  • lexical-list Chore Remove redundant decorator-adjacent backspace handler (#8871) mayrang
  • lexical-table Feature Skip colgroup element in table DOM with undefined col widths (#8850) Zachary Gallafent
  • lexical Bug Fix Create selection when clicking between block decorators on Firefox (#8862) mayrang
  • fix config() synthesized getType() recurses infinitely when inherited as own static (#8867 follow-up) (#8869) Sherry
  • lexicallexical-website Bug Fix Homepage crash from optimized dev build (#8861) Bob Ippolito
  • lexical Bug Fix run editor updates dispatched from a read-only context in a fresh writable update (#8863) Sherry
  • lexical Feature Editor operation benchmarks (#8856) mayrang
  • lexical Chore Migrate LexicalSelection tests to buildEditorFromExtensions (#8865) mayrang
  • fix config() synthesized getType() inherited by subclasses causes node-type collision (#8640) (#8867) Sherry
  • fix config() auto-synthesized clone() loses properties when called directly (#8640) (#8864) Sherry
  • lexical-tablelexical Feature Sticky scrollbar for overflowing tables (#8790) mayrang
  • lexical-code-shiki Bug Fix Deduplicate async loads and merge into history (#8854) Alexis
  • lexical-table Chore Remove dead code in table command handlers (#8857) mayrang
  • lexical-tablelexical-playground Chore Deprecate getShape() and migrate playground (#8853) mayrang
  • lexical-list Chore Rename isNestedListNode to isNestedListNode (#8843) Bob Ippolito
  • lexical-playground Bug Fix account for sticky toolbar in scroll padding (#8849) Bob Ippolito
  • Breaking Changeslexical Refactor Port node classes to the config() protocol (#8640) Bob Ippolito
  • lexical-table Chore Deprecate createTableSelection in favor of createTableSelectionFrom (#8855) mayrang
  • lexical-table Bug Fix Enable DELETELINECOMMAND in table cells (#8851) mayrang
  • lexical Bug Fix Scope bench vitest projects to exclude regular test files (#8852) mayrang
  • v0.48.0 (#8847) Bob Ippolito
  • v0.48.0 Lexical GitHub Actions Bot

v0.48.0 (2026-07-16)

  • lexical-reactlexical-table Bug Fix Enable table copy in read-only mode (#8845) mayrang
  • lexical-extensionlexical-mdastdev-mdast-editor-example Feature Add MdastHtmlExtension and Markdown custom-construct examples (collapsible, kbd, alerts, footnotes) (#8826) Bob Ippolito
  • Fix fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (#8846) xiezhenjia-meta
  • lexical Chore Fix serialize-javascript package dependency vulnerability (#8803) vijay ojha
  • lexical-react Bug Fix Count block separators in character limit overflow wrapping (#8840) mayrang
  • lexical-yjslexical-react Feature Customizable Yjs shared-type root name (#8841) mayrang
  • lexical-list Bug Fix Backspace at start of list item outdents or converts to paragraph (#8829) mayrang
  • lexical-table Feature Add moveTableRow function Add missing export for unmergeCellNode (#8833)
  • lexical-link Bug Fix disable link opening for disabled autolink in (#8839) Olivier Chevallier
  • lexical-rich-textlexical-plain-text Bug Fix dont cancel dragover for text drags so native drops work again (#8842) Bob Ippolito
  • Open playground links in a new tab (#8837) Sherry
  • lexical-react Bug Fix Merge adjacent OverflowNodes in useCharacterLimit (#8831) mayrang
  • lexical-code-shiki Bug Fix force re-tokenize after async language load (#8830) Olivier Chevallier
  • lexical-tablelexical-playground Bug Fix Auto-scroll while drag-selecting cells past the visible edge (#8822) Oleksandr Trukhnii
  • lexical-mdastlexical-markdown Bug Fix Roundtrip overlapping inline formats (#8825) Bob Ippolito

... (truncated)

Commits
  • ffe9092 v0.49.0
  • 82cdae1 [Breaking Change][lexical] Chore: Remove redundant registerCommand/registerNo...
  • 0a84aef [lexical] Performance: Skip redundant selection restoration in $removeTextFro...
  • 97fef1f [lexical] Refactor: Simplify RangeSelection.insertText via removeText decompo...
  • 443012c [lexical] Bug Fix: Create selection when clicking between block decorators on...
  • fccc283 fix: $config() synthesized getType() recurses infinitely when inherited as ow...
  • 3429b57 [lexical][lexical-website] Bug Fix: Homepage crash from optimized dev build (...
  • aabfaaa [lexical] Bug Fix: run editor updates dispatched from a read-only context in ...
  • e5e345d [lexical] Feature: Editor operation benchmarks (#8856)
  • 385a93c [lexical] Chore: Migrate LexicalSelection tests to buildEditorFromExtensions ...
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for lexical since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [lexical](https://github.com/facebook/lexical/tree/HEAD/packages/lexical) from 0.44.0 to 0.49.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.49.0/packages/lexical)

---
updated-dependencies:
- dependency-name: lexical
  dependency-version: 0.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 13, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) August 13, 2026 10:58
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.

0 participants