v0.43.0
blackboardsh/electrobunv0.43.0Apr 9, 2026by etrepum
AI Summary
This release focuses on improvements to selection, tables, markdown, and extensions. Notable additions include a new useExtensionSignalValue hook for React components and CSS theme options for Yjs collaboration cursors.
Key Highlights
- New useExtensionSignalValue hook for reading extension signals in React
- Asynchronous parent editor delegation for nested editors
- Refreshed lexical.dev website with modern examples
- CSS classes added to collaboration cursor elements
- Agent example using local LLM (Transformers.js)
Breaking Changes
- Asynchronous parent editor delegation when needed in nested editors
New Features
- useExtensionSignalValue module for reading signals from React
- New agent example using a local LLM
- Improved browser detection (excludes Android WebView from IS_SAFARI)
- Preserve cursor position when merging adjacent identical links
- Preserve hard line breaks during import when newlines are preserved
- Infer column header state from position during DOM import
- Direction-independent selection style value retrieval
- Enhanced link handling with cursor position preservation
- Modernized Flow syntax and ESLint 10 upgrade
- Vite upgrade to ^7.3.2
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