Releases: facebook/lexical
v0.20.2
Highlights
Highlights since v0.20.0
Core editor:
-
🆕 skipInitialization defaults to false for registerMutationListener
#6857 -
🆕 Deprecate $nodesOfType function
#6855 -
✅ Fix backspace bug when deleting nodes with canInsertTextAfter set to false
#6268 -
🆕 Add missing flow types for utils
#6841 -
✅ Fix: Add feature detection to calculateZoomLevel
#6864 -
✅ Fix: Allow setEditorState to work correctly inside of an update (Fixes Autocomplete plugin)
#6876
React:
-
✅ Fix: Prevent initial value fn to be called on rerender
#6835 -
🆕 ContentEditable Props type rename to ContentEditableProps
#6837
Link:
- 🆕 Add missing flow types
#6833
Table:
- 🆕 Feature: Scrollable tables with experimental getDOMSlot API
#6759 - ✅ Fix down arrow key handling in TableObserver
#6839 - ✅ Fix Resolve table selection issue when the mouse crosses over a portal
#6834 - ✅ Fix get table-cell background selection color from a class
#6658 - ✅ Fix left arrow key handling for table selection
#6875 - ✅ Fix table tab navigation
#6880 - ✅ Fix scrollable table exportDOM
#6884
i8n:
- ✅ Fix: workaround for Korean IME issue on iOS
#6819
A11y:
- ✅ Fix: Aria attributes for ContentEditable are ignored
#6814
Mention:
- 🆕 Mention nodes are no longer spellchecked
#6788
List:
- ✅ Fix: Handle appending inline element nodes in ListNode.append
#6791
Mark:
- ✅ Fix: Don’t deep copy mark node ids in clone to prevent redundant change detection in syncPropertiesFromYjs
#6810
Selection:
-
🆕 New plugin to retain selection: SelectionAlwaysOnDisplay plugin
#6872 -
✅ Fix: positionNodeOnRange fixes
#6873
What's Changed
- v0.20.0 by @etrepum in #6809
- [lexical-mark] Bug Fix: Stop MarkNode __ids array deep copy in clone by @ebads67 in #6810
- [lexical-list] Bug Fix: Handle appending inline element nodes in ListNode.append by @amanharwara in #6791
- Mention nodes shouldn't be spellcheck'd :) by @sevki in #6788
- Fix: Aria attributes for ContentEditable are ignored by @vantage-ola in #6814
- [lexical-rich-text][lexical-plain-text] workaround for Korean IME issue on iOS by @2wheeh in #6819
- [lexical][lexical-table] Feature: Scrollable tables with experimental getDOMSlot API by @etrepum in #6759
- [lexical-examples] Chore: Add DOMExportOutputMap type to the exportMap by @Kingscliq in #6827
- Link flow types by @zurfyx in #6833
- Prevent initial value fn to be called on rerender by @fantactuka in #6835
- [lexical-table] Bug Fix: Fix down arrow key handling in TableObserver by @etrepum in #6839
- [lexical-link] Test: Removing link from node(children) by @vantage-ola in #6817
- [lexical-react] Fix(lexical-react): ContentEditable props type rename by @ivaaaaann in #6837
- [lexical-utils] Bug Fix: Add missing Flow type declarations by @hadiham in #6841
- Table Action Menu - fix UI issue with Merge Cells item by @umaranis in #6830
- [*] Chore: npm upgrade cross-spawn by @potatowagon in #6848
- [lexical-link] Test: Appending inline element nodes to ListNode by @Shopiley in #6826
- [Lexical] Bug Fix: backspace bug when deleting nodes with
canInsertTextAfter
set to false by @dani-lp in #6268 - Feature: Deprecate $nodesOfType function by @Sachin-Mahato in #6855
- [tests] npm upgrade cross-spawn by @potatowagon in #6856
- [Lexical] Chore: Update default skipInitialization to false for registerMutationListener by @Shopiley in #6857
- [lexical-table] Bug Fix: Resolve table selection issue when the mouse crosses over a portal by @etrepum in #6834
- [lexical-table] Bug Fix: get table-cell background selection color from a class by @hamza221 in #6658
- [lexical-selection] Bug Fix: Wrong selection type in $setBlocksType by @lytion in #6867
- Add Documentation for RootNode's semantic and use case by @citruscai in #6869
- [lexical-utils] Bug Fix: Add feature detection to calculateZoomLevel by @etrepum in #6864
- [lexical-playground] Bug Fix: autocomplete format before and after insertion by @bedre7 in #6845
- [lexical-playground] Bug Fix: Preserve the selection using the link editor from a table by @etrepum in #6865
- Allow passing params to run-all by @zurfyx in #6874
- Add SelectionAlwaysOnDisplay plugin by @zurfyx in #6872
- positionNodeOnRange fixes by @zurfyx in #6873
- [lexical-table] Bug Fix: Fix left arrow key handling for table selection by @etrepum in #6875
- [lexical-playground] Fix: Hidden comment button on narrow screens or vertical monitors by @vantage-ola in #6871
- [lexical-playground] Feature: Highlight special strings with format by @citruscai in #6860
- [lexical-table] Bug Fix: Fix table tab navigation by @etrepum in #6880
- [lexical-table] Bug Fix: Fix scrollable table exportDOM by @etrepum in #6884
- v0.20.1 by @potatowagon in #6887
- [lexical-playground] Fix CSS property by @ivailop7 in #6886
- [lexical][lexical-playground] Bug Fix: Allow setEditorState to work correctly inside of an update by @etrepum in #6876
- [lexical-website] Feature: Document the withKlass option for node replacement by @Shopiley in #6890
New Contributors
- @sevki made their first contribution in #6788
- @ivaaaaann made their first contribution in #6837
- @hadiham made their first contribution in #6841
- @dani-lp made their first contribution in #6268
- @Sachin-Mahato made their first contribution in #6855
- @hamza221 made their first contribution in #6658
- @lytion made their first contribution in #6867
Full Changelog: v0.20.0...v0.20.2
v0.20.0
Highlights
Highlights since v0.19.0
Lexical Core:
- 🆕
$onUpdate
to add an "onUpdate" callback while processing aneditor.update
#6773
Markdown:
- 🆕 Add ability to control finding the end of a node matched by TextMatchTransformer
#6681 - ✅ Avoid infinite markdown shortcut matchers
#6778
Collab / Yjs:
- ✅ Clean up dangling text after undo in collaboration
#6670
Playground & Docs:
- 🆕 Demonstrate how to preserve more styles when pasting HTML
#6780
#6770 - 🆕 Add more keyboard shortcuts
#6754
What's Changed
- [lexical] Feature: Add onUpdate function during update with $onUpdate (correct baselline) by @landisdesign in #6773
- #6768 fix to avoid infinite markdown shortcut matchers run by @fantactuka in #6778
- [lexical-playground] Fix: the placement of the fontSize button in the ToolbarPlugin and hide the vertical scroll (Bug Fix) by @vantage-ola in #6786
- Bug Fix: ContextMenu Paste option not preserving style by @citruscai in #6780
- [lexical-website] Chore: upgrade to Docusaurus v3.6 - Docusaurus Faster by @slorber in #6761
- [lexical-react] Bug Fix: LexicalTypeaheadMenuPlugin SSR error: ReferenceError: document is not defined by @bedre7 in #6794
- [lexical-markdown] Feature: add ability to control finding the end of a node matched by TextMatchTransformer by @AlessioGr in #6681
- [Lexical-website] BugFix: Change button text colour to improve visibility by @Shopiley in #6796
- [lexical-yjs] Bug Fix: clean up dangling text after undo in collaboration by @mike-atticus in #6670
- [lexical-website] Documentation Update: Add Documentation for html Property in Lexical Editor Configuration by @Kingscliq in #6770
- [lexical-playground] Feature: Add more keyboard shortcuts by @bedre7 in #6754
- Fix importDOM for Layout plugin by @ivailop7 in #6799
- Add optional selection argument to $getHtmlContent flow type by @rajivanisetti in #6803
- [lexical] Chore: Add export of DOMExportOutputMap from lexical by @Kingscliq in #6805
New Contributors
- @landisdesign made their first contribution in #6773
- @vantage-ola made their first contribution in #6786
- @citruscai made their first contribution in #6780
- @slorber made their first contribution in #6761
- @Shopiley made their first contribution in #6796
- @mike-atticus made their first contribution in #6670
- @Kingscliq made their first contribution in #6770
Full Changelog: v0.19.0...v0.20.0
v0.19.0
Highlights
Highlights since v0.18.0
A11y:
Clipboard:
- 🆕 Trust HTML for rich text clipboard
#6755
Markdown:
- 🆕 Add ability to hook into the import process for multiline element transformers
#6682
Code:
- ✅ Fix: Add global type declarations for Prism
#6736
Export:
- ✅ Fix: Preserve indentation when serializing to and from HTML
#6693
List:
- ✅ Fix: Retain indentation when list format is removed and reapplied
#6684
Link:
- 🆕 add attributes in LinkPlugin
#6760
Selection:
-
✅ Fix: Insertion into inline ElementNode should not crash
#6703 -
✅ Fix: lines were being deleted with deleteLine
#6719
Text:
- ✅ Fix TextNode in token mode should not be split by removeText
#6690
Collab:
-
✅ Fix missing setLocalStateField method to ProviderAwareness type
#6683 -
✅ Fix: preserve custom fields in Lexical-Yjs sync
#6724
Table:
-
🆕 Support backward selection in rows deletion
#6680 -
✅ Fix: Style buttons in toolbar respect table selection
#6678 -
✅ Fix Table formatting when no TextNodes present
#6675 -
✅ Fix: colWidths not imported from DOM for TableNode
#6731 -
✅ Fix: Shift+down selects an extra subsequent element for Table selection
#6679 -
🆕 Inserted node returned from $insertTableRow__EXPERIMENTAL and $insertTableColumn__EXPERIMENTAL
#6741 -
✅ Fix calling split on undefined error
#6746
What's Changed
- v0.18.0 by @potatowagon in #6676
- Support backward selection in rows deletion by @fantactuka in #6680
- [lexical-table][lexical-playground] Bug Fix: Make style buttons in toolbar respect table selection by @KatsiarynaDzibrova in #6678
- [lexical] Bug Fix: Fix Table formatting when no TextNodes present by @KatsiarynaDzibrova in #6675
- [lexical-yjs] Bug Fix: Add missing setLocalStateField method to ProviderAwareness type by @collierrgbsitisfise in #6683
- [lexical] Bug Fix: TextNode in token mode should not be split by removeText by @etrepum in #6690
- [lexical-playground] 3 Bug Fixes, 1 UX Improvement: All Regarding Excalidraw Node by @neysanfoo in #6666
- [lexical-playground] Bug Fix: toolbar font size input keyboard accessibility by @rilrom in #6695
- [lexical-playground] Bug Fix: Track Resizing Actions for Excalidraw in History Stack by @neysanfoo in #6696
- [lexical] Bug Fix: Insertion into inline ElementNode should not crash by @etrepum in #6703
- [lexical][lexical-list] Bug Fix: Retain indentation when list format is removed and reapplied by @SeaBa55 in #6684
- [lexical][lexical-list][lexical-rich-text]: Fix: Preserve indentation when serializing to and from HTML by @GermanJablo in #6693
- fix: preserve custom fields in Lexical-Yjs sync by @collierrgbsitisfise in #6724
- [lexical-playground] Remove unused command by @ivailop7 in #6726
- [lexical-playground] Bug Fix: match toolbar font size input with the rest of toolbar items in Read-Only mode by @bedre7 in #6698
- Chore: add workflow to auto close stale pr based on label by @potatowagon in #6732
- [lexical-table] Bug Fix:
colWidths
not imported from DOM for TableNode by @cwstra in #6731 - [lexical] Bug Fix: lines were being deleted with
deleteLine
by @taro-shono in #6719 - [lexical-playground] Table Hover Actions Layout Fixes by @ivailop7 in #6725
- [*] Chore: Disable react-beta test job for now by @etrepum in #6738
- [lexical-code] Bug Fix: Add global type declarations for Prism by @etrepum in #6736
- [lexical-playground] Bug Fix: Disable image and inline focusing, adding caption and editing in read-only mode by @neysanfoo in #6705
- [lexical-markdown] Feature: add ability to hook into the import process for multiline element transformers by @AlessioGr in #6682
- [lexical-playground] Bug Fix: Disable equation editing in read-only mode by @neysanfoo in #6707
- Bug Fix: Shift+down selects an extra subsequent element for Table selection by @KatsiarynaDzibrova in #6679
- [lexical-table] Return inserted node from
$insertTableRow__EXPERIMENTAL
and$insertTableColumn__EXPERIMENTAL
by @amanharwara in #6741 - [lexical-react] Feature: Add aria-errormessage and aria-invalid support to LexicalContentEditable by @ejhammond in #6745
- Add ariaErrorMessage and ariaInvalid to Flow type by @ejhammond in #6751
- [lexical-table] [lexical-selection] Try to fix calling split on undefined by @ivailop7 in #6746
- [lexical-playground] Bug Fix: Disable table hover actions in read-only mode by @neysanfoo in #6706
- [lexical-playground] Bug Fix: Disable editing of Excalidraw Component in Read-Only Mode by @neysanfoo in #6704
- Trust HTML for rich text clipboard by @zurfyx in #6755
- [lexical-react] replace abstract component by @potatowagon in #6752
- [lexical-react] Feature: add attributes in LinkPlugin by @taro-shono in #6760
- [lexical] Add missing commands to Lexical.js.flow by @potatowagon in #6769
- update dependencies to address security vulnerabilities by @potatowagon in #6764
New Contributors
- @collierrgbsitisfise made their first contribution in #6683
- @rilrom made their first contribution in #6695
- @SeaBa55 made their first contribution in #6684
- @bedre7 made their first contribution in #6698
- @cwstra made their first contribution in #6731
- @taro-shono made their first contribution in #6719
- @ejhammond made their first contribution in #6745
Full Changelog: v0.18.0...v0.19.0
v0.18.0
Highlights
Highlights since 0.17.1
Core editor:
-
🆕 Iterable $dfs
#6664 -
🆕 Pass in an array of tags to EditorUpdateOptions for multiple tag update
#6507 -
🆕 exportDOM function supports document fragment exports
#6641 -
✅ Fix issue where cmd/ctrl + left arrow after a tab character would cause exception
#6588
Markdown:
- 🆕 shouldMergeAdjacentLines option in $convertFromMarkdownString. If true, merges adjacent lines as per commonmark spec (
line1\nline2
->line1line2
). If false (default and current behavior, adjacent lines remain separated by newline, as per GFM (line1\nline2
->line1\nline2
)
#6608
#6660 - 🆕 multiline markdown transformers / mdx support
#6530 - 🆕 More flexible TextMatchTransformer api, more fields made optional
#6651
Link:
- ✅ Fix removing a link from nodes with children, eg. Mark Node for comments
#6656
Table:
- ✅ Fix merged cell related edge cases
#6607 - ✅ Fix Table formatting and styling not persisting for empty cells
#6626 - ✅ Fix crash in $deleteCellHandler
#6650 - ✅ Fix incorrect addition of empty cells on table paste
#6578 - ✅ Fix issue where selecting a cell then dragging outside of table would not select entire table
#6579 - ✅ Fix Table Cut Event Handling
#6596 - 🆕 optional colWidths property to TableNode
#6625 - 🆕 Table row striping feature, increases tables visual accessiblity.
#6547
Selection:
- 🆕 Expose getStyleObjectFromCss in @lexical/selection
#6612
Misc:
- ✅ Check undeclared dependencies in build, declare missing dependencies
#6574 - ✅ Fix window is undefined error appears when creating a code node in a headless editor in a nodejs environment
#6562
What's Changed
- v0.17.1 by @ivailop7 in #6559
- [lexical-table] Bug Fix: Add @lexical/clipboard as a direct dependency of @lexical/table by @etrepum in #6571
- [lexical-react] menu positioning: Unrevert PR6510 but with gating by @potatowagon in #6566
- [*] Feature: Check undeclared dependencies in build by @etrepum in #6574
- [lexical-table] feat: Add row striping by @ivailop7 in #6547
- [lexical-react]: Fix incorrect addition of empty cells on table paste by @Shubhankerism in #6578
- [lexical-list][lexical-react] Refactor: Create registerList Function Separate from React Shared Utils by @jkjk822 in #6560
- Fix test results CI path on Windows by @moughxyz in #6585
- [lexical][lexical-overflow] Refactor: simplified removeText and insertText rewrite (part 1) by @GermanJablo in #6456
- [lexical-table] Fix Table Cut Event Handling by @ivailop7 in #6596
- [lexical-markdown][breaking change] Feature: multiline markdown transformers / mdx support by @AlessioGr in #6530
- Address svelte vulnerability by @potatowagon in #6603
- Fix issue where cmd/ctrl + left arrow after a tab character would cause exception by @moughxyz in #6588
- [lexical-table][lexical-playground] Bug Fix: Fix merged cell related edge cases by @etrepum in #6607
- [lexical-code][breaking change] Bug Fix: explicitly import instead of
window.
to support code nodes in nodejs by @nadine-nguyen in #6562 - Multiple update tags by @zurfyx in #6507
- [lexical-playground] Fix: Poll Option not clickable at some place after checked state by @iamvinayvk in #6609
- [lexical-markdown] update markdown flow api by @potatowagon in #6615
- Expose getStyleObjectFromCss in @lexical/selection by @mofoshow in #6612
- [lexical-markdown] Fix: normalize markdown in $convertFromMarkdownString to comply with CommonMark spec by @GermanJablo in #6608
- [lexical] Chore: Add more helpful invariants to $applyNodeReplacement by @etrepum in #6567
- [lexical-markdown] Breaking Change: rename 'multilineElement' to 'multiline-element' by @potatowagon in #6617
- Bug Fix: Fix issue where selecting a cell then dragging outside of table would not select entire table by @moughxyz in #6579
- address micromatch vulnerability by @potatowagon in #6616
- CI: tag flaky test by @potatowagon in #6620
- [lexical-react] Refactor: Ensure disconnect is called after connection is established in useYjsCollaboration by @smworld01 in #6619
- Revert "[lexical-markdown] Fix: normalize markdown in $convertFromMarkdownString to comply with CommonMark spec (#6608)" by @potatowagon in #6627
- [lexical-playground] Bug Fix: Fix table row/column index when resizing merged cells by @patrick-atticus in #6630
- [lexical-markdown] Fix: normalize markdown in $convertFromMarkdownString to comply with CommonMark spec (2nd try) by @GermanJablo in #6629
- [lexical-table] Bug: Table formatting and styling not persisting for empty cells by @KatsiarynaDzibrova in #6626
- [lexical-playground][ExcalidrawNode] Bug Fix: Preserve Excalidraw image dimensions after resizing by @neysanfoo in #6634
- [lexical-table][lexical-playground] Feature: Add column widths to TableNode by @patrick-atticus in #6625
- Grammar Issue - Repeated Word by @DocAdam in #6643
- Allow exporting a document fragment from the exportDOM function by @skopz356 in #6641
- [lexical-react][lexical-playground] Bug Fix: Workaround for yjs disconnect race in React StrictMode by @etrepum in #6644
- [lexical-code] Bug Fix: Annotate @lexical/code as having side-effects for Prism by @etrepum in #6652
- [lexical-markdown] shouldMergeAdjacentLines as an option by @potatowagon in #6642
- [lexical-playground] Bug Fix: empty code block not focused by @potatowagon in #6649
- [lexical-table] Bug Fix: Fix crash in $deleteCellHandler by @etrepum in #6650
- [lexical-markdown]: Refactor: allows omitting certain properties from TextMatchTransformers, adds jsdocs by @AlessioGr in #6651
- [lexical-playground] Bug Fix: Correct ExcalidrawNode DOM handling for proper resizing by @neysanfoo in #6657
- [lexical-link] Bug Fix: Removing a link from descendants by @levensta in #6656
- [lexical-markdown] set shouldMergeAdjacentLines default to be false by @potatowagon in #6660
- Iterable $dfs by @zurfyx in #6664
New Contributors
- @jkjk822 made their first contribution in #6560
- @iamvinayvk made their first contribution in #6609
- @mofoshow made their first contribution in #6612
- @smworld01 made their first contribution in #6619
- @patrick-atticus made their first contribution in #6630
- @neysanfoo made their first contribution in #6634
- @DocAdam made their first contribution in #6643
- @skopz356 made their first contribution in #6641
- @levensta made their first contribution in #6656
Full Changelog: v0.17.1...v0.18.0
v0.17.1
Highlights
- Multiple fixes focused on table stability
- Various cleans up and small refactors across the codebase
What's Changed
- v0.17.0 by @potatowagon in #6487
- [lexical-table] Bug Fix: Enable observer updates on table elements attributes change by @EugeneVorobyev in #6479
- [lexical] Bug Fix: Merge pasted paragraph into empty quote by @2wheeh in #6367
- [@lexical/playground] fix: block cursor show horizontal by @keiseiTi in #6486
- When creating a new check list, set the
checked
value of the list item tofalse
instead ofundefined
by @amanharwara in #5978 - Revert "[@lexical/playground] fix: block cursor show horizontal" by @etrepum in #6490
- docs: prevent automatic
<p>
tag wrapping by @devy-bee in #6491 - [lexical] Feature: Add version identifier to LexicalEditor constructor by @etrepum in #6488
- [lexical-playground] Bug Fix: Update tooltip for redo button with correct macOS shortcut by @etrepum in #6497
- Flow: add more HTMLDivElementDOMProps by @zurfyx in #6500
- Fix splitText when detached by @zurfyx in #6501
- [lexical] Bug Fix: Fix decorator selection regression with short-circuiting by @etrepum in #6508
- [lexical] surface more error details in reconciler by @potatowagon in #6511
- [@lexical/selection] Feature: yield target to style patch fn by @mrdivyansh in #6472
- [lexical] Refactor: [RFC] LexicalNode.afterCloneFrom to simplify clone implementation by @etrepum in #6505
- [lexical-react] remove editor__DEPRECATED that has been deprecated for two years by @etrepum in #6494
- Fix OverflowNode configuration by @zurfyx in #6027
- [lexical-react] Fix: Fix React.startTransition on Webpack + React 17 by @turnerguo in #6517
- Revert "Fix OverflowNode configuration" by @etrepum in #6535
- [lexical-table] Bug Fix: Selection in tables with merged cells by @elbotho in #6529
- [*] Chore: Mark additional tests as flaky from #6535 test runs by @etrepum in #6536
- [lexical-list] Bug Fix: handle non-integer numbers in setIndent by @jrfitzsimmons in #6522
- Chore: change className props in TreeView component to optional by @reekystive in #6531
- [lexical-table] Fix a number of table Cut command scenarios by @ivailop7 in #6528
- [lexical-table] Stop selecting the whole table after pasting cells by @ivailop7 in #6539
- [lexical-yjs] Bug Fix: Properly sync when emptying document via undo by @moughxyz in #6523
- [lexical-react] Fix multiple node selection deletion by @ivailop7 in #6538
- [lexical-playground] Fix: in playground show component-menu when scroll by @keiseiTi in #6510
- Bug Fix: Fix issue where triple-clicking a cell would dangerously select entire document by @moughxyz in #6542
- [lexical-playground] Bug Fix: Fix firefox e2e test regression in Selection.spec.mjs by @etrepum in #6546
- [lexical-table][lexical-clipboard] Bug Fix: Race condition in table CUT_COMMAND by @etrepum in #6550
- [lexical-table] Fix table selection paste as plain text by @ivailop7 in #6548
- [lexical-table] Bug Fix: Append a ParagraphNode to each cell when unmerging by @kmslab20 in #6556
- [lexical] Add tests for HTMLConfig by @2wheeh in #5507
- [lexical-playground] Bug Fix: fix comment timestamps by @irahopkinson in #6555
- Revert "[lexical-playground] Fix: in playground show component-menu w… by @zurfyx in #6558
New Contributors
- @EugeneVorobyev made their first contribution in #6479
- @keiseiTi made their first contribution in #6486
- @devy-bee made their first contribution in #6491
- @mrdivyansh made their first contribution in #6472
- @turnerguo made their first contribution in #6517
- @elbotho made their first contribution in #6529
- @jrfitzsimmons made their first contribution in #6522
- @reekystive made their first contribution in #6531
- @moughxyz made their first contribution in #6523
- @kmslab20 made their first contribution in #6556
Full Changelog: v0.17.0...v0.17.1
v0.17.0
What's Changed
- v0.16.1 by @ivailop7 in #6363
- [lexical-markdown] Feature Change: Dont trim whitespaces on convertFromMarkdownString by @potatowagon in #6360
- [lexical][lexical-table] Chore: Replace references to old GridSelection with TableSelection by @etrepum in #6366
- [lexical-playground] Table Hover Action Buttons by @ivailop7 in #6355
- Make placeholder accessible by @zurfyx in #6171
- CI: run e2e flaky tests in a separate job by @potatowagon in #6365
- [Lexical] Create initial Gallery View with Emoji Plugin Example by @Sahejkm in #6369
- [Lexical][Gallery] Add description in the card, option to render preview card at run time if no image by @Sahejkm in #6372
- [rexical-react] Bug Fix: Headings inside collapsible sections are lost when Table of Contents is re-initialized by @KatsiarynaDzibrova in #6371
- [Lexical] Fix flow errors on syncing build to meta intern by @Sahejkm in #6373
- [lexical-playground] Fix Table Hover Actions Noclick Bug by @ivailop7 in #6375
- [Lexical][Gallery] Add option to search examples in the gallery by @Sahejkm in #6379
- [examples] Chore: Use named export of LexicalErrorBoundary in the examples by @etrepum in #6378
- [lexical][lexical-playground] Bug Fix: Create line break on paste of content type text/html by @jnnwnk in #6376
- [Lexical][Gallery] Convert files to follow typescript by @Sahejkm in #6383
- Fix integrity test by @zurfyx in #6385
- Prettier sort test attributes by @zurfyx in #6384
- CI: tag flaky tests by @potatowagon in #6388
- Fix clear rootElement on React by @zurfyx in #6389
- [Gallery] Add option to filter plugins based on tags by @Sahejkm in #6391
- [lexical-playground][lexical-table] Bug Fix: Fix
Shift
+Down Arrow
regression for table sequence. by @serey-roth in #6393 - [lexical-html] Feature: support pasting empty block nodes by @potatowagon in #6392
- [lexical] Bug Fix: more accurate line break pasting by @potatowagon in #6395
- [lexical] Feature: Implement Editor.read and EditorState.read with editor argument by @etrepum in #6347
- [lexical] Feature: registerMutationListener should initialize its existing nodes by @etrepum in #6357
- Add ref to contenteditable by @zurfyx in #6381
- Restore registerRootListener null call by @zurfyx in #6403
- Fix transpile nodesOfType by @zurfyx in #6408
- [lexical-react][lexical-playground] sync draggable block plugin to www by @potatowagon in #6397
- CI: tag flaky tests by @potatowagon in #6405
- CI: run flaky tests on firefox browsers by @potatowagon in #6411
- CI: fix build failure on astro integration tests by @2wheeh in #6414
- Fix discrete nested updates by @zurfyx in #6419
- fix(docs): correct typo in Lexical collaboration guide by @andasan in #6421
- docs: fix typo in editor.registerCommand() usage by @yangshun in #6429
- [lexical-react] update flow typing for draggable block plugin by @potatowagon in #6426
- [lexical-playground][TableCellResizer] Bug Fix: Register event handlers on root element by @JBWereRuss in #6416
- fix(LexicalNode): fix inline decorator isSelected by @jason89521 in #5948
- [lexical-playground] Refactor: run prettier to fix CI by @GermanJablo in #6436
- [lexical-history][lexical-selection][lexical-react] Fix: #6409 TextNode change detection by @etrepum in #6420
- [lexical][lexical-selection] Bug Fix: Respect mode when patching text style by @adrianmxb in #6428
- [lexical][auto-link] Fix auto link crash editor by @MaxPlav in #6433
- [Lexical][Gallery] Create Simple Tableplugin example by @Sahejkm in #6445
- [Lexical][CI] ignore running unit/integerity/e2e tests on examples folder code by @Sahejkm in #6446
- [Lexical][Gallery] Add tableplugin example to gallery by @Sahejkm in #6447
- [lexical] [lexical-selection] Preserve paragraph styles between lines by @ivailop7 in #6437
- [lexical] Bug Fix: getCachedTypeToNodeMap should handle a empty and writable EditorState by @etrepum in #6444
- [lexical-react]: sync format in flow file by @potatowagon in #6448
- [lexical-rich-text] Bug Fix: HeadingNode.insertNewAfter by @GermanJablo in #6435
- Flow add tags type to OnChange plugin by @zurfyx in #6457
- CI: dont cancel other test runs if e2e flaky job fails by @potatowagon in #6460
- [lexical] Bug Fix: Allow getTopLevelElement to return a DecoratorNode by @etrepum in #6458
- CI: tag flaky tests by @potatowagon in #6462
- [Lexical][CI] Update canary e2e test os by @Sahejkm in #6465
- [lexical-table] Bug Fix: cannot delete content when a table inside selection by @placeba in #6412
- [Lexica][CI] run extended tests for safari in mac-os and chrome/firefox in linux/windows by @Sahejkm in #6466
- be in sync with www by @potatowagon in #6478
New Contributors
- @jnnwnk made their first contribution in #6376
- @andasan made their first contribution in #6421
- @JBWereRuss made their first contribution in #6416
- @adrianmxb made their first contribution in #6428
- @placeba made their first contribution in #6412
Full Changelog: v0.16.1...v0.17.0
v0.16.1
What's Changed
- [lexical-playground] CI: standardise key press delay by @potatowagon in #6246
- [Lexical] Skip newly added flaky "Resize merged cells height/width" tests for linux/collab/firefox mode by @Sahejkm in #6250
- [lexical-eslint-plugin] Fix: Use cjs compatible export from built version by @etrepum in #6252
- [docs][examples] Update plain text and rich text examples by @MaxPlav in #6187
- [Lexical] Fix missing meta copyright headers in files by @Sahejkm in #6258
- [lexical-utils] Fix: mergeRegister should call cleanup functions in reverse order by @etrepum in #6260
- Revert "[lexical-react] Bug Fix: checklist cannot be toggled in sub-e… by @zurfyx in #6264
- [Lexical][CI] Skip extended tests workflow run on multiple approvals by @Sahejkm in #6265
- [lexical-playground] CI: fix flaky MaxLength emoji e2e test by @potatowagon in #6257
- [lexical-markdown] Bug Fix: standardise selection to move to start after markdown toggle by @potatowagon in #6220
- [Lexical] Fix #6221 delete multiple column table crash by @Sahejkm in #6267
- [lexical-selection] Fix lost autolink styling by @MaxPlav in #6275
- [*] Feature: Automated nightly releases by @etrepum in #6204
- [Lexical][Tables] Follow up on #6267 handle multi column delete crash on forward selection at end of the table by @Sahejkm in #6279
- Upgrade vite version to address vulnerabilities detected by the Open … by @Sahejkm in #6284
- [Lexical][Meta] Add dependencies needed to setup lexical-website in m… by @Sahejkm in #6293
- [lexical-playground][lexical-devtools] Fix: Add missing explicit devDependencies for vite config by @etrepum in #6291
- [lexical-markdown] Add test to keep code language by @Minhir in #6259
- [lexical][auto-link] Fix auto link node escapes on second "." by @MaxPlav in #6146
- [@lexical/devtools] Bug Fix: Fixed issue when extension devtools panel gets out of sync with background script in Chrome / Edge by @StyleT in #6297
- fix: yjs collaboration plugin in react strict mode by @meronogbai in #6271
- CI: Comment to look up Flaky test tracker on e2e test failure by @potatowagon in #6292
- [Lexical][UI Gallery] Fix meta lexical website intern build errors by @Sahejkm in #6300
- CI: Only send flaky test notice once by @potatowagon in #6298
- [lexical-playground] Fix bug: Insert an image inside another image's caption (#6109) by @MaxPlav in #6230
- [Lexical][Meta] Add meta intern static docs config by @Sahejkm in #6302
- [Lexical][CI] Fix issues in after_approval workflow by @Sahejkm in #6307
- Few missing exports that are useful by @Piechota in #6318
- [Lexical][Gallery] add option to add gallery content in Meta Intern only by @Sahejkm in #6321
- [lexical] Bug Fix: Make
reconcileParagraphFormat
respect editor readonly state by @aleksandr-lapushkin in #6295 - [lexical-link] Fix bug when can't remove link formatting from autolink by @MaxPlav in #6306
- [lexical] Bug Fix: Export type EditorUpdateOptions by @etrepum in #6332
- [lexical-react][lexical-dev-tools-core] Bug Fix: TreeView selection indicator by @irahopkinson in #6336
- Add impact description to bug report issue template by @potatowagon in #6317
- Update feature request template by @potatowagon in #6316
- Bug Fix: Fix selection when hitting "shift+arrowdown" into a table. by @serey-roth in #6274
- Replace 'await' with 'async' in lexical-headless/README.md by @kibaek-kimm in #6343
- [lexical-html] Bug Fix: Preserve text alignment of nested block elements, when converting HTML to Lexical Nodes by @nzigopis in #6340
- [Lexical] Fix broken sync due to deprecation of ReactDOMComet to ReactDOM by @Sahejkm in #6358
- (docs) Add existing history page to navigation by @TryingToImprove in #6359
- [lexical-playground][lexical-poll] Bug Fix: Fixes undefined context inside Poll add option by @romanWebiya in #6361
- Revert "[lexical-playground][lexical-poll] Bug Fix: Fixes undefined context inside Poll add option" by @ivailop7 in #6362
New Contributors
- @Minhir made their first contribution in #6259
- @meronogbai made their first contribution in #6271
- @aleksandr-lapushkin made their first contribution in #6295
- @kibaek-kimm made their first contribution in #6343
- @TryingToImprove made their first contribution in #6359
- @romanWebiya made their first contribution in #6361
Full Changelog: v0.16.0...v0.16.1
v0.16.0
Highlights
- BREAKING CHANGE: Deprecated public default exports in #6088
- Tables Fixes around selection, copy-paste behaviours between external editors and resizing
- Support for copy-pasting checklists from Google Docs and GitHub
- Dispatch the correct events when the editor is in read-only mode
- Developer experience and overall stability improvements
What's Changed
- [lexical][TextNode] Feature: improve supporting multiple format on importDOM of TextNode by @2wheeh in #6087
- [lexical-playground][file] Feature: Playground link sharing by @etrepum in #6028
- [lexical] Feature: error checking for node key re-use with type mismatch in DEV by @etrepum in #6014
- [lexical-playground][TableCellResizer] Feature: Center the drag zone over the edge of the cell by @apella in #6071
- [lexical][TextNode] Feature: Add test for #6087 by @2wheeh in #6091
- [Lexical][Table Formatting Copy Paste] Move test from e2e to unit as followup on #5855 by @Sahejkm in #6093
- Only run CI e2e tests on approved PRs by @necolas in #6080
- [lexical-playground] Bug Fix: Emoji menu item not getting targeted styles by @daltondowning in #6055
- [@lexical/devtools] Bug Fix: Reduce requested permissions as we don't use them atm by @StyleT in #6099
- [Lexical] #6097 run extended tests on merge_group event by @Sahejkm in #6100
- [Lexical] Move some codeblock tests from e2e to unit by @Sahejkm in #6094
- [lexical-devtools] Feature: Reflect picker state on inspector button ui by @2wheeh in #6077
- [Lexical] Add label to run e2e tests on approve by @Sahejkm in #6120
- Fix: Bug - 6000: Changing the font size when inputting does not take … by @pixelbyaj in #6102
- [lexical-react] Breaking change: Deprecate public default exports by @etrepum in #6088
- [lexical-playground][lexical-react][lexical] Feature: Theme class added to horizontal rule node by @daltondowning in #6090
- [lexical-markdown][lexical-playground] Feature: Option to include blanklines in markdown render by @potatowagon in #6020
- [Lexical] Replace code with key to check KeyboardEvents by @Sahejkm in #6110
- [Lexical] Add flow for eslint by @Sahejkm in #6127
- fix(lexical): #6132 react build size regression from #6088 by @StyleT in #6133
- [Lexical] Fix size limit workflow git hub action bot not able to create comment for PRs from fork by @Sahejkm in #6130
- [Lexical] Use classic mode for jsx runtime for meta build by @Sahejkm in #6134
- Fix the label-on-approval workflow by @necolas in #6136
- Bug Fix: Add check for
DecoratorNode
for horizontal table navigation. by @serey-roth in #6129 - Remove 'legacy-events' from mac & linux e2e matrix by @necolas in #6135
- [Lexical] Fix meta sync build failing due to recent changes in LexicalErrorBoundary.tsx by @Sahejkm in #6140
- [lexical-playground][image-node] Bug Fix: Load image error UI by @MaxPlav in #6111
- [Lexical] add null check for key undefined before calling toLowerCase function by @Sahejkm in #6154
- Deprecate unused methods on ElementNode by @thorn0 in #5782
- Bug Fix: Insert paragraph at table's edge inside a collapsible by @serey-roth in #6159
- Add tbody and thead tags to TableObserver by @Piechota in #6139
- [lexical-react] Feature: React 19 unit tests by @etrepum in #6048
- [lexical-selection] Bug Fix / Fixes text formatting with segmented and token nodes #6059 by @lacroixdavid1 in #6062
- [lexical-markdown] Bug Fix: add missing shouldPreserveNewLines to markdown flow by @potatowagon in #6165
- [Lexical] Attempt to fix after approval workflow by @Sahejkm in #6153
- [Lexical] Feature: Merging PR closes auto-linked issue by @2wheeh in #6124
- [lexical-react] Bug Fix: Use automatic jsx runtime with react/jsx-runtime -> react alias in www by @etrepum in #6143
- [@lexical/devtools] Feature: Added full Safari support by @StyleT in #6105
- [CI] fix: status badge by @potatowagon in #6170
- docs: explain installing browsers for e2e tests by @thorn0 in #6163
- Fixed Uncommented Code in Getting Started with React Docs by @sbsangu in #6172
- [Lexical] Move more tests related to Copy Paste from e2e to unit by @Sahejkm in #6181
- [Lexical] use lexical bot for adding label by @Sahejkm in #6183
- [lexical-dev-tools-core] Feature: Index tree view cmds by @potatowagon in #6182
- [lexical] Bug Fix: delete line for selections ending with elements by @DraXu3 in #6160
- Revert "[lexical-plaintext] Feature: add escape key handler" by @StyleT in #6185
- Remove emojis from emoticons plugins by @zurfyx in #6188
- [lexical-playground] Chore: add test for pasting over mentions by @potatowagon in #6024
- Update CODEOWNERS by @Sahejkm in #6192
- Collapsible as div by @zurfyx in #6179
- [lexical] Bug Fix: mutation listener set for original node should work with the replaced node by @StyleT in #6189
- [lexical-devtools] Feature: Improved usage and maintenance documentation by @StyleT in #6186
- [LexicalTextNode] Refactor: remove unnecessary type casting by @potatowagon in #6201
- [lexical-list][lexical-playground] Bug fix: support pasting google doc checklist by @potatowagon in #6191
- Remove noisy running time signal mentioned in #6137 by @Sahejkm in #6208
- [lexical-code] Refactor: remove unnecessary type casting by @potatowagon in #6202
- [lexical-list] Bug fix: support pasting github checklist by @potatowagon in #6195
- [lexical-react][lexical-dev-tools-core] Feature: Allow TreeView custom print output by @irahopkinson in #6180
- [lexical-list] Refactor: remove unnecessary type casting by @potatowagon in #6203
- [Lexical][CI] Add more packages for size limit regressions check by @Sahejkm in #6209
- [lexical-devtools] Chore: Safari App Store review fixes by @StyleT in #6213
- [lexical-devtools] Documentation Update: Added link to the Mac App Store by @StyleT in #6218
- [lexical-playground][lexical-table] Bug Fix: Resizing table with merged cells by @AlexanderReznik in #6200
- [lexical-website] Documentation Update: Validate stackblitz URLs in documentation by @etrepum in #6215
- Refactor import paths in LexicalEditorState by @vuki365 in #6178
- [Lexical][Size-Checks] Measure both cjs/esm builds for regression checks by @Sahejkm in #6219
- [*] Fix: Resolve Windows regression caused by upgrading glob by @etrepum in #6227
- Revert PR 1st causing some new added tests fail in collab mode and webkit mode by @Sahejkm in #6224
- Fix programmatic clipboard copy on non-editable by @zurfyx in #6232
- [Lexical ] run tests on approval if there is no extended-tests label manually added by @Sahejkm in #6198
- [*] Fix: size-limit report for esm modules by @etrepum in #6234
- [Lexical][CI] Add more ||ism in e2e tests to decrease overall run time by @Sahejkm in #6237
- [Lexical][CI] Fix approval workflow to ignore e2e tests run on labelled PRs again by @Sahejkm in #6239
- [lexical-playground] CI: fix flaky collab test by @potatowagon in #6240
- refactor: refactored InlineImageNode - spans for correct HTML by @58bits in https...
v0.15.0
Highlights
- A new minor version, since we've introduced a new lexical eslint plugin (#5908), which enforces consistency around usage of the
$
method notation. - New error codes generated published at publish time (#6005)
- A significant number of fixes related to tables selection, cursor handling and a more robust copy-pasting behaviour
- Improvements to the Lexical DevTools plugin and documentation
What's Changed
- Fix copying html table with unequal number of cells in a row by @KatsiarynaDzibrova in #5824
- Add $ prefix to updateToolbar on react-rich example by @2wheeh in #5887
- Minor refactor on ListMaxIndentLevelPlugin by @2wheeh in #5886
- Fix inserting text from Grammarly when full node is selected with forward selection by @Piliuta in #5856
- feat(@lexical/devtools): Added Edge support by @StyleT in #5915
- Add setTimeout for mousemove handler by @AlexanderReznik in #5919
- feat(@lexical/devtools): Publish pipeline added by @StyleT in #5924
- fix(@lexical/utils): fix #5918 by re-exporting shared/* constants with explicit types by @etrepum in #5920
- docs: generate packages sidebar from filesystem & group @lexical/react by @etrepum in #5931
- feat(@lexical/devtools): Added styling to devtools panel (#5925) by @StyleT in #5929
- Fix bug with block decorator nodes erroring on indent by @thegreatercurve in #5923
- Maintain text decoration styles on paste by @Shubhankerism in #5938
- fix build-release regression introduced in #5920 by @etrepum in #5936
- Add support for PowerShell Syntax Highlighting by @hanselabreu in #5909
- Fix selecting table selects an image after by @KatsiarynaDzibrova in #5917
- Preserve selection in tables with open typeahead menu on vertical arrow key press by @serey-roth in #5820
- feat(@lexical/devtools): Added interactive editor picker by @StyleT in #5926
- fix(@lexical/devtools): Misc fixes before first public release by @StyleT in #5942
- chore(@lexical/history): Remove redundant register call by @2wheeh in #5932
- add flow types for LexicalEditorRefPlugin by @acywatson in #5939
- fix: markdown import code block with prefix by @samuelint in #5780
- Collapsible Section Fixes by @ivailop7 in #5935
- fix(@lexical/devtools): Fix of the edge cases with restricted pages in Edge/FF by @StyleT in #5945
- Refactor AutoCompleteNode: Add comment and move styling to theme. fixes(#5943) by @mrAJAY1 in #5944
- Revert "Fix #5720 update the resolvedOffset correctly on image selection and drag" by @thegreatercurve in #5952
- Fix insertText outdated selection after node replacement by @zurfyx in #5954
- Fix failing insertNodes when selection is null by @zurfyx in #5956
- Revert "Revert "Fix #5720 update the resolvedOffset correctly on imag… …e selection and drag" (#5952)" by @zurfyx in #5955
- Fix insertText with element selection by @zurfyx in #5959
- Fix TableCell child nodes on paste by @Shubhankerism in #5951
- Refactor table resizer rendering logic by @AlexanderReznik in #5957
- Refactor build scripts and npm package process by @etrepum in #5876
- fix: use runner.arch in cache keys for github workflows by @etrepum in #5971
- Fixed the issue of playground crashing when the selected node contain… by @i-tengfei in #5960
- feat(@lexical/website): Packages documentation automatic generation by @etrepum in #5965
- Fix check for menu cannot fit on top by @JingkangZhang in #5743
- fix(@lexical/devtools): Fixed permissions for Edge and improved devtools tab layout by @StyleT in #5972
- fix(@lexical/devtools): Fixed publish pipeline by @StyleT in #5973
- Documentation: add PR template by @potatowagon in #5851
- refactor: cleanup unused react imports in tests files by @potatowagon in #5983
- Fix #5738 wrong selection on mouse click by @Sahejkm in #5969
- [lexical-playground] Bug Fix: skip auto-scrolling on table resize by @KatsiarynaDzibrova in #5986
- [TreeView] Minor enhancement: Add option to obfuscate text in the TreeView plugin by @Sahejkm in #5990
- fix(build): fix build-www rewriteImports to always rewrite flow modules by @etrepum in #5995
- add flow annotations by @acywatson in #5997
- add flow for devtools by @acywatson in #5998
- Fix table of contents for headings in tables and collapsible sections by @KatsiarynaDzibrova in #5946
- Fix add root element count by @zurfyx in #6002
- Root element count invariant & test by @zurfyx in #6003
- fix(build): clean up of build-www rewriteImports (follow-up to #5995) by @etrepum in #5999
- Fix: #5976 Passing an empty ParagraphNode to $dfs incorrectly returns content from subsequent paragraphs by @matsuyama-k1 in #5977
- [@lexical/website] Documentation: Added FAQ page around Lexical collaborative mode by @StyleT in #5993
- [lexical-website] Bug Fix: add allow-popups-to-escape-sandbox to iframe sandbox flags by @etrepum in #5988
- fix: allow tsc to typecheck tests, fix type issues in those tests by @etrepum in #5982
- [lexical-html] Feature: Support copy pasting block and inline nodes properly by @potatowagon in #5857
- [lexical-utils] ci: fix typing to fix integrity test by @potatowagon in #6019
- [build] Chore: Upgrade rollup and vite to latest versions by @etrepum in #6018
- [playground] Bug Fix: change default dev port to 3000 by @etrepum in #6026
- [CI] Refactor: clean up github workflows for cache correctness by @etrepum in #6029
- feat(@lexical/eslint-plugin): new package with eslint rules for lexical by @etrepum in #5908
- CharacterLimit prefer replace over insertBefore by @zurfyx in #6032
- Dev warning for failed DOM selection by @zurfyx in #6033
- [build] Bug Fix: ensure unique artifact name for e2e tests by @etrepum in #6035
- Add flow declarations in LexicalDevtoolsCore.js.flow by @Sahejkm in #6037
- [lexical-plaintext] Feature: add escape key handler by @jeffreyclu in #5991
- Fix font size update in table selection by @Shubhankerism in #6046
- Fix #5703 Infinite loop on hashtag transform by @Sahejkm in #6045
- [@lexical/devtools] Bug Fix: Fixed NPM "build:zip" command for Chrome and added build/dev steps for Safari by @StyleT in #6052
- [lexical-playground][lexical-text] Bug Fix: handling hashtag following multiple invalid matches by @2wheeh in #6053
- [lexical-table][lexical-playground] Bug Fix: Table selection stuck by @AlexanderReznik in #6049
- Revert #6053 first till proper fix is shipped in #6056 by @Sahejkm in #6058
- [Lexical] Update outdated flow file for LexicalMarkdown by @Sahejkm in #6057
- Fix autolink styles on creation by @Shubhankerism in #6069
- [Leixcal][Hashtag] Fix prevSibling not getting updated after replacement of match as followup #6053 by @Sahejkm in #6067
- Revert importDOM changes from #5951 by @Shubhankerism in #6060
- Fix #6051 Deprecate keycode to code by @Sahejkm in #6054
- [lexical-text] Test for handling multiple matches on hashtags by @2wheeh...
v0.14.5
What's Changed
- v0.14.4 by @acywatson in #5900
- fix(@lexical/react): @lexical/react 0.14.4 brings in @lexical/devtools-core dependency without declaring it by @StyleT in #5902
- update lock file by @acywatson in #5904
- Fix version script by @acywatson in #5906
Full Changelog: v0.14.4...v0.14.5