v0.43.0

facebook/lexicalv0.43.0Apr 9, 2026by etrepum

AI Summary

Monthly release with minor breaking change for nested editors, new useExtensionSignalValue hook, CSS theme options for Yjs collaboration cursors, website refresh with modern examples, and bug fixes.

Key Highlights

  • useExtensionSignalValue hook for reading extension signals in React
  • CSS classes added to collaboration cursor elements
  • Website refresh with modern examples
  • Asynchronous parent editor delegation in nested editors
  • Bug fixes across selection, tables, markdown, extensions

Breaking Changes

  • Nested editors now use asynchronous parent editor delegation when needed

New Features

  • useExtensionSignalValue hook in @lexical/react
  • CSS classes for Yjs collaboration cursors
  • New agent example using local LLM (Transformers.js)
  • Additional website examples

Full Release Notes

v0.43.0 is a monthly release with a minor breaking change, new features, and a number of bug fixes across selection, tables, markdown, and extensions. Notable highlights include a new `useExtensionSignalValue` hook, and CSS theme options for Yjs collaboration cursors.

Outside of the release artifact, we've refreshed the [lexical.dev](https://lexical.dev) website thanks to @m-santanna (and inspired by design mockups from @ixahmedxi). Importantly this refresh includes a set of modern examples (`examples/website-*` and `examples/agent-example`) that are embedded on the front page and showcase current best practices.

## Breaking Changes

### Asynchronous parent editor delegation [#8308](https://github.com/facebook/lexical/pull/8308)

`@lexical/react` nested editors now use asynchronous parent editor delegation when needed to match pre-0.42.0 legacy behavior.

## New APIs

### `@lexical/react` - `useExtensionSignalValue` [#8286](https://github.com/facebook/lexical/pull/8286)

A new `@lexical/react/useExtensionSignalValue` module is available for reading signal values from extension output within React components

## Highlights

Core:

* ⚠️ #8308 Use asynchronous parent editor delegation when needed in nested editors
* ✅ #8267 Exclude Android WebView from `IS_SAFARI` browser detection
* ✅ #8273 Fix merging `TextNode`s when `__state` contains a different number of default values
* ✅ #8266 Replace `$insertNodes` with `$insertNodeIntoLeaf` for consistent `DecoratorNode` behavior inside `MarkNode`

Code:

* ✅ #8254 Remove usage of `skipTransforms` in `CodeHighlighterPrism` and `CodeHighlighterShiki`

Extension:

* 🆕 #8286 Add `@lexical/react/useExtensionSignalValue` module for reading signals from React

Examples:

* 🆕 #8281 Add a new agent example using a local LLM (Transformers.js / in-browser)
* 🆕 #8258 Add additional website examples

Headless:

* ✅ #8274 Use `window.happyDOM.close()` to ensure proper cleanup

Link:

* ✅ #8309 Preserve cursor position when merging adjacent identical links

Markdown:

* ✅ #8265 Preserve hard line breaks during import when newlines are preserved

Playground:

* ✅ #8260 Use `isExactShortcutMatch` for Dvorak keyboard compatibility

Selection:

* ✅ #8261 Make `$getSelectionStyleValueForProperty` direction-independent

Table:

* ✅ #8259 Infer column header state from position during DOM import

Utils:
* ✅ #8276 Fix `$insertNodeIntoLeaf` edge case; update `@preact/signals-core`, hermes, and flow dependencies

Yjs:

* 🆕 #8271 Add CSS classes to collaboration cursor elements

Infrastructure:

* 🧹 #8287 Upgrade ESLint 8 → ESLint 10 with flat configuration
* 🧹 #8307 Upgrade Vite to `^7.3.2`
* 🧹 #8248 Update GitHub CI workflows and run with Node 24
* 🧹 #8253 Update `flow-bin` to 0.306.0 and add incompatible-variance workaround
* 🧹 #8277 #8315 Bump Flow and replace legacy Flow syntax with modern equivalents
* 🧹 #8243 Update unit tests with extensions to use explicit resource management (`using`)

