@liveblocks/react 3.20.0-pre1 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/version.ts
2
2
  var PKG_NAME = "@liveblocks/react";
3
- var PKG_VERSION = "3.20.0-pre1";
3
+ var PKG_VERSION = "3.20.0";
4
4
  var PKG_FORMAT = "cjs";
5
5
 
6
6
  // src/ClientSideSuspense.tsx
@@ -20,4 +20,4 @@ function ClientSideSuspense(props) {
20
20
 
21
21
 
22
22
  exports.PKG_NAME = PKG_NAME; exports.PKG_VERSION = PKG_VERSION; exports.PKG_FORMAT = PKG_FORMAT; exports.ClientSideSuspense = ClientSideSuspense;
23
- //# sourceMappingURL=chunk-4VMS434K.cjs.map
23
+ //# sourceMappingURL=chunk-IQO2KV6B.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-4VMS434K.cjs","../src/version.ts","../src/ClientSideSuspense.tsx"],"names":[],"mappings":"AAAA;ACGO,IAAM,SAAA,EAAW,mBAAA;AACjB,IAAM,YAAA,EAAiD,aAAA;AACvD,IAAM,WAAA,EAAgD,KAAA;ADD7D;AACA;AEJA,8BAA8C;AAkC1C,+CAAA;AAVG,SAAS,kBAAA,CAAmB,KAAA,EAAc;AAC/C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,KAAc,CAAA;AAE5C,EAAA,8BAAA,CAAU,EAAA,GAAM;AAGd,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,uBACE,6BAAA,eAAC,EAAA,EAAS,QAAA,EAAU,KAAA,CAAM,QAAA,EACvB,QAAA,EAAA,QAAA,EACG,OAAO,KAAA,CAAM,SAAA,IAAa,WAAA,EACxB,KAAA,CAAM,QAAA,CAAS,EAAA,EACf,KAAA,CAAM,SAAA,EACR,KAAA,CAAM,SAAA,CACZ,CAAA;AAEJ;AF5BA;AACA;AACE;AACA;AACA;AACA;AACF,iJAAC","file":"/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-4VMS434K.cjs","sourcesContent":[null,"declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n","import type { ReactNode } from \"react\";\nimport { Suspense, useEffect, useState } from \"react\";\n\ntype Props = {\n fallback: ReactNode;\n children: (() => ReactNode | undefined) | ReactNode | undefined;\n};\n\n/**\n * Almost like a normal <Suspense> component, except that for server-side\n * renders, the fallback will be used.\n *\n * The child props will have to be provided in a function, i.e. change:\n *\n * <Suspense fallback={<Loading />}>\n * <MyRealComponent a={1} />\n * </Suspense>\n *\n * To:\n *\n * <ClientSideSuspense fallback={<Loading />}>\n * <MyRealComponent a={1} />\n * </ClientSideSuspense>\n *\n */\nexport function ClientSideSuspense(props: Props) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n // Effects are never executed on the server side. The point of this is to\n // delay the flipping of this boolean until after hydration has happened.\n setMounted(true);\n }, []);\n\n return (\n <Suspense fallback={props.fallback}>\n {mounted\n ? typeof props.children === \"function\"\n ? props.children()\n : props.children\n : props.fallback}\n </Suspense>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-IQO2KV6B.cjs","../src/version.ts","../src/ClientSideSuspense.tsx"],"names":[],"mappings":"AAAA;ACGO,IAAM,SAAA,EAAW,mBAAA;AACjB,IAAM,YAAA,EAAiD,QAAA;AACvD,IAAM,WAAA,EAAgD,KAAA;ADD7D;AACA;AEJA,8BAA8C;AAkC1C,+CAAA;AAVG,SAAS,kBAAA,CAAmB,KAAA,EAAc;AAC/C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,KAAc,CAAA;AAE5C,EAAA,8BAAA,CAAU,EAAA,GAAM;AAGd,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,uBACE,6BAAA,eAAC,EAAA,EAAS,QAAA,EAAU,KAAA,CAAM,QAAA,EACvB,QAAA,EAAA,QAAA,EACG,OAAO,KAAA,CAAM,SAAA,IAAa,WAAA,EACxB,KAAA,CAAM,QAAA,CAAS,EAAA,EACf,KAAA,CAAM,SAAA,EACR,KAAA,CAAM,SAAA,CACZ,CAAA;AAEJ;AF5BA;AACA;AACE;AACA;AACA;AACA;AACF,iJAAC","file":"/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-IQO2KV6B.cjs","sourcesContent":[null,"declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n","import type { ReactNode } from \"react\";\nimport { Suspense, useEffect, useState } from \"react\";\n\ntype Props = {\n fallback: ReactNode;\n children: (() => ReactNode | undefined) | ReactNode | undefined;\n};\n\n/**\n * Almost like a normal <Suspense> component, except that for server-side\n * renders, the fallback will be used.\n *\n * The child props will have to be provided in a function, i.e. change:\n *\n * <Suspense fallback={<Loading />}>\n * <MyRealComponent a={1} />\n * </Suspense>\n *\n * To:\n *\n * <ClientSideSuspense fallback={<Loading />}>\n * <MyRealComponent a={1} />\n * </ClientSideSuspense>\n *\n */\nexport function ClientSideSuspense(props: Props) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n // Effects are never executed on the server side. The point of this is to\n // delay the flipping of this boolean until after hydration has happened.\n setMounted(true);\n }, []);\n\n return (\n <Suspense fallback={props.fallback}>\n {mounted\n ? typeof props.children === \"function\"\n ? props.children()\n : props.children\n : props.fallback}\n </Suspense>\n );\n}\n"]}
@@ -296,6 +296,7 @@ var use = _nullishCoalesce(reactUse, () => ( ((promise) => {
296
296
 
297
297
 
298
298
 
299
+
299
300
 
300
301
 
301
302
  // src/lib/autobind.ts
@@ -860,17 +861,21 @@ function createStore_forUrlsMetadata() {
860
861
  }
861
862
  function createStore_forPermissionHints() {
862
863
  const permissionsByRoomId = new (0, _core.DefaultMap)(
863
- () => new (0, _core.Signal)(/* @__PURE__ */ new Set())
864
+ () => new (0, _core.Signal)(void 0)
864
865
  );
865
- function update(newHints) {
866
+ function update(newHints, requestedAt, roomIds) {
866
867
  _core.batch.call(void 0, () => {
867
- for (const [roomId, permissions] of Object.entries(newHints)) {
868
+ const updatedRoomIds = roomIds === void 0 ? Object.keys(newHints) : /* @__PURE__ */ new Set([...roomIds, ...Object.keys(newHints)]);
869
+ for (const roomId of updatedRoomIds) {
868
870
  const signal = permissionsByRoomId.getOrCreate(roomId);
869
- const existingPermissions = new Set(signal.get());
870
- for (const permission of permissions) {
871
- existingPermissions.add(permission);
871
+ const existingHint = signal.get();
872
+ if (existingHint !== void 0 && existingHint.requestedAt > requestedAt) {
873
+ continue;
872
874
  }
873
- signal.set(existingPermissions);
875
+ signal.set({
876
+ requestedAt,
877
+ permissions: _core.permissionMatrixFromScopes.call(void 0, _nullishCoalesce(newHints[roomId], () => ( [])))
878
+ });
874
879
  }
875
880
  });
876
881
  }
@@ -1133,7 +1138,10 @@ var UmbrellaStore = class {
1133
1138
  result.inboxNotifications,
1134
1139
  result.subscriptions
1135
1140
  );
1136
- this.permissionHints.update(result.permissionHints);
1141
+ this.permissionHints.update(
1142
+ result.permissionHints,
1143
+ result.requestedAt
1144
+ );
1137
1145
  if (this.#userThreadsLastRequestedAt === null) {
1138
1146
  this.#userThreadsLastRequestedAt = result.requestedAt;
1139
1147
  }
@@ -1179,7 +1187,11 @@ var UmbrellaStore = class {
1179
1187
  result.inboxNotifications,
1180
1188
  result.subscriptions
1181
1189
  );
1182
- this.permissionHints.update(result.permissionHints);
1190
+ this.permissionHints.update(
1191
+ result.permissionHints,
1192
+ result.requestedAt,
1193
+ [roomId]
1194
+ );
1183
1195
  const lastRequestedAt = this.#roomThreadsLastRequestedAtByRoom.get(roomId);
1184
1196
  if (lastRequestedAt === void 0 || lastRequestedAt > result.requestedAt) {
1185
1197
  this.#roomThreadsLastRequestedAtByRoom.set(
@@ -1821,7 +1833,7 @@ var UmbrellaStore = class {
1821
1833
  updates.inboxNotifications.deleted,
1822
1834
  updates.subscriptions.deleted
1823
1835
  );
1824
- this.permissionHints.update(updates.permissionHints);
1836
+ this.permissionHints.update(updates.permissionHints, updates.requestedAt);
1825
1837
  if (lastRequestedAt < updates.requestedAt) {
1826
1838
  this.#roomThreadsLastRequestedAtByRoom.set(roomId, updates.requestedAt);
1827
1839
  }
@@ -1846,7 +1858,7 @@ var UmbrellaStore = class {
1846
1858
  result.inboxNotifications.deleted,
1847
1859
  result.subscriptions.deleted
1848
1860
  );
1849
- this.permissionHints.update(result.permissionHints);
1861
+ this.permissionHints.update(result.permissionHints, result.requestedAt);
1850
1862
  }
1851
1863
  async fetchRoomVersionsDeltaUpdate(roomId, signal) {
1852
1864
  const lastRequestedAt = this.#roomVersionsLastRequestedAtByRoom.get(roomId);
@@ -3357,7 +3369,6 @@ function LiveblocksProvider(props) {
3357
3369
  lostConnectionTimeout: useInitial(o.lostConnectionTimeout),
3358
3370
  backgroundKeepAliveTimeout: useInitial(o.backgroundKeepAliveTimeout),
3359
3371
  polyfills: useInitial(o.polyfills),
3360
- unstable_streamData: useInitial(o.unstable_streamData),
3361
3372
  preventUnsavedChanges: useInitial(o.preventUnsavedChanges),
3362
3373
  badgeLocation: useInitial(o.badgeLocation),
3363
3374
  authEndpoint: useInitialUnlessFunction(o.authEndpoint),
@@ -3575,6 +3586,7 @@ var _client = require('@liveblocks/client');
3575
3586
 
3576
3587
 
3577
3588
 
3589
+
3578
3590
 
3579
3591
 
3580
3592
  // src/use-scroll-to-comment-on-load-effect.ts
@@ -3627,7 +3639,7 @@ function makeMutationContext(room) {
3627
3639
  const needsStorage = `${cannotUseUntil} storage has been loaded`;
3628
3640
  return {
3629
3641
  get storage() {
3630
- const mutableRoot = room.getStorageSnapshot();
3642
+ const mutableRoot = room.getStorageOrNull();
3631
3643
  if (mutableRoot === null) {
3632
3644
  throw new Error(needsStorage);
3633
3645
  }
@@ -3796,8 +3808,7 @@ function RoomProviderInner(props) {
3796
3808
  {
3797
3809
  initialPresence: props.initialPresence,
3798
3810
  initialStorage: props.initialStorage,
3799
- autoConnect: _nullishCoalesce(props.autoConnect, () => ( typeof window !== "undefined")),
3800
- engine: props.engine
3811
+ autoConnect: _nullishCoalesce(props.autoConnect, () => ( typeof window !== "undefined"))
3801
3812
  },
3802
3813
  roomId
3803
3814
  );
@@ -4224,7 +4235,7 @@ function useMutableStorageRoot_withRoomContext(RoomContext) {
4224
4235
  RoomContext
4225
4236
  );
4226
4237
  const subscribe = room.events.storageDidLoad.subscribeOnce;
4227
- const getSnapshot = room.getStorageSnapshot;
4238
+ const getSnapshot = room.getStorageOrNull;
4228
4239
  const getServerSnapshot = alwaysNull;
4229
4240
  return _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getServerSnapshot);
4230
4241
  }
@@ -5572,7 +5583,38 @@ function useAttachmentUrlSuspense(attachmentId) {
5572
5583
  function useRoomPermissions(roomId) {
5573
5584
  const client = useClient();
5574
5585
  const store = getRoomExtrasForClient(client).store;
5575
- return useSignal(store.permissionHints.getPermissionForRoom\u03A3(roomId));
5586
+ return _optionalChain([useSignal, 'call', _82 => _82(store.permissionHints.getPermissionForRoom\u03A3(roomId)), 'optionalAccess', _83 => _83.permissions]);
5587
+ }
5588
+ function useHasPermissionAccess(roomId, resource, requiredAccess) {
5589
+ const permissions = useRoomPermissions(roomId);
5590
+ const fallback = useSelfAccessFallback(roomId, resource, requiredAccess);
5591
+ return permissions !== void 0 ? _core.hasPermissionAccess.call(void 0, permissions, resource, requiredAccess) : fallback;
5592
+ }
5593
+ function useSelfAccessFallback(roomId, resource, requiredAccess) {
5594
+ const room = useRoom_withRoomContext(GlobalRoomContext, {
5595
+ allowOutsideRoom: true
5596
+ });
5597
+ const subscribe = _react.useCallback.call(void 0,
5598
+ (callback) => {
5599
+ if (room === null || room.id !== roomId) {
5600
+ return () => {
5601
+ };
5602
+ }
5603
+ return room.events.self.subscribe(callback);
5604
+ },
5605
+ [room, roomId]
5606
+ );
5607
+ const getSnapshot = _react.useCallback.call(void 0, () => {
5608
+ const self = _optionalChain([room, 'optionalAccess', _84 => _84.id]) === roomId ? room.getSelf() : null;
5609
+ if (resource === "comments" && requiredAccess === "write") {
5610
+ return _nullishCoalesce(_optionalChain([self, 'optionalAccess', _85 => _85.canComment]), () => ( true));
5611
+ }
5612
+ if (resource === "storage" && requiredAccess === "write") {
5613
+ return _nullishCoalesce(_optionalChain([self, 'optionalAccess', _86 => _86.canWrite]), () => ( true));
5614
+ }
5615
+ return false;
5616
+ }, [resource, requiredAccess, room, roomId]);
5617
+ return _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getSnapshot);
5576
5618
  }
5577
5619
  function createRoomContext(client) {
5578
5620
  const BoundRoomContext = _react.createContext.call(void 0, null);
@@ -6185,5 +6227,6 @@ var _useUpdateMyPresence = useUpdateMyPresence;
6185
6227
 
6186
6228
 
6187
6229
 
6188
- exports.ClientContext = ClientContext; exports.useClientOrNull = useClientOrNull; exports.useClient = useClient; exports.GlobalRoomContext = GlobalRoomContext; exports.useLatest = useLatest; exports.useInitial = useInitial; exports.RegisterAiKnowledge = RegisterAiKnowledge; exports.RegisterAiTool = RegisterAiTool; exports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector; exports.useSignal = useSignal; exports.getUmbrellaStoreForClient = getUmbrellaStoreForClient; exports.useCreateAiChat = useCreateAiChat; exports.useDeleteAiChat = useDeleteAiChat; exports.useAiChatStatus = useAiChatStatus; exports.useSendAiMessage = useSendAiMessage; exports.LiveblocksProvider = LiveblocksProvider; exports.createLiveblocksContext = createLiveblocksContext; exports.useInboxNotifications = useInboxNotifications; exports.useInboxNotificationsSuspense = useInboxNotificationsSuspense; exports.useMarkAllInboxNotificationsAsRead = useMarkAllInboxNotificationsAsRead; exports.useMarkInboxNotificationAsRead = useMarkInboxNotificationAsRead; exports.useDeleteAllInboxNotifications = useDeleteAllInboxNotifications; exports.useDeleteInboxNotification = useDeleteInboxNotification; exports.useUnreadInboxNotificationsCount = useUnreadInboxNotificationsCount; exports.useUnreadInboxNotificationsCountSuspense = useUnreadInboxNotificationsCountSuspense; exports.useNotificationSettings = useNotificationSettings; exports.useNotificationSettingsSuspense = useNotificationSettingsSuspense; exports.useUpdateNotificationSettings = useUpdateNotificationSettings; exports.useRoomInfo = useRoomInfo; exports.useRoomInfoSuspense = useRoomInfoSuspense; exports.useGroupInfo = useGroupInfo; exports.useGroupInfoSuspense = useGroupInfoSuspense; exports._useInboxNotificationThread = _useInboxNotificationThread; exports._useUser = _useUser; exports._useUserSuspense = _useUserSuspense; exports._useUserThreads_experimental = _useUserThreads_experimental; exports._useUserThreadsSuspense_experimental = _useUserThreadsSuspense_experimental; exports._useAiChats = _useAiChats; exports._useAiChatsSuspense = _useAiChatsSuspense; exports._useAiChat = _useAiChat; exports._useAiChatSuspense = _useAiChatSuspense; exports._useAiChatMessages = _useAiChatMessages; exports._useAiChatMessagesSuspense = _useAiChatMessagesSuspense; exports._useUrlMetadata = _useUrlMetadata; exports._useUrlMetadataSuspense = _useUrlMetadataSuspense; exports.useSyncStatus = useSyncStatus; exports.useErrorListener = useErrorListener; exports.useStatus = useStatus; exports.useReportTextEditor = useReportTextEditor; exports.useYjsProvider = useYjsProvider; exports.useCreateTextMention = useCreateTextMention; exports.useDeleteTextMention = useDeleteTextMention; exports.useResolveMentionSuggestions = useResolveMentionSuggestions; exports.useMentionSuggestionsCache = useMentionSuggestionsCache; exports.useLostConnectionListener = useLostConnectionListener; exports.useHistory = useHistory; exports.useUndo = useUndo; exports.useRedo = useRedo; exports.useCanUndo = useCanUndo; exports.useCanRedo = useCanRedo; exports.useOthersConnectionIds = useOthersConnectionIds; exports.useCreateFeed = useCreateFeed; exports.useDeleteFeed = useDeleteFeed; exports.useUpdateFeedMetadata = useUpdateFeedMetadata; exports.useCreateFeedMessage = useCreateFeedMessage; exports.useDeleteFeedMessage = useDeleteFeedMessage; exports.useUpdateFeedMessage = useUpdateFeedMessage; exports.useCreateRoomThread = useCreateRoomThread; exports.useDeleteRoomThread = useDeleteRoomThread; exports.useEditRoomThreadMetadata = useEditRoomThreadMetadata; exports.useCreateRoomComment = useCreateRoomComment; exports.useEditRoomComment = useEditRoomComment; exports.useDeleteComment = useDeleteComment; exports.useDeleteRoomComment = useDeleteRoomComment; exports.useAddRoomCommentReaction = useAddRoomCommentReaction; exports.useRemoveReaction = useRemoveReaction; exports.useRemoveRoomCommentReaction = useRemoveRoomCommentReaction; exports.useMarkRoomThreadAsRead = useMarkRoomThreadAsRead; exports.useMarkThreadAsRead = useMarkThreadAsRead; exports.useMarkThreadAsResolved = useMarkThreadAsResolved; exports.useMarkRoomThreadAsResolved = useMarkRoomThreadAsResolved; exports.useMarkThreadAsUnresolved = useMarkThreadAsUnresolved; exports.useMarkRoomThreadAsUnresolved = useMarkRoomThreadAsUnresolved; exports.useSubscribeToThread = useSubscribeToThread; exports.useUnsubscribeFromThread = useUnsubscribeFromThread; exports.useThreadSubscription = useThreadSubscription; exports.useRoomThreadSubscription = useRoomThreadSubscription; exports.useHistoryVersionData = useHistoryVersionData; exports.useUpdateRoomSubscriptionSettings = useUpdateRoomSubscriptionSettings; exports.useSuspendUntilPresenceReady = useSuspendUntilPresenceReady; exports.useOthersConnectionIdsSuspense = useOthersConnectionIdsSuspense; exports.useSuspendUntilStorageReady = useSuspendUntilStorageReady; exports.useAttachmentUrl = useAttachmentUrl; exports.useRoomAttachmentUrl = useRoomAttachmentUrl; exports.useAttachmentUrlSuspense = useAttachmentUrlSuspense; exports.useRoomPermissions = useRoomPermissions; exports.createRoomContext = createRoomContext; exports._RoomProvider = _RoomProvider; exports._useBroadcastEvent = _useBroadcastEvent; exports._useOthersListener = _useOthersListener; exports._useRoom = _useRoom; exports._useIsInsideRoom = _useIsInsideRoom; exports._useAddReaction = _useAddReaction; exports._useMutation = _useMutation; exports._useCreateThread = _useCreateThread; exports._useDeleteThread = _useDeleteThread; exports._useEditThreadMetadata = _useEditThreadMetadata; exports._useCreateComment = _useCreateComment; exports._useEditComment = _useEditComment; exports._useEditCommentMetadata = _useEditCommentMetadata; exports._useEventListener = _useEventListener; exports._useMyPresence = _useMyPresence; exports._useOthersMapped = _useOthersMapped; exports._useOthersMappedSuspense = _useOthersMappedSuspense; exports._useThreads = _useThreads; exports._useFeeds = _useFeeds; exports._useFeedMessages = _useFeedMessages; exports._useFeedsSuspense = _useFeedsSuspense; exports._useFeedMessagesSuspense = _useFeedMessagesSuspense; exports._useSearchComments = _useSearchComments; exports._useThreadsSuspense = _useThreadsSuspense; exports._useRoomSubscriptionSettings = _useRoomSubscriptionSettings; exports._useRoomSubscriptionSettingsSuspense = _useRoomSubscriptionSettingsSuspense; exports._useHistoryVersions = _useHistoryVersions; exports._useHistoryVersionsSuspense = _useHistoryVersionsSuspense; exports._useOther = _useOther; exports._useOthers = _useOthers; exports._useOtherSuspense = _useOtherSuspense; exports._useOthersSuspense = _useOthersSuspense; exports._useStorage = _useStorage; exports._useStorageSuspense = _useStorageSuspense; exports._useSelf = _useSelf; exports._useSelfSuspense = _useSelfSuspense; exports._useStorageRoot = _useStorageRoot; exports._useUpdateMyPresence = _useUpdateMyPresence;
6189
- //# sourceMappingURL=chunk-K7TLHUJM.cjs.map
6230
+
6231
+ exports.ClientContext = ClientContext; exports.useClientOrNull = useClientOrNull; exports.useClient = useClient; exports.GlobalRoomContext = GlobalRoomContext; exports.useLatest = useLatest; exports.useInitial = useInitial; exports.RegisterAiKnowledge = RegisterAiKnowledge; exports.RegisterAiTool = RegisterAiTool; exports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector; exports.useSignal = useSignal; exports.getUmbrellaStoreForClient = getUmbrellaStoreForClient; exports.useCreateAiChat = useCreateAiChat; exports.useDeleteAiChat = useDeleteAiChat; exports.useAiChatStatus = useAiChatStatus; exports.useSendAiMessage = useSendAiMessage; exports.LiveblocksProvider = LiveblocksProvider; exports.createLiveblocksContext = createLiveblocksContext; exports.useInboxNotifications = useInboxNotifications; exports.useInboxNotificationsSuspense = useInboxNotificationsSuspense; exports.useMarkAllInboxNotificationsAsRead = useMarkAllInboxNotificationsAsRead; exports.useMarkInboxNotificationAsRead = useMarkInboxNotificationAsRead; exports.useDeleteAllInboxNotifications = useDeleteAllInboxNotifications; exports.useDeleteInboxNotification = useDeleteInboxNotification; exports.useUnreadInboxNotificationsCount = useUnreadInboxNotificationsCount; exports.useUnreadInboxNotificationsCountSuspense = useUnreadInboxNotificationsCountSuspense; exports.useNotificationSettings = useNotificationSettings; exports.useNotificationSettingsSuspense = useNotificationSettingsSuspense; exports.useUpdateNotificationSettings = useUpdateNotificationSettings; exports.useRoomInfo = useRoomInfo; exports.useRoomInfoSuspense = useRoomInfoSuspense; exports.useGroupInfo = useGroupInfo; exports.useGroupInfoSuspense = useGroupInfoSuspense; exports._useInboxNotificationThread = _useInboxNotificationThread; exports._useUser = _useUser; exports._useUserSuspense = _useUserSuspense; exports._useUserThreads_experimental = _useUserThreads_experimental; exports._useUserThreadsSuspense_experimental = _useUserThreadsSuspense_experimental; exports._useAiChats = _useAiChats; exports._useAiChatsSuspense = _useAiChatsSuspense; exports._useAiChat = _useAiChat; exports._useAiChatSuspense = _useAiChatSuspense; exports._useAiChatMessages = _useAiChatMessages; exports._useAiChatMessagesSuspense = _useAiChatMessagesSuspense; exports._useUrlMetadata = _useUrlMetadata; exports._useUrlMetadataSuspense = _useUrlMetadataSuspense; exports.useSyncStatus = useSyncStatus; exports.useErrorListener = useErrorListener; exports.useStatus = useStatus; exports.useReportTextEditor = useReportTextEditor; exports.useYjsProvider = useYjsProvider; exports.useCreateTextMention = useCreateTextMention; exports.useDeleteTextMention = useDeleteTextMention; exports.useResolveMentionSuggestions = useResolveMentionSuggestions; exports.useMentionSuggestionsCache = useMentionSuggestionsCache; exports.useLostConnectionListener = useLostConnectionListener; exports.useHistory = useHistory; exports.useUndo = useUndo; exports.useRedo = useRedo; exports.useCanUndo = useCanUndo; exports.useCanRedo = useCanRedo; exports.useOthersConnectionIds = useOthersConnectionIds; exports.useCreateFeed = useCreateFeed; exports.useDeleteFeed = useDeleteFeed; exports.useUpdateFeedMetadata = useUpdateFeedMetadata; exports.useCreateFeedMessage = useCreateFeedMessage; exports.useDeleteFeedMessage = useDeleteFeedMessage; exports.useUpdateFeedMessage = useUpdateFeedMessage; exports.useCreateRoomThread = useCreateRoomThread; exports.useDeleteRoomThread = useDeleteRoomThread; exports.useEditRoomThreadMetadata = useEditRoomThreadMetadata; exports.useCreateRoomComment = useCreateRoomComment; exports.useEditRoomComment = useEditRoomComment; exports.useDeleteComment = useDeleteComment; exports.useDeleteRoomComment = useDeleteRoomComment; exports.useAddRoomCommentReaction = useAddRoomCommentReaction; exports.useRemoveReaction = useRemoveReaction; exports.useRemoveRoomCommentReaction = useRemoveRoomCommentReaction; exports.useMarkRoomThreadAsRead = useMarkRoomThreadAsRead; exports.useMarkThreadAsRead = useMarkThreadAsRead; exports.useMarkThreadAsResolved = useMarkThreadAsResolved; exports.useMarkRoomThreadAsResolved = useMarkRoomThreadAsResolved; exports.useMarkThreadAsUnresolved = useMarkThreadAsUnresolved; exports.useMarkRoomThreadAsUnresolved = useMarkRoomThreadAsUnresolved; exports.useSubscribeToThread = useSubscribeToThread; exports.useUnsubscribeFromThread = useUnsubscribeFromThread; exports.useThreadSubscription = useThreadSubscription; exports.useRoomThreadSubscription = useRoomThreadSubscription; exports.useHistoryVersionData = useHistoryVersionData; exports.useUpdateRoomSubscriptionSettings = useUpdateRoomSubscriptionSettings; exports.useSuspendUntilPresenceReady = useSuspendUntilPresenceReady; exports.useOthersConnectionIdsSuspense = useOthersConnectionIdsSuspense; exports.useSuspendUntilStorageReady = useSuspendUntilStorageReady; exports.useAttachmentUrl = useAttachmentUrl; exports.useRoomAttachmentUrl = useRoomAttachmentUrl; exports.useAttachmentUrlSuspense = useAttachmentUrlSuspense; exports.useRoomPermissions = useRoomPermissions; exports.useHasPermissionAccess = useHasPermissionAccess; exports.createRoomContext = createRoomContext; exports._RoomProvider = _RoomProvider; exports._useBroadcastEvent = _useBroadcastEvent; exports._useOthersListener = _useOthersListener; exports._useRoom = _useRoom; exports._useIsInsideRoom = _useIsInsideRoom; exports._useAddReaction = _useAddReaction; exports._useMutation = _useMutation; exports._useCreateThread = _useCreateThread; exports._useDeleteThread = _useDeleteThread; exports._useEditThreadMetadata = _useEditThreadMetadata; exports._useCreateComment = _useCreateComment; exports._useEditComment = _useEditComment; exports._useEditCommentMetadata = _useEditCommentMetadata; exports._useEventListener = _useEventListener; exports._useMyPresence = _useMyPresence; exports._useOthersMapped = _useOthersMapped; exports._useOthersMappedSuspense = _useOthersMappedSuspense; exports._useThreads = _useThreads; exports._useFeeds = _useFeeds; exports._useFeedMessages = _useFeedMessages; exports._useFeedsSuspense = _useFeedsSuspense; exports._useFeedMessagesSuspense = _useFeedMessagesSuspense; exports._useSearchComments = _useSearchComments; exports._useThreadsSuspense = _useThreadsSuspense; exports._useRoomSubscriptionSettings = _useRoomSubscriptionSettings; exports._useRoomSubscriptionSettingsSuspense = _useRoomSubscriptionSettingsSuspense; exports._useHistoryVersions = _useHistoryVersions; exports._useHistoryVersionsSuspense = _useHistoryVersionsSuspense; exports._useOther = _useOther; exports._useOthers = _useOthers; exports._useOtherSuspense = _useOtherSuspense; exports._useOthersSuspense = _useOthersSuspense; exports._useStorage = _useStorage; exports._useStorageSuspense = _useStorageSuspense; exports._useSelf = _useSelf; exports._useSelfSuspense = _useSelfSuspense; exports._useStorageRoot = _useStorageRoot; exports._useUpdateMyPresence = _useUpdateMyPresence;
6232
+ //# sourceMappingURL=chunk-LERP7BXQ.cjs.map