v0.15.0
facebook/lexicalv0.15.0May 11, 2024by ivailop7
AI Summary
Introduces a new `@lexical/eslint-plugin`, improved DevTools (interactive picker, Edge support), and significant fixes for table selection, cursor handling, and copy-pasting.
Key Highlights
- New `@lexical/eslint-plugin` for enforcing `$` notation
- Interactive editor picker for DevTools
- Fixes for table selection sticking and cursor handling
- Support for PowerShell syntax highlighting
- Refactoring of build scripts and npm package process
New Features
- ESLint plugin
- Interactive editor picker
- PowerShell syntax highlighting
Full Release Notes
### Highlights * A new minor version, since we've introduced a new lexical eslint plugin (https://github.com/facebook/lexical/pull/5908), which enforces consistency around usage of the `$` method notation. * New error codes generated published at publish time (https://github.com/facebook/lexical/pull/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 https://github.com/facebook/lexical/pull/5824 * Add $ prefix to updateToolbar on react-rich example by @2wheeh in https://github.com/facebook/lexical/pull/5887 * Minor refactor on ListMaxIndentLevelPlugin by @2wheeh in https://github.com/facebook/lexical/pull/5886 * Fix inserting text from Grammarly when full node is selected with forward selection by @Piliuta in https://github.com/facebook/lexical/pull/5856 * feat(@lexical/devtools): Added Edge support by @StyleT in https://github.com/facebook/lexical/pull/5915 * Add setTimeout for mousemove handler by @AlexanderReznik in https://github.com/facebook/lexical/pull/5919 * feat(@lexical/devtools): Publish pipeline added by @StyleT in https://github.com/facebook/lexical/pull/5924 * fix(@lexical/utils): fix #5918 by re-exporting shared/* constants with explicit types by @etrepum in https://github.com/facebook/lexical/pull/5920 * docs: generate packages sidebar from filesystem & group @lexical/react by @etrepum in https://github.com/facebook/lexical/pull/5931 * feat(@lexical/devtools): Added styling to devtools panel (#5925) by @StyleT in https://github.com/facebook/lexical/pull/5929 * Fix bug with block decorator nodes erroring on indent by @thegreatercurve in https://github.com/facebook/lexical/pull/5923 * Maintain text decoration styles on paste by @Shubhankerism in https://github.com/facebook/lexical/pull/5938 * fix build-release regression introduced in #5920 by @etrepum in https://github.com/facebook/lexical/pull/5936 * Add support for PowerShell Syntax Highlighting by @hanselabreu in https://github.com/facebook/lexical/pull/5909 * Fix selecting table selects an image after by @KatsiarynaDzibrova in https://github.com/facebook/lexical/pull/5917 * Preserve selection in tables with open typeahead menu on vertical arrow key press by @serey-roth in https://github.com/facebook/lexical/pull/5820 * feat(@lexical/devtools): Added interactive editor picker by @StyleT in https://github.com/facebook/lexical/pull/5926 * fix(@lexical/devtools): Misc fixes before first public release by @StyleT in https://github.com/facebook/lexical/pull/5942 * chore(@lexical/history): Remove redundant register call by @2wheeh in https://github.com/facebook/lexical/pull/5932 * add flow types for LexicalEditorRefPlugin by @acywatson in https://github.com/facebook/lexical/pull/5939 * fix: markdown import code block with prefix by @samuelint in https://github.com/facebook/lexical/pull/5780 * Collapsible Section Fixes by @ivailop7 in https://github.com/facebook/lexical/pull/5935 * fix(@lexical/devtools): Fix of the edge cases with restricted pages in Edge/FF by @StyleT in https://github.com/facebook/lexical/pull/5945 * Refactor AutoCompleteNode: Add comment and move styling to theme. fixes(#5943) by @mrAJAY1 in https://github.com/facebook/lexical/pull/5944 * Revert "Fix #5720 update the resolvedOffset correctly on image selection and drag" by @thegreatercurve in https://github.com/facebook/lexical/pull/5952 * Fix insertText outdated selection after node replacement by @zurfyx in https://github.com/facebook/lexical/pull/5954 * Fix failing insertNodes when selection is null by @zurfyx in https://github.com/facebook/lexical/pull/5956 * Revert "Revert "Fix #5720 update the resolvedOffset correctly on imag… …e selection and drag" (#5952)" by @zurfyx in https://github.com/facebook/lexical/pull/5955 * Fix insertText with element selection by @zurfyx in https://github.com/facebook/lexical/pull/5959 * Fix TableCell child nodes on paste by @Shubhankerism in https://github.com/facebook/lexical/pull/5951 * Refactor table resizer rendering logic by @AlexanderReznik in https://github.com/facebook/lexical/pull/5957 * Refactor build scripts and npm package process by @etrepum in https://github.com/facebook/lexical/pull/5876 * fix: use runner.arch in cache keys for github workflows by @etrepum in https://github.com/facebook/lexical/pull/5971 * Fixed the issue of playground crashing when the selected node contain… by @i-tengfei in https://github.com/facebook/lexical/pull/5960 * feat(@lexical/website): Packages documentation automatic generation by @etrepum in https://github.com/facebook/lexical/pull/5965 * Fix check for menu cannot fit on top by @JingkangZhang in https://github.com/facebook/lexical/pull/5743 * fix(@lexical/devtools): Fixed permissions for Edge and improved devtools tab layout by @StyleT in https://github.com/facebook/lexical/pull/5972 * fix(@lexical/devtools): Fixed publish pipeline by @StyleT in https://github.com/facebook/lexical/pull/5973 * Documentation: add PR template by @potatowagon in https://github.com/facebook/lexical/pull/5851 * refactor: cleanup unused react imports in tests files by @potatowagon in https://github.com/facebook/lexical/pull/5983 * Fix #5738 wrong selection on mouse click by @Sahejkm in https://github.com/facebook/lexical/pull/5969 * [lexical-playground] Bug Fix: skip auto-scrolling on table resize by @KatsiarynaDzibrova in https://github.com/facebook/lexical/pull/5986 * [TreeView] Minor enhancement: Add option to obfuscate text in the TreeView plugin by @Sahejkm in https://github.com/facebook/lexical/pull/5990 * fix(build): fix build-www rewriteImports to always rewrite flow modules by @etrepum in https://github.com/facebook/lexical/pull/5995 * add flow annotations by @acywatson in https://github.com/facebook/lexical/pull/5997 * add flow for devtools by @acywatson in https://github.com/facebook/lexical/pull/5998 * Fix table of contents for headings in tables and collapsible sections by @KatsiarynaDzibrova in https://github.com/facebook/lexical/pull/5946 * Fix add root element count by @zurfyx in https://github.com/facebook/lexical/pull/6002 * Root element count invariant & test by @zurfyx in https://github.com/facebook/lexical/pull/6003 * fix(build): clean up of build-www rewriteImports (follow-up to #5995) by @etrepum in https://github.com/facebook/lexical/pull/5999 * Fix: #5976 Passing an empty ParagraphNode to $dfs incorrectly returns content from subsequent paragraphs by @matsuyama-k1 in https://github.com/facebook/lexical/pull/5977 * [@lexical/website] Documentation: Added FAQ page around Lexical collaborative mode by @StyleT in https://github.com/facebook/lexical/pull/5993 * [lexical-website] Bug Fix: add allow-popups-to-escape-sandbox to iframe sandbox flags by @etrepum in https://github.com/facebook/lexical/pull/5988 * fix: allow tsc to typecheck tests, fix type issues in those tests by @etrepum in https://github.com/facebook/lexical/pull/5982 * [lexical-html] Feature: Support copy pasting block and inline nodes properly by @potatowagon in https://github.com/facebook/lexical/pull/5857 * [lexical-utils] ci: fix typing to fix integrity test by @potatowagon in https://github.com/facebook/lexical/pull/6019 * [build] Chore: Upgrade rollup and vite to latest versions by @etrepum in https://github.com/facebook/lexical/pull/6018 * [playground] Bug Fix: change default dev port to 3000 by @etrepum in https://github.com/facebook/lexical/pull/6026 * [CI] Refactor: clean up github workflows for cache correctness by @etrepum in https://github.com/facebook/lexical/pull/6029 * feat(@lexical/eslint-plugin): new package with eslint rules for lexical by @etrepum in https://github.com/facebook/lexical/pull/5908 * CharacterLimit prefer replace over insertBefore by @zurfyx in https://github.com/facebook/lexical/pull/6032 * Dev warning for failed DOM selection by @zurfyx in https://github.com/facebook/lexical/pull/6033 * [build] Bug Fix: ensure unique artifact name for e2e tests by @etrepum in https://github.com/facebook/lexical/pull/6035 * Add flow declarations in LexicalDevtoolsCore.js.flow by @Sahejkm in https://github.com/facebook/lexical/pull/6037 * [lexical-plaintext] Feature: add escape key handler by @jeffreyclu in https://github.com/facebook/lexical/pull/5991 * Fix font size update in table selection by @Shubhankerism in https://github.com/facebook/lexical/pull/6046 * Fix #5703 Infinite loop on hashtag transform by @Sahejkm in https://github.com/facebook/lexical/pull/6045 * [@lexical/devtools] Bug Fix: Fixed NPM "build:zip" command for Chrome and added build/dev steps for Safari by @StyleT in https://github.com/facebook/lexical/pull/6052 * [lexical-playground][lexical-text] Bug Fix: handling hashtag following multiple invalid matches by @2wheeh in https://github.com/facebook/lexical/pull/6053 * [lexical-table][lexical-playground] Bug Fix: Table selection stuck by @AlexanderReznik in https://github.com/facebook/lexical/pull/6049 * Revert #6053 first till proper fix is shipped in #6056 by @Sahejkm in https://github.com/facebook/lexical/pull/6058 * [Lexical] Update outdated flow file for LexicalMarkdown by @Sahejkm in https://github.com/facebook/lexical/pull/6057 * Fix autolink styles on creation by @Shubhankerism in https://github.com/facebook/lexical/pull/6069 * [Leixcal][Hashtag] Fix prevSibling not getting updated after replacement of match as followup #6053 by @Sahejkm in https://github.com/facebook/lexical/pull/6067 * Revert importDOM changes from #5951 by @Shubhankerism in https://github.com/facebook/lexical/pull/6060 * Fix #6051 Deprecate keycode to code by @Sahejkm in https://github.com/facebook/lexical/pull/6054 * [lexical-text] Test for handling multiple matches on hashtags by @2wheeh in https://github.com/facebook/lexical/pull/6056 * [lexical-yjs] Bug fix: Fix cursor position after undo in collab mode by @KatsiarynaDzibrova in https://github.com/facebook/lexical/pull/6070 * [*] Chore: Fix all new lint warnings, plus manual exports clean-up by @etrepum in https://github.com/facebook/lexical/pull/5979 * [build] Refactor: move error-codes generation to existing babel plugin by @etrepum in https://github.com/facebook/lexical/pull/6005 * [examples/react-rich-collab] Feature: Added collaboration focused example by @StyleT in https://github.com/facebook/lexical/pull/6043 * [lexical-link][lexical-react] Chore: Fix deprecated usage of toggleLink with $toggleLink by @etrepum in https://github.com/facebook/lexical/pull/6081 ## New Contributors * @KatsiarynaDzibrova made their first contribution in https://github.com/facebook/lexical/pull/5824 * @hanselabreu made their first contribution in https://github.com/facebook/lexical/pull/5909 * @samuelint made their first contribution in https://github.com/facebook/lexical/pull/5780 * @i-tengfei made their first contribution in https://github.com/facebook/lexical/pull/5960 * @JingkangZhang made their first contribution in https://github.com/facebook/lexical/pull/5743 * @jeffreyclu made their first contribution in https://github.com/facebook/lexical/pull/5991 **Full Changelog**: https://github.com/facebook/lexical/compare/v0.14.5...v0.15.0