## What's Changed
* v0.42.0 by @etrepum in https://github.com/facebook/lexical/pull/8245
* build(deps): bump next from 15.5.11 to 15.5.14 in /scripts/__tests__/integration/fixtures/lexical-esm-nextjs by @dependabot[bot] in https://github.com/facebook/lexical/pull/8242
* [examples] Chore: Update examples for v0.42.0 by @etrepum in https://github.com/facebook/lexical/pull/8246
* [*] Chore: Update unit tests with extensions to use explicit resource management (using) by @etrepum in https://github.com/facebook/lexical/pull/8243
* [*] Chore: Github CI workflows action updates and run with node 24 by @etrepum in https://github.com/facebook/lexical/pull/8248
* [*] Chore: Update flow-bin to 0.306.0 and add incompatible-variance workaround by @etrepum in https://github.com/facebook/lexical/pull/8253
* [lexical-code-prism][lexical-code-shiki] Bug Fix: Remove usage of skipTransforms in CodeHighlighterPrism and CodeHighlighterShiki by @etrepum in https://github.com/facebook/lexical/pull/8254
* build(deps): bump astro from 5.18.0 to 5.18.1 in /scripts/__tests__/integration/fixtures/lexical-esm-astro-react by @dependabot[bot] in https://github.com/facebook/lexical/pull/8262
* [lexical-selection] Bug Fix: Make $getSelectionStyleValueForProperty direction-independent by @Sathvik-Chowdary-Veerapaneni in https://github.com/facebook/lexical/pull/8261
* [lexical-table] Bug Fix: Infer column header state from position during DOM import by @Sathvik-Chowdary-Veerapaneni in https://github.com/facebook/lexical/pull/8259
* build(deps): bump happy-dom from 20.0.11 to 20.8.8 by @dependabot[bot] in https://github.com/facebook/lexical/pull/8264
* [lexical-playground] Bug Fix: Use isExactShortcutMatch for Dvorak keyboard compatibility by @Sathvik-Chowdary-Veerapaneni in https://github.com/facebook/lexical/pull/8260
* [lexical] Fix: exclude Android WebView from IS_SAFARI browser detection by @kzroo in https://github.com/facebook/lexical/pull/8267
* [examples] Feature: Added examples (for the website)  by @m-santanna in https://github.com/facebook/lexical/pull/8258
* [lexical] Fix : Replaced the function $insertNodes with $insertNodeIntoLeaf for consistent behavior of Decorator Node within MarkNode by @Jynx2004 in https://github.com/facebook/lexical/pull/8266
* build(deps): bump happy-dom from 20.8.8 to 20.8.9 by @dependabot[bot] in https://github.com/facebook/lexical/pull/8269
* [lexical-website] Feature: ui improvement in the homepage of lexical.dev by @m-santanna in https://github.com/facebook/lexical/pull/8216
* [lexical] Fix: merge TextNodes when __state contains different number of default values by @james-atticus in https://github.com/facebook/lexical/pull/8273
* [lexical-headless] Bug Fix: Use window.happyDOM.close() to ensure proper cleanup by @etrepum in https://github.com/facebook/lexical/pull/8274
* Bump flow and replace legacy flow syntax with modern ones by @SamChou19815 in https://github.com/facebook/lexical/pull/8277
* [lexical-markdown] Bug Fix: Preserve markdown hard line breaks during import when newlines are preserved by @joshjryan in https://github.com/facebook/lexical/pull/8265
* [lexical-website] Chore: community page updates by @etrepum in https://github.com/facebook/lexical/pull/8270
* [lexical-utils][lexical-extension][*] Bug Fix: Fix $insertNodeIntoLeaf edge case and update @preact/signals-core, hermes, and flow related dependencies by @etrepum in https://github.com/facebook/lexical/pull/8276
* build(deps): bump lodash-es from 4.17.22 to 4.18.1 by @dependabot[bot] in https://github.com/facebook/lexical/pull/8279
* [lexical-yjs] Feature: Add CSS classes to collaboration cursor elements by @m-brtn in https://github.com/facebook/lexical/pull/8271
* [example] Feature: Add a new agent-example using a local LLM by @etrepum in https://github.com/facebook/lexical/pull/8281
* [lexical-react] Feature: Add @lexical/react/useExtensionSignalValue module for reading signals by @etrepum in https://github.com/facebook/lexical/pull/8286
* [lexical-website] Documentation Update: clarify Yjs custom node property syncing by @Vedthakar in https://github.com/facebook/lexical/pull/8288
* [lexical] Chore: Upgrade ESLint 8 to ESLint 10 with flat configuration by @etrepum in https://github.com/facebook/lexical/pull/8287
* [*] Chore: Upgrade vite to ^7.3.2 by @etrepum in https://github.com/facebook/lexical/pull/8307
* [Breaking Change][lexical] Bug Fix: Use asynchronous parent editor delegation when needed by @etrepum in https://github.com/facebook/lexical/pull/8308
* [lexical-link] Bug Fix: Preserve cursor position when merging adjacent identical links by @Sathvik-Chowdary-Veerapaneni in https://github.com/facebook/lexical/pull/8309
* [*] Fix: Replace legacy Flow syntax with modern equivalents in .flow … by @potatowagon in https://github.com/facebook/lexical/pull/8315

## New Contributors
* @Sathvik-Chowdary-Veerapaneni made their first contribution in https://github.com/facebook/lexical/pull/8261
* @kzroo made their first contribution in https://github.com/facebook/lexical/pull/8267
* @joshjryan made their first contribution in https://github.com/facebook/lexical/pull/8265
* @m-brtn made their first contribution in https://github.com/facebook/lexical/pull/8271
* @Vedthakar made their first contribution in https://github.com/facebook/lexical/pull/8288

**Full Changelog**: https://github.com/facebook/lexical/compare/v0.42.0...v0.43.0