Skip to content

Releases: facebook/lexical

v0.20.2

01 Dec 16:12
Compare
Choose a tag to compare

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

Full Changelog: v0.20.0...v0.20.2

v0.20.0

08 Nov 00:05
Compare
Choose a tag to compare

Highlights

Highlights since v0.19.0

Lexical Core:

  • 🆕 $onUpdate to add an "onUpdate" callback while processing an editor.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

Full Changelog: v0.19.0...v0.20.0

v0.19.0

28 Oct 06:40
Compare
Choose a tag to compare

Highlights

Highlights since v0.18.0

A11y:

  • 🆕 aria-errormessage and aria-invalid support
    #6745
    #6751

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

Full Changelog: v0.18.0...v0.19.0

v0.18.0

26 Sep 17:36
Compare
Choose a tag to compare

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

Full Changelog: v0.17.1...v0.18.0

v0.17.1

27 Aug 08:29
Compare
Choose a tag to compare

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 to false instead of undefined 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

Full Changelog: v0.17.0...v0.17.1

v0.17.0

01 Aug 16:31
Compare
Choose a tag to compare

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

Full Changelog: v0.16.1...v0.17.0

v0.16.1

01 Jul 22:20
Compare
Choose a tag to compare

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

Full Changelog: v0.16.0...v0.16.1

v0.16.0

04 Jun 10:16
Compare
Choose a tag to compare

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...
Read more

v0.15.0

11 May 12:28
Compare
Choose a tag to compare

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...
Read more

v0.14.5

17 Apr 04:18
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.4...v0.14.5