Releases: facebook/lexical
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
v0.14.4
What's Changed
- Fix failing WWW build by @thegreatercurve in #5826
- feat: export 'IS_' and 'CAN_*' environment constants from @lexical/utils by @etrepum in #5831
- Add missing flow type parameters for insertNewAfter by @Sahejkm in #5832
- fix: webpack needs its own export condition by @etrepum in #5833
- Use unnamed ESM imports for Prism modules by @thegreatercurve in #5828
- chore: upgrade to docusaurus 3 by @etrepum in #5838
- Use updated docRoot count in removeRootElementEvents by @thegreatercurve in #5847
- Fix #5620 Persist format at paragraph level for new line by @Sahejkm in #5822
- Fix issue with removing selectionchange correctly by @thegreatercurve in #5848
- Playground - Clear Format button fix by @ManuelOjedaWz in #5849
- feat(@lexical/devtools): Added TreeView rendering instead of a simple textarea by @StyleT in #5830
- Fix bug with typeahead positioning by @thegreatercurve in #5859
- Revert "feat(@lexical/devtools): Added TreeView rendering instead of a simple textarea" by @thegreatercurve in #5861
- Revert "Revert "feat(@lexical/devtools): Added TreeView rendering instead of a simple textarea"" by @thegreatercurve in #5864
- Add missing rewrite of utils import by @thegreatercurve in #5866
- TextNode support font-weight bold by @zurfyx in #5852
- Replace async arrow with function by @zurfyx in #5870
- Fix #5663 styling from td not persisted on copy paste by @Sahejkm in #5855
- fix test failing after rebase on bug fix for multiple text nodes styles in a cell node by @Sahejkm in #5872
- fix #4468 Preserv elemement text align format on new paragraph creation by @Sahejkm in #5878
- fix(playground): wrong logic for FloatingLinkEditorPlugin bad node by @agriffis in #5814
- feat: use dev/prod conditions instead of webpack in exports by @etrepum in #5858
- docs: fix typedoc links and add missing packages by @etrepum in #5850
- Fix nested typo in README by @zheckert in #5892
- Fix broken style for node overrides example on docs by @2wheeh in #5890
- Bump publish scripts to v4 by @ivailop7 in #5817
- Remove a special case in table deleteTextHandler by @AlexanderReznik in #5891
- feat(@lexical/devtools): Extracted store/messaging implementation to the separate packages by @StyleT in #5894
- Fix #3456 stale selection state after clear format by @Sahejkm in #5896
- fix(lexical/createEditor): avoid implicit any type by @jason89521 in #5889
- Remove unnecessary type assertions from useReport.ts by @2wheeh in #5884
- Refine useDecorators type by @zurfyx in #5846
New Contributors
- @ManuelOjedaWz made their first contribution in #5849
- @zheckert made their first contribution in #5892
Full Changelog: v0.14.3...v0.14.4
v0.14.3
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
- Update the publish script channel by @ivailop7 in #5736
- fixed: #5233 firefox related issue for backspace deletion where "focus" offset is of type element instead of text by @Sahejkm in #5734
- chore(@lexical/text): Split into several files for better readability and to simplify further expansion by @StyleT in #5718
- Update build script to exclude WWW from ESM modules by @thegreatercurve in #5753
- Generate default entry in package.json exports last & use .mjs for esm modules by @etrepum in #5737
- Fix clear formatting in table by @AlexanderReznik in #5765
- Revert "fixed: #5233 firefox related issue for backspace deletion wh… by @zurfyx in #5776
- Respect CSS zoom by @ebads67 in #5772
- Fix selection started from inside of the table by @AlexanderReznik in #5766
- @lexical/playground: Moved Vite config to TS and removed code duplication by @StyleT in #5744
- fix: Double input of text including composing, such as Japanese, at TextNode Boundaries with in a MarkNode #5761 by @matsuyama-k1 in #5762
- fix: restore playground esm build by @etrepum in #5781
- Update stackblitz iframes to use ctl=1 to prevent focus stealing by @etrepum in #5784
- fix: Address more flaky collab tests by @etrepum in #5788
- Fix #5720 update the resolvedOffset correctly on image selection and drag by @Sahejkm in #5795
- Node-aware Context Menu Items by @ivailop7 in #5791
- Node fork modules & moduleResolution bundler by @etrepum in #5774
- Quick fix for #5754: Numbered list does not increment in ImageNode caption #5754 by @potatowagon in #5798
- Editable immediately when adding link from Floating toolbar by @ivailop7 in #5801
- Fix #5543 insertText('') was inserting Text as child of "table node" instead of root before tablerow resulting in table node not getting deleted by @Sahejkm in #5799
- fix: avoid auto-embed menu overflowing off right side of page by @donotlb in #5804
- Fix typo in docs by @thegreatercurve in #5805
- Improve table selection and navigation by @serey-roth in #5767
- feat(@lexical/devtools): Added basic extension scaffolding by @StyleT in #5747
- chore: Removed invalid GH action config by @StyleT in #5808
- docs: clarify read/update language in intro, readme & editor state by @etrepum in #5809
- #4618 combine list if next sibling is list node by @potatowagon in #5803
- Table selection stuck fix by @AlexanderReznik in #5807
- remove duplicate list merging by @potatowagon in #5810
- fix: removed overwrite of copyright by @svendjanis in #5811
- Refactor ClickableLinkPlugin by @ivailop7 in #5800
New Contributors
- @Sahejkm made their first contribution in #5734
- @potatowagon made their first contribution in #5798
- @svendjanis made their first contribution in #5811
Full Changelog: v0.14.2...v0.14.3
v0.14.2
v0.14.1
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
- Fix Flow $getCharacterOffsets by @zurfyx in #5555
- v0.13.1 by @zurfyx in #5556
- Fix: add class to elements exported from CodeNode by @2wheeh in #5558
- Prevent file:/// img conversion by @zurfyx in #5563
- Add
@lexical/html
to docs by @2wheeh in #5557 - Edit Link modal fix by @HarrySIV in #5551
- Update react documentation by @pavel-shermayster-sage in #5568
- Fix $computeTableMap flow by @zurfyx in #5574
- Fix Poll Node by @ivailop7 in #5579
- Fix Double Deletion on Backspace by @ivailop7 in #5580
- fix: update docs example by @jpulec in #5586
- Fix list selection when first node followed by an element node by @ivailop7 in #5583
- IME Input via CDP with latest Playwright by @ivailop7 in #5584
- fix: hide Firefox's text size buttons by @staadecker in #5588
- Bug: Right Align in Toolbar for RTL direction shows Left Align Icon by @fahad12398 in #5561
- Fixed position for lexical menu by @ebads67 in #5602
- fix: Improve performance of updateChildrenListItemValue by @etrepum in #5590
- fix: disable markdown shortcuts for collaboration by @junhsss in #5591
- Revert "Fixed position for lexical menu (#5602)" by @zurfyx in #5614
- Fix shift+arrow down selection for tables in sequence. by @serey-roth in #5617
- Fix hashtag regex blocking transform to heading by @2wheeh in #5376
- Revert "Fix hashtag regex blocking transform to heading" by @acywatson in #5636
- [0.14] Remove unused canExtractContents by @ivailop7 in #5628
- Escape Layout Plugin by @ivailop7 in #5626
- Move to native UUID by @ivailop7 in #5622
- fix: unify class name splitting/filtering with normalizeClassNames by @etrepum in #5649
- Preserve bullet item indent on newline by @ivailop7 in #5578
- Unbullet one list item not the whole list by @ivailop7 in #5621
- Refactor: simplify getFirstDescendant and getLastDescendant by @thorn0 in #5665
- docs: Added visualization of the Lexical modular architecture by @StyleT in #5667
- support multiple windows by @robfig in #5070
- docs: Interactive Vanilla JS example by @StyleT in #5668
- Configure ESLint: enable curly rule, fix on save by @thorn0 in #5666
- fix: Fix E2E tests in Safari (Webkit) by @StyleT in #5672
- docs: add a tip about discrete state update by @Dzieni in #5664
- docs: Improved Getting Started with React guide by @StyleT in #5676
- docs: Added reasoning on why State is necessary by @StyleT in #5678
- Add support for grid selection in text alignment. by @serey-roth in #5652
- docs: Added conceptual view of the Lexical Core Design by @StyleT in #5677
- chore(docs): Changed stackblitz.com links to point at this repo by @StyleT in #5685
- fix(tables): Add missing paragraph node when copying empty cells from external resources by @vect-spasquereau in #5670
- Fix forward word deletion destructing element nodes by @ivailop7 in #5625
- style: fix broken eslint check of #5625 by @yf-yang in #5694
- Fix endless renders with editorRef callback by @2wheeh in #5701
- fix: Typo in the collaboration nodes by @pranav-growthx in #5702
- Fix Bulleting a Node Selection by @ivailop7 in #5699
- Export table row height in JSON by @ivailop7 in #5696
- Fix deletion issues when using Chromium Android by @amanharwara in #5644
- Send click event in read-only editor by @ivailop7 in #5714
- Add code snippets for ClearEditorPlugin and MarkdownShortcutPlugin by @NickRawls in #5711
- docs: Creating a Plugin page + example by @StyleT in #5717
- docs: Added links to API docs for respective packages by @StyleT in #5719
- Update CharacterLimitPlugin to support custom renderer by @2wheeh in #5715
- Fix to count tabs as list indentation on importing markdown by @2wheeh in #5706
- Add test for multiple leading "#" characters in a hashtag by @2wheeh in #5723
- Fix: don't call importDOM methods more than once by @thorn0 in #5726
- ImportDOM and ExportDOM for LayoutContainerNode by @ivailop7 in #5722
- Fix height and width parsing in ImportDOM for ExcalidrawNode by @ivailop7 in #5721
- ESM build by @etrepum in #5618
- v0.14.0 by @ivailop7 in #5728
New Contributors
- @pavel-shermayster-sage made their first contribution in #5568
- @jpulec made their first contribution in #5586
- @staadecker made their first contribution in #5588
- @fahad12398 made their first contribution in #5561
- @junhsss made their first contribution in #5591
- @serey-roth made their first contribution in #5617
- @StyleT made their first contribution in #5667
- @robfig made their first contribution in #5070
- @Dzieni made their first contribution in #5664
- @vect-spasquereau made their first contribution in #5670
- @pranav-growthx made their first contribution in #5702
- @NickRawls made their first contribution in #5711
Full Changelog: v0.13.1...v0.14.1
v0.13.1
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
- Add missing flow types by @zurfyx in #5542
- v0.13.0 by @zurfyx in #5540
- Add row/column with correct header styles by @Shubhankerism in #5546
- Floating link editor for AutoLinkNode and conversion to LinkNode once modified. by @HarrySIV in #5536
- feat: Expose getActiveEditor and getActiveEditorState by @yf-yang in #5409
- Update CODEOWNERS by @zurfyx in #5550
- Check global.window on DOM availability check by @2wheeh in #5547
- docs: correct react plugin name by @sj-h4 in #5554
- Update InlineImageNode.tsx by @olvvlo in #5552
- Allow an empty paragraph child on converting from markdown by @2wheeh in #5517
New Contributors
Full Changelog: v0.13.0...v0.13.1
v0.13.0
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 betweenlexical
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)
- fix(lexical/html): missing @lexical/utils dependency by @liuweiGL in #4984
- Fix comment plugin selection rect top position by @vonsa in #4988
- Remove capital letter mentions by @acywatson in #4991
- Add nodes replacement support for nested composer by @fantactuka in #4992
- Add highlight to format types by @zurfyx in #5001
- Fix getTableSelectionFromTableElement flow by @zurfyx in #5005
- Fix TextNode override in 'Serialization & Deserialization' doc by @giacomoran in #5006
- Allow overriding HTML serialization behavior from the editor config. by @acywatson in #4254
- fix: LinkNode.importDOM should support all node content by @k-rajat19 in #5010
- Fix event handler removal in useDynamicPositioning, remove dupe code by @thorn0 in #5024
- Fix: pasting text that ends with an empty paragraph is ignored when the MaxLengthPlugin is enabled by @khsily in #5020
- Update setFloatingElemPosition.ts by @dirheimerb in #5027
- Update setFloatingElemPositionForLinkEditor.ts by @dirheimerb in #5028
- chore: fix typo in lexical-utils docs by @bbonamin in #5022
- fix(Playground): CMD +K improvements by @k-rajat19 in #5013
- feat: LexicalClickableLinkPlugin should support ctrl click mode #4565 by @sathishsridhar in #4839
- Nit: Floating toolbar by @zurfyx in #5038
- Transpile optional catch binding by @zurfyx in #5048
- Playground: refactor component picker plugin by @thorn0 in #4836
- Port List e2e test to unit tests by @acywatson in #5030
- Playground: embed twitter support x.com by @suhaotian in #5060
- MaxLength handle empty ElementNode by @zurfyx in #5029
- Allow LexicalTypeaheadMenuPlugin to work when inside an iframe by @lestertay in #5044
- fix : Add column shortcut gets hidden when mouse leave the table #4857 by @sathishsridhar in #5058
- Fix/floating formatter #5021 by @shubham168 in #5041
- Fix: ToolbarPlugin paste error with start, end format by @khsily in #5019
- fix(playground-text-format-toolbar): don't hide toolbar if current node is a paragraph by @mathieumetral in #4850
- Fix integrity by @zurfyx in #5068
- chore: fix typo by @AlessioGr in #5074
- Set up GA4 for website by @zpao in #5078
- Fix getting style via $getSelectionStyleValueForProperty when selection is collapsed by @Piliuta in #5082
- Fix tab replacement composition crash by @zurfyx in #5066
- chore: add typedefs for collab nodes and remove unused members by @zignis in #5071
- Revert Fix $transferStartingElementPointToTextPoint() #4756 by @thegreatercurve in #5094
- Fix insertNodes insert position at start of inline ElementNode by @zurfyx in #5110
- docs: fix typo in decorators.md by @CanRau in #5113
- fix(lexical-rich-text): correct comment typo by @jason89521 in #5116
- fix: fix android backspace bug by @cristopher-iov in #5077
- Fix: right click select images by @bencarletonn in #5056
- Consolidate docs across the repo by @ivailop7 in #5121
- chore(deps): bump @excalidraw/excalidraw from 0.14.2 to 0.15.3 by @dependabot in #5135
- Update anchor selection if split by patching style by @Piliuta in #5087
- Updated cell calculation based on cellspans by @icrosil in #5141
- Add Columns Layout to Typeahead menu by @ivailop7 in #5136
- Updated $insertTableColumn with batching by @icrosil in #5145
- chore(deps): bump @babel/traverse from 7.18.6 to 7.23.2 by @dependabot in #5155
- Add
commandPriority
option toLexicalMenu
and dependent components by @huw in #5123 - Update index.tsx by @dirheimerb in #5165
- Fix formatting selected table cells by @tahir606 in #5168
- Updated package-lock.json versions with 'npm audit fix'. by @Sparky338 in #5125
- Table resize fix by @AlexanderReznik in #5169
- Add Optional Chaining to
isNodePre
Method by @nickjmoss in #5157 - Fix
insertNodes
andinsertParagraph
by @GermanJablo in #5002 - Range utils by @zurfyx in #5153
- Fix insertNodes after selection swap by @zurfyx in #5175
- Add playwright-report to gitignore by @GermanJablo in #5173
- Fix insertNodes when anchor point is blank TextNode by @zurfyx in #5179
- Fix at() transpilation by @zurfyx in #5180
- fixed issue 5181 where link address is not shown if comment is set in… by @btezzxxt in #5188
- Improved LexicalMenu positioning relative to text by @9larsons in #5187
- Link title is correctly applied through the command by @petyosi in #5191
- fix Heading.insertNewAfter by @GermanJablo in #5198
- Update Modal.tsx by @dirheimerb in #5203
- Add conditional format setting, if the node is link fetch the parent paragraph node by @tahir606 in #5209
- Fix lexical-link typo s/_rel/__rel/ by @etrepum in #5221
- Fix "touple" typo to make it correctly "tuple" by @Jufrench in #5229
- fix: Make autolinks working for formatted text by @Constantiner in #5214
- refactor(playground): dry settings by @agriffis in #5225
- Fix iconRTL for center alignment by @ivailop7 in #5227
- Bug: Align list item do not change the export DOM by @trinhvinhtruong96 in #5160
- Fixes grid selection to be aware of nested tables by @icrosil in #5166
- chore(deps-dev): bump vite from 2.9.13 to 2.9.16 by @dependabot in #5133
- chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #5129
- chore(deps): bump postcss from 8.4.27 to 8.4.31 by @dependabot in #5130
- chore(deps-dev): bump semver from 5.7.1 to 5.7.2 by @dependabot in #5131
- chore(deps): bump @sideway/formula from 3.0.0 to 3.0.1 by @dependabot in https...