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({ 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-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..f96c54ad9a 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", @@ -36,18 +36,23 @@ "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", "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/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"; 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, diff --git a/packages/xl-ai/vite.config.ts b/packages/xl-ai/vite.config.ts index 1b91e30c06..c6a773ce41 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: { @@ -32,23 +30,27 @@ 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 // 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 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",