Releases: facebook/lexical
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...
v0.12.6
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)
v0.12.5
v0.12.5 (2023-12-06)
- Make subscript and superscript text formats mutually exclusive (#5317) Gry Ogam
- PR 2 5276 PointSelection instead of GridRangeSelections (#5281) Illia Olenchenko
- keep selection style when clicking empty editor (#5292) kyoyoung keum
- Fix insertNodes bugs (#5325) GermanJablo
- PR 1 Swap instance selection for BaseSelection in most cases (#5280) Illia Olenchenko
- selectEndstart as a method of LexicalNode instead of ElementNode (#5205) GermanJablo
- Make insertRangeAfter private (#5323) Gerard Rovira
- Improvements in insertNodes (#5201) GermanJablo
- Export CommandListener Flow (#5315) Gerard Rovira
- Add 2 missing flow exports (#5314) Gerard Rovira
- URL sanitization ClickableLinkPlugin (#5302) Yeison Daza
- fix backspace in Android not deleting first character (#5282) Kiran Dash
- docs improve DecoratorNode docs (#5284) Miroslav Petrov
- Fixing nested collapsible section chevron (#5300) Ebad
- Support HTML export overrides from config for nested editors. (#5267) Acy Watson
- Revert Fix Autolink plugin URL recognition failures (#5275) (#5295) Acy Watson
- Fix Autolink plugin URL recognition failures (#5275) Chinmay Disale
- Move to new Excalidraw APIs for 0.17 update (#5277) Ivaylo Pavlov
- Fix Resolve Cannot read properties of undefined (reading trim) issue in getSelectionStyleValueForProperty (#5271) Yeison Daza
- Fix The number in a numbered list gets duplicated (#5253) trinhvinhtruong96
- Fix Apply background color to multiple selected cells (#5258) Joo Hee Paige Kim
- packagelock (#5247) Gerard Rovira