- Down arrow in block without content at end of doc creates paragraph (BLO-1364) (#3113)
- Update backspace handling in nested blocks (BLO-1326) (#3124)
- core:
⚠️ Rewrite side menu hover, add hoverMargin and dropMargin options (#3179) ⚠️ Rebuild version history and customize snapshot actions (#3090)- Mod+A shortcut changes (BLO-1314) (#2995)
- core: Reduce Inter font swap layout shift (#3130)
- xl-email-exporter: Escape text instead of injecting it as HTML (#3100)
- core: Remove unused source preview anchor (#3099)
- core: Use the default language for a code block typed without one (#3024)
- Inline code clears comments (BLO-1207) (BLO-1363) (#2832)
- math-block: Open math previews on the first click (BLO-1372) (#3129)
- Markdown autolink round trips (BLO-1369) (#3115)
- math: Update selected inline content styling (#2983)
- insertInlineContent adding content after cursor (BLO-1356) (#3112)
- docx: Align fresh-install snapshots with docx 9.8 (#3139)
- core: Don't throw when the placeholder style is already removed (#3145)
- Update DOCX snapshots for fresh dependency installs (#3170)
- core: Keep the formatting toolbar hidden when focus returns to editor UI (#3187)
- core: Don't reposition the suggestion menu on its own scroll (#3188)
- react: Place the suggestion menu below unless cramped, keep its side and width while filtering (#3190)
- core: Don't mark block changes from before the view exists (#3193)
- core: Dropping a block into a toggle with a real drag (#3195)
- react: Show the suggestion menu above its trigger when there is room for fewer than five items below (#3198)
- WebKit scrolling on block drop (BLO-1353) (#3122)
- core:
⚠️ Rewrite side menu hover, add hoverMargin and dropMargin options (#3179) ⚠️ Rebuild version history and customize snapshot actions (#3090)
- Matthew Lipski
- Yousef yousefdardiry@gmail.com
- Nick Perez nick@blocknotejs.org
- Adarshsm adarshmudugal@gmail.com
- Rovshan Muradov
This release, we have promoted the mobile formatting toolbar from experimental to supported. We recommend you to check our Mobile compatibility getting started guide for more information.
We now have a formattting toolbar that tries to show above the virtual keyboard of your mobile device (ios & android), allowing you to access formating options like changing the block type, bold, italics and more.
- core: Link lookups at the edges of a link (#3058)
- a11y: Commit popover forms through submit, not a key handler (#3030)
- core: Enter on Android and iOS, toolbar and side menu fixes on phones (#3031)
- Matthew Lipski (@matthewlipski)
- Yousef yousefdardiry@gmail.com
- Nick The Sick (@nperez0111)
- xl-typst-compiler: Package wasm without Rust build artifacts (220544ffd)
- Nick The Sick (@nperez0111)
- Typst-powered accessible PDF export (PDF/UA-1) (#2992)
- pdf: base PDF export on self-hosted Typst compiler (#3020)
- core: Resolve block changes from changed range only (#2981)
- xl-docx-exporter: Use distinct bullet symbols per nesting level (#2977)
- core: Only attach table handles to actual table blocks (#2972)
- xl-docx-exporter: Give each list its own numbering instance (#2976)
- exporters: Editor-parity rendering fixes + shared-document ground truth tests (#3021)
- core: Stop schema.extend() mutating the shared default specs (#3039)
- mantine: Restore compact AI menu items (#3027)
- Ignore only Dark Reader's writes in node views (#3062)
- Yousef yousefdardiry@gmail.com
- Adarshsm adarshmudugal@gmail.com
- Nick Perez nick@blocknotejs.org
- Adds a Math block (2a34f7d70)
- Adds a Diagram block (0fca0ee7a)
- core: Source-with-preview, syntax highlighting & exporter images (503c796d3)
- ai: Operations on collaborative documents (#2952)
- ai: Operations on blocks containing comments (#2953)
- pdf: Add custom font and fontFamily options for CJK (#2945)
- Expose first suggestion as active descendant (#2965)
- xl-docx-exporter: Clamp list nesting to the levels DOCX defines (#2969)
- Adarshsm adarshmudugal@gmail.com
- Nick The Sick (@nperez0111)
- Pupuking723 2318857637@qq.com
- shadcn:
⚠️ Use base-ui instead of radix (BLO-1279) (#2913)
- getCellSelection throwing error in positions (BLO-1193) (#2911)
- Multi-column slash menu items within a column (BLO-905) (#2914)
- Suggestion menu behaviour (BLO-1283, BLO-955) (#2930)
- Ignore useless block/inline content mutations (BLO-1224) (#2912)
- slash-menu: Better overflow behavior (BLO-1192) (#2909)
- Slash menu item selection behaviour (BLO-1222) (#2838)
- HTML export/parse round trip ignoring empty blocks (BLO-873) (#2931)
- core: Guard getBlock() calls to prevent TypeError on stale blocks (#2941)
- Stop stale node view positions crashing the editor (#2938)
- Multi-column trailing blocks, column hover borders & drop cursor left edge BLO-1226 (#2885)
- shadcn:
⚠️ Use base-ui instead of radix (BLO-1279) (#2913)
- Yousef
- Nick Perez nick@blocknotejs.org
- Matthew Lipski (@matthewlipski)
- react: Avoid importing yjs in the default UI (#2902)
- Nick Perez nick@blocknotejs.org
- Migrate to Vite+ (#2745)
- Decouple yjs from blocknote/core (#2741)
moveBlocksbehaviour when leaving empty columns (BLO-1109) (#2842)- comments: Confirm before discarding an unsaved comment (blo-1197) (#2861)
- core: Support "plain" block content (BLO-335) (#2868)
Yjs is now decoupled from @blocknote/core. Instead of passing a collaboration option directly to the editor, you now wrap your editor options with the withCollaboration helper imported from @blocknote/core/yjs.
Before (< 0.52.0):
const editor = useCreateBlockNote({
// ...other editor options
collaboration: {
provider,
fragment: doc.getXmlFragment("document-store"),
user: {
name: "My Username",
color: "#ff0000",
},
},
});After (>= 0.52.0):
// Import the helper from the decoupled Yjs entrypoint:
import { withCollaboration } from "@blocknote/core/yjs";
const editor = useCreateBlockNote(
withCollaboration({
// ...other editor options
collaboration: {
provider,
fragment: doc.getXmlFragment("document-store"),
user: {
name: "My Username",
color: "#ff0000",
},
},
}),
);The collaboration object itself (provider, fragment, user, showCursorLabels, etc.) is unchanged — you only need to:
- Import
withCollaborationfrom@blocknote/core/yjs. - Wrap your editor options object with
withCollaboration(...), keeping thecollaborationproperty inside it.
The same applies when creating an editor with BlockNoteEditor.create(withCollaboration({ ... })).
Note:
@blocknote/core/yjsuses Yjs v13 (theyjspackage). There is also a@blocknote/core/yentrypoint that targets Yjs v14 (@y/y) and adds newer features such as suggestions and version history. Unless you specifically need those, use@blocknote/core/yjs.
- Align side menu to tables (BLO-1117) (#2837)
- Remove cursor flicker in trailing block (#2839)
- table: Guard stale block after changes for table handles (#2821)
- xl-ai: Remove 'use client' from server entry (BLO-1235) (57596cee6)
- tables: Tab causing indent in last table cell (BLO-1211) (#2831)
- core: Use dynamic propSchema when extending default block specs (#2882)
- xl-pdf-exporter: Fix emoji rendering for ZWJ sequences in PDF export (#2871)
- core: Ignore synthetic mousemove events without coordinates in side menu (#2895)
- core: Read hardBreakShortcut from block spec impl (#2891)
- xl-email-exporter: Update react-email deps to fix fresh install tests (#2898)
- core: Call scrollIntoView() on Enter (#2802)
- Nick The Sick (@nperez0111)
- Luc H wereld03@gmail.com
- Nick Perez nick@blocknotejs.org
- Yousef yousefdardiry@gmail.com
- Matthew Lipski (@matthewlipski)
- Alex Yang (@himself65)
- Yousefed yousefdardiry@gmail.com
- Satoren satoreyo@hotmail.com
- add explicit type annotations for callback params losing contextual typing (#2815)
- Comments emoji picker button issues (BLO-1199) (#2769)
- core: add editor cleanup in BlockNoteEditor.test.ts to prevent unhandled DOMObserver errors (#2816)
- table: prevent crash when pressing Enter in a table cell (#2793)
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick @nperez0111
- Yuki Terashima @y-temp4
- table cell colors (BLO-1198) (#2770)
- Matthew Lipski @matthewlipski
- color picker icons (BLO-1189) (#2762)
- Matthew Lipski @matthewlipski
- backslash newlines when copying from a code block (#2709)
- Claude Opus 4.7 (1M context)
- Nick Perez
- Trailing block extension rewrite (#2733)
- markdown: replace unified.js with custom markdown parser/serializer (#2624)
- react: configurable portal targets for floating UI (#2729, #2692)
- Pasting plain text from VSCode (BLO-366) (#2713)
- Parse new lines in
text/plainas line breaks (BLO-1170) (#2712) - Code block PDF export (BLO-987) (#2725)
- Formatting toolbar opening when inserting file block with
trailingBlock: false(BLO-860) (#2704) - numbered list item decorations missed on initial render (#2734)
- flicker-free mobile formatting toolbar via CSS custom properties (#2617, #2616)
- add
bn-thread-orphanedCSS class to distinguish orphaned threads (#2737, #2735) - set width attribute on image and video elements in editor render (#2740, #2726)
- a11y: use figure/figcaption for media block captions (#2717)
- ai: loosen serialization of blocks in columns (#2716, #2718)
- core: trigger codeblock input rule on Enter and place cursor inside (#2686)
- core: preserve list item type when pasting into empty list items (#2722, #2330)
- core: unmount editors in transformPasted tests to prevent unhandled error (e62880b21)
- drag-n-drop: support PDF block drag & drop (BLO-893) (#2714)
- i18: improve french translation for empty toggle list (#2721)
- markdown: emit tight lists when serializing blocks to markdown (#2715)
- markdown: skip placeholder text for empty files (#434, #2719)
- markdown: stable round-trip for tables, captions, and audio (#2720)
- tests: stabilize webkit keyboard handler tests with programmatic cursor positioning (#2746)
- Cyril G
- Manuel Raynaud @lunika
- Matthew Lipski @matthewlipski
- Movm
- Nick Perez
- Nick the Sick @nperez0111
- Dark mode styling for file block wrapper component (BLO-866) (#2680)
- Drag hendle menu delete button removes all other blocks in selection (BLO-1007) (#2683)
- Enter moves selection to cell below in tables (BLO-1006) (#2685)
- additional heading top padding (BLO-1008) (#2690)
- Code mark input rule edge case (BLO-938) (#2698)
- mantine: upgrade @mantine/core and @mantine/hooks to v9.0.2 (#2655)
- Hardcoded strings in comment components (BLO-1033) (#2681)
- Color naming & CSS (BLO-946) (#2684)
- link HTML attributes (BLO-915) (#2687)
- guard hideMenuIfNotFrozen against undefined view state (#2694, #2699)
- Clicking comment overlapping link opens link (BLO-1091) (#2696)
- prevent table row drag from moving an extra adjacent row (#2703)
- clipboard: use ProseMirror selection state for Shadow DOM compatibility (#2677)
- jt_fox @LimChaeJune
- Matthew Lipski @matthewlipski
- Nick Perez
- Wieland Lindenthal
- Yousef
- simplify links by inlining it to BlockNote (#2623)
- add Unicode quotation mark input rule for quote blocks (#2673)
- Inserting link removes comment & add comment button click buggy (#2620, #2573)
useEditorDOMElementhook (#2619)- text color was not applying to table block (#2663)
- Drag preview blocking drops when overlapping the editor (BLO-996) (#2670)
- Drag & drop of blocks without inline content opens formatting toolbar (BLO-1116) (#2628, #2603)
- save file caption/name on every keystroke instead of on close (#2575)
- prevent FloatingFocusManager from resetting editor selection (#2525, #2664)
- Matthew Lipski @matthewlipski
- miadnguyen @miadnguyen
- mianguyen
- Nick Perez
- Yousef
- make CustomChange compatible with prosemirror-changeset 2.4.1 (#2647)
- deps: upgrade nx to 22.6.5 to resolve axios security vulnerability (CVE-2025-62718) (c1ef3018a)
- deps: upgrade nx to 22.6.5 to resolve axios security vulnerability (#2653)
- docx-exporter: omit w:lang when no locale provided instead of defaulting to en-US (#2651)
- Claude Opus 4.6 (1M context)
- Nick Perez
- Nick the Sick
- Stephan Meijer @StephanMeijer
- upgrade shiki to v4 and prosemirror-highlight to v0.15.1 (#2625)
- upgrade nx to 22.6.4 and liveblocks to 3.17.0 (#2627)
- Image block selection clears on mouse leave in Safari (#2613)
- Backspace bug when current block is empty and previous block's last child is empty (#2610)
- allow using latest @tiptap/extension-link version (1ae8de713)
- restore depth guard in getParentBlockInfo to prevent RangeError (blo-1103) (#2585)
- pin better-auth to ~1.4.x to fix docs build (bda30458a)
- hide side menu on scroll instead of overflow hacks (#2630, #2043)
- disable default UI when no components context is found (#2611)
- add .js extension to fast-deep-equal ESM import (#2641)
- placeholder when overflowing now wraps (#2291)
- core: fix unnesting blocks with siblings (BLO-1017) (#2601)
- core: backspace mid-text next to columnList moves block BLO-1126 (#2629)
- optimize plugin traversals for large documents BLO-1111 (#2600)
- Claude Opus 4.6
- Claude Opus 4.6 (1M context)
- hedi-ghodhbane @hedi-ghodhbane
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick @nperez0111
- Yousef
- core: preserve whitespace edge cases but collapse html formatting newlines (BLO-1065) (#2551, #2230)
- Yousef
- use /
for toggle block HTML export (#2524)
- remove @hocuspocus/provider peer dependency by inlining tiptap comment types BLO-1064 (#2564)
- core: slash menu fails in custom blocks after space BLO-1036 (#2553)
- i18n: fix typo in russian translation (#2560)
- Claude Opus 4.6
- Drone
- Yousef
- typeerror cannot read properties of undefined (#2522)
- handle more delete key cases (#2126)
- add delay for
data-activein collab cursors (#2383) - disable slash menu in table content #2408 (#2504, #2408)
- ai: selections broken due to floating-ui focus manager (#2527)
- Matthew Lipski @matthewlipski
- Nick Perez
- Yousef
- update suggestion menu component (#2397)
- i18n: add Persian (fa) localization support (#2447)
- i18n: add Uzbek (uz) localization support (#2506)
- prevent nested bullet list icon rendering as emoji on iOS 18+ (#2394, #2399)
- ignore drag & drop from unrelated events #1968 (#2346, #1968)
- disable checkbox when editor is not editable #2406 (#2448, #2406)
- Backspace/enter behaviour in empty block with children (#2451)
- handle pasting into table cells better, by collapsing their content to inline #2410 (#2449, #2410)
- accessibility: ai combobox aria-activedescendant (#2413)
- ai: no more scrolling to top when opening AI menu (#2503)
- docs: unicode char not rendered in bug template (f13e270be)
- Cyril G @Ovgodd
- Dex Devlon @bxff
- Matthew Lipski @matthewlipski
- MDSAM05 @MDSAM05
- Mohammad RAHMANI @Mrahmani71
- Nick Perez
- Ogabek @OgabekYuldoshev
- Wouter Vroege
- Yousef
- deep merge floatingUIOptions using nested spread operators (#2310)
- Visual differences between live editor and rendered exported HTML (#2348)
BlockNoteViewEditormismatched editable value (#2357)- add
font-synthesisfor italic & bold in fonts that don't have them specified #2325 (#2354, #2325) - disable code block language selector when editor is not editable (#2351)
- table handles would crash (#2384)
- update CreateLinkButton to be able to toggle popover visibility (#2316, #2313)
- add context,nestingLevel to toExternalHTML (#2373)
- ai: re-enable flipping the AIMenu when there is not enough space #2245 (#2247, #2245)
- link-toolbar: prevent Enter from submitting during IME composition (#2361)
- hanios123
- Jean-Baptiste PENRATH
- Matthew Lipski @matthewlipski
- Nick Perez
- Shohei Yoshida @ysds
- Yousef
This was a version bump only, there were no code changes.
- 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)
- Nick Perez
- Nick the Sick @nperez0111
- supernova @tmpluto
- Yousef
- ai: expand selections to contain words (#2304)
- extensions: extensions can now include other extensions for grouping into one extension (#2284)
- 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)
- Max @maqen
- Nick Perez
- Nick the Sick @nperez0111
- Yousef
- 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)
- Matthew Lipski @matthewlipski
- Nick Perez
- wcyat @sdip15fa
- Yousef
- 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)
- Matthew Lipski @matthewlipski
- ai: Abort requests (#2213)
- Yousef
- Major Extensions & UI Refactor (#2143)
- allow configuring the email body's styles (#2182)
- xl-docx-exporter: improve OOXML interoperability (#2206)
- Nick Perez
- Stephan Meijer @StephanMeijer
- disallow access to the
domElementorisFocusedif the editor is unmounted (#2187)
- Nick Perez
- put back mounting system (#2183)
- Nick Perez
- do not error on invalid
backgroundColorortextColor#2176 (#2179, #2176) - remove dependency array from comments re-rendering (#2177)
- Nick Perez
- Emoji picker issues (#2092)
- set a default for
blocksToFullHTML#2100 (#2101, #2100) - correctly index blocks that have children fixes #2115 (#2116, #2115)
- add more lenient parsing for code blocks, to accept newlines #2105 (#2108, #2105)
- Firefox invisible text cursor after dropping blocks (#2128)
- parsing
priorityfor custom inline content and styles (#2119) BlockTypeSelectitem filtering based on schema (#2112)- deleting last block in column (#2110)
- comments: update the styles for the cursor to be the default cursor (#2163)
- comments: always surface the closest mark to the current position (#2164)
- comments: scrolling bug when clicking comment marks (#2165)
- react: destroy editor instances after two ticks (#2121)
- schema-migration: more robust migration of background-color & text-color attributes (#2154)
- unique-id: do not attempt to append to y-sync plugin transactions (#2153)
- Matthew Lipski @matthewlipski
- Nick Perez
This was a version bump only, there were no code changes.
- AI menu auto scrolling (#2039)
- Shortcut to delete empty table while cells are selected (#2052)
- divider: add a divider block (#2014)
- Code block language select value not updating properly (#2050)
- disable input rules for numbered headings #1789 (#2032, #1789)
- video parsing and export for markdown (#1955)
- Reaction picker shown for users who can't react (#2061)
- Add Mantine dependency to individual examples (#2070)
- allow listening to
onChangeand other events before the underlying editor is initialized (#2063) - toggle and check list item blocks (#2071)
- added missing fields to implementations in editor schema block specs (#2046)
- Héctor Zhuang @Hector-Zhuang
- Matthew Lipski @matthewlipski
- Nick Perez
- Mantine v8 upgrade (#2028, #2029)
- Update Mantine setup (#2033)
- ai: SDK 5, tool calling, custom backends (#2007)
- core: add the ability to autofocus on the editor element (#2018)
- Block colors menu not always showing (#2027)
- Update remianing examples to Mantine v8 (#2031)
- ShadCN example Tailwind setup (#2042)
- Matthew Lipski @matthewlipski
- Nick Perez
- Yousef
- cleanup accesses to prosemirrorView to account for tiptap 3 behavior (#2017)
- core: input rules can handle when a new block is empty now (#2013)
- Nick Perez
- Nick Perez
- Custom schemas for comment editors (#1976)
- Suggestion menu positioning (#1975)
- doLLMRequest fails when deleting a non-existent block (#1982)
- file block resize handles not working with touch inputs (#1981)
- get pdf example working again (a90ae4d58)
- better markdown & html paste, make methods synchronous (#1957)
- Improve setting text for custom file blocks (#1984)
- react: close link popover on submit in static formatting toolbar #1696 (#1997, #1696)
- dsriva03 @dsriva03
- Héctor Zhuang @Hector-Zhuang
- Matthew Lipski @matthewlipski
- Nick the Sick
- export
ShadCNComponentsContext(#1965)
- Typing in empty table cells (#1973)
- Héctor Zhuang @Hector-Zhuang
- Matthew Lipski @matthewlipski
- table column widths not being set in exported HTML (#1947)
- Minor change to formatting toolbar extension logic (#1963)
- core: report block moves in
getBlocksChangedByTransaction#1924 (#1960, #1924)
- Matthew Lipski @matthewlipski
- Nick Perez
- docx: add locale configuration for docx export (#1937)
- Editors in comments not inheriting theme (#1890)
- Minor drag & drop changes (#1891)
- Overflow on table blocks (#1892)
- Suggestion menu closing when clicking scroll bar (#1899)
- Table padding (#1906)
- Formatting toolbar getting wrong bounding box when updating React inline content (#1908)
- Vanilla blocks return true for editor.isEditable on initial render (#1925)
- table cell menu styling (#1945)
- Missing internationalization for toggle wrapper (#1946)
- parse image alt text for image blocks (#1883)
- initialize esm deps before copy extension uses it (#1951)
- error when dragging a block from one editor to another with multiple column extension (#1950)
- prevent infinite render loop when selecting all content (#1956)
- core: maintain text selection across table updates (#1894)
- locales: ko locale fix (#1902)
- react: add data attribute for correct react rendering (#1954)
- xl-email-exporter: better defaults, customize textStyles, output inline styles (#1856)
- Brad Greenlee
- Cyril G @Ovgodd
- Héctor Zhuang @Hector-Zhuang
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick
- insert file upload before block if it is closer to the top of the block (#1857)
- rename albert model (3b0ba8d25)
- resolve some minor drag & drop regressions (#1862)
- blockquote HTML parsing #1762 (#1877, #1762)
- Brad Greenlee
- Nick Perez
- Nick the Sick
- yousefed
- support multi-column block in PDF, DOCX & ODT exporters (#1781)
- support react 19 (f7b3466d3)
- disable conversion of headings to list items (#1799)
- report
moves(indents and outdents) as changes when usinggetChanges#1757 (#1786, #1757) - allow inline content to be
draggable(#1818) - added type guards, types, and
editorprop to custom inline content rendering (#1736) - block-change: adds a new API for blocking changes to editor state, by filtering transactions (#1750)
- remove lookbehind regex for browser compat (#1827)
ToggleWrapperbutton defaulting tosubmittype (#1823)- disable $ref in AI schemas (html format) (#1819)
- re-evaluate side-menu on scroll (#1830)
- hide table extend buttons when not editable #1848 (#1850, #1848)
- resolve several drag & drop issues (#1845)
- Arek Nawo @areknawo
- Gonçalo Basto @gbasto
- Héctor Zhuang @Hector-Zhuang
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick @nperez0111
- Yousef
- support multi-character suggestions (#1734)
- switch foreground color based on selected user color dynamically #1785 (#1787, #1785)
- mark react package as external in email exporter (#1807)
- Duplicate
formatConversionTestfiles (#1798) - AI empty document handling (#1810)
bn-inline-contentclass name getting duplicated (#1794)
- Matthew Lipski @matthewlipski
- Nick Perez
- Yousef
- toggle blocks (#1707)
- core: support h4, h5, and h6 (#1634)
- xl-email-exporter: add email exporter (#1768)
- react 19 strict mode compatibility (#1726)
- add keys to pdf exporter (#1739)
- only listten for left click on formatting toolbar (#1774)
- prevent formatting toolbar from closing if click was from inside the editor (#1775)
- locales: add Hebrew translations for various components (#1779)
- Aslam @Aslam97
- Drew Johnson
- Jonathan Marbutt @jmarbutt
- Matthew Lipski @matthewlipski
- Nick Perez
- Samuel Bisberg
- Yousef
- AI generation with empty document (#1740)
- do not send a welcome email if magic link was used on an account older than a minute ago (db88fe4aa)
- AI system messages should always be at start of prompt (#1741)
- Selection clicking editor padding (#1717)
- preserve marks across a shift+enter #1672 (#1743, #1672)
- ai: undo-redo after accepting/rejecting changes will undo as expected (#1752)
- locales: add translations for some comment strings (#1764)
- website: log in bug fixes (#1742)
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick
- Vinicius Fernandes @ViniCleFer
- Yousef
- Nick Perez
- Nick the Sick
- backwards-compat for
_extensions(#1708)
- Nick Perez
- Playwright flaky keyboard handler test (#1704)
- Matthew Lipski @matthewlipski
- better type-safety (678086d4d)
- do not use
editor.dispatch(#1698) - re-added
display: flexto blocks without inline content (#1702) - react: add missing exports (#1689)
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick
- expose
editor.prosemirrorStateagain (#1615) - add
undoandredomethods to editor API (#1592) - new auth & payment system (#1617)
- re-implement Y.js collaboration as BlockNote plugins (#1638)
- file:
previewWidthprop now defaults toundefined(#1664) - locales: add zh-TW i18n (#1668)
- Formatting toolbar regression (#1630)
- provide
blockIdtouploadFilein UploadTab (#1641) - do not close the menu on content/selection change (#1644)
- keep file panel open during collaboration (#1646)
- force pasting plain text into code block (#1663)
- updating HTML parsing rules to account for
prosemirror-model@1.25.1(#1661) - code-block: handle unknown languages better (#1626)
- locales: add slovak i18n (#1649)
- l0st0 @l0st0
- Lawrence Lin @linyiru
- Matthew Lipski @matthewlipski
- Nick Perez
- Quentin Nativel
- try not to always use workspace version (7af344ea9)
- Nick the Sick
changeevent allows getting a list of the block changed (#1585)
- allow opening another suggestion menu if another is triggered #1473 (#1591, #1473)
- add quote to schema (aa16b15fe)
- update y-prosemirror to fix #1462 (#1608, #1462)
- dispatch suggestion menu as a separate transaction (#1614)
- Nick Perez
- Nick the Sick
- position storage (#1529)
- Nick Perez
- minor update for publishing (c2820fdac)
- Nick the Sick
- nx-cloud: set up nx workspace (#1586)
- update packages to use correct react versions (ea11ebce0)
- Nick Perez
- Nick the Sick
- split out localization files for optimized bundle (#1533)
- remove shiki dep, add new @blocknote/code-block package for slim shiki build (#1519)
- Block quote (#1563)
- markdown pasting & custom paste handlers (#1490)
- Backspace in empty block deletes previous block (#1505)
- Selection when clicking past end of inline content (#1553)
- better expose setting a draghandlemenu's items #1525 (#1526, #1525)
- Multi-block links (#1565)
- Hard break keyboard shortcut not working in custom blocks (#1554)
- Overlapping marks in comments (#1564)
- some more sentry fixes (#1577)
- Martinrsts @Martinrsts
- Matthew Lipski @matthewlipski
- Nick Perez
See Github Releases for previous versions.