From 69114b526afb3070691c38b2ace4a61edffeeb05 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 17:22:38 +0200 Subject: [PATCH 1/9] chore: bump to same version as others --- packages/xl-ai-server/package.json | 2 +- packages/xl-ai/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/xl-ai-server/package.json b/packages/xl-ai-server/package.json index 18f81e528d..5b270addb6 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": false, "license": "AGPL-3.0 OR PROPRIETARY", - "version": "0.30.0", + "version": "0.30.1", "files": [ "dist", "types", diff --git a/packages/xl-ai/package.json b/packages/xl-ai/package.json index b893fb211f..84fa73e2e9 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.30.0", + "version": "0.30.1", "files": [ "dist", "types", From 7a9221fb889f15e8aa960384e245c2ce0de1545a Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 17:26:50 +0200 Subject: [PATCH 2/9] build: externalize deps --- packages/xl-ai/vite.config.ts | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/xl-ai/vite.config.ts b/packages/xl-ai/vite.config.ts index 1b91e30c06..cfd9247c0e 100644 --- a/packages/xl-ai/vite.config.ts +++ b/packages/xl-ai/vite.config.ts @@ -5,8 +5,6 @@ import { defineConfig } from "vite"; import pkg from "./package.json"; // import eslintPlugin from "vite-plugin-eslint"; -const deps = Object.keys(pkg.dependencies); - // https://vitejs.dev/config/ export default defineConfig((conf) => ({ test: { @@ -39,16 +37,15 @@ export default defineConfig((conf) => ({ rollupOptions: { // make sure to externalize deps that shouldn't be bundled // into your library - external: (source: string) => { - if (deps.includes(source)) { - return true; - } - return ( - source.startsWith("prosemirror-") || - source.startsWith("@shikijs/lang") || - source.startsWith("@shikijs/theme") - ); - }, + external: [ + ...Object.keys({ + ...pkg.dependencies, + ...pkg.peerDependencies, + ...pkg.devDependencies, + }), + "react-dom/client", + "react/jsx-runtime", + ], output: { // Provide global variables to use in the UMD build // for externalized deps From e227b95195e2ec1976f8951e2f61b4c794e06d25 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 17:38:49 +0200 Subject: [PATCH 3/9] build: code-split the locales --- examples/09-ai/01-minimal/App.tsx | 4 ++-- examples/09-ai/02-playground/App.tsx | 4 ++-- examples/09-ai/03-custom-ai-menu-items/App.tsx | 4 ++-- examples/09-ai/04-with-collaboration/App.tsx | 4 ++-- packages/xl-ai/package.json | 5 +++++ packages/xl-ai/src/index.ts | 1 - packages/xl-ai/vite.config.ts | 9 +++++++-- 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/examples/09-ai/01-minimal/App.tsx b/examples/09-ai/01-minimal/App.tsx index badec5a26d..3305386186 100644 --- a/examples/09-ai/01-minimal/App.tsx +++ b/examples/09-ai/01-minimal/App.tsx @@ -15,11 +15,11 @@ import { import { AIMenuController, AIToolbarButton, - locales as aiLocales, createAIExtension, createBlockNoteAIClient, getAISlashMenuItems, } from "@blocknote/xl-ai"; +import { en as aiEn } from "@blocknote/xl-ai/locales"; import "@blocknote/xl-ai/style.css"; import { getEnv } from "./getEnv.js"; @@ -58,7 +58,7 @@ export default function App() { const editor = useCreateBlockNote({ dictionary: { ...en, - ai: aiLocales.en, // add default translations for the AI extension + ai: aiEn, // add default translations for the AI extension }, // Register the AI extension extensions: [ diff --git a/examples/09-ai/02-playground/App.tsx b/examples/09-ai/02-playground/App.tsx index 27675a3977..ba165abb0b 100644 --- a/examples/09-ai/02-playground/App.tsx +++ b/examples/09-ai/02-playground/App.tsx @@ -20,13 +20,13 @@ import { import { AIMenuController, AIToolbarButton, - locales as aiLocales, createAIExtension, createBlockNoteAIClient, getAIExtension, getAISlashMenuItems, llmFormats, } from "@blocknote/xl-ai"; +import { en as aiEn } from "@blocknote/xl-ai/locales"; import "@blocknote/xl-ai/style.css"; import { Fieldset, MantineProvider, Switch } from "@mantine/core"; @@ -88,7 +88,7 @@ export default function App() { const editor = useCreateBlockNote({ dictionary: { ...en, - ai: aiLocales.en, // add default translations for the AI extension + ai: aiEn, // add default translations for the AI extension }, // Register the AI extension extensions: [ diff --git a/examples/09-ai/03-custom-ai-menu-items/App.tsx b/examples/09-ai/03-custom-ai-menu-items/App.tsx index af9adc32e8..fc35fcc1d9 100644 --- a/examples/09-ai/03-custom-ai-menu-items/App.tsx +++ b/examples/09-ai/03-custom-ai-menu-items/App.tsx @@ -16,12 +16,12 @@ import { AIMenu, AIMenuController, AIToolbarButton, - locales as aiLocales, createAIExtension, createBlockNoteAIClient, getAISlashMenuItems, getDefaultAIMenuItems, } from "@blocknote/xl-ai"; +import { en as aiEn } from "@blocknote/xl-ai/locales"; import "@blocknote/xl-ai/style.css"; import { getEnv } from "./getEnv.js"; @@ -62,7 +62,7 @@ export default function App() { const editor = useCreateBlockNote({ dictionary: { ...en, - ai: aiLocales.en, // add default translations for the AI extension + ai: aiEn, // add default translations for the AI extension }, // Register the AI extension extensions: [ diff --git a/examples/09-ai/04-with-collaboration/App.tsx b/examples/09-ai/04-with-collaboration/App.tsx index 35a94aae33..f3a4443c79 100644 --- a/examples/09-ai/04-with-collaboration/App.tsx +++ b/examples/09-ai/04-with-collaboration/App.tsx @@ -15,11 +15,11 @@ import { import { AIMenuController, AIToolbarButton, - locales as aiLocales, createAIExtension, createBlockNoteAIClient, getAISlashMenuItems, } from "@blocknote/xl-ai"; +import { en as aiEn } from "@blocknote/xl-ai/locales"; import "@blocknote/xl-ai/style.css"; import { useEffect, useState } from "react"; import YPartyKitProvider from "y-partykit/provider"; @@ -104,7 +104,7 @@ export default function App() { }, dictionary: { ...en, - ai: aiLocales.en, // add default translations for the AI extension + ai: aiEn, // add default translations for the AI extension }, // Register the AI extension extensions: [ diff --git a/packages/xl-ai/package.json b/packages/xl-ai/package.json index 84fa73e2e9..733a393f57 100644 --- a/packages/xl-ai/package.json +++ b/packages/xl-ai/package.json @@ -48,6 +48,11 @@ "import": "./dist/style.css", "require": "./dist/style.css", "style": "./dist/style.css" + }, + "./locales": { + "types": "./types/src/i18n/locales/index.d.ts", + "import": "./dist/locales.js", + "require": "./dist/locales.cjs" } }, "scripts": { diff --git a/packages/xl-ai/src/index.ts b/packages/xl-ai/src/index.ts index 2957484d72..0f35bd8e3f 100644 --- a/packages/xl-ai/src/index.ts +++ b/packages/xl-ai/src/index.ts @@ -11,6 +11,5 @@ export * from "./components/FormattingToolbar/AIToolbarButton.js"; export * from "./components/SuggestionMenu/getAISlashMenuItems.js"; export * from "./i18n/dictionary.js"; -export * as locales from "./i18n/locales/index.js"; export * from "./api/index.js"; diff --git a/packages/xl-ai/vite.config.ts b/packages/xl-ai/vite.config.ts index cfd9247c0e..c6a773ce41 100644 --- a/packages/xl-ai/vite.config.ts +++ b/packages/xl-ai/vite.config.ts @@ -30,9 +30,14 @@ export default defineConfig((conf) => ({ build: { sourcemap: true, lib: { - entry: path.resolve(__dirname, "src/index.ts"), + entry: { + "blocknote-xl-ai": path.resolve(__dirname, "src/index.ts"), + locales: path.resolve(__dirname, "src/i18n/locales/index.ts"), + }, name: "blocknote-xl-ai", - fileName: "blocknote-xl-ai", + formats: ["es", "cjs"], + fileName: (format, entryName) => + format === "es" ? `${entryName}.js` : `${entryName}.cjs`, }, rollupOptions: { // make sure to externalize deps that shouldn't be bundled From 3c2da283eab39e29a21e3192f7bc7cba86378ac0 Mon Sep 17 00:00:00 2001 From: yousefed Date: Tue, 20 May 2025 17:42:30 +0200 Subject: [PATCH 4/9] fix docs --- docs/pages/docs/ai/getting-started.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/pages/docs/ai/getting-started.mdx b/docs/pages/docs/ai/getting-started.mdx index 38afd1816e..2269bc9df7 100644 --- a/docs/pages/docs/ai/getting-started.mdx +++ b/docs/pages/docs/ai/getting-started.mdx @@ -54,15 +54,16 @@ Now, you can create the editor with the AI Extension enabled: ```ts import { createBlockNoteEditor } from "@blocknote/core"; import { BlockNoteAIExtension } from "@blocknote/xl-ai"; +import { en } from "@blocknote/core/locales"; +import { en as aiEn } from "@blocknote/xl-ai/locales"; import { - locales as aiLocales, createAIExtension, } from "@blocknote/xl-ai"; const editor = createBlockNoteEditor({ dictionary: { ...en, - ai: aiLocales.en, // add default translations for the AI extension + ai: aiEn, // add default translations for the AI extension }, extensions: [ createAIExtension({ From 78bb9dd164079b8fdfdfb21e95f6b01cd492e862 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 17:55:37 +0200 Subject: [PATCH 5/9] test: fix workspace --- vitest.workspace.js | 77 --------------------------------------------- vitest.workspace.ts | 1 + 2 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 vitest.workspace.js diff --git a/vitest.workspace.js b/vitest.workspace.js deleted file mode 100644 index 97c66e944d..0000000000 --- a/vitest.workspace.js +++ /dev/null @@ -1,77 +0,0 @@ -import { defineWorkspace } from "vitest/config"; - -export default defineWorkspace([ - "./packages/xl-ai/vite.config.ts", - // "./examples/03-ui-components/link-toolbar-buttons/vite.config.ts", - // "./examples/03-ui-components/08-suggestion-menus-emoji-picker-columns/vite.config.ts", - // "./examples/03-ui-components/09-suggestion-menus-emoji-picker-component/vite.config.ts", - // "./examples/03-ui-components/01-ui-elements-remove/vite.config.ts", - // "./examples/03-ui-components/10-suggestion-menus-grid-mentions/vite.config.ts", - // "./examples/03-ui-components/12-static-formatting-toolbar/vite.config.ts", - // "./packages/xl-docx-exporter/vite.config.ts", - // "./examples/03-ui-components/03-formatting-toolbar-block-type-items/vite.config.ts", - // "./packages/react/vite.config.ts", - // "./playground/vite.config.ts", - // "./packages/server-util/vite.config.ts", - // "./packages/xl-ai-server/vite.config.ts", - // "./packages/shadcn/vite.config.ts", - // "./packages/mantine/vite.config.ts", - // "./packages/xl-pdf-exporter/vite.config.ts", - - // "./examples/03-ui-components/11-uppy-file-panel/vite.config.ts", - // "./packages/core/vite.config.ts", - // "./packages/core/vite.config.bundled.ts", - // "./examples/03-ui-components/02-formatting-toolbar-buttons/vite.config.ts", - // "./packages/ariakit/vite.config.ts", - // "./examples/03-ui-components/05-side-menu-drag-handle-items/vite.config.ts", - // "./examples/03-ui-components/14-experimental-mobile-formatting-toolbar/vite.config.ts", - // "./examples/03-ui-components/13-custom-ui/vite.config.ts", - // "./examples/03-ui-components/04-side-menu-buttons/vite.config.ts", - // "./examples/03-ui-components/06-suggestion-menus-slash-menu-items/vite.config.ts", - // "./examples/03-ui-components/07-suggestion-menus-slash-menu-component/vite.config.ts", - // "./packages/xl-multi-column/vite.config.ts", - // "./examples/06-custom-schema/04-pdf-file-block/vite.config.ts", - // "./examples/06-custom-schema/03-font-style/vite.config.ts", - // "./examples/06-custom-schema/react-custom-blocks/vite.config.ts", - // "./examples/06-custom-schema/react-custom-styles/vite.config.ts", - // "./examples/06-custom-schema/01-alert-block/vite.config.ts", - // "./examples/07-collaboration/02-liveblocks/vite.config.ts", - // "./examples/07-collaboration/03-y-sweet/vite.config.ts", - // "./examples/07-collaboration/01-partykit/vite.config.ts", - // "./examples/05-interoperability/06-converting-blocks-to-docx/vite.config.ts", - // "./examples/05-interoperability/02-converting-blocks-from-html/vite.config.ts", - // "./examples/05-interoperability/03-converting-blocks-to-md/vite.config.ts", - // "./examples/05-custom-schema/react-custom-styles/dist/vite.config.js", - // "./examples/05-interoperability/01-converting-blocks-to-html/vite.config.ts", - // "./examples/04-theming/01-theming-dom-attributes/vite.config.ts", - // "./examples/04-theming/02-changing-font/vite.config.ts", - // "./examples/04-theming/03-theming-css/vite.config.ts", - // "./examples/05-interoperability/04-converting-blocks-from-md/vite.config.ts", - // "./examples/04-theming/04-theming-css-variables/vite.config.ts", - // "./examples/05-interoperability/05-converting-blocks-to-pdf/vite.config.ts", - // "./examples/02-backend/01-file-uploading/vite.config.ts", - // "./examples/04-theming/05-theming-css-variables-code/vite.config.ts", - // "./examples/02-backend/03-s3/vite.config.ts", - // "./examples/02-backend/04-rendering-static-documents/vite.config.ts", - // "./examples/02-backend/02-saving-loading/vite.config.ts", - // "./examples/vanilla-js/react-vanilla-custom-styles/vite.config.ts", - // "./examples/vanilla-js/react-vanilla-custom-inline-content/vite.config.ts", - // "./examples/vanilla-js/react-vanilla-custom-blocks/vite.config.ts", - // "./examples/01-basic/05-removing-default-blocks/vite.config.ts", - // "./examples/01-basic/testing/vite.config.ts", - // "./examples/01-basic/09-shadcn/vite.config.ts", - // "./examples/06-custom-schema/react-custom-inline-content/vite.config.ts", - // "./examples/01-basic/11-custom-placeholder/vite.config.ts", - // "./examples/01-basic/06-block-manipulation/vite.config.ts", - // "./examples/01-basic/02-block-objects/vite.config.ts", - // "./examples/09-ai/01-minimal/vite.config.ts", - // "./examples/01-basic/01-minimal/vite.config.ts", - // "./examples/01-basic/08-ariakit/vite.config.ts", - // "./examples/01-basic/07-selection-blocks/vite.config.ts", - // "./examples/01-basic/03-multi-column/vite.config.ts", - // "./examples/01-basic/10-localization/vite.config.ts", - // "./examples/08-extensions/01-tiptap-arrow-conversion/vite.config.ts", - // "./examples/01-basic/12-multi-editor/vite.config.ts", - // "./examples/06-custom-schema/02-suggestion-menus-mentions/vite.config.ts", - // "./examples/01-basic/04-default-blocks/vite.config.ts" -]); diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 21ba7a3f08..ff13edcc15 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -6,6 +6,7 @@ export default defineWorkspace([ "./packages/shadcn/vite.config.ts", "./packages/server-util/vite.config.ts", "./packages/xl-pdf-exporter/vite.config.ts", + "./packages/xl-ai/vite.config.ts", "./packages/mantine/vite.config.ts", "./packages/core/vite.config.ts", "./packages/xl-multi-column/vite.config.ts", From 6273bdd753d0dd812e030a06ba866025790247d9 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 17:55:49 +0200 Subject: [PATCH 6/9] build: use correct module resolution --- packages/xl-ai-server/tsconfig.json | 4 ++-- packages/xl-ai/tsconfig.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/xl-ai-server/tsconfig.json b/packages/xl-ai-server/tsconfig.json index 283e07431f..d6d96d3346 100644 --- a/packages/xl-ai-server/tsconfig.json +++ b/packages/xl-ai-server/tsconfig.json @@ -3,8 +3,8 @@ "target": "ESNext", "useDefineForClassFields": true, "module": "ESNext", - "lib": ["ESNext", "DOM", "DOM.Iterable"], - "moduleResolution": "Node", + "lib": ["ESNext", "DOM"], + "moduleResolution": "bundler", "jsx": "react-jsx", "strict": true, "sourceMap": true, diff --git a/packages/xl-ai/tsconfig.json b/packages/xl-ai/tsconfig.json index dcf6b07cb8..08e6c5d770 100644 --- a/packages/xl-ai/tsconfig.json +++ b/packages/xl-ai/tsconfig.json @@ -4,7 +4,7 @@ "useDefineForClassFields": true, "module": "ESNext", "lib": ["ESNext", "DOM"], - "moduleResolution": "Node", + "moduleResolution": "bundler", "jsx": "react-jsx", "strict": true, "sourceMap": true, From be981f94fd2e2f5cede08570d48dbcebc938562b Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 18:01:20 +0200 Subject: [PATCH 7/9] build: put server back --- packages/xl-ai-server/tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/xl-ai-server/tsconfig.json b/packages/xl-ai-server/tsconfig.json index d6d96d3346..283e07431f 100644 --- a/packages/xl-ai-server/tsconfig.json +++ b/packages/xl-ai-server/tsconfig.json @@ -3,8 +3,8 @@ "target": "ESNext", "useDefineForClassFields": true, "module": "ESNext", - "lib": ["ESNext", "DOM"], - "moduleResolution": "bundler", + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "moduleResolution": "Node", "jsx": "react-jsx", "strict": true, "sourceMap": true, From a371482b82cb6e9ed23a9ee915403508a5f7dffe Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 18:01:37 +0200 Subject: [PATCH 8/9] build: point to correct file --- packages/xl-ai/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/xl-ai/package.json b/packages/xl-ai/package.json index 733a393f57..f96c54ad9a 100644 --- a/packages/xl-ai/package.json +++ b/packages/xl-ai/package.json @@ -36,13 +36,13 @@ "type": "module", "source": "src/index.ts", "types": "./types/src/index.d.ts", - "main": "./dist/blocknote-xl-ai.umd.cjs", + "main": "./dist/blocknote-xl-ai.js", "module": "./dist/blocknote-xl-ai.js", "exports": { ".": { "types": "./types/src/index.d.ts", "import": "./dist/blocknote-xl-ai.js", - "require": "./dist/blocknote-xl-ai.umd.cjs" + "require": "./dist/blocknote-xl-ai.cjs" }, "./style.css": { "import": "./dist/style.css", From a65bff587213c700ae2502eba6ea34d2d5f8d3c7 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Tue, 20 May 2025 18:05:18 +0200 Subject: [PATCH 9/9] build: add stub file for local resolution --- packages/xl-ai/src/locales.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/xl-ai/src/locales.ts diff --git a/packages/xl-ai/src/locales.ts b/packages/xl-ai/src/locales.ts new file mode 100644 index 0000000000..ef3f51bfeb --- /dev/null +++ b/packages/xl-ai/src/locales.ts @@ -0,0 +1 @@ +export * from "./i18n/locales/index.js";