Releases: TypeCellOS/BlockNote
v0.46.1
v0.46.0
0.46.0 (2026-01-08)
The main feature of this release is now depending on the new Vercel AI SDK V6 (upgrade from V5) for our xl-ai package.
Other than that, this release was mainly bug fixes and dep upgrades to packages we depend on.
🚀 Features
🩹 Fixes
- emojipicker can sometimes fail to mount (575b81cec)
- LinkToolbar Event Listener leak (#2335)
- when you convert a block into checkListItem via inputRule, it should transfer its content into checkListItem content (#2331)
- do not return focus back to menu (484d7da36)
- arrow up on a checklist item should move to the element above BLO-362 (#2306)
- getPos race condition in React StrictMode (#2311)
- adjust input rules to be more tolerant to starting whitespace (#2341)
- ai: make sure ShowSelection works (#2297)
- xl-email-exporter: remove redundant sections in email export (#2323)
❤️ Thank You
- Nick Perez
- Nick the Sick @nperez0111
- supernova @tmpluto
- Yousef
v0.45.0
0.45.0 (2025-12-17)
🚀 Features
- ai: expand selections to contain words (#2304)
- extensions: extensions can now include other extensions for grouping into one extension (#2284)
🩹 Fixes
- an invalidly specified table should not crash the editor (#2255)
- filter out invalid heading items based on the current block schema in the slash menu #2253 (#2259, #2253)
- relax shiki package requirements #2279 (#2280, #2279)
- filter the default tiptap extensions #2282 (#2283, #2282)
- always include the cursor extension #2244 (#2260, #2244)
- make
onBeforeChangereturn the correct type again (9009369b1) - if there is no table block, there is no table handles to show #1055 (#2281, #1055)
- pass dragHandleMenu prop to DragHandleButton (#2254)
- html diff error with whitespace (#2230)
- update regex for checklist items #2288 (#2305, #2288)
- email-exporter: ReadableByteStreamController for safari react-email (#2295)
❤️ Thank You
- Max @maqen
- Nick Perez
- Nick the Sick @nperez0111
- Yousef
v0.44.2
0.44.2 (2025-12-09)
🩹 Fixes
- put back
onBeforeChangemethod #2221 (#2243, #2221) - Improper accessing of editor DOM element (#2234)
- make validation errors recoverable by llm (#2054)
- shadowdom support and example (#2223)
- ensure numbered list start property always present (#2241, #2242)
- Suggestion menu positioning (#2232)
- conditionally access the TableHandles extension from React (#2248)
- ai: upgrade prosemirror-suggest-changes (#2235)
❤️ Thank You
- Matthew Lipski @matthewlipski
- Nick Perez
- wcyat @sdip15fa
- Yousef
v0.44.1
0.44.1 (2025-12-08)
This release fixes some regressions from v0.43.0.
🩹 Fixes
- clearing selection was not being called when create link button is no longer rendered (#2217)
- AI menu not updating position on new line (#2233)
- UI elements not scrolling when editor DOM element is scrollable (#2231)
❤️ Thank You
- Matthew Lipski @matthewlipski
v0.44.0
0.44.0 (2025-12-02)
This release brings several architectural improvements to BlockNote AI and introduces abort() functionality for AI requests.
See #2198 for details and breaking changes, or have a look at the updated docs.
We also fixed some build / dependency issues in 0.43.0.
What's Changed
- refactor(ai): standardize prompt building by @YousefED in #2198
- feat(ai): Abort requests by @YousefED in #2213
- chore(build): fix AI packaging issue by @YousefED in #2210
- chore: streamline all vite.config external options by @YousefED in #2214
Full Changelog: v0.43.0...v0.44.0
v0.43.0
0.43.0 (2025-12-01)
Major Codebase Refactor
This release introduces a major refactor to the codebase, targeting 2 main areas of improvement:
UI Extensions, Components, and Hooks
BlockNote extensions responsible for UI elements like the formatting toolbar and file panel have been rewritten and heavily simplified. They take advantage of changes we've made to the BlockNote extensions API (see below), making them far more maintainable.
As part of simplifying the UI extensions, FloatingUI now handles much more in terms of positioning & dismissing the elements, e.g. making them scroll with the editor and close on hitting Escape.
Thanks to these changes, we've also been able to make our React components/hooks much simpler and more readable.
BlockNote Extensions
We've cleaned up and added additional functionality to BlockNote's extensions API. The original extension system was created somewhat haphazardly to support commonly needed features like keyboard shortcuts. The new BlockNote extensions API will be able to do much more, and should reduce the need to add functionality using TipTap extensions or ProseMirror plugins.
The additions to the extensions API are currently meant for internal use only, but we can't wait to share these with the community in a future release!
To see a detailed summary of the changes in this release, see PR #2143.
Breaking Changes
@blocknote/core
- Existing extensions using the
BlockNoteExtensionclass are no longer supported. Use thecreateExtensionfunction instead. - Extension-specific imports have been moved from
@blocknote/coreto@blocknote/core/extensions. This includes helpers such asfilterSuggestionItemsfor the suggestion menu extension. - Comment-specific imports have been moved from
@blocknote/coreto@blocknote/core/comments. - The
commentseditor option has been removed. Instead of passingcomments: optionsto the editor, passextensions: [CommentsExtension(options)]instead. - Extensions are no longer listed as properties of
BlockNoteEditor, e.g.editor.formattingToolbar. Use thegetExtensionmethod instead, e.g.editor.getExtension(FormattingToolbarExtension). editor.openSuggestionMenuhas been removed. Useeditor.getExtension(SuggestionMenu).openSuggestionMenuinstead.editor.getForceSelectionVisible/editor.setForceSelectionVisiblehave been removed. Useeditor.getExtension(ShowSelectionExtension).store.state.enabled/editor.getExtension(ShowSelectionExtension).showSelectioninstead.editor.onCreatehas been removed. Useeditor.onMountinstead.insertOrUpdateBlockhas been renamed toinsertOrUpdateBlockForSlashMenu.editor.updateCollaborationUserInfohas been removed.
@blocknote/react
useEditorContentOrSelectionChangehas been removed. UseuseEditorStateinstead.useUIPluginStatehas been removed. UseuseExtensionoruseExtensionStateinstead.useUIElementPositioninghas been removed. UseBlockPopover,PositionPopover, orGenericPopoverinstead.useEditorForceUpdatehas been removed.
@blocknote/xl-ai
BlockPositionerhas been removed. UseBlockPopoverinstead.createAIExtensionhas been removed. UseAIExtensioninstead.getAIExtensionhas been removed. Useeditor.getExtension(AIExtension)oruseExtension(AIExtension) instead.
Changelog
🚀 Features
- Major Extensions & UI Refactor (#2143)
🩹 Fixes
- allow configuring the email body's styles (#2182)
- xl-docx-exporter: improve OOXML interoperability (#2206)
❤️ Thank You
- Nick Perez
- Stephan Meijer @StephanMeijer
v0.42.3
v0.42.2
0.42.2 (2025-11-19)
This release reverts a bug introduced by https://github.com/TypeCellOS/BlockNote/releases/tag/v0.42.0 which attempted to resolve issue with React's StrictMode, unfortunately we have not resolved the underlying bug, but this release will at least put it back to the previous state. As far as we understand this should only be an issue in a development build, and in production mode it should work as expected. We will prioritize fixing the underlying bug and update the issue here: #2106
🩹 Fixes
- put back mounting system (#2183)
❤️ Thank You
- Nick Perez