diff --git a/examples/07-collaboration/07-forking/.bnexample.json b/examples/07-collaboration/07-forking/.bnexample.json new file mode 100644 index 000000000..2d28ad5ec --- /dev/null +++ b/examples/07-collaboration/07-forking/.bnexample.json @@ -0,0 +1,10 @@ +{ + "playground": true, + "docs": false, + "author": "nperez0111", + "tags": ["Advanced", "Development", "Collaboration"], + "dependencies": { + "y-partykit": "^0.0.25", + "yjs": "^13.6.15" + } +} diff --git a/examples/07-collaboration/07-forking/App.tsx b/examples/07-collaboration/07-forking/App.tsx new file mode 100644 index 000000000..a25b64487 --- /dev/null +++ b/examples/07-collaboration/07-forking/App.tsx @@ -0,0 +1,72 @@ +import "@blocknote/core/fonts/inter.css"; +import { useCreateBlockNote } from "@blocknote/react"; +import { BlockNoteView } from "@blocknote/mantine"; +import "@blocknote/mantine/style.css"; +import YPartyKitProvider from "y-partykit/provider"; +import * as Y from "yjs"; +import { useEffect } from "react"; +import { useState } from "react"; + +// Sets up Yjs document and PartyKit Yjs provider. +const doc = new Y.Doc(); +const provider = new YPartyKitProvider( + "blocknote-dev.yousefed.partykit.dev", + // Use a unique name as a "room" for your application. + "your-project-name-room", + doc, +); + +export default function App() { + const editor = useCreateBlockNote({ + collaboration: { + // The Yjs Provider responsible for transporting updates: + provider, + // Where to store BlockNote data in the Y.Doc: + fragment: doc.getXmlFragment("document-store"), + // Information (name and color) for this user: + user: { + name: "My Username", + color: "#ff0000", + }, + }, + }); + const [isForked, setIsForked] = useState(false); + + useEffect(() => { + editor.forkYDocPlugin.on("forked", setIsForked); + }, [editor]); + + // Renders the editor instance. + return ( + <> + + + +
+

Forked: {isForked ? "Yes" : "No"}

