NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4968 most downloaded on npm
This package contains misc utilities for Lexical.
Last release 3 days ago
18 Sep 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
685 releases · first in 2022
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
v0.36.1 is a major feature release with a new Lexical Extension API (#7706), some needed breaking changes to @lexical/yjs (#7816, #7818) and a bunch o…
v0.36.1 is a major feature release with a new Lexical Extension API (#7706), some needed breaking changes to @lexical/yjs (#7816, #7818) and a bunch of bug fixes. We've also moved to React 19 (#7802) for all examples, tests, etc. although it should all still remain compatible with React 18 for now.
DecoratorNodeDecoratorNode to implement decorate()decorate(): T to be decorate(): null | T as that's always how it worked in practice - the generic type here is unsafe and wrong anyway (e.g. $isDecoratorNode is a cast to any type T)useCollaborationContext now requires that a context provider is usedUsers of the CollaborationPlugin or useCollaborationContext must wrap the top-level LexicalComposer with a LexicalCollaboration component. For example:
<LexicalCollaboration>
<LexicalComposer initialConfig={initialConfig}>
<RichTextPlugin ... />
<CollaborationPlugin id="lexical-editor" ... />
</LexicalComposer>
<LexicalCollaboration>
The collaboration context is shared for nested editors, so the provider must only be used on the top-level editor.
useCollaborationContext no longer has clientIDclientID has been removed from the collaboration context. This ID was unreliable as it could be updated by nested collab editors. Consumers should retrieve the client ID by looking up the correct document in the context's yjsDocMap, or switch to using a different ID.
Extension:
Core:
RangeSelection#extractsetManagedLineBreakTabNode.setTextContent uses devInvariant instead of invariant for a warning in prodClipboard:
List:
Markdown:
MarkdownShortcuts.ts dependency on index.tsReact:
Headless:
@lexical/headless/dom module featuring withDOM function to make SSR easierPlayground:
InlineImageNode and InlineImageNodePluginInternal:
RangeSelection#extract by @jkjk822 in https://github.com/facebook/lexical/pull/7836isTriggerVisibleInNearestScrollContainer to prevent popover from wrongfully closing by @dwrth in https://github.com/facebook/lexical/pull/7844setManagedLineBreak by @elpnt in https://github.com/facebook/lexical/pull/7854Full Changelog: https://github.com/facebook/lexical/compare/v0.35.0...v0.36.1
lexical-react Breaking change enforce use of collab context provider (#7818) James Fitzsimmons
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
All of the breaking changes in this release are related to the improved RTL bidirectional text support in #7727
v0.35.0 is a monthly release with much improved RTL bidirectional text support (#7727) and several bug fixes
All of the breaking changes in this release are related to the improved RTL bidirectional text support in #7727
ltr and rtl theme CSS classes removedltr and rtl theme CSS classes are no longer added to DOM elements. If you have custom CSS to set text-align (or any other properties) for bidirectional text, this can be removed. You can target elements that have customized their dir by targeting the attr in CSS, for example:
[dir=rtl] { text-align: right; }
$isParentElementRTL requires an active editor$isParentElementRTL now relies on accessing the DOM to determine element direction, meaning there must be an active editor when calling the function. If you have code that calls $isParentElementRTL inside editorState.read(), you will need to pass in an editor argument. For example:
const isRTL = editorState.read(
() => {
const selection = $getSelection();
return $isRangeSelection(selection) && $isParentElementRTL(selection);
},
{editor}
);
__dir property is synced to/from Yjs (again)Prior to #7330, the text direction of nodes (as determined by the reconciler) was synced to Yjs, even though this value was ignored on other clients. This property is now used for any manually-set direction attribute on ElementNode.
If you have documents that were created prior to v0.30.0, the previously-reconciled direction will now be read and applied to nodes in the editor. This may lead to unexpected behaviour if, for example, your document contains a paragraph that contained RTL text but content changed to LTR in >= v0.30.0.
Core:
Markdown:
React:
Internal:
Full Changelog: https://github.com/facebook/lexical/compare/v0.34.0...v0.35.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
v0.34.0 is a monthly release with several bug fixes and a new experimental Shiki based code highlighter engine for @lexical/code (the existing prismjs
v0.34.0 is a monthly release with several bug fixes and a new experimental Shiki based code highlighter engine for @lexical/code (the existing prismjs highlighter is still the default)
Core:
$internalResolveSelectionPointCode:
Selection:
Utils:
React:
Playground:
parseAllowedFontSizeFull Changelog: https://github.com/facebook/lexical/compare/v0.33.1...v0.34.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This is a patch release with a fix for the new $config flat NodeState API
This is a patch release with a fix for the new $config flat NodeState API
Core
updateJSON support for $config flat NodeStateRangeSelection.setFormat setterFull Changelog: https://github.com/facebook/lexical/compare/v0.33.0...v0.33.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →