tag:github.com,2008:https://github.com/TypeCellOS/BlockNote/releasesRelease notes from BlockNote2026-03-02T11:56:22Ztag:github.com,2008:Repository/465199957/v0.47.12026-03-02T11:56:26Zv0.47.1<h2>0.47.1 (2026-03-02)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li>typeerror cannot read properties of undefined (<a href="https://github.com/TypeCellOS/BlockNote/pull/2522" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2522/hovercard">#2522</a>)</li>
<li>handle more delete key cases (<a href="https://github.com/TypeCellOS/BlockNote/pull/2126" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2126/hovercard">#2126</a>)</li>
<li>add delay for <code>data-active</code> in collab cursors (<a href="https://github.com/TypeCellOS/BlockNote/pull/2383" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2383/hovercard">#2383</a>)</li>
<li>disable slash menu in table content <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3886004221" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2408" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2408/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2408">#2408</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2504" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2504/hovercard">#2504</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2408" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2408/hovercard">#2408</a>)</li>
<li><strong>ai:</strong> selections broken due to floating-ui focus manager (<a href="https://github.com/TypeCellOS/BlockNote/pull/2527" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2527/hovercard">#2527</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Matthew Lipski <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matthewlipski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matthewlipski">@matthewlipski</a></li>
<li>Nick Perez</li>
<li>Yousef</li>
</ul>nperez0111tag:github.com,2008:Repository/465199957/v0.47.02026-02-23T07:39:47Zv0.47.0<h2>0.47.0 (2026-02-23)</h2>
<h3>🚀 Features</h3>
<ul>
<li>update suggestion menu component (<a href="https://github.com/TypeCellOS/BlockNote/pull/2397" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2397/hovercard">#2397</a>)</li>
<li><strong>i18n:</strong> add Persian (fa) localization support (<a href="https://github.com/TypeCellOS/BlockNote/pull/2447" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2447/hovercard">#2447</a>)</li>
<li><strong>i18n:</strong> add Uzbek (uz) localization support (<a href="https://github.com/TypeCellOS/BlockNote/pull/2506" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2506/hovercard">#2506</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>prevent nested bullet list icon rendering as emoji on iOS 18+ (<a href="https://github.com/TypeCellOS/BlockNote/pull/2394" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2394/hovercard">#2394</a>, <a href="https://github.com/TypeCellOS/BlockNote/pull/2399" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2399/hovercard">#2399</a>)</li>
<li>ignore drag & drop from unrelated events <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3360106489" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/1968" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/1968/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/1968">#1968</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2346" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2346/hovercard">#2346</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/1968" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/1968/hovercard">#1968</a>)</li>
<li>disable checkbox when editor is not editable <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3885953963" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2406" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2406/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2406">#2406</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2448" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2448/hovercard">#2448</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2406" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2406/hovercard">#2406</a>)</li>
<li>Backspace/enter behaviour in empty block with children (<a href="https://github.com/TypeCellOS/BlockNote/pull/2451" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2451/hovercard">#2451</a>)</li>
<li>handle pasting into table cells better, by collapsing their content to inline <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3886070653" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2410" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2410/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2410">#2410</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2449" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2449/hovercard">#2449</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2410" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2410/hovercard">#2410</a>)</li>
<li><strong>accessibility:</strong> ai combobox aria-activedescendant (<a href="https://github.com/TypeCellOS/BlockNote/pull/2413" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2413/hovercard">#2413</a>)</li>
<li><strong>ai:</strong> no more scrolling to top when opening AI menu (<a href="https://github.com/TypeCellOS/BlockNote/pull/2503" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2503/hovercard">#2503</a>)</li>
<li><strong>docs:</strong> unicode char not rendered in bug template (<a href="https://github.com/TypeCellOS/BlockNote/commit/f13e270be">f13e270be</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Cyril G <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Ovgodd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Ovgodd">@Ovgodd</a></li>
<li>Dex Devlon <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bxff/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bxff">@bxff</a></li>
<li>Matthew Lipski <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matthewlipski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matthewlipski">@matthewlipski</a></li>
<li>MDSAM05 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MDSAM05/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MDSAM05">@MDSAM05</a></li>
<li>Mohammad RAHMANI <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Mrahmani71/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Mrahmani71">@Mrahmani71</a></li>
<li>Nick Perez</li>
<li>Ogabek <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OgabekYuldoshev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OgabekYuldoshev">@OgabekYuldoshev</a></li>
<li>Wouter Vroege</li>
<li>Yousef</li>
</ul>nperez0111tag:github.com,2008:Repository/465199957/v0.46.22026-01-27T20:16:28Zv0.46.2<h2>0.46.2 (2026-01-27)</h2>
<p>This release ships a bunch of bug fixes, including many from the BlockNote community!</p>
<h3>🩹 Fixes</h3>
<ul>
<li>deep merge floatingUIOptions using nested spread operators (<a href="https://github.com/TypeCellOS/BlockNote/pull/2310" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2310/hovercard">#2310</a>)</li>
<li>Visual differences between live editor and rendered exported HTML (<a href="https://github.com/TypeCellOS/BlockNote/pull/2348" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2348/hovercard">#2348</a>)</li>
<li><code>BlockNoteViewEditor</code> mismatched editable value (<a href="https://github.com/TypeCellOS/BlockNote/pull/2357" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2357/hovercard">#2357</a>)</li>
<li>add <code>font-synthesis</code> for italic & bold in fonts that don't have them specified <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3771691497" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2325" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2325/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2325">#2325</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2354" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2354/hovercard">#2354</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2325" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2325/hovercard">#2325</a>)</li>
<li>disable code block language selector when editor is not editable (<a href="https://github.com/TypeCellOS/BlockNote/pull/2351" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2351/hovercard">#2351</a>)</li>
<li>table handles would crash (<a href="https://github.com/TypeCellOS/BlockNote/pull/2384" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2384/hovercard">#2384</a>)</li>
<li>update CreateLinkButton to be able to toggle popover visibility (<a href="https://github.com/TypeCellOS/BlockNote/pull/2316" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2316/hovercard">#2316</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2313" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2313/hovercard">#2313</a>)</li>
<li>add context,nestingLevel to toExternalHTML (<a href="https://github.com/TypeCellOS/BlockNote/pull/2373" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2373/hovercard">#2373</a>)</li>
<li><strong>ai:</strong> re-enable flipping the AIMenu when there is not enough space <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3709806191" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2245" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2245/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2245">#2245</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2247" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2247/hovercard">#2247</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2245" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2245/hovercard">#2245</a>)</li>
<li><strong>link-toolbar:</strong> prevent Enter from submitting during IME composition (<a href="https://github.com/TypeCellOS/BlockNote/pull/2361" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2361/hovercard">#2361</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>hanios123</li>
<li>Jean-Baptiste PENRATH</li>
<li>Matthew Lipski <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matthewlipski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matthewlipski">@matthewlipski</a></li>
<li>Nick Perez</li>
<li>Shohei Yoshida <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ysds/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ysds">@ysds</a></li>
<li>Yousef</li>
</ul>matthewlipskitag:github.com,2008:Repository/465199957/v0.46.12026-01-10T18:27:07Zv0.46.1<h2>0.46.1 (2026-01-10)</h2>
<p>This was a version bump for some invalid CSS</p>nperez0111tag:github.com,2008:Repository/465199957/v0.46.02026-01-08T15:04:30Zv0.46.0<h2>0.46.0 (2026-01-08)</h2>
<p>The main feature of this release is now depending on the new Vercel AI SDK V6 (upgrade from V5) for our xl-ai package.<br>
Other than that, this release was mainly bug fixes and dep upgrades to packages we depend on.</p>
<h3>🚀 Features</h3>
<ul>
<li>add data-nesting-level to HTML export (<a href="https://github.com/TypeCellOS/BlockNote/pull/2329" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2329/hovercard">#2329</a>)</li>
<li>migrate to ai sdk 6 (<a href="https://github.com/TypeCellOS/BlockNote/pull/2328" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2328/hovercard">#2328</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>emojipicker can sometimes fail to mount (<a href="https://github.com/TypeCellOS/BlockNote/commit/575b81cec">575b81cec</a>)</li>
<li>LinkToolbar Event Listener leak (<a href="https://github.com/TypeCellOS/BlockNote/pull/2335" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2335/hovercard">#2335</a>)</li>
<li>when you convert a block into checkListItem via inputRule, it should transfer its content into checkListItem content (<a href="https://github.com/TypeCellOS/BlockNote/pull/2331" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2331/hovercard">#2331</a>)</li>
<li>do not return focus back to menu (<a href="https://github.com/TypeCellOS/BlockNote/commit/484d7da36">484d7da36</a>)</li>
<li>arrow up on a checklist item should move to the element above BLO-362 (<a href="https://github.com/TypeCellOS/BlockNote/pull/2306" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2306/hovercard">#2306</a>)</li>
<li>getPos race condition in React StrictMode (<a href="https://github.com/TypeCellOS/BlockNote/pull/2311" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2311/hovercard">#2311</a>)</li>
<li>adjust input rules to be more tolerant to starting whitespace (<a href="https://github.com/TypeCellOS/BlockNote/pull/2341" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2341/hovercard">#2341</a>)</li>
<li><strong>ai:</strong> make sure ShowSelection works (<a href="https://github.com/TypeCellOS/BlockNote/pull/2297" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2297/hovercard">#2297</a>)</li>
<li><strong>xl-email-exporter:</strong> remove redundant sections in email export (<a href="https://github.com/TypeCellOS/BlockNote/pull/2323" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2323/hovercard">#2323</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Nick Perez</li>
<li>Nick the Sick <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nperez0111/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nperez0111">@nperez0111</a></li>
<li>supernova <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tmpluto/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tmpluto">@tmpluto</a></li>
<li>Yousef</li>
</ul>nperez0111tag:github.com,2008:Repository/465199957/v0.45.02025-12-17T12:25:10Zv0.45.0<h2>0.45.0 (2025-12-17)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>ai:</strong> expand selections to contain words (<a href="https://github.com/TypeCellOS/BlockNote/pull/2304" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2304/hovercard">#2304</a>)</li>
<li><strong>extensions:</strong> extensions can now include other extensions for grouping into one extension (<a href="https://github.com/TypeCellOS/BlockNote/pull/2284" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2284/hovercard">#2284</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>an invalidly specified table should not crash the editor (<a href="https://github.com/TypeCellOS/BlockNote/pull/2255" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2255/hovercard">#2255</a>)</li>
<li>filter out invalid heading items based on the current block schema in the slash menu <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3714720088" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2253" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2253/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2253">#2253</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2259" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2259/hovercard">#2259</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2253" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2253/hovercard">#2253</a>)</li>
<li>relax shiki package requirements <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3721856161" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2279" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2279/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2279">#2279</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2280" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2280/hovercard">#2280</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2279" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2279/hovercard">#2279</a>)</li>
<li>filter the default tiptap extensions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3722893728" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2282" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2282/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2282">#2282</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2283" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2283/hovercard">#2283</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2282" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2282/hovercard">#2282</a>)</li>
<li>always include the cursor extension <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3709580172" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2244" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2244/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2244">#2244</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2260" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2260/hovercard">#2260</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2244" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2244/hovercard">#2244</a>)</li>
<li>make <code>onBeforeChange</code> return the correct type again (<a href="https://github.com/TypeCellOS/BlockNote/commit/9009369b1">9009369b1</a>)</li>
<li>if there is no table block, there is no table handles to show <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511179831" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/1055" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/1055/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/1055">#1055</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2281" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2281/hovercard">#2281</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/1055" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/1055/hovercard">#1055</a>)</li>
<li>pass dragHandleMenu prop to DragHandleButton (<a href="https://github.com/TypeCellOS/BlockNote/pull/2254" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2254/hovercard">#2254</a>)</li>
<li>html diff error with whitespace (<a href="https://github.com/TypeCellOS/BlockNote/pull/2230" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2230/hovercard">#2230</a>)</li>
<li>update regex for checklist items <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3729658187" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2288" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2288/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2288">#2288</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2305" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2305/hovercard">#2305</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2288" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2288/hovercard">#2288</a>)</li>
<li><strong>email-exporter:</strong> ReadableByteStreamController for safari react-email (<a href="https://github.com/TypeCellOS/BlockNote/pull/2295" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2295/hovercard">#2295</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Max <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/maqen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/maqen">@maqen</a></li>
<li>Nick Perez</li>
<li>Nick the Sick <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nperez0111/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nperez0111">@nperez0111</a></li>
<li>Yousef</li>
</ul>nperez0111tag:github.com,2008:Repository/465199957/v0.44.22025-12-09T15:44:28Zv0.44.2<h2>0.44.2 (2025-12-09)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li>put back <code>onBeforeChange</code> method <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3690484453" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2221" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2221/hovercard" href="https://github.com/TypeCellOS/BlockNote/issues/2221">#2221</a> (<a href="https://github.com/TypeCellOS/BlockNote/pull/2243" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2243/hovercard">#2243</a>, <a href="https://github.com/TypeCellOS/BlockNote/issues/2221" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2221/hovercard">#2221</a>)</li>
<li>Improper accessing of editor DOM element (<a href="https://github.com/TypeCellOS/BlockNote/pull/2234" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2234/hovercard">#2234</a>)</li>
<li>make validation errors recoverable by llm (<a href="https://github.com/TypeCellOS/BlockNote/pull/2054" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2054/hovercard">#2054</a>)</li>
<li>shadowdom support and example (<a href="https://github.com/TypeCellOS/BlockNote/pull/2223" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2223/hovercard">#2223</a>)</li>
<li>ensure numbered list start property always present (<a href="https://github.com/TypeCellOS/BlockNote/pull/2241" data-hovercard-type="issue" data-hovercard-url="/TypeCellOS/BlockNote/issues/2241/hovercard">#2241</a>, <a href="https://github.com/TypeCellOS/BlockNote/pull/2242" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2242/hovercard">#2242</a>)</li>
<li>Suggestion menu positioning (<a href="https://github.com/TypeCellOS/BlockNote/pull/2232" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2232/hovercard">#2232</a>)</li>
<li>conditionally access the TableHandles extension from React (<a href="https://github.com/TypeCellOS/BlockNote/pull/2248" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2248/hovercard">#2248</a>)</li>
<li><strong>ai:</strong> upgrade prosemirror-suggest-changes (<a href="https://github.com/TypeCellOS/BlockNote/pull/2235" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2235/hovercard">#2235</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Matthew Lipski <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matthewlipski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matthewlipski">@matthewlipski</a></li>
<li>Nick Perez</li>
<li>wcyat <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sdip15fa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sdip15fa">@sdip15fa</a></li>
<li>Yousef</li>
</ul>nperez0111tag:github.com,2008:Repository/465199957/v0.44.12025-12-08T16:55:24Zv0.44.1<h2>0.44.1 (2025-12-08)</h2>
<p>This release fixes some regressions from v0.43.0.</p>
<h3>🩹 Fixes</h3>
<ul>
<li>clearing selection was not being called when create link button is no longer rendered (<a href="https://github.com/TypeCellOS/BlockNote/pull/2217" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2217/hovercard">#2217</a>)</li>
<li>AI menu not updating position on new line (<a href="https://github.com/TypeCellOS/BlockNote/pull/2233" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2233/hovercard">#2233</a>)</li>
<li>UI elements not scrolling when editor DOM element is scrollable (<a href="https://github.com/TypeCellOS/BlockNote/pull/2231" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2231/hovercard">#2231</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Matthew Lipski <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matthewlipski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matthewlipski">@matthewlipski</a></li>
</ul>matthewlipskitag:github.com,2008:Repository/465199957/v0.44.02025-12-02T10:53:59Zv0.44.0<h2>0.44.0 (2025-12-02)</h2>
<p>This release brings several architectural improvements to BlockNote AI and introduces <code>abort()</code> functionality for AI requests.</p>
<p>See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3658881998" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2198" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2198/hovercard" href="https://github.com/TypeCellOS/BlockNote/pull/2198">#2198</a> for details and breaking changes, or have a look at the <a href="https://www.blocknotejs.org/docs/features/ai" rel="nofollow">updated docs</a>.</p>
<p>We also fixed some build / dependency issues in 0.43.0.</p>
<h2>What's Changed</h2>
<ul>
<li>refactor(ai): standardize prompt building by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/YousefED/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/YousefED">@YousefED</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3658881998" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2198" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2198/hovercard" href="https://github.com/TypeCellOS/BlockNote/pull/2198">#2198</a></li>
<li>feat(ai): Abort requests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/YousefED/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/YousefED">@YousefED</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3684281143" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2213" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2213/hovercard" href="https://github.com/TypeCellOS/BlockNote/pull/2213">#2213</a></li>
<li>chore(build): fix AI packaging issue by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/YousefED/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/YousefED">@YousefED</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3682770537" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2210" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2210/hovercard" href="https://github.com/TypeCellOS/BlockNote/pull/2210">#2210</a></li>
<li>chore: streamline all vite.config external options by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/YousefED/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/YousefED">@YousefED</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3685175538" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2214" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2214/hovercard" href="https://github.com/TypeCellOS/BlockNote/pull/2214">#2214</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/TypeCellOS/BlockNote/compare/v0.43.0...v0.44.0"><tt>v0.43.0...v0.44.0</tt></a></p>YousefEDtag:github.com,2008:Repository/465199957/v0.43.02025-12-02T17:34:02Zv0.43.0<h2>0.43.0 (2025-12-01)</h2>
<h1>Major Codebase Refactor</h1>
<p>This release introduces a major refactor to the codebase, targeting 2 main areas of improvement:</p>
<h2>UI Extensions, Components, and Hooks</h2>
<p>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.</p>
<p>As part of simplifying the UI extensions, <a href="https://floating-ui.com/docs/react" rel="nofollow">FloatingUI</a> now handles much more in terms of positioning & dismissing the elements, e.g. making them scroll with the editor and close on hitting Escape.</p>
<p>Thanks to these changes, we've also been able to make our React components/hooks much simpler and more readable.</p>
<h2>BlockNote Extensions</h2>
<p>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.</p>
<p>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!</p>
<p>To see a detailed summary of the changes in this release, see PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3575150134" data-permission-text="Title is private" data-url="https://github.com/TypeCellOS/BlockNote/issues/2143" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2143/hovercard" href="https://github.com/TypeCellOS/BlockNote/pull/2143">#2143</a>.</p>
<h1>Breaking Changes</h1>
<h2><code>@blocknote/core</code></h2>
<ul>
<li>Existing extensions using the <code>BlockNoteExtension</code> class are no longer supported. Use the <code>createExtension</code> function instead.</li>
<li>Extension-specific imports have been moved from <code>@blocknote/core</code> to <code>@blocknote/core/extensions</code>. This includes helpers such as <code>filterSuggestionItems</code> for the suggestion menu extension.</li>
<li>Comment-specific imports have been moved from <code>@blocknote/core</code> to <code>@blocknote/core/comments</code>.</li>
<li>The <code>comments</code> editor option has been removed. Instead of passing <code>comments: options</code> to the editor, pass <code>extensions: [CommentsExtension(options)]</code> instead.</li>
<li>Extensions are no longer listed as properties of <code>BlockNoteEditor</code>, e.g. <code>editor.formattingToolbar</code>. Use the <code>getExtension</code> method instead, e.g. <code>editor.getExtension(FormattingToolbarExtension)</code>.</li>
<li><code>editor.openSuggestionMenu</code> has been removed. Use <code>editor.getExtension(SuggestionMenu).openSuggestionMenu</code> instead.</li>
<li><code>editor.getForceSelectionVisible</code>/<code>editor.setForceSelectionVisible</code> have been removed. Use <code>editor.getExtension(ShowSelectionExtension).store.state.enabled</code>/<code>editor.getExtension(ShowSelectionExtension).showSelection</code> instead.</li>
<li><code>editor.onCreate</code> has been removed. Use <code>editor.onMount</code> instead.</li>
<li><code>insertOrUpdateBlock</code> has been renamed to <code>insertOrUpdateBlockForSlashMenu</code>.</li>
<li><code>editor.updateCollaborationUserInfo</code> has been removed.</li>
</ul>
<h2><code>@blocknote/react</code></h2>
<ul>
<li><code>useEditorContentOrSelectionChange</code> has been removed. Use <code>useEditorState</code> instead.</li>
<li><code>useUIPluginState</code> has been removed. Use <code>useExtension</code> or <code>useExtensionState</code> instead.</li>
<li><code>useUIElementPositioning</code> has been removed. Use <code>BlockPopover</code>, <code>PositionPopover</code>, or <code>GenericPopover</code> instead.</li>
<li><code>useEditorForceUpdate</code> has been removed.</li>
</ul>
<h2><code>@blocknote/xl-ai</code></h2>
<ul>
<li><code>BlockPositioner</code> has been removed. Use <code>BlockPopover</code> instead.</li>
<li><code>createAIExtension</code> has been removed. Use <code>AIExtension</code> instead.</li>
<li><code>getAIExtension</code> has been removed. Use <code>editor.getExtension(AIExtension)</code> or <code>useExtension</code>(AIExtension) instead.</li>
</ul>
<h1>Changelog</h1>
<h3>🚀 Features</h3>
<ul>
<li>Major Extensions & UI Refactor (<a href="https://github.com/TypeCellOS/BlockNote/pull/2143" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2143/hovercard">#2143</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>allow configuring the email body's styles (<a href="https://github.com/TypeCellOS/BlockNote/pull/2182" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2182/hovercard">#2182</a>)</li>
<li><strong>xl-docx-exporter:</strong> improve OOXML interoperability (<a href="https://github.com/TypeCellOS/BlockNote/pull/2206" data-hovercard-type="pull_request" data-hovercard-url="/TypeCellOS/BlockNote/pull/2206/hovercard">#2206</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Nick Perez</li>
<li>Stephan Meijer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/StephanMeijer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/StephanMeijer">@StephanMeijer</a></li>
</ul>matthewlipski