Skip to content

Releases: facebook/lexical

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

v0.14.4

16 Apr 23:26
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.14.3...v0.14.4

v0.14.3

03 Apr 22:38
Compare
Choose a tag to compare

What's Changed

ESM

  • Fixes for ESM builds for Server-side rendering frameworks (#5737)
  • Node fork modules and 'bundler' module resolution (#5774)

Stability

  • A meaningful number of table fixes around selection, navigation, formatting and deletion
  • Merging of adjacent lists of the same type (#5803)
  • Support for CSS Zoom (#5772)

DevTools Plugin

  • Scaffolding for a DevTools Plugin (#5747)

Full Changelog

New Contributors

Full Changelog: v0.14.2...v0.14.3

v0.14.2

18 Mar 22:04
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.1...v0.14.2

v0.14.1

18 Mar 02:39
Compare
Choose a tag to compare

v0.14.1 (2024-03-18)

Main Changes

ESM Support in #5618 (thanks @etrepum).

canExtractContents has been removed from TableNode in #5628 [BREAKING CHANGE]

What's Changed

New Contributors

Full Changelog: v0.13.1...v0.14.1

v0.13.1

26 Jan 20:41
Compare
Choose a tag to compare

v0.13.1 (2024-01-26)

A wild console.info got into our 0.13 release...

Besides that, this small patch addresses some more issues, including Next.js server-side compatibility (thanks @2wheeh!).

What's Changed

New Contributors

Full Changelog: v0.13.0...v0.13.1

v0.13.0

24 Jan 20:05
Compare
Choose a tag to compare

v0.13.0 (2024-01-24)

This version wraps up a major tables refactor, and includes some more bugfixes!

TableSelection

This version gets rid of GridSelection and Grid{Cell/Row/Table}Node, you should now (exclusively) use the Table equivalents.

Upgrade instructions (rename these in your codebase):

  • All table files now live in @lexical/table as opposed to a mix between lexical and @lexical/table.
  • GridSelection -> TableSelection
  • $isGridSelection -> $isTableSelection
  • LexicalTableSelection -> LexicalTableObserver
  • Cell (type) -> TableDOMCell
  • Cells (type) -> TableDOMRows
  • Grid (type) -> TableDOMTable
  • LexicalTableSelection.grid (the property) -> LexicalTableSelection.table
  • (helper function that contained grid in their name no longer do)

Why?

When we started GridSelection, we wanted GridSelection to cater a variety of use cases rather than remain specific to the Tables implementation. Fast forward, 1+ years we still haven't found any additional use case that fits GridSelection (internally or within the community). Hence, we took this opportunity to trim down the Core bundle size by ~1KB by making GridSelection specific to Tables.

Custom selection

But it's not just a cleanup! We leveraged this opportunity to revise the basics of selection to enable anyone create their own custom selection (just like we did for tables). You can now build on top of BaseSelection and construct a selection of any type (i.e. a px based selection).

What's Changed (since 0.12.2)

Read more

v0.12.6

08 Jan 23:19
Compare
Choose a tag to compare

v0.12.6 (2024-01-08)

  • Fix floating link editor on inline image caption (#5460) wnhlee
  • Revert Inserting hyperlink through toolbar doesnt open floating editor in edit mode (#5456) Acy Watson
  • Fix TextNode#createDOM types allow editor parameter in subclasses (#5425) Georgii Dolzhykov
  • docs fix outdated importDOM types in docs (#5431) Georgii Dolzhykov
  • Bug Editing a link and changing selection shows wrong link value (#5352) Syed Umar Anis
  • fix Reset compositionKey when backspacing a selection on Android where anchor and focus keys are different (#5389) Aman Harwara
  • Bug Fix added a fix for discarding multiple color picker entries on drag (#5335) Bhavya Karia
  • Remove duplicated test codes (#5429) wnhlee
  • Inserting hyperlink through toolbar doesnt open floating editor in edit mode (#5372) Syed Umar Anis
  • fix adding missing argument for sliceSelectedTextContent (#5380) Nadine Nguyen
  • Fixed a small typo (#5427) frankdiw
  • Fix insertNodes when inserting into inline elements (#5394) Brian Birtles
  • Add link to state update blog (#5423) Acy Watson
  • canInsertTextAfter exception for composition (#5378) Gerard Rovira
  • Fix insert image to new inserted table row in playground report error (#5417) frankdiw
  • Refactored findNearestListItemNode using findMatchingParent (#5419) Ajay Prakash PP
  • docs correct custom node examples (#5407) Naseem Ali
  • Fixed the error when CollapsibleTitleNode type enter key (#5416) frankdiw
  • dropdown text visibility problem fixed for medium and smaller screens (#5382) Recep ifti
  • Fix convertFromMarkdownString breakdown due to no parent (#5393) wnhlee
  • Fix bug on window.event conflict (#5391) Henry Boisgibault
  • Fix typo on test title (#5399) wnhlee
  • fix typo Contaner - Container (#5410) Philippe de Reynal
  • fix logical error in description of insertBefore parameter (#5400) spirobel
  • Featureexcalidraw resize (#5383) Recep ifti
  • Flow fix RangeSelection extends (#5377) Gerard Rovira
  • Fixed for #5162, The beginning of a TextNode with canInsertTextBefore false in (#5363) matsuyama-k1
  • PR 4 remove GridSelection from lexical core (#5293) Illia Olenchenko
  • PR 3 Removed edge-cases of GridSelection (#5291) Illia Olenchenko
  • Clear link using key shortcut bug (#5354) Syed Umar Anis
  • refactor(playground) kill ts-ignore (#5342) Aron Griffis
  • Automatic release on merge (#5347) Acy Watson
  • Improve TypeScript types by removing k string any from LexicalNode (#5223) Bob Ippolito
  • Support other formats in Collapsible Title (#5328) Ivaylo Pavlov
  • docs added exportJSON function to the ExtendedTextNode plugin code (#5338)