v0.16.0

facebook/lexicalv0.16.0Jun 4, 2024by ivailop7

AI Summary

Major release with a breaking change regarding deprecated public default exports. Includes significant table fixes (selection, copy-paste, resizing) and support for pasting checklists from external sources.

Key Highlights

  • BREAKING CHANGE: Deprecated public default exports
  • Support for copying checklists from Google Docs and GitHub
  • Fixes for table selection, resizing merged cells, and column width export
  • React 19 unit test support
  • DevTools full Safari support

Breaking Changes

  • Deprecated public default exports

New Features

  • Checklist paste support (Google Docs/GitHub)
  • React 19 unit tests
  • Safari DevTools support

Full Release Notes

## Highlights

* **BREAKING CHANGE: Deprecated public default exports** in https://github.com/facebook/lexical/pull/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 https://github.com/facebook/lexical/pull/6087
* [lexical-playground][file] Feature: Playground link sharing by @etrepum in https://github.com/facebook/lexical/pull/6028
* [lexical] Feature: error checking for node key re-use with type mismatch in __DEV__ by @etrepum in https://github.com/facebook/lexical/pull/6014
* [lexical-playground][TableCellResizer] Feature: Center the drag zone over the edge of the cell by @apella in https://github.com/facebook/lexical/pull/6071
* [lexical][TextNode] Feature: Add test for #6087 by @2wheeh in https://github.com/facebook/lexical/pull/6091
* [Lexical][Table Formatting Copy Paste] Move test from e2e to unit as followup on #5855  by @Sahejkm in https://github.com/facebook/lexical/pull/6093
* Only run CI e2e tests on approved PRs by @necolas in https://github.com/facebook/lexical/pull/6080
* [lexical-playground] Bug Fix: Emoji menu item not getting targeted styles by @daltondowning in https://github.com/facebook/lexical/pull/6055
* [@lexical/devtools] Bug Fix: Reduce requested permissions as we don't use them atm by @StyleT in https://github.com/facebook/lexical/pull/6099
* [Lexical] #6097 run extended tests on merge_group event by @Sahejkm in https://github.com/facebook/lexical/pull/6100
* [Lexical] Move some codeblock tests from e2e to unit by @Sahejkm in https://github.com/facebook/lexical/pull/6094
* [lexical-devtools] Feature: Reflect picker state on inspector button ui by @2wheeh in https://github.com/facebook/lexical/pull/6077
* [Lexical] Add label to run e2e tests on approve by @Sahejkm in https://github.com/facebook/lexical/pull/6120
* Fix: Bug - 6000: Changing the font size when inputting does not take … by @pixelbyaj in https://github.com/facebook/lexical/pull/6102
* [lexical-react] Breaking change: Deprecate public default exports by @etrepum in https://github.com/facebook/lexical/pull/6088
* [lexical-playground][lexical-react][lexical] Feature: Theme class added to horizontal rule node by @daltondowning in https://github.com/facebook/lexical/pull/6090
* [lexical-markdown][lexical-playground] Feature: Option to include blanklines in markdown render by @potatowagon in https://github.com/facebook/lexical/pull/6020
* [Lexical] Replace code with key to check KeyboardEvents by @Sahejkm in https://github.com/facebook/lexical/pull/6110
* [Lexical] Add flow for eslint by @Sahejkm in https://github.com/facebook/lexical/pull/6127
* fix(lexical): #6132 react build size regression from #6088 by @StyleT in https://github.com/facebook/lexical/pull/6133
* [Lexical] Fix size limit workflow git hub action bot not able to create comment for PRs from fork by @Sahejkm in https://github.com/facebook/lexical/pull/6130
* [Lexical] Use classic mode for jsx runtime for meta build by @Sahejkm in https://github.com/facebook/lexical/pull/6134
* Fix the label-on-approval workflow by @necolas in https://github.com/facebook/lexical/pull/6136
* Bug Fix: Add check for `DecoratorNode` for horizontal table navigation. by @serey-roth in https://github.com/facebook/lexical/pull/6129
* Remove 'legacy-events' from mac & linux e2e matrix by @necolas in https://github.com/facebook/lexical/pull/6135
* [Lexical] Fix meta sync build failing due to recent changes in LexicalErrorBoundary.tsx by @Sahejkm in https://github.com/facebook/lexical/pull/6140
* [lexical-playground][image-node] Bug Fix: Load image error UI by @MaxPlav in https://github.com/facebook/lexical/pull/6111
* [Lexical] add null check for key undefined before calling toLowerCase function by @Sahejkm in https://github.com/facebook/lexical/pull/6154
* Deprecate unused methods on ElementNode by @thorn0 in https://github.com/facebook/lexical/pull/5782
* Bug Fix: Insert paragraph at table's edge inside a collapsible by @serey-roth in https://github.com/facebook/lexical/pull/6159
* Add tbody and thead tags to TableObserver by @Piechota in https://github.com/facebook/lexical/pull/6139
* [lexical-react] Feature: React 19 unit tests by @etrepum in https://github.com/facebook/lexical/pull/6048
* [lexical-selection] Bug Fix  /  Fixes text formatting with segmented and token nodes #6059 by @lacroixdavid1 in https://github.com/facebook/lexical/pull/6062
* [lexical-markdown] Bug Fix: add missing shouldPreserveNewLines to markdown flow by @potatowagon in https://github.com/facebook/lexical/pull/6165
* [Lexical] Attempt to fix after approval workflow by @Sahejkm in https://github.com/facebook/lexical/pull/6153
* [Lexical] Feature: Merging PR closes auto-linked issue by @2wheeh in https://github.com/facebook/lexical/pull/6124
* [lexical-react] Bug Fix: Use automatic jsx runtime with react/jsx-runtime -> react alias in www by @etrepum in https://github.com/facebook/lexical/pull/6143
* [@lexical/devtools] Feature: Added full Safari support by @StyleT in https://github.com/facebook/lexical/pull/6105
* [CI] fix: status badge by @potatowagon in https://github.com/facebook/lexical/pull/6170
* docs: explain installing browsers for e2e tests by @thorn0 in https://github.com/facebook/lexical/pull/6163
* Fixed Uncommented Code in Getting Started with React Docs by @sbsangu in https://github.com/facebook/lexical/pull/6172
* [Lexical] Move more tests related to Copy Paste from e2e to unit by @Sahejkm in https://github.com/facebook/lexical/pull/6181
* [Lexical] use lexical bot for adding label by @Sahejkm in https://github.com/facebook/lexical/pull/6183
* [lexical-dev-tools-core] Feature: Index tree view cmds by @potatowagon in https://github.com/facebook/lexical/pull/6182
* [lexical] Bug Fix: delete line for selections ending with elements by @DraXu3 in https://github.com/facebook/lexical/pull/6160
* Revert "[lexical-plaintext] Feature: add escape key handler" by @StyleT in https://github.com/facebook/lexical/pull/6185
* Remove emojis from emoticons plugins by @zurfyx in https://github.com/facebook/lexical/pull/6188
* [lexical-playground] Chore: add test for pasting over mentions by @potatowagon in https://github.com/facebook/lexical/pull/6024
* Update CODEOWNERS by @Sahejkm in https://github.com/facebook/lexical/pull/6192
* Collapsible as div by @zurfyx in https://github.com/facebook/lexical/pull/6179
* [lexical] Bug Fix: mutation listener set for original node should work with the replaced node by @StyleT in https://github.com/facebook/lexical/pull/6189
* [lexical-devtools] Feature: Improved usage and maintenance documentation by @StyleT in https://github.com/facebook/lexical/pull/6186
* [LexicalTextNode] Refactor: remove unnecessary type casting by @potatowagon in https://github.com/facebook/lexical/pull/6201
* [lexical-list][lexical-playground] Bug fix: support pasting google doc checklist by @potatowagon in https://github.com/facebook/lexical/pull/6191
* Remove noisy running time signal mentioned in #6137 by @Sahejkm in https://github.com/facebook/lexical/pull/6208
* [lexical-code] Refactor: remove unnecessary type casting by @potatowagon in https://github.com/facebook/lexical/pull/6202
* [lexical-list] Bug fix: support pasting github checklist  by @potatowagon in https://github.com/facebook/lexical/pull/6195
* [lexical-react][lexical-dev-tools-core] Feature: Allow TreeView custom print output by @irahopkinson in https://github.com/facebook/lexical/pull/6180
* [lexical-list] Refactor: remove unnecessary type casting by @potatowagon in https://github.com/facebook/lexical/pull/6203
* [Lexical][CI] Add more packages for size limit regressions check by @Sahejkm in https://github.com/facebook/lexical/pull/6209
* [lexical-devtools] Chore: Safari App Store review fixes by @StyleT in https://github.com/facebook/lexical/pull/6213
* [lexical-devtools] Documentation Update: Added link to the Mac App Store by @StyleT in https://github.com/facebook/lexical/pull/6218
* [lexical-playground][lexical-table] Bug Fix: Resizing table with merged cells by @AlexanderReznik in https://github.com/facebook/lexical/pull/6200
* [lexical-website] Documentation Update: Validate stackblitz URLs in documentation by @etrepum in https://github.com/facebook/lexical/pull/6215
* Refactor import paths in LexicalEditorState by @vuki365 in https://github.com/facebook/lexical/pull/6178
* [Lexical][Size-Checks] Measure both cjs/esm builds for regression checks by @Sahejkm in https://github.com/facebook/lexical/pull/6219
* [*] Fix: Resolve Windows regression caused by upgrading glob by @etrepum in https://github.com/facebook/lexical/pull/6227
* Revert PR 1st causing some new added tests fail in collab mode and webkit mode by @Sahejkm in https://github.com/facebook/lexical/pull/6224
* Fix programmatic clipboard copy on non-editable by @zurfyx in https://github.com/facebook/lexical/pull/6232
* [Lexical ] run tests on approval if there is no extended-tests label manually added by @Sahejkm in https://github.com/facebook/lexical/pull/6198
* [*] Fix: size-limit report for esm modules by @etrepum in https://github.com/facebook/lexical/pull/6234
* [Lexical][CI] Add more ||ism in e2e tests to decrease overall run time by @Sahejkm in https://github.com/facebook/lexical/pull/6237
* [Lexical][CI] Fix approval workflow to ignore e2e tests run on labelled PRs again by @Sahejkm in https://github.com/facebook/lexical/pull/6239
* [lexical-playground] CI: fix flaky collab test by @potatowagon in https://github.com/facebook/lexical/pull/6240
* refactor: refactored InlineImageNode - spans for correct HTML by @58bits in https://github.com/facebook/lexical/pull/6214
* [lexical-selection] Bug Fix: Selection is removed when changing style of 2 different nodes by @nzigopis in https://github.com/facebook/lexical/pull/6223
* [lexical-react] Bug Fix: checklist cannot be toggled in sub-editors by @AlessioGr in https://github.com/facebook/lexical/pull/6216
* [lexical-table] CI: Remerge PR 6200 Resizing table with merged cells by @potatowagon in https://github.com/facebook/lexical/pull/6235
* [lexical-table] Bug Fix: Change exported table column width by @AlexanderReznik in https://github.com/facebook/lexical/pull/6243
* [lexical-playground] CI: fix flaky headings e2e test by @potatowagon in https://github.com/facebook/lexical/pull/6245

## New Contributors
* @apella made their first contribution in https://github.com/facebook/lexical/pull/6071
* @necolas made their first contribution in https://github.com/facebook/lexical/pull/6080
* @daltondowning made their first contribution in https://github.com/facebook/lexical/pull/6055
* @pixelbyaj made their first contribution in https://github.com/facebook/lexical/pull/6102
* @MaxPlav made their first contribution in https://github.com/facebook/lexical/pull/6111
* @Piechota made their first contribution in https://github.com/facebook/lexical/pull/6139
* @lacroixdavid1 made their first contribution in https://github.com/facebook/lexical/pull/6062
* @sbsangu made their first contribution in https://github.com/facebook/lexical/pull/6172
* @DraXu3 made their first contribution in https://github.com/facebook/lexical/pull/6160
* @irahopkinson made their first contribution in https://github.com/facebook/lexical/pull/6180
* @vuki365 made their first contribution in https://github.com/facebook/lexical/pull/6178
* @nzigopis made their first contribution in https://github.com/facebook/lexical/pull/6223

**Full Changelog**: https://github.com/facebook/lexical/compare/v0.15.0...v0.16.0