Releases: TypeCellOS/BlockNote
v0.22.0
This release adds a few important changes to BlockNote:
- Improved paste handling for text, tables, and custom blocks (see #1324).
- Block & inline content props can now be optional, where the default value is
undefined
. - Numbered lists can start from any index.
What's Changed
- chore: Update playwright by @matthewlipski in #1334
- feat: list "start" index and add optional props by @YousefED in #1326
- chore: remove unnecessary files from dist by @YousefED in #1332
- feat: add more css specificity for tables by @mfanselmo in #1336
- fix: better paste handling by @YousefED in #1324
New Contributors
- @mfanselmo made their first contribution in #1336
Full Changelog: v0.21.0...v0.22.0
v0.21.0
💖 Various bug fixes in this release have been sponsored by DINUM 🇫🇷 and ZenDiS 🇩🇪
This release brings new bug fixes and a few improvements to blocks. Most notably:
- Resizing UX for images and videos has been improved, and their widths are no longer set to 0 when they're rendered outside the viewport.
- Issues with exporting file blocks to HTML have been fixed:
src
attribute not being set onimage
/video
/audio
elements.- Error when attempting to export using the
ServerBlockNoteEditor
.
- The UX for links has been improved:
- Cmd/Ctrl+K now opens the popover for creating a new link in the formatting toolbar.
- Typing on the edges of a link will no longer extend it.
- Pasting tables to other editors now works properly.
What's Changed
- docs: Add Y-Sweet by @jakelazaroff in #1297
- feat: Mobile-optimized formatting toolbar by @areknawo in #1284
- fix: Cut deleting selection when editor is non-editable by @matthewlipski in #1312
- fix: File HTML export and resizing UX by @matthewlipski in #1305
- fix: Link UX by @matthewlipski in #1304
- fix:
getSelection
behaviour and build by @matthewlipski in #1318 - fix: useReactNodeView ref for React 19 compatibility by @YousefED in #1317
- fix: BlockNoteView typescript issue for some users by @YousefED in #1316
- fix: collaboration wrapping to new line (firefox on linux) by @YousefED in #1273
- fix: Table copy paste into spreadsheets (#1298) by @areknawo in #1319
New Contributors
- @jakelazaroff made their first contribution in #1297
Full Changelog: v0.20.0...v0.21.0
v0.20.0
💖 Moving blocks as well as indentation & toolbar navigation changes have been sponsored by DINUM 🇫🇷 and ZenDiS 🇩🇪
💖 Table cell navigation changes have been sponsored by DeepOrigin💖
Moving blocks
moveBlocksUp
/moveBlocksDown
methods [Breaking]
The previously undocumented moveBlockUp
& moveBlockDown
methods have been renamed to moveBlocksUp
& moveBlocksDown
as they now support selections that span multiple blocks.
Additionally, their behaviour is now more inline with Notion and they now work better with "column"
and "columnList"
blocks from the @blocknote/xl-multi-column
package.
Docs have also been added for both methods.
Keyboard shortcuts
The Cmd+Shift+Up
/Cmd+Shift+Down
keyboard shortcuts (Ctrl+Shift+Up
/Ctrl+Shift+Down
for Windows) previously used the moveBlockUp
& moveBlockDown
methods, which are now moveBlocksUp
& moveBlocksDown
. This means that all the changes mentioned above also apply to those shortcuts.
Improved Tab
/Shift+Tab
handling
Indentation & toolbar navigation
Previously, while the formatting or link toolbars were open, Tab
& Shift+Tab
was used to navigate them for keyboard accessibility. In order to use Tab
/Shift+Tab
to indent/unindent the selected blocks, the user would have to first hit Escape
to close the toolbar(s). However, they would then immediately reopen, which would be frustrating when trying to move blocks up/down multiple nesting levels.
Now, the formatting and link toolbars remain closed after indenting/unindenting with Tab
/Shift+Tab
.
Additionally, setting the new tab-behaviour
editor option to "prefer-indent"
will cause Tab
/Shift+Tab
to always indent/unindent the selected blocks, regardless of any open toolbars. Note that this will make the toolbars no longer keyboard accessible.
Table cell navigation
Tab
/Shift+Tab
now navigate through cells when the selection is inside a table block, instead of indenting/unindenting the block.
Updated editor methods
getBlock
Previously could only get regular blocks, now also works with "column"
and "columnList"
blocks from the @blocknote/xl-multi-column
package.
getSelection
[Breaking]
Previously, getSelection().blocks
would return blocks spanned by the selection at all nesting levels, meaning the returned array would contain both a block and its descendants.
Now, in most cases, only blocks are added at the lowest nesting level of those spanned, though this works slightly differently when the block in which the selection starts is nested deeper than other blocks spanned. In either case, if a block is in the returned array, none of its descendants will be.
It's recommended to play around with the selected blocks demo or check the source code to understand the changes made to getSelection
in depth.
New editor methods
getPrevBlock
getNextBlock
getParentBlock
setSelection
What's Changed
- feat: Tab key handling for tables (simple) by @matthewlipski in #1275
- fix: Tab handling (indentation and toolbar focus) by @matthewlipski in #1285
- feat: Better selections and moving multiple blocks by @matthewlipski in #1276
- chore: upgrade y-prosemirror by @YousefED in #1301
- fix: delete file ru tooltip by @jurmaev in #1270
- fix: update max-height to inherit for suggestion menus by @andrewmnlv in #1282
- Typo fixing in examples by @tommerty in #1268
- fix: Placeholder error handling for inserting CSS rules by @matthewlipski in #1300
New Contributors
- @jurmaev made their first contribution in #1270
- @andrewmnlv made their first contribution in #1282
- @tommerty made their first contribution in #1268
Full Changelog: v0.19.2...v0.20.0
v0.19.2
Another bugfix release - this time focusing on UX.
What's Changed
- fix: export updateBlockCommand, to allow extending heading block by @m-risto in #1235
- fix: Prevent menu button from disappearing after fast clicks on
DragHandleButton
by @hoongding in #1184 - fix: ShadCN: inherit styling for inline content by @serpent213 in #1228
- fix: Made column/table resize bars get disabled when editor is non-editable by @matthewlipski in #1247
- feat: added placeholder example by @ezhil56x in #1252
- fix: CodeBlock fixes (select menu, bundled languages, paste from VS Code) by @areknawo in #1219
- fix: Remove redundant zindex values by @YousefED in #1257
- fix: disableExtensions by @YousefED in #1256
- feature: expose floatingOptions on react elements by @YousefED in #1253
New Contributors
- @hoongding made their first contribution in #1184
- @serpent213 made their first contribution in #1228
Full Changelog: v0.19.0...v0.19.2
v0.19.1
This release adds many bugfixes, especially for the recently released multi-column layouts.
What's Changed
- docs: Multi-column slash menu items in home page demo by @matthewlipski in #1221
- docs: Fixed code block styling in demos by @matthewlipski in #1234
- fix: Mantine drag handle menu colors dropdown closing on click by @matthewlipski in #1226
- fix: Clipboard insertion with multiple data types by @matthewlipski in #1224
- fix:
getNearestBlockContainerPos
unclear by @matthewlipski in #1241 - fix: Remove background color from table props by @matthewlipski in #1245
- fix: Typing after link doesn't revert to regular text by @matthewlipski in #1225
- fix: List item shortcuts throwing errors by @matthewlipski in #1236
- fix: Various multi-column bugs by @matthewlipski in #1240
- refactor: clean extensions by @YousefED in #1249
Full Changelog: v0.19.0...v0.19.1
v0.19.0: Column layouts, PDF and Docx exports
💖 Column-based layouts have been sponsored by Capitol AI 💖
💖 File exporters have been sponsored by DINUM 🇫🇷 and ZenDiS 🇩🇪
Column based layouts
File exporters: client-side export to docx and pdf
What's XL, you wonder?
These packages have been published as @blocknote/xl-multi-column
, @blocknote/xl-pdf-exporter
and @blocknote/xl-docx-exporter
. We're 100% committed to developing all our work open source. To ensure we run a sustainable project, we are experimenting with XL packages. These are dual-licensed packages that are released under AGPL-3.0 licenses. You're free to use these in open source projects, but for usage in proprietary / commercial projects, a sponsorship is required.
What's Changed
- feature: File exporters (docx and pdf) by @YousefED in #1143
- feature: Column based layouts by @YousefED and @matthewlipski in #1154
- chore: fixed typo in documentation page by @irakli2206 in #1195
- chore: externalize shiki languages by @YousefED in #1216
- fix: react 19 strictmode race condition by @YousefED in #1196
New Contributors
- @irakli2206 made their first contribution in #1195
Full Changelog: v0.18.1...v0.19.0
v0.18.0 and v0.18.1: Code Block, React 19, Table UX
Another big update! 🙌
This release adds:
- A code block with syntax highlighting! Great work @areknawo! 💖 CellaJS sponsored this our work on this.
- Improved Table UX (see image below)! Click or Drag to add rows / columns to tables. Also, resized column widths are now stored in the BlockNote JSON. This feature was sponsored by DeepOrigin 💖
Last, but not least, we added support for React 19 and Next.js 15 (would have been cool if this was BlockNote v0.19 instead of v0.18, but you can't have it all 🤷♂️). ---> Please see the upgraded next.js guide in the docs.
What's Changed
- feat: Table row/column extension UI by @matthewlipski in #1172
- fix: set numbered list data-index on export to html by @YousefED in #1174
- fix: React 19 compatibility by @YousefED in #1173
- fix: pasting in table by @YousefED in #1181
- fix: caption width match file container #1169 by @mwonng in #1182
- feat: Code block by @areknawo in #1177
New Contributors
Full Changelog: v0.17.1...v0.18.1
(note: most of these changes were in v0.18.0, v0.18.1 only adds this commit to make sure the peerDependency is compatible with React 19 RC. _note that @blocknote/core
remained unchanges, so you can use v0.18.0 for this)
v0.17.1
What's Changed
- fix: Error thrown on Backspace in first block by @matthewlipski in #1165
Full Changelog: v0.17.0...v0.17.1
v0.17.0
This release introduces a major refactor to a lot of BlockNote's internal code, which will make it easier to implement certain features down the line. Additionally Ctrl/Cmd+ArrowUp/ArrowDown shortcuts have been added to move the selected block up and down, and bugs have been fixed including copying on Firefox and updating block content.
What's Changed
- refactor: cleaned serialization code by @YousefED in #1129
- feat: Keyboard shortcuts to move selected block up/down by @matthewlipski in #1126
- chore: use import extensions in all packages (except docs) by @YousefED in #956
- fix: Block update removing children when setting content by @matthewlipski in #1103
- refactor: clean sidemenuplugin by @matthewlipski in #1132
- chore: mark all css files as sideEffects by @YousefED in #1146
- feat: Add Croatian Translation Dictionary by @IvanM98 in #1128
- fix: Error when copying custom blocks by @matthewlipski in #1159
- Refactor: clean blockcontainer by @YousefED in #1137
- refactor: remove simplifyblocks and make copy sync by @YousefED in #1160
New Contributors
Full Changelog: v0.16.0...v0.17.0
0.16.0
This release fixes some major issues regarding copying & selections.
What's Changed
- docs: Fixed image upload demo by @matthewlipski in #1108
- Internal html changes by @matthewlipski in #1116
Full Changelog: v0.15.11...v0.16.0