Releases: umaranis/svelte-lexical
0.6.4
Features
- feat: Component Picker Menu Plugin β trigger it with '/'
- feat: add
insert image dialogandcolumns layoutto slash command (ComponentPicker) - feat: add
insert table dialogto slash commands - feat: component picker β support dark mode and all three themes
- feat: Context Menu component
- feat: TypeAhead Menu
- feat: upgrade lexical from 0.33.1 to 0.40.0 (thanks to @screenfluent)
Tests
- test: align tests with the latest version of lexical
- test: Component Picker tests
Refactor
- refactor: launch dialogs from anywhere using a function call
Build
- build: add vite-plugin-devtools-json
- build: replace legacy svelte 4 syntax (thanks to @screenfluent)
- build: enforce Svelte runes mode (thanks to @screenfluent)
- build: add margin to demo size-limits (thanks to @screenfluent)
Performance
- perf: exclude dialog from page dom when not open
Docs
- docs: add footer to the playground
- docs: add a footer to docs website
0.6.3
- feat: expose toggleItalic, toggleBold, toggleStrikethrough, toggleUnderline, toggleSubscript, toggleSuperscript, undo, redo. insertYoutube, insertTweet, insertBlueskyPost, insertColumnsLayout, insertTable
- docs: include markdown shortcut for table
- docs: new html output example
0.6.2
Features
feat: add code diff highlighting
feat: support markdown transformation for tables and tweets
feat: Link Plugin - specify link attributes
feat: $config protocol + NodeState registration/flattening
Bug
bug: preserve row striping in frozen table columns
bug: support Apple Pencil
bug: change list, strikethrough and quoteblock shortcuts to match Google Docs for Windows compatibility
bug: close link popup when user clicks out of it
bug: allow deleting empty column layouts via backspace
bug: update block type when bullet list contains a selected mage
Test
test: ignore SELECTION_INSERT_CLIPBOARD_NODES_COMMAND dispatched from child editors
test: code diff highlighting
test: ctrl+a doesn't work well in plain text mode on Firefox
test: use locator API instead of page.evaluate
test: deleting multiple rows with merged row cells
test: code block - can indent text via tab when selecting the line with Shift+Down
test: fix tests failing due to flaky undo
Build
build: upgrade lexical from 0.31.1 to 0.33.0
perf: increase playground size by 1kb
perf: increase size for playground by 3kb
Docs
docs: markdown export include transformers
docs: running collaboration tests
docs: delete plugin docs as they are moved to the website
See more details at https://umaranis.com/2025/09/24/released-svelte-lexical-0-6-2-diff-in-code-block/
0.6.1
0.6.0
Breaking Change
breaking: NestedComposer initialNodes prop removed and implicit namespace setting
Features
feat: new theme with dark mode
feat: dark mode support in the playground
feat: new system light-dark theme with theme selector and image components
feat: embed youtube video
feat: Twitter plugin with tweet embedding functionality
feat: add Bluesky integration with post embedding functionality
feat: add touch support for Table Cell Resizer
feat: use Tab key for indent & outdent
feat: use ThemeSelector and ThemeImage in playground
feat: add link to images
feat: add OnChangePlugin plugin
feat: upgrade lexical from 0.27.1 to 0.31.0
Bug Fixes
bug: stabilize text format dropdown width in toolbar
bug: correct import path for DefaultEditorTheme
bug: Table Hover buttons are not shown when resizer cursor shows up
bug: exception when changing formatting back to normal
bug: Debug TreeView selection indicator off by one
bug: Move ListItemNode text style inheritance to custom properties and CSS
bug: fix Table action menu visibility with cell overflow
bug: move ColorPickerDialog out of the TableActionMenu to control the visibility independently
bug: update tableFrozenRow class to include tableScrollableWrapper
bug: clear formatting should also clear any indent/outdent if applied
bug: missing bluesky icon from playground
bug: floating toolbar position for end-aligned text
bug: update event listeners from mouseup to pointerup for better touch support
bug: clear blockelement formatting along with textNode
bug: use natural dimensions for inherited image size (svg)
bug: Color Picker dialog - don't close onChange
bug: Color Picker - reflect any color updates sent from parent component
Performance
perf: increase size limit for richtext-editor assets to 104 kb
perf: bluesky plugin adds ~8kb to the playground (can be reduced by using server api - oembed)
perf: increase size limit to 206kb for playground
perf: update size-limit by 1 kb for plaintext demo
Build
build: add .svelte.ts and .svelte.js to ESLint config
build: switch from npm to pnpm for publishing package
build: upgrade svelte to the latest version
build: migrate string literals to update tag constants
build: publint suggestion to include git URL in package.json
build: add custom words to cSpell configuration
Documentation
docs: update clear editor content guide
docs: Add new Clear Editor Content documentation
docs: fix landing image dimensions on mobile devices
docs: fix link in npm package README.md
Tests
test: refactor autolink tests for reliability
test: collaboration - $handleNormalizationMergeConflicts
test: add tests for table cell resize
test: delete table with merged cells
test: enhance HorizontalRule tests to validate behavior with ListItemNode and clipboard operations
test: add functionality to paste tables with merged cells and select cells by coordinates
test: skip legacy events in HTML copy and paste tests; add new regression test for multi-line HTML paste
test: mark flaky test as fixme for collaboration scenarios
test: fix failing selection test after ThemeSelector added to the page
test: add test for deleting text by line forwards with control+K
test: markdown shortcut
test: add functionality to prevent negative indents
test: Table cell line breaks behave differently from the intended HTML behavior
Refactor
refactor: deprecate KEY_MODIFIER_COMMAND and use KEY_DOWN_COMMAND
refactor: Add a default delete handler for NodeSelection
refactor: add type predicate to objectKlassEquals
refactor: playground - turn on horizontal scroll for tables by default; control the feature using app settings for tests
refactor: allow initial color to be set when opening Color Picker dialog
refactor: move all default theme files into default folder
refactor: use CAN_USE_DOM from @lexical/utils
refactor: rename and deprecate some table utils
refactor: use registerCheckList
refactor: support custom cursor sync in CollaborationPlugin
0.5.3
Breaking change
- breaking: refactor font size update methods
New Features
- feat: export all $create..Node methods to programmatically create content
Bug fixes
- bug: HR not selection outline not displayed in some demos
- bug: fix the shell styling for more examples
Docs
- docs: update README for website package
- docs: add features to the website
- docs: add column layout, collaboration and markdown shortcut plugin guides
- docs: add import/export guides for JSON, HTML, and Markdown formats
- docs: add guides for theme customization, read/edit modes, and plugin integration
- docs: update readme from root to the library
- docs: getting started guide
Build
- build: update ESLint and fix issues
- build: eslint version upgrade to 9.21.0
- build: upgrade dependencies to recent versions
- build: upgrade Vite from 5 to 6 (also upgrade vitest)
- build: upgrade SvelteKit and adapter versions
- build: update svelte and eslint and add onlyBuiltDependencies in pnpm-workspace.yaml
- build: upgrade svelte-check to latest version
- build: upgrade svelte to 5.22.5
- build: upgrade publint and @eslint/js to the latest version
Testing
- test: update post publish tests to exclude linting as they don't work because of --ignore-worspace
Performance
- perf: increase size limit by 1kb for
richtext-editor
0.5.2
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
syncCursorPositionsfunction 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
0.5.1
- feat: default shell theme included in the library (svelte-lexical/dist/themes/default)
- feat: export functions for importing and exporting markdown
- feat: functions for importing and exporting HTML
- perf: remove unused styles
- bug: on Safari, the toolbar drop-down stops showing up when the toolbar overflows - fix #87
- bug: dropdown displays behind the backdrop of insert column layout dialog
- bug: Code Action Menu doesn't show up for any theme other than playground
- bug: update table action buttons to use theme-specific classes
- build: use pnpm 9 in the pipeline
0.5.0
New Features
- breaking:
svelte-lexicalis upgraded to Svelte 5 - feat: include editor theme in the library
Bugs
- bug: image caption button - when focused, enter and escape keys do not work
- bug: editor loses focus after inserting image
Build
- build: upgrade to ESLint version 9 with the new config file format
Tests
- test: 36 new tests for table plugin
- test: upgrade playwright to the latest version
- test: fix async bug in test helper
- test: tests having to load images fail when run from VSCode starting Playwright version 1.44.0 (fix #102)
- test: rename CI jobs for better readability
Docs
- docs: update more examples page
0.4.3
New Features
- feat: table support
- feat: add row and column buttons on table hover
- feat: enhance Insert Table Dialog with close button and improved layout
- feat: Table Menu for add row/column, delete, merge, cell color etc.
- feat: Action bar button to toggle editor read-only mode
Bugs
- bug: exception when turning debug view off and on #94
- bug: readonly editor but enabled toolbar buttons
- bug: editor loses focus after insert
Tests
- test: tag flaky tests and sort attributes
Build
- build: support for pnpm version 9
See more details at https://umaranis.com/2024/11/14/released-svelte-lexical-0-4-3-support-tables/