From 905261a1e73ae5e9ebe44b9f6baa5e5e4407c090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Dupays=20Dexemple?= <3740000+SugarDarius@users.noreply.github.com> Date: Thu, 14 Aug 2025 16:45:23 +0200 Subject: [PATCH 1/4] Add MFA doc page (#2598) Co-authored-by: Chris Nicholas --- assets/account-management/team-mfa-setup.png | Bin 0 -> 212335 bytes .../pages/platform/account-management/mfa.mdx | 38 ++++++++++++++++++ .../platform/account-management/saml.mdx | 12 +++--- docs/routes.json | 4 ++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 assets/account-management/team-mfa-setup.png create mode 100644 docs/pages/platform/account-management/mfa.mdx diff --git a/assets/account-management/team-mfa-setup.png b/assets/account-management/team-mfa-setup.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0b48cd22830dd28acfdcc543b30a9fda752f48 GIT binary patch literal 212335 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ℑuHMpKGWkJS3H$vyDua`8IM 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%0A{=o6KGz^|c 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 + This feature is available as an add-on to Enterprise customers. Reach out to + [sales@liveblocks.io](mailto:sales@liveblocks.io) to enable it on your + account. + + +_Multi-factor authentication_ (MFA) adds an additional layer of security to +teams to manage their members by enforcing them to have an authenticator app. +Does not apply to Single Sign-On members. + +## How it works + +When MFA is enabled, all team members will be required to have an authenticator +app installed on their device. They will be prompted to enter a code from the +app when they log in to the dashboard. + +

+ Liveblocks team setup MFA +
+ +## How to enable MFA + +MFA is available as an add-on to Enterprise customers, reach out to +[sales@liveblocks.io](mailto:sales@liveblocks.io) to enable it on your account. +After it’s enabled, it will work without configuration. diff --git a/docs/pages/platform/account-management/saml.mdx b/docs/pages/platform/account-management/saml.mdx index aa32c2bde6a..ddd7e53b639 100644 --- a/docs/pages/platform/account-management/saml.mdx +++ b/docs/pages/platform/account-management/saml.mdx @@ -36,9 +36,11 @@ automatically assign users to your team with a specific role. /> -### Configuring SSO +## Configuring SSO -1. To configure SSO for your team, you must be an owner of the team (see +After SSO is enabled on your account, you can configure it for your team. + +1. To configure SSO, you must be an owner of the team (see [how to manage team members](/docs/platform/account-management/manage-team-members)). 2. From your dashboard, ensure your team is selected in the scope selector. 3. Navigate to the “Settings” tab and select “Security & Privacy”. @@ -55,7 +57,7 @@ automatically assign users to your team with a specific role. /> -### Enforcing SSO +## Enforcing SSO For additional security, SSO can be enforced for a team so that all team members cannot access any team information unless their current session is authenticated @@ -69,13 +71,13 @@ have access to it. If you would like all users signing up with SSO to be automatically added to your team, please contact us at [support@liveblocks.io](mailto:support@liveblocks.io). -### Authenticating with SSO +## Authenticating with SSO Once you have configured SSO, your team members can use it to log in or sign up to Liveblocks. They only have to enter their email, and they will be redirected to the third-party authentication provider that you configured. -### Supported providers +## Supported providers Liveblocks supports the following third-party identity providers: diff --git a/docs/routes.json b/docs/routes.json index 7bfa1ae323e..331f3ff693c 100644 --- a/docs/routes.json +++ b/docs/routes.json @@ -663,6 +663,10 @@ "title": "Directory sync", "path": "/platform/account-management/directory-sync" }, + { + "title": "Multi-factor authentication", + "path": "/platform/account-management/mfa" + }, { "title": "Delete an account", "path": "/platform/account-management/delete-an-account" From 8e58b14a5b794cce6753d81757433232b095802f Mon Sep 17 00:00:00 2001 From: Nimesh Nayaju Date: Thu, 14 Aug 2025 11:05:22 -0400 Subject: [PATCH 2/4] Add `filterThreads_experimental` field to TipTap extension to allow filtering of thread annotations (#2584) --- .../src/LiveblocksExtension.ts | 37 +++++- .../src/comments/CommentsExtension.ts | 125 +++++++++++++++++- .../src/styles/index.css | 4 +- packages/liveblocks-react-tiptap/src/types.ts | 2 + 4 files changed, 163 insertions(+), 5 deletions(-) diff --git a/packages/liveblocks-react-tiptap/src/LiveblocksExtension.ts b/packages/liveblocks-react-tiptap/src/LiveblocksExtension.ts index 453ce20336d..3f30f2a549c 100644 --- a/packages/liveblocks-react-tiptap/src/LiveblocksExtension.ts +++ b/packages/liveblocks-react-tiptap/src/LiveblocksExtension.ts @@ -24,7 +24,11 @@ import type { Mark as PMMark } from "@tiptap/pm/model"; import { useCallback, useEffect, useRef, useSyncExternalStore } from "react"; import { AiExtension } from "./ai/AiExtension"; -import { CommentsExtension } from "./comments/CommentsExtension"; +import { + areSetsEqual, + CommentsExtension, + FILTERED_THREADS_PLUGIN_KEY, +} from "./comments/CommentsExtension"; import { MentionExtension } from "./mentions/MentionExtension"; import type { LiveblocksExtensionOptions, @@ -210,6 +214,37 @@ export const useLiveblocksExtension = ( useReportTextEditor(textEditorType, options.field ?? DEFAULT_OPTIONS.field); + const prevThreadsRef = useRef | undefined>(undefined); + + useEffect(() => { + if (!isEditorReady) return; + + if (!editor.current) return; + + const newThreads = options.threads_experimental + ? new Set(options.threads_experimental.map((t) => t.id)) + : undefined; + + const hasFilteredThreadsChanged = !areSetsEqual( + prevThreadsRef.current, + newThreads + ); + + if (hasFilteredThreadsChanged) { + prevThreadsRef.current = newThreads; + } + + if (hasFilteredThreadsChanged) { + editor.current.view.dispatch( + editor.current.state.tr.setMeta(FILTERED_THREADS_PLUGIN_KEY, { + filteredThreads: options.threads_experimental + ? new Set(options.threads_experimental.map((t) => t.id)) + : undefined, + }) + ); + } + }, [isEditorReady, options.threads_experimental]); + const createTextMention = useCreateTextMention(); const deleteTextMention = useDeleteTextMention(); diff --git a/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts b/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts index cc6ea97e494..fdf5510e2c1 100644 --- a/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts +++ b/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts @@ -1,7 +1,7 @@ import { Extension, Mark, mergeAttributes } from "@tiptap/core"; import type { Node } from "@tiptap/pm/model"; import type { Transaction } from "@tiptap/pm/state"; -import { Plugin } from "@tiptap/pm/state"; +import { Plugin, PluginKey } from "@tiptap/pm/state"; import { Decoration, DecorationSet } from "@tiptap/pm/view"; import { ySyncPluginKey } from "y-prosemirror"; @@ -18,6 +18,10 @@ type ThreadPluginAction = { data: string | null; }; +export const FILTERED_THREADS_PLUGIN_KEY = new PluginKey<{ + filteredThreads?: Set; +}>(); + /** * Known issues: Overlapping marks are merged when reloading the doc. May be related: * https://github.com/ueberdosis/tiptap/issues/4339 @@ -64,6 +68,22 @@ const Comment = Mark.create({ }, renderHTML({ HTMLAttributes }: { HTMLAttributes: Record }) { + const filteredThreads = this.editor + ? FILTERED_THREADS_PLUGIN_KEY.getState(this.editor.state)?.filteredThreads + : undefined; + const threadId = (HTMLAttributes as { ["data-lb-thread-id"]: string })[ + "data-lb-thread-id" + ]; + if (filteredThreads && !filteredThreads.has(threadId)) { + return [ + "span", + mergeAttributes(HTMLAttributes, { + class: "lb-root lb-tiptap-thread-mark", + "data-hidden": "", + }), + ]; + } + return [ "span", mergeAttributes(HTMLAttributes, { @@ -192,6 +212,15 @@ const Comment = Mark.create({ return; } const threadId = commentMark?.attrs.threadId as string | undefined; + + const filtered = FILTERED_THREADS_PLUGIN_KEY.getState( + view.state + )?.filteredThreads; + if (threadId && filtered && !filtered.has(threadId)) { + selectThread(null); + return; + } + selectThread(threadId ?? null); }, }, @@ -201,7 +230,7 @@ const Comment = Mark.create({ }); export const CommentsExtension = Extension.create< - never, + { filteredThreads?: Set }, CommentsExtensionStorage >({ name: "liveblocksComments", @@ -237,6 +266,19 @@ export const CommentsExtension = Extension.create< return true; }, selectThread: (id: string | null) => () => { + const filtered = FILTERED_THREADS_PLUGIN_KEY.getState( + this.editor.state + )?.filteredThreads; + if (id && filtered && !filtered.has(id)) { + this.editor.view.dispatch( + this.editor.state.tr.setMeta(THREADS_PLUGIN_KEY, { + name: ThreadPluginActions.SET_SELECTED_THREAD_ID, + data: null, + }) + ); + return true; + } + this.editor.view.dispatch( this.editor.state.tr.setMeta(THREADS_PLUGIN_KEY, { name: ThreadPluginActions.SET_SELECTED_THREAD_ID, @@ -294,6 +336,85 @@ export const CommentsExtension = Extension.create< }, }, }), + new Plugin({ + key: FILTERED_THREADS_PLUGIN_KEY, + state: { + init: () => ({ + filteredThreads: this.options.filteredThreads, + }), + apply(tr, value) { + const meta = tr.getMeta(FILTERED_THREADS_PLUGIN_KEY) as + | { filteredThreads?: Set } + | undefined; + if (meta?.filteredThreads) { + return { filteredThreads: meta.filteredThreads }; + } + return value; + }, + }, + view: (view) => { + const syncDom = () => { + const filteredThreads = FILTERED_THREADS_PLUGIN_KEY.getState( + view.state + )?.filteredThreads; + + // Toggle attribute for all comment-mark spans + const els = view.dom.querySelectorAll( + "span.lb-tiptap-thread-mark[data-lb-thread-id]" + ); + els.forEach((el) => { + const id = el.getAttribute("data-lb-thread-id"); + if (!id) return; + if (!filteredThreads || filteredThreads.has(id)) { + el.removeAttribute("data-hidden"); + } else { + el.setAttribute("data-hidden", ""); + } + }); + }; + + queueMicrotask(syncDom); + + return { + update: (view, prevState) => { + const curr = FILTERED_THREADS_PLUGIN_KEY.getState( + view.state + )?.filteredThreads; + const prev = + FILTERED_THREADS_PLUGIN_KEY.getState( + prevState + )?.filteredThreads; + + if ( + !areSetsEqual(prev, curr) || + view.state.doc !== prevState.doc + ) { + syncDom(); + + const selected = THREADS_PLUGIN_KEY.getState( + view.state + )?.selectedThreadId; + if (selected && curr && !curr.has(selected)) { + view.dispatch( + view.state.tr.setMeta(THREADS_PLUGIN_KEY, { + name: ThreadPluginActions.SET_SELECTED_THREAD_ID, + data: null, + }) + ); + } + } + }, + }; + }, + }), ]; }, }); + +export function areSetsEqual(a?: Set, b?: Set): boolean { + if (a === b) return true; + if (!a || !b) return false; + if (a.size !== b.size) return false; + for (const v of a) if (!b.has(v)) return false; + return true; +} diff --git a/packages/liveblocks-react-tiptap/src/styles/index.css b/packages/liveblocks-react-tiptap/src/styles/index.css index 0a8616a179e..2f024155a24 100644 --- a/packages/liveblocks-react-tiptap/src/styles/index.css +++ b/packages/liveblocks-react-tiptap/src/styles/index.css @@ -120,7 +120,7 @@ * Thread mark * *************************************/ -:where(.lb-tiptap-thread-mark:not([data-orphan="true"])) { +:where(.lb-tiptap-thread-mark:not([data-orphan="true"], [data-hidden])) { background: var(--lb-accent-subtle); color: var(--lb-foreground); outline: none; @@ -132,7 +132,7 @@ } :where( - .lb-tiptap-thread-mark:not([data-orphan="true"]) + .lb-tiptap-thread-mark:not([data-orphan="true"], [data-hidden]) .lb-tiptap-thread-mark-selected ) { color: var(--lb-accent); diff --git a/packages/liveblocks-react-tiptap/src/types.ts b/packages/liveblocks-react-tiptap/src/types.ts index f5f4eb1f184..42c9ed7de93 100644 --- a/packages/liveblocks-react-tiptap/src/types.ts +++ b/packages/liveblocks-react-tiptap/src/types.ts @@ -3,6 +3,7 @@ import type { ContextualPromptResponse, Relax, TextEditorType, + ThreadData, } from "@liveblocks/core"; import type { LiveblocksYjsProvider } from "@liveblocks/yjs"; import type { Content, Range } from "@tiptap/core"; @@ -88,6 +89,7 @@ export type LiveblocksExtensionOptions = { mentions?: boolean; // | MentionsConfiguration ai?: boolean | AiConfiguration; offlineSupport_experimental?: boolean; + threads_experimental?: ThreadData[]; initialContent?: Content; enablePermanentUserData?: boolean; /** From 4cee96b78943221f1db41c853d7a12db112749d4 Mon Sep 17 00:00:00 2001 From: Marc Bouchenoire Date: Thu, 14 Aug 2025 17:27:50 +0200 Subject: [PATCH 3/4] Scroll thread annotations into view when they become active (#2599) --- CHANGELOG.md | 7 +++++++ .../src/comments/CommentsExtension.ts | 11 +++++++++++ packages/liveblocks-react-tiptap/src/styles/index.css | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e296c49c750..469b3dc2929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,18 @@ ## vNEXT (not yet published) +## v3.3.4 + ### `@liveblocks/client` - Fix race condition where AI tools were not always executing. This could happen when using `useSendAiMessage` first and then immediately opening the `` afterwards. +### `@liveblocks/react-tiptap` + +- Scroll thread annotations into view when a thread in `AnchoredThreads` is + selected, similarly to `@liveblocks/react-lexical`. + ## v3.3.1 ### `@liveblocks/react-ui` diff --git a/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts b/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts index fdf5510e2c1..3c36fa485b0 100644 --- a/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts +++ b/packages/liveblocks-react-tiptap/src/comments/CommentsExtension.ts @@ -129,6 +129,17 @@ const Comment = Mark.create({ class: "lb-root lb-tiptap-thread-mark-selected", }) ); + + const decoration = this.editor.view.dom.querySelector( + `.lb-tiptap-thread-mark[data-lb-thread-id="${thisThreadId}"]` + ); + + if (decoration) { + decoration.scrollIntoView({ + behavior: "smooth", + block: "nearest", + }); + } } } }); diff --git a/packages/liveblocks-react-tiptap/src/styles/index.css b/packages/liveblocks-react-tiptap/src/styles/index.css index 2f024155a24..7d6e8c13a3f 100644 --- a/packages/liveblocks-react-tiptap/src/styles/index.css +++ b/packages/liveblocks-react-tiptap/src/styles/index.css @@ -141,6 +141,11 @@ text-underline-offset: 2px; } +.lb-tiptap-thread-mark { + /* Add some space above/below when scrolling to it. */ + scroll-margin-block: var(--lb-spacing); +} + /************************************* * Anchored threads * *************************************/ From 83efd52f39fd8e7cef12dd8724c6f420fcd56997 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 14 Aug 2025 15:33:50 +0000 Subject: [PATCH 4/4] Bump to 3.3.4 --- package-lock.json | 98 +++++++++---------- packages/liveblocks-client/package.json | 4 +- packages/liveblocks-core/package.json | 2 +- packages/liveblocks-emails/package.json | 6 +- packages/liveblocks-node-lexical/package.json | 6 +- .../liveblocks-node-prosemirror/package.json | 6 +- packages/liveblocks-node/package.json | 4 +- .../liveblocks-react-blocknote/package.json | 14 +-- .../liveblocks-react-lexical/package.json | 12 +-- packages/liveblocks-react-tiptap/package.json | 12 +-- packages/liveblocks-react-ui/package.json | 8 +- packages/liveblocks-react/package.json | 6 +- packages/liveblocks-redux/package.json | 6 +- packages/liveblocks-yjs/package.json | 6 +- packages/liveblocks-zustand/package.json | 6 +- 15 files changed, 98 insertions(+), 98 deletions(-) diff --git a/package-lock.json b/package-lock.json index 87768a52576..98584af26ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37073,10 +37073,10 @@ }, "packages/liveblocks-client": { "name": "@liveblocks/client", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/core": "3.3.3" + "@liveblocks/core": "3.3.4" }, "devDependencies": { "@liveblocks/eslint-config": "*", @@ -37085,7 +37085,7 @@ }, "packages/liveblocks-core": { "name": "@liveblocks/core", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "devDependencies": { "@liveblocks/eslint-config": "*", @@ -37103,11 +37103,11 @@ }, "packages/liveblocks-emails": { "name": "@liveblocks/emails", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/core": "3.3.3", - "@liveblocks/node": "3.3.3" + "@liveblocks/core": "3.3.4", + "@liveblocks/node": "3.3.4" }, "devDependencies": { "@liveblocks/eslint-config": "*", @@ -37126,10 +37126,10 @@ }, "packages/liveblocks-node": { "name": "@liveblocks/node", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/core": "3.3.3", + "@liveblocks/core": "3.3.4", "@stablelib/base64": "^1.0.1", "fast-sha256": "^1.3.0", "node-fetch": "^2.6.1" @@ -37144,11 +37144,11 @@ }, "packages/liveblocks-node-lexical": { "name": "@liveblocks/node-lexical", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/core": "3.3.3", - "@liveblocks/node": "3.3.3", + "@liveblocks/core": "3.3.4", + "@liveblocks/node": "3.3.4", "yjs": "^13.6.18" }, "devDependencies": { @@ -37165,11 +37165,11 @@ }, "packages/liveblocks-node-prosemirror": { "name": "@liveblocks/node-prosemirror", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/core": "3.3.3", - "@liveblocks/node": "3.3.3", + "@liveblocks/core": "3.3.4", + "@liveblocks/node": "3.3.4", "yjs": "^13.6.20" }, "devDependencies": { @@ -37189,11 +37189,11 @@ }, "packages/liveblocks-react": { "name": "@liveblocks/react", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3" + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4" }, "devDependencies": { "@liveblocks/eslint-config": "*", @@ -37223,15 +37223,15 @@ }, "packages/liveblocks-react-blocknote": { "name": "@liveblocks/react-blocknote", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", - "@liveblocks/react-tiptap": "3.3.3", - "@liveblocks/react-ui": "3.3.3", - "@liveblocks/yjs": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", + "@liveblocks/react-tiptap": "3.3.4", + "@liveblocks/react-ui": "3.3.4", + "@liveblocks/yjs": "3.3.4", "@tiptap/core": "^2.7.2", "vitest-tsconfig-paths": "^3.4.1" }, @@ -37268,15 +37268,15 @@ }, "packages/liveblocks-react-lexical": { "name": "@liveblocks/react-lexical", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { "@floating-ui/react-dom": "^2.1.1", - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", - "@liveblocks/react-ui": "3.3.3", - "@liveblocks/yjs": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", + "@liveblocks/react-ui": "3.3.4", + "@liveblocks/yjs": "3.3.4", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-toggle": "^1.1.0", "yjs": "^13.6.18" @@ -37805,15 +37805,15 @@ }, "packages/liveblocks-react-tiptap": { "name": "@liveblocks/react-tiptap", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { "@floating-ui/react-dom": "^2.1.2", - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", - "@liveblocks/react-ui": "3.3.3", - "@liveblocks/yjs": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", + "@liveblocks/react-ui": "3.3.4", + "@liveblocks/yjs": "3.3.4", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-toggle": "^1.1.0", "@tiptap/core": "^2.7.2", @@ -38338,13 +38338,13 @@ }, "packages/liveblocks-react-ui": { "name": "@liveblocks/react-ui", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { "@floating-ui/react-dom": "^2.1.2", - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", "@radix-ui/react-dropdown-menu": "^2.1.2", "@radix-ui/react-popover": "^1.1.2", "@radix-ui/react-slot": "^1.1.0", @@ -39672,11 +39672,11 @@ }, "packages/liveblocks-redux": { "name": "@liveblocks/redux", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3" + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4" }, "devDependencies": { "@liveblocks/eslint-config": "*", @@ -39833,10 +39833,10 @@ }, "packages/liveblocks-yjs": { "name": "@liveblocks/yjs", - "version": "3.3.3", + "version": "3.3.4", "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", "@noble/hashes": "^1.8.0", "js-base64": "^3.7.7", "y-indexeddb": "^9.0.12" @@ -39902,11 +39902,11 @@ }, "packages/liveblocks-zustand": { "name": "@liveblocks/zustand", - "version": "3.3.3", + "version": "3.3.4", "license": "Apache-2.0", "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3" + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4" }, "devDependencies": { "@liveblocks/eslint-config": "*", diff --git a/packages/liveblocks-client/package.json b/packages/liveblocks-client/package.json index a0ad8ebf8b2..7a8653e42bb 100644 --- a/packages/liveblocks-client/package.json +++ b/packages/liveblocks-client/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/client", - "version": "3.3.3", + "version": "3.3.4", "description": "A client that lets you interact with Liveblocks servers. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -34,7 +34,7 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/core": "3.3.3" + "@liveblocks/core": "3.3.4" }, "devDependencies": { "@liveblocks/eslint-config": "*", diff --git a/packages/liveblocks-core/package.json b/packages/liveblocks-core/package.json index c01bea4ff70..c9ac96302a4 100644 --- a/packages/liveblocks-core/package.json +++ b/packages/liveblocks-core/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/core", - "version": "3.3.3", + "version": "3.3.4", "description": "Private internals for Liveblocks. DO NOT import directly from this package!", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/liveblocks-emails/package.json b/packages/liveblocks-emails/package.json index 30471db7c93..c9717f5c90d 100644 --- a/packages/liveblocks-emails/package.json +++ b/packages/liveblocks-emails/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/emails", - "version": "3.3.3", + "version": "3.3.4", "description": "A set of functions and utilities to make sending emails based on Liveblocks notification events easy. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -35,8 +35,8 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/core": "3.3.3", - "@liveblocks/node": "3.3.3" + "@liveblocks/core": "3.3.4", + "@liveblocks/node": "3.3.4" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc" diff --git a/packages/liveblocks-node-lexical/package.json b/packages/liveblocks-node-lexical/package.json index cf839c57bb2..552e66f3c0e 100644 --- a/packages/liveblocks-node-lexical/package.json +++ b/packages/liveblocks-node-lexical/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/node-lexical", - "version": "3.3.3", + "version": "3.3.4", "description": "A server-side utility that lets you modify lexical documents hosted in Liveblocks.", "license": "Apache-2.0", "type": "module", @@ -34,8 +34,8 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/core": "3.3.3", - "@liveblocks/node": "3.3.3", + "@liveblocks/core": "3.3.4", + "@liveblocks/node": "3.3.4", "yjs": "^13.6.18" }, "peerDependencies": { diff --git a/packages/liveblocks-node-prosemirror/package.json b/packages/liveblocks-node-prosemirror/package.json index 6f742a747e6..7f8431a6c61 100644 --- a/packages/liveblocks-node-prosemirror/package.json +++ b/packages/liveblocks-node-prosemirror/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/node-prosemirror", - "version": "3.3.3", + "version": "3.3.4", "description": "A server-side utility that lets you modify prosemirror and tiptap documents hosted in Liveblocks.", "license": "Apache-2.0", "type": "module", @@ -34,8 +34,8 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/core": "3.3.3", - "@liveblocks/node": "3.3.3", + "@liveblocks/core": "3.3.4", + "@liveblocks/node": "3.3.4", "yjs": "^13.6.20" }, "peerDependencies": { diff --git a/packages/liveblocks-node/package.json b/packages/liveblocks-node/package.json index fcaf239ded6..9f1292a245f 100644 --- a/packages/liveblocks-node/package.json +++ b/packages/liveblocks-node/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/node", - "version": "3.3.3", + "version": "3.3.4", "description": "A server-side utility that lets you set up a Liveblocks authentication endpoint. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -34,7 +34,7 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/core": "3.3.3", + "@liveblocks/core": "3.3.4", "@stablelib/base64": "^1.0.1", "fast-sha256": "^1.3.0", "node-fetch": "^2.6.1" diff --git a/packages/liveblocks-react-blocknote/package.json b/packages/liveblocks-react-blocknote/package.json index 6a91b65031c..9063d4c914a 100644 --- a/packages/liveblocks-react-blocknote/package.json +++ b/packages/liveblocks-react-blocknote/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/react-blocknote", - "version": "3.3.3", + "version": "3.3.4", "description": "An integration of BlockNote + React to enable collaboration, comments, live cursors, and more with Liveblocks.", "license": "Apache-2.0", "type": "module", @@ -42,12 +42,12 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", - "@liveblocks/react-tiptap": "3.3.3", - "@liveblocks/react-ui": "3.3.3", - "@liveblocks/yjs": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", + "@liveblocks/react-tiptap": "3.3.4", + "@liveblocks/react-ui": "3.3.4", + "@liveblocks/yjs": "3.3.4", "@tiptap/core": "^2.7.2", "vitest-tsconfig-paths": "^3.4.1" }, diff --git a/packages/liveblocks-react-lexical/package.json b/packages/liveblocks-react-lexical/package.json index 2ef7a461b01..d0f5000572e 100644 --- a/packages/liveblocks-react-lexical/package.json +++ b/packages/liveblocks-react-lexical/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/react-lexical", - "version": "3.3.3", + "version": "3.3.4", "description": "An integration of Lexical + React to enable collaboration, comments, live cursors, and more with Liveblocks.", "license": "Apache-2.0", "type": "module", @@ -43,11 +43,11 @@ }, "dependencies": { "@floating-ui/react-dom": "^2.1.1", - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", - "@liveblocks/react-ui": "3.3.3", - "@liveblocks/yjs": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", + "@liveblocks/react-ui": "3.3.4", + "@liveblocks/yjs": "3.3.4", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-toggle": "^1.1.0", "yjs": "^13.6.18" diff --git a/packages/liveblocks-react-tiptap/package.json b/packages/liveblocks-react-tiptap/package.json index 370627075ae..5a7a93710e0 100644 --- a/packages/liveblocks-react-tiptap/package.json +++ b/packages/liveblocks-react-tiptap/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/react-tiptap", - "version": "3.3.3", + "version": "3.3.4", "description": "An integration of TipTap + React to enable collaboration, comments, live cursors, and more with Liveblocks.", "license": "Apache-2.0", "type": "module", @@ -43,11 +43,11 @@ }, "dependencies": { "@floating-ui/react-dom": "^2.1.2", - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", - "@liveblocks/react-ui": "3.3.3", - "@liveblocks/yjs": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", + "@liveblocks/react-ui": "3.3.4", + "@liveblocks/yjs": "3.3.4", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-toggle": "^1.1.0", "@tiptap/core": "^2.7.2", diff --git a/packages/liveblocks-react-ui/package.json b/packages/liveblocks-react-ui/package.json index 4f7dd8c6874..91146008a06 100644 --- a/packages/liveblocks-react-ui/package.json +++ b/packages/liveblocks-react-ui/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/react-ui", - "version": "3.3.3", + "version": "3.3.4", "description": "A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -76,9 +76,9 @@ }, "dependencies": { "@floating-ui/react-dom": "^2.1.2", - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", - "@liveblocks/react": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", + "@liveblocks/react": "3.3.4", "@radix-ui/react-dropdown-menu": "^2.1.2", "@radix-ui/react-popover": "^1.1.2", "@radix-ui/react-slot": "^1.1.0", diff --git a/packages/liveblocks-react/package.json b/packages/liveblocks-react/package.json index d9651dd9ff7..27695db5c45 100644 --- a/packages/liveblocks-react/package.json +++ b/packages/liveblocks-react/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/react", - "version": "3.3.3", + "version": "3.3.4", "description": "A set of React hooks and providers to use Liveblocks declaratively. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -61,8 +61,8 @@ "showdeps": "depcruise src --include-only '^src' --exclude='__tests__' --output-type dot | dot -T svg > /tmp/dependency-graph.svg && open /tmp/dependency-graph.svg" }, "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3" + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4" }, "peerDependencies": { "@types/react": "*", diff --git a/packages/liveblocks-redux/package.json b/packages/liveblocks-redux/package.json index eed10741dcc..048786b5984 100644 --- a/packages/liveblocks-redux/package.json +++ b/packages/liveblocks-redux/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/redux", - "version": "3.3.3", + "version": "3.3.4", "description": "A store enhancer to integrate Liveblocks into Redux stores. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -33,8 +33,8 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3" + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4" }, "peerDependencies": { "redux": "^4 || ^5" diff --git a/packages/liveblocks-yjs/package.json b/packages/liveblocks-yjs/package.json index 844abadefec..0b45e19ea46 100644 --- a/packages/liveblocks-yjs/package.json +++ b/packages/liveblocks-yjs/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/yjs", - "version": "3.3.3", + "version": "3.3.4", "description": "Integrate your existing or new Yjs documents with Liveblocks.", "icense": "Apache-2.0", "type": "module", @@ -33,8 +33,8 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3", + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4", "@noble/hashes": "^1.8.0", "js-base64": "^3.7.7", "y-indexeddb": "^9.0.12" diff --git a/packages/liveblocks-zustand/package.json b/packages/liveblocks-zustand/package.json index cda5da7a59d..eede92bab50 100644 --- a/packages/liveblocks-zustand/package.json +++ b/packages/liveblocks-zustand/package.json @@ -1,6 +1,6 @@ { "name": "@liveblocks/zustand", - "version": "3.3.3", + "version": "3.3.4", "description": "A middleware for Zustand to automatically synchronize your stores with Liveblocks. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.", "license": "Apache-2.0", "type": "module", @@ -34,8 +34,8 @@ "test:watch": "NODE_OPTIONS=\"--no-deprecation\" vitest" }, "dependencies": { - "@liveblocks/client": "3.3.3", - "@liveblocks/core": "3.3.3" + "@liveblocks/client": "3.3.4", + "@liveblocks/core": "3.3.4" }, "peerDependencies": { "zustand": "^5.0.1"