This is a huge release with a lot of bug fixes and several new features for table editing.
Features
- feat: table cell resize support
- feat: add column widths to TableNode
- feat: add row stripping
- feat: add keyboard shortcuts various toolbar commands
- feat: table horizontal scroll
- feat: freeze first row of the table
- feat: freeze first column of the table
- feat: upgrade lexical from 0.17.0 to 0.27.1
- feat: add typescript code formatting support
- feat: table Cell vertical align (top, middle, bottom)
- feat: allow passing in custom
syncCursorPositions
function to collab hook
Build
- build: add post publish tests (ignore workspace)
- build: upgrade prettier version to 3.4.2
- build: update Node.js version to 20 in npm-publish workflow
Performance
- perf: increase playground size limit from 175 to 191kb
- perf: increase size limit for richtext editor to 102 kb
- perf: richtext-editor demos increase size limit from 93 to 97kb
- perf: increase size limit for plaintext editor to 45 to 70kb
Refactor
- refactor: click and drag table selection in Firefox
- refactor: get type and version properties super in exportJSON
- refactor: update class names for horizontal rule selection styling
- refactor: image component rerenders on every editor update
- refactor: replace instanceof checks with isHTMLElement
- refactor: TablePlugin – use code from the lexical package
- refactor: remove duplicate TableCellResizePlugin
- refactor: new name clearHighlight in lexical
- refactor: table hover actions and add resize observer
- refactor: ensure disconnect is called after connection is established in useYjsCollaboration
- refactor: use registerList function
- refactor: remove insertNodes workaround in ToolbarPlugin Yesterday 7:13 pm
- refactor: add updateFromJSON and move more textFormat/textStyle to ElementNode
Docs
- docs: add TableCellResizerPlugin to the list
Testing
- test: svelte specific code to dynamically find browserName
- test: add keyboard shortcuts for deleting lines on Mac
- test: enhance e2e tests for nested lists and item insertion
- test: add fixes for deleting forward and backward in Collapsible and Table elements
- test: remove nested table navigation tests and add restrictions for nested tables
- test: update copy and paste context menu tests and add HTML formatting test
- test: add e2e tests for undo/redo functionality in collaborative editing
- test: add e2e test for copying and pasting a table with an empty row
- test: update nested list selection and add triple click selection test
- test: update headings tests for enter key behavior and add regression test for character deletion
- test: update Tab component to include class for tabNode spans
- test: copy paste table from google sheet with custom column width
- test: turn off flaky tests
- test: mark flaky firefox tests as fixme
- test: add proper-lockfile for exclusive clipboard access
- test: add collaboration tests for handling dangling text and merging in YJS
- test: shift+arrowdown into a table selects element after
- test: new tests for tables
Fixes
- bug: apply correct column headers when column contains vertically merged cells
- bug: correct theme selector syntax in TableHoverActionPlugin
- bug: cater for multiple classes in theme when creating the selector
- bug: make syncCursorPositionsFn optional in YjsCollaboration component
- bug: improve character deletion around shadow roots and decorators
- bug: workaround for delete character with emoji grapheme customers that do not include non-BMP code points
- bug: don’t show label for text color toolbar dropdown
- bug: ensure rectangular table cell merge behavior
- bug: don’t call editor.update from within $ methods
- bug: fix table hover actions button position for scrollable table
- bug: multiple row insertion logic
- bug: gear icon not showing on the playground settings button
- bug: preserve the selection using the link editor from a table
- bug: fix table selection issue when the mouse crosses over a portal
- bug: Table Action Menu – fix UI issue with Merge Cells item
- bug: fix importDOM for Layout plugin
- bug: fix the placement of the fontSize button in the ToolbarPlugin and hide the vertical scroll
- bug: disable table hover actions in read-only mode
- bug: disable image focusing, adding caption and editing in read-only mode
- bug: move table resize observer initialization to onMount – SSR issue
- bug: toolbar font size input disable style similar to other components
- bug: missing styles for table hover add buttons
- bug: fix merged cell related edge cases
- bug: fix toolbar font size input keyboard accessibility
- bug: make style buttons in toolbar respect table selection
- bug: fix issue where selecting a cell then dragging outside of table would not select entire table
- bug: fix multiple node selection deletion
- bug: fix tooltip for redo button with correct macOS shortcut
- bug: fix auto link crash editor
- bug: fix dropdown menu position calculation in TableActionMenu