+
+ + + ); +} diff --git a/examples/07-collaboration/07-forking/README.md b/examples/07-collaboration/07-forking/README.md new file mode 100644 index 000000000..a13e19d5b --- /dev/null +++ b/examples/07-collaboration/07-forking/README.md @@ -0,0 +1,9 @@ +# Collaborative Editing with Forking + +In this example, we can fork a document and edit it independently of other collaborators. Then, we can choose to merge the changes back into the original document, or discard the changes. + +**Try it out:** Open this page in a new browser tab or window to see it in action! + +**Relevant Docs:** + +- [Editor Setup](/docs/editor-basics/setup) \ No newline at end of file diff --git a/examples/07-collaboration/07-forking/index.html b/examples/07-collaboration/07-forking/index.html new file mode 100644 index 000000000..108df09c3 --- /dev/null +++ b/examples/07-collaboration/07-forking/index.html @@ -0,0 +1,14 @@ + + + + + + Collaborative Editing with Forking + + +
+ + + diff --git a/examples/07-collaboration/07-forking/main.tsx b/examples/07-collaboration/07-forking/main.tsx new file mode 100644 index 000000000..6284417d6 --- /dev/null +++ b/examples/07-collaboration/07-forking/main.tsx @@ -0,0 +1,11 @@ +// AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY +import React from "react"; +import { createRoot } from "react-dom/client"; +import App from "./App.jsx"; + +const root = createRoot(document.getElementById("root")!); +root.render( + + + +); diff --git a/examples/07-collaboration/07-forking/package.json b/examples/07-collaboration/07-forking/package.json new file mode 100644 index 000000000..2f02a17c2 --- /dev/null +++ b/examples/07-collaboration/07-forking/package.json @@ -0,0 +1,29 @@ +{ + "name": "@blocknote/example-collaboration-forking", + "description": "AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY", + "private": true, + "version": "0.12.4", + "scripts": { + "start": "vite", + "dev": "vite", + "build:prod": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@blocknote/core": "latest", + "@blocknote/react": "latest", + "@blocknote/ariakit": "latest", + "@blocknote/mantine": "latest", + "@blocknote/shadcn": "latest", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "y-partykit": "^0.0.25", + "yjs": "^13.6.15" + }, + "devDependencies": { + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", + "@vitejs/plugin-react": "^4.3.1", + "vite": "^5.3.4" + } +} \ No newline at end of file diff --git a/examples/07-collaboration/07-forking/tsconfig.json b/examples/07-collaboration/07-forking/tsconfig.json new file mode 100644 index 000000000..dbe3e6f62 --- /dev/null +++ b/examples/07-collaboration/07-forking/tsconfig.json @@ -0,0 +1,36 @@ +{ + "__comment": "AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "composite": true + }, + "include": [ + "." + ], + "__ADD_FOR_LOCAL_DEV_references": [ + { + "path": "../../../packages/core/" + }, + { + "path": "../../../packages/react/" + } + ] +} \ No newline at end of file diff --git a/examples/07-collaboration/07-forking/vite.config.ts b/examples/07-collaboration/07-forking/vite.config.ts new file mode 100644 index 000000000..f62ab20bc --- /dev/null +++ b/examples/07-collaboration/07-forking/vite.config.ts @@ -0,0 +1,32 @@ +// AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY +import react from "@vitejs/plugin-react"; +import * as fs from "fs"; +import * as path from "path"; +import { defineConfig } from "vite"; +// import eslintPlugin from "vite-plugin-eslint"; +// https://vitejs.dev/config/ +export default defineConfig((conf) => ({ + plugins: [react()], + optimizeDeps: {}, + build: { + sourcemap: true, + }, + resolve: { + alias: + conf.command === "build" || + !fs.existsSync(path.resolve(__dirname, "../../packages/core/src")) + ? {} + : ({ + // Comment out the lines below to load a built version of blocknote + // or, keep as is to load live from sources with live reload working + "@blocknote/core": path.resolve( + __dirname, + "../../packages/core/src/" + ), + "@blocknote/react": path.resolve( + __dirname, + "../../packages/react/src/" + ), + } as any), + }, +})); diff --git a/packages/core/package.json b/packages/core/package.json index a2d30c886..7b2502969 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -76,7 +76,7 @@ "dependencies": { "@emoji-mart/data": "^1.2.1", "@shikijs/types": "3.2.1", - "@tiptap/core": "^2.11.5", + "@tiptap/core": "^2.12.0", "@tiptap/extension-bold": "^2.11.5", "@tiptap/extension-code": "^2.11.5", "@tiptap/extension-gapcursor": "^2.11.5", @@ -90,7 +90,7 @@ "@tiptap/extension-table-header": "^2.11.5", "@tiptap/extension-text": "^2.11.5", "@tiptap/extension-underline": "^2.11.5", - "@tiptap/pm": "^2.11.5", + "@tiptap/pm": "^2.12.0", "emoji-mart": "^5.6.0", "hast-util-from-dom": "^5.0.1", "prosemirror-dropcursor": "^1.8.1", diff --git a/packages/core/src/editor/BlockNoteEditor.ts b/packages/core/src/editor/BlockNoteEditor.ts index 2c2f1993d..edcf07180 100644 --- a/packages/core/src/editor/BlockNoteEditor.ts +++ b/packages/core/src/editor/BlockNoteEditor.ts @@ -114,11 +114,13 @@ import { import { nestedListsToBlockNoteStructure } from "../api/parsers/html/util/nestedLists.js"; import { CodeBlockOptions } from "../blocks/CodeBlockContent/CodeBlockContent.js"; import type { ThreadStore, User } from "../comments/index.js"; -import { CursorPlugin } from "../extensions/Collaboration/CursorPlugin.js"; -import "../style.css"; +import type { CursorPlugin } from "../extensions/Collaboration/CursorPlugin.js"; +import type { ForkYDocPlugin } from "../extensions/Collaboration/ForkYDocPlugin.js"; import { EventEmitter } from "../util/EventEmitter.js"; import { BlockNoteExtension } from "./BlockNoteExtension.js"; +import "../style.css"; + /** * A factory function that returns a BlockNoteExtension * This is useful so we can create extensions that require an editor instance @@ -416,7 +418,7 @@ export class BlockNoteEditor< /** * extensions that are added to the editor, can be tiptap extensions or prosemirror plugins */ - public readonly extensions: Record = {}; + public extensions: Record = {}; /** * Boolean indicating whether the editor is in headless mode. @@ -485,8 +487,10 @@ export class BlockNoteEditor< private readonly showSelectionPlugin: ShowSelectionPlugin; - private readonly cursorPlugin: CursorPlugin; - + /** + * The plugin for forking a document, only defined if in collaboration mode + */ + public readonly forkYDocPlugin?: ForkYDocPlugin; /** * The `uploadFile` method is what the editor uses when files need to be uploaded (for example when selecting an image to upload). * This method should set when creating the editor as this is application-specific. @@ -647,7 +651,7 @@ export class BlockNoteEditor< this.tableHandles = this.extensions["tableHandles"] as any; this.comments = this.extensions["comments"] as any; this.showSelectionPlugin = this.extensions["showSelection"] as any; - this.cursorPlugin = this.extensions["yCursorPlugin"] as any; + this.forkYDocPlugin = this.extensions["forkYDocPlugin"] as any; if (newOptions.uploadFile) { const uploadFile = newOptions.uploadFile; @@ -1547,7 +1551,7 @@ export class BlockNoteEditor< ); } - this.cursorPlugin.updateUser(user); + (this.extensions["yCursorPlugin"] as CursorPlugin).updateUser(user); } /** diff --git a/packages/core/src/editor/BlockNoteExtension.ts b/packages/core/src/editor/BlockNoteExtension.ts index 32650f74a..b2a7dd947 100644 --- a/packages/core/src/editor/BlockNoteExtension.ts +++ b/packages/core/src/editor/BlockNoteExtension.ts @@ -1,7 +1,9 @@ import { Plugin } from "prosemirror-state"; import { EventEmitter } from "../util/EventEmitter.js"; -export abstract class BlockNoteExtension extends EventEmitter { +export abstract class BlockNoteExtension< + TEvent extends Record = any, +> extends EventEmitter { public static name(): string { throw new Error("You must implement the name method in your extension"); } diff --git a/packages/core/src/editor/BlockNoteExtensions.ts b/packages/core/src/editor/BlockNoteExtensions.ts index 3593aa77c..6bd04b333 100644 --- a/packages/core/src/editor/BlockNoteExtensions.ts +++ b/packages/core/src/editor/BlockNoteExtensions.ts @@ -56,6 +56,7 @@ import type { BlockNoteEditorOptions, SupportedExtension, } from "./BlockNoteEditor.js"; +import { ForkYDocPlugin } from "../extensions/Collaboration/ForkYDocPlugin.js"; type ExtensionOptions< BSchema extends BlockSchema, @@ -120,6 +121,10 @@ export const getBlockNoteExtensions = < if (opts.collaboration.provider?.awareness) { ret["yCursorPlugin"] = new CursorPlugin(opts.collaboration); } + ret["forkYDocPlugin"] = new ForkYDocPlugin({ + editor: opts.editor, + collaboration: opts.collaboration, + }); } // Note: this is pretty hardcoded and will break when user provides plugins with same keys. diff --git a/packages/core/src/extensions/Collaboration/CursorPlugin.ts b/packages/core/src/extensions/Collaboration/CursorPlugin.ts index fa16582ec..eb0beb8b0 100644 --- a/packages/core/src/extensions/Collaboration/CursorPlugin.ts +++ b/packages/core/src/extensions/Collaboration/CursorPlugin.ts @@ -10,6 +10,10 @@ export type CollaborationUser = { }; export class CursorPlugin extends BlockNoteExtension { + public static name() { + return "yCursorPlugin"; + } + private provider: { awareness: Awareness }; private recentlyUpdatedCursors: Map< number, diff --git a/packages/core/src/extensions/Collaboration/ForkYDocPlugin.test.ts b/packages/core/src/extensions/Collaboration/ForkYDocPlugin.test.ts new file mode 100644 index 000000000..31ced95a1 --- /dev/null +++ b/packages/core/src/extensions/Collaboration/ForkYDocPlugin.test.ts @@ -0,0 +1,166 @@ +import { expect, it } from "vitest"; +import * as Y from "yjs"; +import { Awareness } from "y-protocols/awareness"; +import { BlockNoteEditor } from "../../index.js"; + +/** + * @vitest-environment jsdom + */ +it("can fork a document", async () => { + const doc = new Y.Doc(); + const fragment = doc.getXmlFragment("doc"); + const editor = BlockNoteEditor.create({ + collaboration: { + fragment, + user: { name: "Hello", color: "#FFFFFF" }, + provider: { + awareness: new Awareness(doc), + }, + }, + }); + + const div = document.createElement("div"); + editor.mount(div); + + editor.replaceBlocks(editor.document, [ + { + type: "paragraph", + content: [{ text: "Hello", styles: {}, type: "text" }], + }, + ]); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor.json", + ); + + editor.forkYDocPlugin.fork(); + + editor.replaceBlocks(editor.document, [ + { + type: "paragraph", + content: [{ text: "Hello World", styles: {}, type: "text" }], + }, + ]); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor-forked.json", + ); +}); + +it("can merge a document", async () => { + const doc = new Y.Doc(); + const fragment = doc.getXmlFragment("doc"); + const editor = BlockNoteEditor.create({ + collaboration: { + fragment, + user: { name: "Hello", color: "#FFFFFF" }, + provider: { + awareness: new Awareness(doc), + }, + }, + }); + + const div = document.createElement("div"); + editor.mount(div); + + editor.replaceBlocks(editor.document, [ + { + type: "paragraph", + content: [{ text: "Hello", styles: {}, type: "text" }], + }, + ]); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor.json", + ); + + editor.forkYDocPlugin.fork(); + + editor.replaceBlocks(editor.document, [ + { + type: "paragraph", + content: [{ text: "Hello World", styles: {}, type: "text" }], + }, + ]); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor-forked.json", + ); + + editor.forkYDocPlugin.merge({ keepChanges: false }); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor.json", + ); +}); + +it("can fork an keep the changes to the original document", async () => { + const doc = new Y.Doc(); + const fragment = doc.getXmlFragment("doc"); + const editor = BlockNoteEditor.create({ + collaboration: { + fragment, + user: { name: "Hello", color: "#FFFFFF" }, + provider: { + awareness: new Awareness(doc), + }, + }, + }); + + const div = document.createElement("div"); + editor.mount(div); + + editor.replaceBlocks(editor.document, [ + { + type: "paragraph", + content: [{ text: "Hello", styles: {}, type: "text" }], + }, + ]); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor.json", + ); + + editor.forkYDocPlugin.fork(); + + editor.replaceBlocks(editor.document, [ + { + type: "paragraph", + content: [{ text: "Hello World", styles: {}, type: "text" }], + }, + ]); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor-forked.json", + ); + + editor.forkYDocPlugin.merge({ keepChanges: true }); + + await expect(fragment.toJSON()).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-forked.html", + ); + await expect(editor.document).toMatchFileSnapshot( + "__snapshots__/fork-yjs-snap-editor-forked.json", + ); +}); diff --git a/packages/core/src/extensions/Collaboration/ForkYDocPlugin.ts b/packages/core/src/extensions/Collaboration/ForkYDocPlugin.ts new file mode 100644 index 000000000..095fb69a3 --- /dev/null +++ b/packages/core/src/extensions/Collaboration/ForkYDocPlugin.ts @@ -0,0 +1,174 @@ +import * as Y from "yjs"; + +import { + yCursorPluginKey, + ySyncPluginKey, + yUndoPluginKey, +} from "y-prosemirror"; +import { CursorPlugin } from "./CursorPlugin.js"; +import { SyncPlugin } from "./SyncPlugin.js"; +import { UndoPlugin } from "./UndoPlugin.js"; + +import { + BlockNoteEditor, + BlockNoteEditorOptions, +} from "../../editor/BlockNoteEditor.js"; +import { BlockNoteExtension } from "../../editor/BlockNoteExtension.js"; + +export class ForkYDocPlugin extends BlockNoteExtension<{ + forked: boolean; +}> { + public static name() { + return "ForkYDocPlugin"; + } + + private editor: BlockNoteEditor; + private collaboration: BlockNoteEditorOptions["collaboration"]; + + constructor({ + editor, + collaboration, + }: { + editor: BlockNoteEditor; + collaboration: BlockNoteEditorOptions["collaboration"]; + }) { + super(editor); + this.editor = editor; + this.collaboration = collaboration; + } + + /** + * To find a fragment in another ydoc, we need to search for it. + */ + private findTypeInOtherYdoc>( + ytype: T, + otherYdoc: Y.Doc, + ): T { + const ydoc = ytype.doc!; + if (ytype._item === null) { + /** + * If is a root type, we need to find the root key in the original ydoc + * and use it to get the type in the other ydoc. + */ + const rootKey = Array.from(ydoc.share.keys()).find( + (key) => ydoc.share.get(key) === ytype, + ); + if (rootKey == null) { + throw new Error("type does not exist in other ydoc"); + } + return otherYdoc.get(rootKey, ytype.constructor as new () => T) as T; + } else { + /** + * If it is a sub type, we use the item id to find the history type. + */ + const ytypeItem = ytype._item; + const otherStructs = + otherYdoc.store.clients.get(ytypeItem.id.client) ?? []; + const itemIndex = Y.findIndexSS(otherStructs, ytypeItem.id.clock); + const otherItem = otherStructs[itemIndex] as Y.Item; + const otherContent = otherItem.content as Y.ContentType; + return otherContent.type as T; + } + } + + /** + * Whether the editor is editing a forked document, + * preserving a reference to the original document and the forked document. + */ + public get isForkedFromRemote() { + return this.forkedState !== undefined; + } + + /** + * Stores whether the editor is editing a forked document, + * preserving a reference to the original document and the forked document. + */ + private forkedState: + | { + originalFragment: Y.XmlFragment; + forkedFragment: Y.XmlFragment; + } + | undefined; + + /** + * Fork the Y.js document from syncing to the remote, + * allowing modifications to the document without affecting the remote. + * These changes can later be rolled back or applied to the remote. + */ + public fork() { + if (this.isForkedFromRemote) { + return; + } + + const originalFragment = this.collaboration.fragment; + + if (!originalFragment) { + throw new Error("No fragment to fork from"); + } + + const doc = new Y.Doc(); + // Copy the original document to a new Yjs document + Y.applyUpdate(doc, Y.encodeStateAsUpdate(originalFragment.doc!)); + + // Find the forked fragment in the new Yjs document + const forkedFragment = this.findTypeInOtherYdoc(originalFragment, doc); + + this.forkedState = { + originalFragment, + forkedFragment, + }; + + // Need to reset all the yjs plugins + this.editor._tiptapEditor.unregisterPlugin([ + yCursorPluginKey, + yUndoPluginKey, + ySyncPluginKey, + ]); + // Register them again, based on the new forked fragment + this.editor._tiptapEditor.registerPlugin( + new SyncPlugin(forkedFragment).plugins[0], + ); + this.editor._tiptapEditor.registerPlugin(new UndoPlugin().plugins[0]); + // No need to register the cursor plugin again, it's a local fork + this.emit("forked", true); + } + + /** + * Resume syncing the Y.js document to the remote + * If `keepChanges` is true, any changes that have been made to the forked document will be applied to the original document. + * Otherwise, the original document will be restored and the changes will be discarded. + */ + public merge({ keepChanges }: { keepChanges: boolean }) { + if (!this.forkedState) { + return; + } + // Remove the forked fragment's plugins + this.editor._tiptapEditor.unregisterPlugin(ySyncPluginKey); + this.editor._tiptapEditor.unregisterPlugin(yUndoPluginKey); + + const { originalFragment, forkedFragment } = this.forkedState; + if (keepChanges) { + // Apply any changes that have been made to the fork, onto the original doc + const update = Y.encodeStateAsUpdate(forkedFragment.doc!); + Y.applyUpdate(originalFragment.doc!, update); + } + this.editor.extensions["ySyncPlugin"] = new SyncPlugin(originalFragment); + this.editor.extensions["yCursorPlugin"] = new CursorPlugin( + this.collaboration!, + ); + this.editor.extensions["yUndoPlugin"] = new UndoPlugin(); + // Register the plugins again, based on the original fragment + this.editor._tiptapEditor.registerPlugin( + this.editor.extensions["ySyncPlugin"].plugins[0], + ); + this.editor._tiptapEditor.registerPlugin( + this.editor.extensions["yCursorPlugin"].plugins[0], + ); + this.editor._tiptapEditor.registerPlugin( + this.editor.extensions["yUndoPlugin"].plugins[0], + ); + // Reset the forked state + this.forkedState = undefined; + this.emit("forked", false); + } +} diff --git a/packages/core/src/extensions/Collaboration/SyncPlugin.ts b/packages/core/src/extensions/Collaboration/SyncPlugin.ts index 58a2abdc4..a2a592e2b 100644 --- a/packages/core/src/extensions/Collaboration/SyncPlugin.ts +++ b/packages/core/src/extensions/Collaboration/SyncPlugin.ts @@ -3,6 +3,10 @@ import type * as Y from "yjs"; import { BlockNoteExtension } from "../../editor/BlockNoteExtension.js"; export class SyncPlugin extends BlockNoteExtension { + public static name() { + return "ySyncPlugin"; + } + constructor(fragment: Y.XmlFragment) { super(); this.addProsemirrorPlugin(ySyncPlugin(fragment)); diff --git a/packages/core/src/extensions/Collaboration/UndoPlugin.ts b/packages/core/src/extensions/Collaboration/UndoPlugin.ts index 09a549342..cacaecb31 100644 --- a/packages/core/src/extensions/Collaboration/UndoPlugin.ts +++ b/packages/core/src/extensions/Collaboration/UndoPlugin.ts @@ -2,6 +2,10 @@ import { yUndoPlugin } from "y-prosemirror"; import { BlockNoteExtension } from "../../editor/BlockNoteExtension.js"; export class UndoPlugin extends BlockNoteExtension { + public static name() { + return "yUndoPlugin"; + } + constructor() { super(); this.addProsemirrorPlugin(yUndoPlugin()); diff --git a/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-editor-forked.json b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-editor-forked.json new file mode 100644 index 000000000..786e727b7 --- /dev/null +++ b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-editor-forked.json @@ -0,0 +1,30 @@ +[ + { + "children": [], + "content": [ + { + "styles": {}, + "text": "Hello World", + "type": "text", + }, + ], + "id": "2", + "props": { + "backgroundColor": "default", + "textAlignment": "left", + "textColor": "default", + }, + "type": "paragraph", + }, + { + "children": [], + "content": [], + "id": "3", + "props": { + "backgroundColor": "default", + "textAlignment": "left", + "textColor": "default", + }, + "type": "paragraph", + }, +] \ No newline at end of file diff --git a/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-editor.json b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-editor.json new file mode 100644 index 000000000..e7580c5b7 --- /dev/null +++ b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-editor.json @@ -0,0 +1,30 @@ +[ + { + "children": [], + "content": [ + { + "styles": {}, + "text": "Hello", + "type": "text", + }, + ], + "id": "0", + "props": { + "backgroundColor": "default", + "textAlignment": "left", + "textColor": "default", + }, + "type": "paragraph", + }, + { + "children": [], + "content": [], + "id": "1", + "props": { + "backgroundColor": "default", + "textAlignment": "left", + "textColor": "default", + }, + "type": "paragraph", + }, +] \ No newline at end of file diff --git a/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-forked.html b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-forked.html new file mode 100644 index 000000000..5bb08d421 --- /dev/null +++ b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap-forked.html @@ -0,0 +1 @@ +Hello World \ No newline at end of file diff --git a/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap.html b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap.html new file mode 100644 index 000000000..0ba955881 --- /dev/null +++ b/packages/core/src/extensions/Collaboration/__snapshots__/fork-yjs-snap.html @@ -0,0 +1 @@ +Hello \ No newline at end of file diff --git a/packages/react/package.json b/packages/react/package.json index 058978c0e..8c5c915c8 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -61,9 +61,9 @@ "@blocknote/core": "0.30.0", "@emoji-mart/data": "^1.2.1", "@floating-ui/react": "^0.26.4", - "@tiptap/core": "^2.7.1", - "@tiptap/pm": "^2.7.1", - "@tiptap/react": "^2.7.1", + "@tiptap/core": "^2.12.0", + "@tiptap/pm": "^2.12.0", + "@tiptap/react": "^2.12.0", "emoji-mart": "^5.6.0", "lodash.merge": "^4.6.2", "react-icons": "^5.2.1" diff --git a/packages/server-util/package.json b/packages/server-util/package.json index cade41e9b..c86d93a7a 100644 --- a/packages/server-util/package.json +++ b/packages/server-util/package.json @@ -58,8 +58,8 @@ "dependencies": { "@blocknote/core": "0.30.0", "@blocknote/react": "0.30.0", - "@tiptap/core": "^2.7.1", - "@tiptap/pm": "^2.7.1", + "@tiptap/core": "^2.12.0", + "@tiptap/pm": "^2.12.0", "jsdom": "^25.0.1", "y-prosemirror": "^1.3.4", "y-protocols": "^1.0.6", diff --git a/packages/xl-ai/package.json b/packages/xl-ai/package.json index 2f32d4c05..b893fb211 100644 --- a/packages/xl-ai/package.json +++ b/packages/xl-ai/package.json @@ -59,23 +59,23 @@ "email": "email dev" }, "dependencies": { - "@blocknote/prosemirror-suggest-changes": "^0.1.3", - "prosemirror-changeset": "^2.3.0", - "prosemirror-tables": "^1.6.4", - "prosemirror-transform": "^1.10.4", - "prosemirror-model": "^1.24.1", - "ai": "^4.3.15", - "@ai-sdk/openai-compatible": "^0.2.14", - "@ai-sdk/openai": "^1.3.22", "@ai-sdk/groq": "^1.2.9", "@ai-sdk/mistral": "^1.2.8", + "@ai-sdk/openai": "^1.3.22", + "@ai-sdk/openai-compatible": "^0.2.14", "@blocknote/core": "workspace:*", "@blocknote/mantine": "workspace:*", + "@blocknote/prosemirror-suggest-changes": "^0.1.3", "@blocknote/react": "workspace:*", "@floating-ui/react": "^0.26.4", - "@tiptap/core": "^2.7.1", + "@tiptap/core": "^2.12.0", + "ai": "^4.3.15", "lodash.isequal": "^4.5.0", + "prosemirror-changeset": "^2.3.0", + "prosemirror-model": "^1.24.1", "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.6.4", + "prosemirror-transform": "^1.10.4", "prosemirror-view": "^1.33.7", "react": "^18", "react-dom": "^18", @@ -87,15 +87,16 @@ "zustand": "^5.0.3" }, "devDependencies": { - "@types/json-schema": "^7.0.15", - "@types/lodash.isequal": "^4.5.8", + "@mswjs/interceptors": "^0.37.5", "@types/diff": "^6.0.0", "@types/json-diff": "^1.0.3", + "@types/json-schema": "^7.0.15", + "@types/lodash.isequal": "^4.5.8", "@types/react": "^18.0.25", "@types/react-dom": "^18.0.9", "@vitejs/plugin-react": "^4.3.1", + "@vitest/runner": "^2.0.3", "eslint": "^8.10.0", - "@mswjs/interceptors": "^0.37.5", "glob": "^10.3.10", "headers-polyfill": "^4.0.3", "msw": "^2.7.3", @@ -103,12 +104,11 @@ "rimraf": "^5.0.5", "rollup-plugin-webpack-stats": "^0.2.2", "typescript": "^5.3.3", + "undici": "^6", "vite": "^5.3.4", "vite-plugin-eslint": "^1.8.1", "vite-plugin-externalize-deps": "^0.8.0", - "vitest": "^2.0.3", - "@vitest/runner": "^2.0.3", - "undici": "^6" + "vitest": "^2.0.3" }, "peerDependencies": { "react": "^18.0 || ^19.0 || >= 19.0.0-rc", diff --git a/packages/xl-multi-column/package.json b/packages/xl-multi-column/package.json index 5548b100e..0320a23ad 100644 --- a/packages/xl-multi-column/package.json +++ b/packages/xl-multi-column/package.json @@ -53,7 +53,7 @@ "dependencies": { "@blocknote/core": "0.30.0", "@blocknote/react": "0.30.0", - "@tiptap/core": "^2.7.1", + "@tiptap/core": "^2.12.0", "prosemirror-model": "^1.25.1", "prosemirror-state": "^1.4.3", "prosemirror-tables": "^1.3.7", @@ -67,7 +67,6 @@ "@vitest/ui": "^2.1.4", "eslint": "^8.10.0", "jsdom": "^21.1.0", - "prettier": "^2.7.1", "react": "^18.3.1", "react-dom": "^18.3.1", "rimraf": "^5.0.5", diff --git a/playground/src/examples.gen.tsx b/playground/src/examples.gen.tsx index 61d221427..fef7892f0 100644 --- a/playground/src/examples.gen.tsx +++ b/playground/src/examples.gen.tsx @@ -1350,6 +1350,30 @@ "pathFromRoot": "examples/07-collaboration", "slug": "collaboration" } + }, + { + "projectSlug": "forking", + "fullSlug": "collaboration/forking", + "pathFromRoot": "examples/07-collaboration/07-forking", + "config": { + "playground": true, + "docs": false, + "author": "nperez0111", + "tags": [ + "Advanced", + "Development", + "Collaboration" + ], + "dependencies": { + "y-partykit": "^0.0.25", + "yjs": "^13.6.15" + } as any + }, + "title": "Collaborative Editing with Forking", + "group": { + "pathFromRoot": "examples/07-collaboration", + "slug": "collaboration" + } } ] }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f573a648..0ac33d3cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,7 +49,7 @@ importers: version: 5.8.2 vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) wait-on: specifier: 8.0.3 version: 8.0.3 @@ -249,10 +249,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/02-block-objects: dependencies: @@ -286,10 +286,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/03-multi-column: dependencies: @@ -326,10 +326,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/04-default-blocks: dependencies: @@ -363,10 +363,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/05-removing-default-blocks: dependencies: @@ -400,10 +400,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/06-block-manipulation: dependencies: @@ -437,10 +437,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/07-selection-blocks: dependencies: @@ -474,10 +474,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/08-ariakit: dependencies: @@ -511,10 +511,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/09-shadcn: dependencies: @@ -548,10 +548,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/10-localization: dependencies: @@ -585,10 +585,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/11-custom-placeholder: dependencies: @@ -622,10 +622,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/12-multi-editor: dependencies: @@ -659,10 +659,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/13-custom-paste-handler: dependencies: @@ -696,10 +696,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/01-basic/testing: dependencies: @@ -733,10 +733,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/02-backend/01-file-uploading: dependencies: @@ -770,10 +770,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/02-backend/02-saving-loading: dependencies: @@ -807,10 +807,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/02-backend/03-s3: dependencies: @@ -850,10 +850,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/02-backend/04-rendering-static-documents: dependencies: @@ -890,10 +890,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/01-ui-elements-remove: dependencies: @@ -927,10 +927,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/02-formatting-toolbar-buttons: dependencies: @@ -964,10 +964,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/03-formatting-toolbar-block-type-items: dependencies: @@ -1007,10 +1007,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/04-side-menu-buttons: dependencies: @@ -1047,10 +1047,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/05-side-menu-drag-handle-items: dependencies: @@ -1087,10 +1087,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/06-suggestion-menus-slash-menu-items: dependencies: @@ -1127,10 +1127,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/07-suggestion-menus-slash-menu-component: dependencies: @@ -1164,10 +1164,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/08-suggestion-menus-emoji-picker-columns: dependencies: @@ -1201,10 +1201,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/09-suggestion-menus-emoji-picker-component: dependencies: @@ -1238,10 +1238,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/10-suggestion-menus-grid-mentions: dependencies: @@ -1275,10 +1275,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/11-uppy-file-panel: dependencies: @@ -1348,10 +1348,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/12-static-formatting-toolbar: dependencies: @@ -1385,10 +1385,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/13-custom-ui: dependencies: @@ -1434,10 +1434,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/14-experimental-mobile-formatting-toolbar: dependencies: @@ -1471,10 +1471,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/15-advanced-tables: dependencies: @@ -1508,10 +1508,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/03-ui-components/link-toolbar-buttons: dependencies: @@ -1545,10 +1545,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/01-theming-dom-attributes: dependencies: @@ -1582,10 +1582,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/02-changing-font: dependencies: @@ -1619,10 +1619,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/03-theming-css: dependencies: @@ -1656,10 +1656,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/04-theming-css-variables: dependencies: @@ -1693,10 +1693,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/05-theming-css-variables-code: dependencies: @@ -1730,10 +1730,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/06-code-block: dependencies: @@ -1770,10 +1770,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/04-theming/07-custom-code-block: dependencies: @@ -1825,10 +1825,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/01-converting-blocks-to-html: dependencies: @@ -1862,10 +1862,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/02-converting-blocks-from-html: dependencies: @@ -1899,10 +1899,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/03-converting-blocks-to-md: dependencies: @@ -1936,10 +1936,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/04-converting-blocks-from-md: dependencies: @@ -1973,10 +1973,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/05-converting-blocks-to-pdf: dependencies: @@ -2016,10 +2016,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/06-converting-blocks-to-docx: dependencies: @@ -2059,10 +2059,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/05-interoperability/07-converting-blocks-to-odt: dependencies: @@ -2099,10 +2099,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/01-alert-block: dependencies: @@ -2142,10 +2142,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/02-suggestion-menus-mentions: dependencies: @@ -2179,10 +2179,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/03-font-style: dependencies: @@ -2219,10 +2219,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/04-pdf-file-block: dependencies: @@ -2262,10 +2262,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/05-alert-block-full-ux: dependencies: @@ -2305,10 +2305,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/react-custom-blocks: dependencies: @@ -2342,10 +2342,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/react-custom-inline-content: dependencies: @@ -2379,10 +2379,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/06-custom-schema/react-custom-styles: dependencies: @@ -2416,10 +2416,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/07-collaboration/01-partykit: dependencies: @@ -2459,10 +2459,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/07-collaboration/02-liveblocks: dependencies: @@ -2489,10 +2489,10 @@ importers: version: 2.23.1(react@18.3.1) '@liveblocks/react-blocknote': specifier: ^2.23.1 - version: 2.23.1(1dcb48210094f6b40042d5901eb98d40) + version: 2.23.1(f7e1392d47807ef889348b4cdb3b8972) '@liveblocks/react-tiptap': specifier: ^2.23.1 - version: 2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.11.5)(@tiptap/react@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24)) + version: 2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.12.0)(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24)) '@liveblocks/react-ui': specifier: ^2.23.1 version: 2.23.1(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2514,10 +2514,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/07-collaboration/03-y-sweet: dependencies: @@ -2554,10 +2554,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/07-collaboration/04-comments: dependencies: @@ -2597,10 +2597,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/07-collaboration/05-comments-with-sidebar: dependencies: @@ -2640,10 +2640,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/07-collaboration/06-ghost-writer: dependencies: @@ -2683,10 +2683,53 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) + + examples/07-collaboration/07-forking: + dependencies: + '@blocknote/ariakit': + specifier: latest + version: link:../../../packages/ariakit + '@blocknote/core': + specifier: latest + version: link:../../../packages/core + '@blocknote/mantine': + specifier: latest + version: link:../../../packages/mantine + '@blocknote/react': + specifier: latest + version: link:../../../packages/react + '@blocknote/shadcn': + specifier: latest + version: link:../../../packages/shadcn + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + y-partykit: + specifier: ^0.0.25 + version: 0.0.25 + yjs: + specifier: ^13.6.15 + version: 13.6.24 + devDependencies: + '@types/react': + specifier: ^18.0.25 + version: 18.3.20 + '@types/react-dom': + specifier: ^18.0.9 + version: 18.3.5(@types/react@18.3.20) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) + vite: + specifier: ^5.3.4 + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/08-extensions/01-tiptap-arrow-conversion: dependencies: @@ -2707,7 +2750,7 @@ importers: version: link:../../../packages/shadcn '@tiptap/core': specifier: ^2 - version: 2.11.5(@tiptap/pm@2.11.5) + version: 2.12.0(@tiptap/pm@2.12.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -2723,10 +2766,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/09-ai/01-minimal: dependencies: @@ -2775,10 +2818,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/09-ai/02-playground: dependencies: @@ -2839,10 +2882,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/09-ai/03-custom-ai-menu-items: dependencies: @@ -2897,10 +2940,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/vanilla-js/react-vanilla-custom-blocks: dependencies: @@ -2934,10 +2977,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/vanilla-js/react-vanilla-custom-inline-content: dependencies: @@ -2971,10 +3014,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) examples/vanilla-js/react-vanilla-custom-styles: dependencies: @@ -3008,10 +3051,10 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) packages/ariakit: dependencies: @@ -3039,7 +3082,7 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) eslint: specifier: ^8.10.0 version: 8.57.1 @@ -3054,13 +3097,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite-plugin-externalize-deps: specifier: ^0.8.0 - version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) packages/code-block: dependencies: @@ -3097,13 +3140,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/core: dependencies: @@ -3117,50 +3160,50 @@ importers: specifier: 3.2.1 version: 3.2.1 '@tiptap/core': - specifier: ^2.11.5 - version: 2.11.5(@tiptap/pm@2.11.5) + specifier: ^2.12.0 + version: 2.12.0(@tiptap/pm@2.12.0) '@tiptap/extension-bold': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-code': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-gapcursor': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) '@tiptap/extension-history': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) '@tiptap/extension-horizontal-rule': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) '@tiptap/extension-italic': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-link': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) '@tiptap/extension-paragraph': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-strike': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-table-cell': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-table-header': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-text': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/extension-underline': specifier: ^2.11.5 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5)) + version: 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0)) '@tiptap/pm': - specifier: ^2.11.5 - version: 2.11.5 + specifier: ^2.12.0 + version: 2.12.0 emoji-mart: specifier: ^5.6.0 version: 5.6.0 @@ -3254,13 +3297,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/dev-scripts: dependencies: @@ -3331,7 +3374,7 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) eslint: specifier: ^8.10.0 version: 8.57.1 @@ -3346,13 +3389,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite-plugin-externalize-deps: specifier: ^0.8.0 - version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) packages/react: dependencies: @@ -3366,14 +3409,14 @@ importers: specifier: ^0.26.4 version: 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tiptap/core': - specifier: ^2.7.1 - version: 2.11.5(@tiptap/pm@2.11.5) + specifier: ^2.12.0 + version: 2.12.0(@tiptap/pm@2.12.0) '@tiptap/pm': - specifier: ^2.7.1 - version: 2.11.5 + specifier: ^2.12.0 + version: 2.12.0 '@tiptap/react': - specifier: ^2.7.1 - version: 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.12.0 + version: 2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) emoji-mart: specifier: ^5.6.0 version: 5.6.0 @@ -3404,7 +3447,7 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) eslint: specifier: ^8.10.0 version: 8.57.1 @@ -3425,16 +3468,16 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite-plugin-externalize-deps: specifier: ^0.8.0 - version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/server-util: dependencies: @@ -3445,11 +3488,11 @@ importers: specifier: 0.30.0 version: link:../react '@tiptap/core': - specifier: ^2.7.1 - version: 2.11.5(@tiptap/pm@2.11.5) + specifier: ^2.12.0 + version: 2.12.0(@tiptap/pm@2.12.0) '@tiptap/pm': - specifier: ^2.7.1 - version: 2.11.5 + specifier: ^2.12.0 + version: 2.12.0 jsdom: specifier: ^25.0.1 version: 25.0.1(canvas@2.11.2(encoding@0.1.13)) @@ -3489,13 +3532,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/shadcn: dependencies: @@ -3586,7 +3629,7 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) eslint: specifier: ^8.10.0 version: 8.57.1 @@ -3601,13 +3644,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + version: 5.4.15(@types/node@20.17.28)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) vite-plugin-externalize-deps: specifier: ^0.8.0 - version: 0.8.0(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + version: 0.8.0(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) packages/xl-ai: dependencies: @@ -3639,8 +3682,8 @@ importers: specifier: ^0.26.4 version: 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tiptap/core': - specifier: ^2.7.1 - version: 2.11.5(@tiptap/pm@2.11.5) + specifier: ^2.12.0 + version: 2.12.0(@tiptap/pm@2.12.0) ai: specifier: ^4.3.15 version: 4.3.15(react@18.3.1)(zod@3.24.2) @@ -3713,7 +3756,7 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) '@vitest/runner': specifier: ^2.0.3 version: 2.1.9 @@ -3746,16 +3789,16 @@ importers: version: 6.21.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite-plugin-externalize-deps: specifier: ^0.8.0 - version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/xl-ai-server: dependencies: @@ -3783,19 +3826,19 @@ importers: version: 6.21.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-node: specifier: ^2.1.6 - version: 2.1.9(@types/node@22.14.1)(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vite-plugin-externalize-deps: specifier: ^0.8.0 - version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/xl-docx-exporter: dependencies: @@ -3838,13 +3881,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) xml-formatter: specifier: ^3.6.3 version: 3.6.5 @@ -3858,8 +3901,8 @@ importers: specifier: 0.30.0 version: link:../react '@tiptap/core': - specifier: ^2.7.1 - version: 2.11.5(@tiptap/pm@2.11.5) + specifier: ^2.12.0 + version: 2.12.0(@tiptap/pm@2.12.0) prosemirror-model: specifier: ^1.25.1 version: 1.25.1 @@ -3894,9 +3937,6 @@ importers: jsdom: specifier: ^21.1.0 version: 21.1.2(canvas@2.11.2(encoding@0.1.13)) - prettier: - specifier: ^2.7.1 - version: 2.8.8 react: specifier: ^18.3.1 version: 18.3.1 @@ -3914,13 +3954,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@21.1.2(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@21.1.2(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) packages/xl-odt-exporter: dependencies: @@ -3960,13 +4000,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) xml-formatter: specifier: ^3.6.3 version: 3.6.5 @@ -4030,13 +4070,13 @@ importers: version: 5.8.2 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) playground: dependencies: @@ -4111,10 +4151,10 @@ importers: version: 2.23.1(react@18.3.1) '@liveblocks/react-blocknote': specifier: ^2.23.1 - version: 2.23.1(1dcb48210094f6b40042d5901eb98d40) + version: 2.23.1(f7e1392d47807ef889348b4cdb3b8972) '@liveblocks/react-tiptap': specifier: ^2.23.1 - version: 2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.11.5)(@tiptap/react@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24)) + version: 2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.12.0)(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24)) '@liveblocks/react-ui': specifier: ^2.23.1 version: 2.23.1(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -4202,7 +4242,7 @@ importers: version: 18.3.5(@types/react@18.3.20) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) eslint: specifier: ^8.10.0 version: 8.57.1 @@ -4214,10 +4254,10 @@ importers: version: 0.2.6(rollup@4.37.0) vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + version: 5.4.15(@types/node@22.14.1)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) shared: dependencies: @@ -4254,13 +4294,13 @@ importers: version: link:../packages/shadcn '@playwright/experimental-ct-react': specifier: 1.51.1 - version: 1.51.1(@types/node@20.17.28)(terser@5.39.0)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + version: 1.51.1(@types/node@20.17.28)(terser@5.39.2)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) '@playwright/test': specifier: 1.51.1 version: 1.51.1 '@tiptap/pm': - specifier: ^2.11.5 - version: 2.11.5 + specifier: ^2.12.0 + version: 2.12.0 '@types/node': specifier: ^20.11.18 version: 20.17.28 @@ -4290,13 +4330,13 @@ importers: version: 5.0.10 vite: specifier: ^5.3.4 - version: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + version: 5.4.15(@types/node@20.17.28)(terser@5.39.2) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + version: 1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) vitest: specifier: ^2.0.3 - version: 2.1.9(@types/node@20.17.28)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(terser@5.39.0) + version: 2.1.9(@types/node@20.17.28)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(terser@5.39.2) packages: @@ -8221,13 +8261,18 @@ packages: peerDependencies: '@tiptap/pm': ^2.7.0 + '@tiptap/core@2.12.0': + resolution: {integrity: sha512-3qX8oGVKFFZzQ0vit+ZolR6AJIATBzmEmjAA0llFhWk4vf3v64p1YcXcJsOBsr5scizJu5L6RYWEFatFwqckRg==} + peerDependencies: + '@tiptap/pm': ^2.7.0 + '@tiptap/extension-bold@2.11.5': resolution: {integrity: sha512-OAq03MHEbl7MtYCUzGuwb0VpOPnM0k5ekMbEaRILFU5ZC7cEAQ36XmPIw1dQayrcuE8GZL35BKub2qtRxyC9iA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-bubble-menu@2.11.5': - resolution: {integrity: sha512-rx+rMd7EEdht5EHLWldpkzJ56SWYA9799b33ustePqhXd6linnokJCzBqY13AfZ9+xp3RsR6C0ZHI9GGea0tIA==} + '@tiptap/extension-bubble-menu@2.12.0': + resolution: {integrity: sha512-DYijoE0igV0Oi+ZppFsp2UrQsM/4HZtmmpD78BJM9zfCbd1YvAUIxmzmXr8uqU18OHd1uQy+/zvuNoUNYyw67g==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 @@ -8250,8 +8295,8 @@ packages: '@tiptap/pm': ^2.7.0 y-prosemirror: ^1.2.11 - '@tiptap/extension-floating-menu@2.11.5': - resolution: {integrity: sha512-HsMI0hV5Lwzm530Z5tBeyNCBNG38eJ3qjfdV2OHlfSf3+KOEfn6a5AUdoNaZO02LF79/8+7BaYU2drafag9cxQ==} + '@tiptap/extension-floating-menu@2.12.0': + resolution: {integrity: sha512-BYpyZx/56KCDksWuJJbhki/uNgt9sACuSSZFH5AN1yS1ISD+EzIxqf6Pzzv8QCoNJ+KcRNVaZsOlOFaJGoyzag==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 @@ -8315,11 +8360,11 @@ packages: peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/pm@2.11.5': - resolution: {integrity: sha512-z9JFtqc5ZOsdQLd9vRnXfTCQ8v5ADAfRt9Nm7SqP6FUHII8E1hs38ACzf5xursmth/VonJYb5+73Pqxk1hGIPw==} + '@tiptap/pm@2.12.0': + resolution: {integrity: sha512-TNzVwpeNzFfHAcYTOKqX9iU4fRxliyoZrCnERR+RRzeg7gWrXrCLubQt1WEx0sojMAfznshSL3M5HGsYjEbYwA==} - '@tiptap/react@2.11.5': - resolution: {integrity: sha512-Dp8eHL1G+R/C4+QzAczyb3t1ovexEIZx9ln7SGEM+cT1KHKAw9XGPRgsp92+NQaYI+EdEb/YqoBOSzQcd18/OQ==} + '@tiptap/react@2.12.0': + resolution: {integrity: sha512-D+PR+4kJO9h8AB/7XyQ/Anw8tqeS2ecv5QemBOCHi9JlMAjytauUrj6IfFBO9RbsCowlBjW5GnSpFhzpk2Gghg==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 @@ -8495,6 +8540,9 @@ packages: '@types/node@20.17.45': resolution: {integrity: sha512-vO9+E1smq+149wsmmLdM8SKVW7gRzLjfo0mU7kiykhV6rL+GEUhUmW7VywJNSxJHQzt9QBIHEo+3SG4MrFTqbA==} + '@types/node@20.17.47': + resolution: {integrity: sha512-3dLX0Upo1v7RvUimvxLeXqwrfyKxUINk0EAM83swP2mlSUcwV73sZy8XhNz8bcZ3VbsfQyC/y6jRdL5tgCNpDQ==} + '@types/node@22.13.13': resolution: {integrity: sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==} @@ -9380,8 +9428,8 @@ packages: caniuse-lite@1.0.30001707: resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} - caniuse-lite@1.0.30001717: - resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==} + caniuse-lite@1.0.30001718: + resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} canvas@2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -10082,8 +10130,8 @@ packages: electron-to-chromium@1.5.126: resolution: {integrity: sha512-AtH1uLcTC72LA4vfYcEJJkrMk/MY/X0ub8Hv7QGAePW2JkeUFHEL/QfS4J77R6M87Sss8O0OcqReSaN1bpyA+Q==} - electron-to-chromium@1.5.151: - resolution: {integrity: sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==} + electron-to-chromium@1.5.155: + resolution: {integrity: sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==} elkjs@0.9.3: resolution: {integrity: sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==} @@ -12677,11 +12725,6 @@ packages: prettier-plugin-svelte: optional: true - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - prettier@3.5.3: resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} engines: {node: '>=14'} @@ -12722,9 +12765,6 @@ packages: property-information@7.0.0: resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} - prosemirror-changeset@2.2.1: - resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==} - prosemirror-changeset@2.3.0: resolution: {integrity: sha512-8wRKhlEwEJ4I13Ju54q2NZR1pVKGTgJ/8XsQ8L5A5uUsQ/YQScQJuEAuh8Bn8i6IwAMjjLRABd9lVli+DlIiVw==} @@ -13730,8 +13770,8 @@ packages: uglify-js: optional: true - terser@5.39.0: - resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} + terser@5.39.2: + resolution: {integrity: sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==} engines: {node: '>=10'} hasBin: true @@ -16836,17 +16876,17 @@ snapshots: '@liveblocks/core@2.23.1': {} - '@liveblocks/react-blocknote@2.23.1(1dcb48210094f6b40042d5901eb98d40)': + '@liveblocks/react-blocknote@2.23.1(f7e1392d47807ef889348b4cdb3b8972)': dependencies: '@blocknote/core': link:packages/core '@blocknote/react': link:packages/react '@liveblocks/client': 2.23.1 '@liveblocks/core': 2.23.1 '@liveblocks/react': 2.23.1(react@18.3.1) - '@liveblocks/react-tiptap': 2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.11.5)(@tiptap/react@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24)) + '@liveblocks/react-tiptap': 2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.12.0)(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24)) '@liveblocks/react-ui': 2.23.1(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@liveblocks/yjs': 2.23.1(yjs@13.6.24) - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) vitest-tsconfig-paths: 3.4.1 @@ -16865,7 +16905,7 @@ snapshots: - y-protocols - yjs - '@liveblocks/react-tiptap@2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.11.5)(@tiptap/react@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24))': + '@liveblocks/react-tiptap@2.23.1(@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)))(@tiptap/pm@2.12.0)(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tiptap/suggestion@2.11.7(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(y-protocols@1.0.6(yjs@13.6.24))': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@liveblocks/client': 2.23.1 @@ -16875,12 +16915,12 @@ snapshots: '@liveblocks/yjs': 2.23.1(yjs@13.6.24) '@radix-ui/react-select': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-toggle': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/extension-collaboration': 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)) - '@tiptap/extension-collaboration-cursor': 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)) - '@tiptap/pm': 2.11.5 - '@tiptap/react': 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tiptap/suggestion': 2.11.7(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) + '@tiptap/core': 2.11.5(@tiptap/pm@2.12.0) + '@tiptap/extension-collaboration': 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)) + '@tiptap/extension-collaboration-cursor': 2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24)) + '@tiptap/pm': 2.12.0 + '@tiptap/react': 2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tiptap/suggestion': 2.11.7(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) cmdk: 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -17637,11 +17677,11 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/experimental-ct-core@1.51.1(@types/node@20.17.28)(terser@5.39.0)': + '@playwright/experimental-ct-core@1.51.1(@types/node@20.17.28)(terser@5.39.2)': dependencies: playwright: 1.51.1 playwright-core: 1.51.1 - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) transitivePeerDependencies: - '@types/node' - less @@ -17652,10 +17692,10 @@ snapshots: - sugarss - terser - '@playwright/experimental-ct-react@1.51.1(@types/node@20.17.28)(terser@5.39.0)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0))': + '@playwright/experimental-ct-react@1.51.1(@types/node@20.17.28)(terser@5.39.2)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2))': dependencies: - '@playwright/experimental-ct-core': 1.51.1(@types/node@20.17.28)(terser@5.39.0) - '@vitejs/plugin-react': 4.3.4(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + '@playwright/experimental-ct-core': 1.51.1(@types/node@20.17.28)(terser@5.39.2) + '@vitejs/plugin-react': 4.3.4(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) transitivePeerDependencies: - '@types/node' - less @@ -19041,93 +19081,97 @@ snapshots: npm-to-yarn: 2.2.1 unist-util-visit: 5.0.0 - '@tiptap/core@2.11.5(@tiptap/pm@2.11.5)': + '@tiptap/core@2.11.5(@tiptap/pm@2.12.0)': + dependencies: + '@tiptap/pm': 2.12.0 + + '@tiptap/core@2.12.0(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/pm': 2.11.5 + '@tiptap/pm': 2.12.0 - '@tiptap/extension-bold@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-bold@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-bubble-menu@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/extension-bubble-menu@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 tippy.js: 6.3.7 - '@tiptap/extension-code@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-code@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24))': + '@tiptap/extension-collaboration-cursor@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) y-prosemirror: 1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24) - '@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24))': + '@tiptap/extension-collaboration@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(y-prosemirror@1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 y-prosemirror: 1.3.4(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.38.1)(y-protocols@1.0.6(yjs@13.6.24))(yjs@13.6.24) - '@tiptap/extension-floating-menu@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/extension-floating-menu@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 tippy.js: 6.3.7 - '@tiptap/extension-gapcursor@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/extension-gapcursor@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 - '@tiptap/extension-history@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/extension-history@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 - '@tiptap/extension-horizontal-rule@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/extension-horizontal-rule@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 - '@tiptap/extension-italic@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-italic@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-link@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/extension-link@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 linkifyjs: 4.2.0 - '@tiptap/extension-paragraph@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-paragraph@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-strike@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-strike@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-table-cell@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-table-cell@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-table-header@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-table-header@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-text@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-text@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/extension-underline@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))': + '@tiptap/extension-underline@2.11.5(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) - '@tiptap/pm@2.11.5': + '@tiptap/pm@2.12.0': dependencies: - prosemirror-changeset: 2.2.1 + prosemirror-changeset: 2.3.0 prosemirror-collab: 1.3.1 prosemirror-commands: 1.7.0 prosemirror-dropcursor: 1.8.1 @@ -19146,22 +19190,22 @@ snapshots: prosemirror-transform: 1.10.4 prosemirror-view: 1.38.1 - '@tiptap/react@2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/extension-bubble-menu': 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) - '@tiptap/extension-floating-menu': 2.11.5(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/extension-bubble-menu': 2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) + '@tiptap/extension-floating-menu': 2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 '@types/use-sync-external-store': 0.0.6 fast-deep-equal: 3.1.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) - '@tiptap/suggestion@2.11.7(@tiptap/core@2.11.5(@tiptap/pm@2.11.5))(@tiptap/pm@2.11.5)': + '@tiptap/suggestion@2.11.7(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)': dependencies: - '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5) - '@tiptap/pm': 2.11.5 + '@tiptap/core': 2.12.0(@tiptap/pm@2.12.0) + '@tiptap/pm': 2.12.0 '@tootallnate/once@2.0.0': {} @@ -19351,6 +19395,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@20.17.47': + dependencies: + undici-types: 6.19.8 + '@types/node@22.13.13': dependencies: undici-types: 6.20.0 @@ -19710,25 +19758,25 @@ snapshots: satori: 0.12.1 yoga-wasm-web: 0.3.3 - '@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) transitivePeerDependencies: - supports-color @@ -19739,23 +19787,23 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0))': + '@vitest/mocker@2.1.9(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@20.17.28)(typescript@5.8.2) - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) - '@vitest/mocker@2.1.9(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0))': + '@vitest/mocker@2.1.9(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@22.14.1)(typescript@5.8.2) - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) '@vitest/pretty-format@2.1.9': dependencies: @@ -19785,7 +19833,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.12 tinyrainbow: 1.2.0 - vitest: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0) + vitest: 2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2) '@vitest/utils@2.1.9': dependencies: @@ -20342,8 +20390,8 @@ snapshots: browserslist@4.24.5: dependencies: - caniuse-lite: 1.0.30001717 - electron-to-chromium: 1.5.151 + caniuse-lite: 1.0.30001718 + electron-to-chromium: 1.5.155 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.5) @@ -20394,7 +20442,7 @@ snapshots: caniuse-lite@1.0.30001707: {} - caniuse-lite@1.0.30001717: {} + caniuse-lite@1.0.30001718: {} canvas@2.11.2(encoding@0.1.13): dependencies: @@ -21101,7 +21149,7 @@ snapshots: electron-to-chromium@1.5.126: {} - electron-to-chromium@1.5.151: {} + electron-to-chromium@1.5.155: {} elkjs@0.9.3: {} @@ -22712,7 +22760,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.17.45 + '@types/node': 20.17.47 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -24641,8 +24689,6 @@ snapshots: dependencies: prettier: 3.5.3 - prettier@2.8.8: {} - prettier@3.5.3: {} pretty-format@27.5.1: @@ -24677,10 +24723,6 @@ snapshots: property-information@7.0.0: {} - prosemirror-changeset@2.2.1: - dependencies: - prosemirror-transform: 1.10.4 - prosemirror-changeset@2.3.0: dependencies: prosemirror-transform: 1.10.4 @@ -25980,10 +26022,10 @@ snapshots: jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.39.0 + terser: 5.39.2 webpack: 5.98.0 - terser@5.39.0: + terser@5.39.2: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.14.1 @@ -26463,13 +26505,13 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - vite-node@2.1.9(@types/node@20.17.28)(terser@5.39.0): + vite-node@2.1.9(@types/node@20.17.28)(terser@5.39.2): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) transitivePeerDependencies: - '@types/node' - less @@ -26481,13 +26523,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@22.14.1)(terser@5.39.0): + vite-node@2.1.9(@types/node@22.14.1)(terser@5.39.2): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) transitivePeerDependencies: - '@types/node' - less @@ -26499,31 +26541,31 @@ snapshots: - supports-color - terser - vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)): + vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 8.57.1 rollup: 2.79.2 - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) - vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)): + vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 8.57.1 rollup: 2.79.2 - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) - vite-plugin-externalize-deps@0.8.0(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)): + vite-plugin-externalize-deps@0.8.0(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)): dependencies: - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) - vite-plugin-externalize-deps@0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)): + vite-plugin-externalize-deps@0.8.0(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)): dependencies: - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) - vite@5.4.15(@types/node@20.17.28)(terser@5.39.0): + vite@5.4.15(@types/node@20.17.28)(terser@5.39.2): dependencies: esbuild: 0.21.5 postcss: 8.5.3 @@ -26531,9 +26573,9 @@ snapshots: optionalDependencies: '@types/node': 20.17.28 fsevents: 2.3.3 - terser: 5.39.0 + terser: 5.39.2 - vite@5.4.15(@types/node@22.14.1)(terser@5.39.0): + vite@5.4.15(@types/node@22.14.1)(terser@5.39.2): dependencies: esbuild: 0.21.5 postcss: 8.5.3 @@ -26541,7 +26583,7 @@ snapshots: optionalDependencies: '@types/node': 22.14.1 fsevents: 2.3.3 - terser: 5.39.0 + terser: 5.39.2 vitest-tsconfig-paths@3.4.1: dependencies: @@ -26552,10 +26594,10 @@ snapshots: transitivePeerDependencies: - supports-color - vitest@2.1.9(@types/node@20.17.28)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(terser@5.39.0): + vitest@2.1.9(@types/node@20.17.28)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(terser@5.39.2): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(vite@5.4.15(@types/node@20.17.28)(terser@5.39.0)) + '@vitest/mocker': 2.1.9(msw@2.7.3(@types/node@20.17.28)(typescript@5.8.2))(vite@5.4.15(@types/node@20.17.28)(terser@5.39.2)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -26571,8 +26613,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.15(@types/node@20.17.28)(terser@5.39.0) - vite-node: 2.1.9(@types/node@20.17.28)(terser@5.39.0) + vite: 5.4.15(@types/node@20.17.28)(terser@5.39.2) + vite-node: 2.1.9(@types/node@20.17.28)(terser@5.39.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.28 @@ -26589,10 +26631,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@21.1.2(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0): + vitest@2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@21.1.2(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + '@vitest/mocker': 2.1.9(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -26608,8 +26650,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) - vite-node: 2.1.9(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) + vite-node: 2.1.9(@types/node@22.14.1)(terser@5.39.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.14.1 @@ -26626,10 +26668,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.0): + vitest@2.1.9(@types/node@22.14.1)(@vitest/ui@2.1.9)(jsdom@25.0.1(canvas@2.11.2(encoding@0.1.13)))(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(terser@5.39.2): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(vite@5.4.15(@types/node@22.14.1)(terser@5.39.0)) + '@vitest/mocker': 2.1.9(msw@2.7.3(@types/node@22.14.1)(typescript@5.8.2))(vite@5.4.15(@types/node@22.14.1)(terser@5.39.2)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -26645,8 +26687,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.15(@types/node@22.14.1)(terser@5.39.0) - vite-node: 2.1.9(@types/node@22.14.1)(terser@5.39.0) + vite: 5.4.15(@types/node@22.14.1)(terser@5.39.2) + vite-node: 2.1.9(@types/node@22.14.1)(terser@5.39.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.14.1 diff --git a/tests/package.json b/tests/package.json index 91e66834e..83b9d58a0 100644 --- a/tests/package.json +++ b/tests/package.json @@ -13,23 +13,23 @@ "clean": "rimraf dist" }, "devDependencies": { - "@types/node": "^20.11.18", "@blocknote/ariakit": "workspace:^", "@blocknote/core": "workspace:^", "@blocknote/mantine": "workspace:^", "@blocknote/react": "workspace:^", "@blocknote/shadcn": "workspace:^", - "@tiptap/pm": "^2.11.5", - "@types/react": "^18.0.25", - "@types/react-dom": "^18.0.9", "@playwright/experimental-ct-react": "1.51.1", "@playwright/test": "1.51.1", + "@tiptap/pm": "^2.12.0", + "@types/node": "^20.11.18", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "eslint": "^8.10.0", "htmlfy": "^0.6.7", - "react-icons": "^5.2.1", - "rimraf": "^5.0.5", "react": "^18.3.1", "react-dom": "^18.3.1", + "react-icons": "^5.2.1", + "rimraf": "^5.0.5", "vite": "^5.3.4", "vite-plugin-eslint": "^1.8.1", "vitest": "^2.0.3"