v0.43.0

Rheosoph/flow-likev0.43.0Apr 9, 2026by etrepum

AI Summary

This monthly release introduces a new React hook for reading extension signals and CSS theme options for Yjs collaboration cursors, alongside a refreshed documentation website. It includes a mix of bug fixes involving tables, markdown, and selection, as well as infrastructure upgrades like Vite 7 and ESLint 10.

Key Highlights

  • New `useExtensionSignalValue` hook for React components
  • CSS theme options for Yjs collaboration cursors
  • Refresh of lexical.dev website with modern examples
  • Upgrade to Vite 7 and ESLint 10
  • Fix merging TextNodes and replacing `$insertNodes` with `$insertNodeIntoLeaf`

Breaking Changes

  • Asynchronous parent editor delegation in `@lexical/react` nested editors to match pre-0.42.0 legacy behavior

New Features

  • `@lexical/react/useExtensionSignalValue` module for reading signals
  • Agent example using local LLM (Transformers.js)
  • CSS classes for collaboration cursor elements
  • 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