Skip to content

Releases: facebook/lexical

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)

v0.12.5

07 Dec 02:29
Compare
Choose a tag to compare

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

v0.12.4

19 Nov 00:02
Compare
Choose a tag to compare

This release just hotfixes a circular dependency issue in v0.12.3.

v0.12.3

17 Nov 22:15
Compare
Choose a tag to compare

v0.12.3 (2023-11-17)

This minor release is not so minor! New stuff and a scroll of bugfixes.

Overriding HTML serialization from the editor config (#4254)

Some months ago we introduced Node Overrides as a way to fully customize your Node. While this feature gives you the most flexibility, we realized (based on Discord's feedback) that most overrides are fairly simple and move around HTML. For this reason, we're bringing this closer to you and without the need to introduce new Nodes.

    html: {
      export: new Map([[TextNode, () => ({ element: document.createElement('figure') })]]),
      import: { 'figure': () => ({ conversion: () => ({ node: $createTextNode('yolo') }), priority: 4 }) }
    },

$insertNodes rewrite (#5002)

$insertNodes is arguably the most complex function in the Lexical codebase. Or at least it was until @GermanJablo succesfully rewrote it from scratch!

Screenshot 2023-11-17 at 5 08 09 PM

For those of you who haven't had a chance to play with $insertNodes yet, it places one or multiple Nodes at your selection, and is responsible for intelligently determining the end hiearchy (i.e. merged together or moved up to tree).

@GermanJablo's rewrite not only resolves some immediate issues but also the reduced complexity now enables us to perfect this function (and indirectly the clipboard paste behavior), previously blocked by its complexity.

Tables reliability

We closed more than 70% of the open tables issues since the last release. Kudos to @icrosil for being the main driver behind this effort!

What's Changed

Read more

v0.12.2

08 Sep 21:59
3fbe947
Compare
Choose a tag to compare

v0.12.2 (2023-09-08)

Changelog

  • Move isHTMLElement into core (#4977) Gerard Rovira
  • 0.12.1 (#4978) Acy Watson

Full Changelog: v0.11.3...v.0.12.2