diff --git a/CHANGELOG.md b/CHANGELOG.md index 61f8e74bd..c679ad14e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +## 0.32.0-hackdays.0 (2025-06-03) + +### 🚀 Features + +- support multi-character suggestions ([0c29680da](https://github.com/TypeCellOS/BlockNote/commit/0c29680da)) + +### 🩹 Fixes + +- re-release ([0bc546e18](https://github.com/TypeCellOS/BlockNote/commit/0bc546e18)) +- ignore falsy values in boolean prop schema ([#1730](https://github.com/TypeCellOS/BlockNote/pull/1730)) + +### ❤️ Thank You + +- Nick Perez +- Nick the Sick + ## 0.31.1 (2025-05-23) ### 🩹 Fixes diff --git a/packages/ariakit/package.json b/packages/ariakit/package.json index 2046ae9a6..8282f94c2 100644 --- a/packages/ariakit/package.json +++ b/packages/ariakit/package.json @@ -11,7 +11,7 @@ "directory": "packages/ariakit" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -57,8 +57,8 @@ }, "dependencies": { "@ariakit/react": "^0.4.3", - "@blocknote/core": "0.31.1", - "@blocknote/react": "0.31.1" + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/react": "0.32.0-hackdays.0" }, "devDependencies": { "@types/react": "^18.0.25", diff --git a/packages/code-block/package.json b/packages/code-block/package.json index 38528ea2a..74dee2b17 100644 --- a/packages/code-block/package.json +++ b/packages/code-block/package.json @@ -9,7 +9,7 @@ "directory": "packages/code-block" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -49,7 +49,7 @@ "test-watch": "vitest watch" }, "dependencies": { - "@blocknote/core": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", "@shikijs/core": "^3.2.1", "@shikijs/engine-javascript": "^3.2.1", "@shikijs/langs-precompiled": "^3.2.1", diff --git a/packages/core/package.json b/packages/core/package.json index c9539c15d..77923adf1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,7 +11,7 @@ "directory": "packages/core" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", diff --git a/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts b/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts index b68618713..520b664d9 100644 --- a/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts +++ b/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts @@ -293,18 +293,28 @@ export class SuggestionMenuProseMirrorPlugin< }, props: { - handleTextInput(view, _from, _to, text) { - if (triggerCharacters.includes(text)) { - view.dispatch(view.state.tr.insertText(text)); - view.dispatch( - view.state.tr - .setMeta(suggestionMenuPluginKey, { - triggerCharacter: text, - }) - .scrollIntoView(), - ); - - return true; + handleTextInput(view, from, to, text) { + // only on insert + if (from === to) { + const doc = view.state.doc; + for (const str of triggerCharacters) { + const snippet = + str.length > 1 + ? doc.textBetween(from - str.length, from) + text + : text; + + if (str === snippet) { + view.dispatch(view.state.tr.insertText(text)); + view.dispatch( + view.state.tr + .setMeta(suggestionMenuPluginKey, { + triggerCharacter: snippet, + }) + .scrollIntoView(), + ); + return true; + } + } } return false; }, diff --git a/packages/dev-scripts/package.json b/packages/dev-scripts/package.json index 3d4ff0dc5..3b9a96f94 100644 --- a/packages/dev-scripts/package.json +++ b/packages/dev-scripts/package.json @@ -8,7 +8,7 @@ "directory": "packages/dev-scripts" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "description": "", "type": "module", "scripts": { diff --git a/packages/mantine/package.json b/packages/mantine/package.json index efc395103..610799a7a 100644 --- a/packages/mantine/package.json +++ b/packages/mantine/package.json @@ -11,7 +11,7 @@ "directory": "packages/mantine" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -56,8 +56,8 @@ "clean": "rimraf dist && rimraf types" }, "dependencies": { - "@blocknote/core": "0.31.1", - "@blocknote/react": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/react": "0.32.0-hackdays.0", "@mantine/core": "^7.10.1", "@mantine/hooks": "^7.10.1", "@mantine/utils": "^6.0.21", diff --git a/packages/react/package.json b/packages/react/package.json index 57eda00c1..39379fa67 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -11,7 +11,7 @@ "directory": "packages/react" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -58,7 +58,7 @@ "clean": "rimraf dist && rimraf types" }, "dependencies": { - "@blocknote/core": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", "@emoji-mart/data": "^1.2.1", "@floating-ui/react": "^0.26.4", "@tiptap/core": "^2.12.0", diff --git a/packages/server-util/package.json b/packages/server-util/package.json index dfddd6791..ee50cd79a 100644 --- a/packages/server-util/package.json +++ b/packages/server-util/package.json @@ -11,7 +11,7 @@ "directory": "packages/server-util" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -56,8 +56,8 @@ "test-watch": "vitest watch" }, "dependencies": { - "@blocknote/core": "0.31.1", - "@blocknote/react": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/react": "0.32.0-hackdays.0", "@tiptap/core": "^2.12.0", "@tiptap/pm": "^2.12.0", "jsdom": "^25.0.1", diff --git a/packages/shadcn/package.json b/packages/shadcn/package.json index 2b8b8478d..e416cffe2 100644 --- a/packages/shadcn/package.json +++ b/packages/shadcn/package.json @@ -11,7 +11,7 @@ "directory": "packages/shadcn" }, "license": "MPL-2.0", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -56,8 +56,8 @@ "clean": "rimraf dist && rimraf types" }, "dependencies": { - "@blocknote/core": "0.31.1", - "@blocknote/react": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/react": "0.32.0-hackdays.0", "@hookform/resolvers": "^3.6.0", "@radix-ui/react-avatar": "^1.1.3", "@radix-ui/react-dropdown-menu": "^2.0.6", diff --git a/packages/xl-ai-server/package.json b/packages/xl-ai-server/package.json index b6767cd90..d0121eb40 100644 --- a/packages/xl-ai-server/package.json +++ b/packages/xl-ai-server/package.json @@ -3,7 +3,7 @@ "homepage": "https://github.com/TypeCellOS/BlockNote", "private": true, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", diff --git a/packages/xl-ai/package.json b/packages/xl-ai/package.json index 1c912e597..e2d5bc506 100644 --- a/packages/xl-ai/package.json +++ b/packages/xl-ai/package.json @@ -11,7 +11,7 @@ "directory": "packages/xl-ai" }, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -68,10 +68,10 @@ "@ai-sdk/mistral": "^1.2.8", "@ai-sdk/openai": "^1.3.22", "@ai-sdk/openai-compatible": "^0.2.14", - "@blocknote/core": "0.31.1", - "@blocknote/mantine": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/mantine": "0.32.0-hackdays.0", "@blocknote/prosemirror-suggest-changes": "^0.1.3", - "@blocknote/react": "0.31.1", + "@blocknote/react": "0.32.0-hackdays.0", "@floating-ui/react": "^0.26.4", "@tiptap/core": "^2.12.0", "ai": "^4.3.15", diff --git a/packages/xl-docx-exporter/package.json b/packages/xl-docx-exporter/package.json index 7a0e4db31..ffcd19683 100644 --- a/packages/xl-docx-exporter/package.json +++ b/packages/xl-docx-exporter/package.json @@ -9,7 +9,7 @@ "directory": "packages/xl-docx-exporter" }, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -57,7 +57,7 @@ "email": "email dev" }, "dependencies": { - "@blocknote/core": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", "buffer": "^6.0.3", "docx": "^9.0.2", "image-meta": "^0.2.1" diff --git a/packages/xl-multi-column/package.json b/packages/xl-multi-column/package.json index 389573bb1..de27b3efd 100644 --- a/packages/xl-multi-column/package.json +++ b/packages/xl-multi-column/package.json @@ -9,7 +9,7 @@ "directory": "packages/xl-multi-column" }, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -51,8 +51,8 @@ "clean": "rimraf dist && rimraf types" }, "dependencies": { - "@blocknote/core": "0.31.1", - "@blocknote/react": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/react": "0.32.0-hackdays.0", "@tiptap/core": "^2.12.0", "prosemirror-model": "^1.25.1", "prosemirror-state": "^1.4.3", diff --git a/packages/xl-odt-exporter/package.json b/packages/xl-odt-exporter/package.json index 9ed458dfa..4ca207cb2 100644 --- a/packages/xl-odt-exporter/package.json +++ b/packages/xl-odt-exporter/package.json @@ -9,7 +9,7 @@ "directory": "packages/xl-odt-exporter" }, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -57,7 +57,7 @@ "clean": "rimraf dist && rimraf types" }, "dependencies": { - "@blocknote/core": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", "@zip.js/zip.js": "^2.7.57", "buffer": "^6.0.3", "image-meta": "^0.2.1" diff --git a/packages/xl-pdf-exporter/package.json b/packages/xl-pdf-exporter/package.json index 53b1e7750..c8e390111 100644 --- a/packages/xl-pdf-exporter/package.json +++ b/packages/xl-pdf-exporter/package.json @@ -9,7 +9,7 @@ "directory": "packages/xl-pdf-exporter" }, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.31.1", + "version": "0.32.0-hackdays.0", "files": [ "dist", "types", @@ -56,8 +56,8 @@ "email": "email dev" }, "dependencies": { - "@blocknote/core": "0.31.1", - "@blocknote/react": "0.31.1", + "@blocknote/core": "0.32.0-hackdays.0", + "@blocknote/react": "0.32.0-hackdays.0", "@react-pdf/renderer": "^4.3.0", "buffer": "^6.0.3", "docx": "^9.0.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38fa08518..013b9a01c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3120,10 +3120,10 @@ importers: specifier: ^0.4.3 version: 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react react: specifier: ^18.0 || ^19.0 || >= 19.0.0-rc @@ -3166,7 +3166,7 @@ importers: packages/code-block: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@shikijs/core': specifier: ^3.2.1 @@ -3400,10 +3400,10 @@ importers: packages/mantine: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react '@mantine/core': specifier: ^7.10.1 @@ -3458,7 +3458,7 @@ importers: packages/react: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@emoji-mart/data': specifier: ^1.2.1 @@ -3540,10 +3540,10 @@ importers: packages/server-util: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react '@tiptap/core': specifier: ^2.12.0 @@ -3601,10 +3601,10 @@ importers: packages/shadcn: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react '@hookform/resolvers': specifier: ^3.6.0 @@ -3725,16 +3725,16 @@ importers: specifier: ^0.2.14 version: 0.2.14(zod@3.24.2) '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/mantine': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../mantine '@blocknote/prosemirror-suggest-changes': specifier: ^0.1.3 version: 0.1.3(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-transform@1.10.4)(prosemirror-view@1.38.1) '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react '@floating-ui/react': specifier: ^0.26.4 @@ -3901,7 +3901,7 @@ importers: packages/xl-docx-exporter: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core buffer: specifier: ^6.0.3 @@ -3953,10 +3953,10 @@ importers: packages/xl-multi-column: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react '@tiptap/core': specifier: ^2.12.0 @@ -4023,7 +4023,7 @@ importers: packages/xl-odt-exporter: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@zip.js/zip.js': specifier: ^2.7.57 @@ -4072,10 +4072,10 @@ importers: packages/xl-pdf-exporter: dependencies: '@blocknote/core': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../core '@blocknote/react': - specifier: 0.31.1 + specifier: 0.32.0-hackdays.0 version: link:../react '@react-pdf/renderer': specifier: ^4.3.0