canvu-react 0.4.59 → 0.4.61
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.
- package/dist/chatbot.d.cts +1 -1
- package/dist/chatbot.d.ts +1 -1
- package/dist/native.cjs +37 -17
- package/dist/native.cjs.map +1 -1
- package/dist/native.d.cts +11 -1
- package/dist/native.d.ts +11 -1
- package/dist/native.js +37 -17
- package/dist/native.js.map +1 -1
- package/dist/react.cjs +143 -55
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +2 -2
- package/dist/react.d.ts +2 -2
- package/dist/react.js +143 -55
- package/dist/react.js.map +1 -1
- package/dist/realtime.cjs +31 -18
- package/dist/realtime.cjs.map +1 -1
- package/dist/realtime.d.cts +6 -6
- package/dist/realtime.d.ts +6 -6
- package/dist/realtime.js +31 -18
- package/dist/realtime.js.map +1 -1
- package/dist/{types-BFZpRGyr.d.cts → types--jCoyZIF.d.cts} +35 -4
- package/dist/{types-D2zesNI8.d.ts → types-C_PMen-D.d.ts} +35 -4
- package/package.json +1 -1
package/dist/realtime.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PlacementPreview,
|
|
1
|
+
import { P as PlacementPreview, u as VectorViewportProps, t as VectorViewportHandle, V as VectorToolDefinition, p as VectorItemsChangeInfo, a as CanvasPlugin, f as CanvasPluginRenderContext } from './types--jCoyZIF.cjs';
|
|
2
2
|
import { a as RemotePresenceMarkupStroke, R as RemotePresencePeer, b as RemotePresenceCamera, c as RealtimeConnectionState } from './types-DqsqQQVf.cjs';
|
|
3
3
|
export { P as PresenceOverlayRenderContext } from './types-DqsqQQVf.cjs';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
@@ -175,7 +175,7 @@ type RealtimeCommentsAuthor = {
|
|
|
175
175
|
};
|
|
176
176
|
type UseRealtimeCommentsOptions = {
|
|
177
177
|
items: readonly VectorSceneItem[];
|
|
178
|
-
onItemsChange:
|
|
178
|
+
onItemsChange: NonNullable<VectorViewportProps["onItemsChange"]>;
|
|
179
179
|
author: RealtimeCommentsAuthor;
|
|
180
180
|
viewportRef?: RefObject<VectorViewportHandle | null>;
|
|
181
181
|
activeToolId?: string;
|
|
@@ -195,7 +195,7 @@ type UseRealtimeCommentsResult = {
|
|
|
195
195
|
tools: VectorToolDefinition[];
|
|
196
196
|
overlay: ReactNode;
|
|
197
197
|
viewport: RealtimeCommentsViewportBindings;
|
|
198
|
-
handleViewportItemsChange: (items: VectorSceneItem[], onItemsChange?:
|
|
198
|
+
handleViewportItemsChange: (items: VectorSceneItem[], onItemsChange?: NonNullable<VectorViewportProps["onItemsChange"]>, info?: VectorItemsChangeInfo) => void;
|
|
199
199
|
isComposerOpen: boolean;
|
|
200
200
|
closeComposer: () => void;
|
|
201
201
|
};
|
|
@@ -284,7 +284,7 @@ type RealtimeCommentData = {
|
|
|
284
284
|
};
|
|
285
285
|
type RealtimeCommentsOverlayProps = {
|
|
286
286
|
items: readonly VectorSceneItem[];
|
|
287
|
-
onItemsChange?: (items: VectorSceneItem[]) => void;
|
|
287
|
+
onItemsChange?: (items: VectorSceneItem[], info?: VectorItemsChangeInfo) => void;
|
|
288
288
|
isDragEnabled?: boolean;
|
|
289
289
|
cameraVersion: number;
|
|
290
290
|
viewportRef?: CanvasPluginRenderContext["viewportRef"];
|
|
@@ -331,14 +331,14 @@ declare function realtimeSessionPlugin(options: RealtimeSessionPluginOptions): C
|
|
|
331
331
|
type UseRealtimeCanvasDocumentOptions = {
|
|
332
332
|
session: Pick<UseRealtimeSessionResult, "connection" | "document" | "remoteAdapter" | "hasLocalOfflineDraft" | "hasPendingDocumentSync" | "syncState" | "conflict" | "resolveConflict" | "clearLocalDraft" | "flushDocumentSync"> | null;
|
|
333
333
|
items: readonly VectorSceneItem[];
|
|
334
|
-
onItemsChange?: (nextItems: VectorSceneItem[]) => void;
|
|
334
|
+
onItemsChange?: (nextItems: VectorSceneItem[], info?: VectorItemsChangeInfo) => void;
|
|
335
335
|
normalizeItems?: (nextItems: readonly VectorSceneItem[]) => VectorSceneItem[];
|
|
336
336
|
hydrateItems?: (nextItems: readonly VectorSceneItem[]) => Promise<VectorSceneItem[]>;
|
|
337
337
|
enabled?: boolean;
|
|
338
338
|
};
|
|
339
339
|
type UseRealtimeCanvasDocumentResult = {
|
|
340
340
|
items: readonly VectorSceneItem[];
|
|
341
|
-
onItemsChange?: (nextItems: VectorSceneItem[]) => void;
|
|
341
|
+
onItemsChange?: (nextItems: VectorSceneItem[], info?: VectorItemsChangeInfo) => void;
|
|
342
342
|
loading: boolean;
|
|
343
343
|
saving: boolean;
|
|
344
344
|
hasLocalOfflineDraft: boolean;
|
package/dist/realtime.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PlacementPreview,
|
|
1
|
+
import { P as PlacementPreview, u as VectorViewportProps, t as VectorViewportHandle, V as VectorToolDefinition, p as VectorItemsChangeInfo, a as CanvasPlugin, f as CanvasPluginRenderContext } from './types-C_PMen-D.js';
|
|
2
2
|
import { a as RemotePresenceMarkupStroke, R as RemotePresencePeer, b as RemotePresenceCamera, c as RealtimeConnectionState } from './types-BXa2CIrc.js';
|
|
3
3
|
export { P as PresenceOverlayRenderContext } from './types-BXa2CIrc.js';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
@@ -175,7 +175,7 @@ type RealtimeCommentsAuthor = {
|
|
|
175
175
|
};
|
|
176
176
|
type UseRealtimeCommentsOptions = {
|
|
177
177
|
items: readonly VectorSceneItem[];
|
|
178
|
-
onItemsChange:
|
|
178
|
+
onItemsChange: NonNullable<VectorViewportProps["onItemsChange"]>;
|
|
179
179
|
author: RealtimeCommentsAuthor;
|
|
180
180
|
viewportRef?: RefObject<VectorViewportHandle | null>;
|
|
181
181
|
activeToolId?: string;
|
|
@@ -195,7 +195,7 @@ type UseRealtimeCommentsResult = {
|
|
|
195
195
|
tools: VectorToolDefinition[];
|
|
196
196
|
overlay: ReactNode;
|
|
197
197
|
viewport: RealtimeCommentsViewportBindings;
|
|
198
|
-
handleViewportItemsChange: (items: VectorSceneItem[], onItemsChange?:
|
|
198
|
+
handleViewportItemsChange: (items: VectorSceneItem[], onItemsChange?: NonNullable<VectorViewportProps["onItemsChange"]>, info?: VectorItemsChangeInfo) => void;
|
|
199
199
|
isComposerOpen: boolean;
|
|
200
200
|
closeComposer: () => void;
|
|
201
201
|
};
|
|
@@ -284,7 +284,7 @@ type RealtimeCommentData = {
|
|
|
284
284
|
};
|
|
285
285
|
type RealtimeCommentsOverlayProps = {
|
|
286
286
|
items: readonly VectorSceneItem[];
|
|
287
|
-
onItemsChange?: (items: VectorSceneItem[]) => void;
|
|
287
|
+
onItemsChange?: (items: VectorSceneItem[], info?: VectorItemsChangeInfo) => void;
|
|
288
288
|
isDragEnabled?: boolean;
|
|
289
289
|
cameraVersion: number;
|
|
290
290
|
viewportRef?: CanvasPluginRenderContext["viewportRef"];
|
|
@@ -331,14 +331,14 @@ declare function realtimeSessionPlugin(options: RealtimeSessionPluginOptions): C
|
|
|
331
331
|
type UseRealtimeCanvasDocumentOptions = {
|
|
332
332
|
session: Pick<UseRealtimeSessionResult, "connection" | "document" | "remoteAdapter" | "hasLocalOfflineDraft" | "hasPendingDocumentSync" | "syncState" | "conflict" | "resolveConflict" | "clearLocalDraft" | "flushDocumentSync"> | null;
|
|
333
333
|
items: readonly VectorSceneItem[];
|
|
334
|
-
onItemsChange?: (nextItems: VectorSceneItem[]) => void;
|
|
334
|
+
onItemsChange?: (nextItems: VectorSceneItem[], info?: VectorItemsChangeInfo) => void;
|
|
335
335
|
normalizeItems?: (nextItems: readonly VectorSceneItem[]) => VectorSceneItem[];
|
|
336
336
|
hydrateItems?: (nextItems: readonly VectorSceneItem[]) => Promise<VectorSceneItem[]>;
|
|
337
337
|
enabled?: boolean;
|
|
338
338
|
};
|
|
339
339
|
type UseRealtimeCanvasDocumentResult = {
|
|
340
340
|
items: readonly VectorSceneItem[];
|
|
341
|
-
onItemsChange?: (nextItems: VectorSceneItem[]) => void;
|
|
341
|
+
onItemsChange?: (nextItems: VectorSceneItem[], info?: VectorItemsChangeInfo) => void;
|
|
342
342
|
loading: boolean;
|
|
343
343
|
saving: boolean;
|
|
344
344
|
hasLocalOfflineDraft: boolean;
|
package/dist/realtime.js
CHANGED
|
@@ -1226,7 +1226,10 @@ function RealtimeCommentsOverlay({
|
|
|
1226
1226
|
(item) => item.id === drag.itemId ? moveCommentItem(item, deltaX, deltaY) : item
|
|
1227
1227
|
);
|
|
1228
1228
|
itemsRef.current = nextItems;
|
|
1229
|
-
onItemsChange(nextItems
|
|
1229
|
+
onItemsChange(nextItems, {
|
|
1230
|
+
motive: "plugin",
|
|
1231
|
+
itemIds: [drag.itemId]
|
|
1232
|
+
});
|
|
1230
1233
|
};
|
|
1231
1234
|
const onPointerUp = () => {
|
|
1232
1235
|
dragStateRef.current = null;
|
|
@@ -1732,20 +1735,20 @@ function useRealtimeComments({
|
|
|
1732
1735
|
[author.color]
|
|
1733
1736
|
);
|
|
1734
1737
|
const handleViewportItemsChange = useCallback(
|
|
1735
|
-
(nextItems, overrideOnItemsChange) => {
|
|
1738
|
+
(nextItems, overrideOnItemsChange, info) => {
|
|
1736
1739
|
const applyItemsChange = overrideOnItemsChange ?? onItemsChange;
|
|
1737
1740
|
const currentIds = new Set(items.map((item) => item.id));
|
|
1738
1741
|
const draftItem = nextItems.find(
|
|
1739
1742
|
(item) => !currentIds.has(item.id) && isRealtimeCommentDraftItem(item)
|
|
1740
1743
|
);
|
|
1741
1744
|
if (!draftItem) {
|
|
1742
|
-
applyItemsChange(nextItems);
|
|
1745
|
+
applyItemsChange(nextItems, info);
|
|
1743
1746
|
return;
|
|
1744
1747
|
}
|
|
1745
1748
|
const filteredItems = nextItems.filter((item) => item.id !== draftItem.id);
|
|
1746
1749
|
const shouldPersistFiltered = filteredItems.length !== items.length || filteredItems.some((item, index) => items[index]?.id !== item.id);
|
|
1747
1750
|
if (shouldPersistFiltered) {
|
|
1748
|
-
applyItemsChange(filteredItems);
|
|
1751
|
+
applyItemsChange(filteredItems, info);
|
|
1749
1752
|
}
|
|
1750
1753
|
setCommentComposer({
|
|
1751
1754
|
worldX: draftItem.bounds.x + draftItem.bounds.width / 2,
|
|
@@ -1787,7 +1790,10 @@ function useRealtimeComments({
|
|
|
1787
1790
|
authorImage
|
|
1788
1791
|
}
|
|
1789
1792
|
);
|
|
1790
|
-
onItemsChange(items.concat(nextItem)
|
|
1793
|
+
onItemsChange(items.concat(nextItem), {
|
|
1794
|
+
motive: "plugin",
|
|
1795
|
+
itemIds: [nextItem.id]
|
|
1796
|
+
});
|
|
1791
1797
|
setCommentComposer(null);
|
|
1792
1798
|
}, [
|
|
1793
1799
|
author.color,
|
|
@@ -1845,7 +1851,7 @@ function useRealtimeComments({
|
|
|
1845
1851
|
const viewport = useMemo(
|
|
1846
1852
|
() => ({
|
|
1847
1853
|
customPlacement,
|
|
1848
|
-
onItemsChange: (nextItems) => handleViewportItemsChange(nextItems),
|
|
1854
|
+
onItemsChange: (nextItems, info) => handleViewportItemsChange(nextItems, void 0, info),
|
|
1849
1855
|
onCameraChange
|
|
1850
1856
|
}),
|
|
1851
1857
|
[customPlacement, handleViewportItemsChange, onCameraChange]
|
|
@@ -3498,7 +3504,7 @@ function RealtimeCollaborationPluginComponent({
|
|
|
3498
3504
|
);
|
|
3499
3505
|
const handleCommentItemsChange = useCallback(
|
|
3500
3506
|
(nextItems) => {
|
|
3501
|
-
onItemsChange?.([...nextItems]);
|
|
3507
|
+
onItemsChange?.([...nextItems], { motive: "plugin" });
|
|
3502
3508
|
session.remoteAdapter.send?.([...nextItems]);
|
|
3503
3509
|
},
|
|
3504
3510
|
[onItemsChange, session.remoteAdapter]
|
|
@@ -3548,7 +3554,7 @@ function RealtimeCollaborationPluginComponent({
|
|
|
3548
3554
|
useEffect(() => {
|
|
3549
3555
|
if (!onItemsChange || !session.document) return;
|
|
3550
3556
|
if (session.document.updatedByClientId === session.connection.clientId) return;
|
|
3551
|
-
onItemsChange(session.document.items);
|
|
3557
|
+
onItemsChange(session.document.items, { motive: "remote-sync" });
|
|
3552
3558
|
}, [onItemsChange, session.connection.clientId, session.document]);
|
|
3553
3559
|
const contribution = useMemo(
|
|
3554
3560
|
() => ({
|
|
@@ -3563,15 +3569,19 @@ function RealtimeCollaborationPluginComponent({
|
|
|
3563
3569
|
onPlacementPreviewChange: presenceBindings.onPlacementPreviewChange,
|
|
3564
3570
|
onCameraChange: onViewportCameraChange
|
|
3565
3571
|
},
|
|
3566
|
-
wrapOnItemsChange: (nextItems, ctx) => {
|
|
3572
|
+
wrapOnItemsChange: (nextItems, ctx, info) => {
|
|
3567
3573
|
if (commentOptions) {
|
|
3568
|
-
comments.handleViewportItemsChange(
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
3574
|
+
comments.handleViewportItemsChange(
|
|
3575
|
+
nextItems,
|
|
3576
|
+
(processedItems, processedInfo) => {
|
|
3577
|
+
ctx.next(processedItems, processedInfo);
|
|
3578
|
+
session.remoteAdapter.send?.([...processedItems]);
|
|
3579
|
+
},
|
|
3580
|
+
info
|
|
3581
|
+
);
|
|
3572
3582
|
return;
|
|
3573
3583
|
}
|
|
3574
|
-
ctx.next(nextItems);
|
|
3584
|
+
ctx.next(nextItems, info);
|
|
3575
3585
|
session.remoteAdapter.send?.(nextItems);
|
|
3576
3586
|
}
|
|
3577
3587
|
}),
|
|
@@ -3712,14 +3722,17 @@ function useRealtimeCanvasDocument(options) {
|
|
|
3712
3722
|
[hydrateItems, normalizeItems]
|
|
3713
3723
|
);
|
|
3714
3724
|
const handleItemsChange = useCallback(
|
|
3715
|
-
(nextItems) => {
|
|
3725
|
+
(nextItems, info) => {
|
|
3716
3726
|
if (!enabled) {
|
|
3717
|
-
onItemsChange?.(
|
|
3727
|
+
onItemsChange?.(
|
|
3728
|
+
normalizeItems ? normalizeItems(nextItems) : nextItems,
|
|
3729
|
+
info
|
|
3730
|
+
);
|
|
3718
3731
|
return;
|
|
3719
3732
|
}
|
|
3720
3733
|
hasLocalChangeInFlightRef.current = true;
|
|
3721
3734
|
const normalizedItems = normalizeItems ? normalizeItems(nextItems) : nextItems;
|
|
3722
|
-
onItemsChange?.(normalizedItems);
|
|
3735
|
+
onItemsChange?.(normalizedItems, info);
|
|
3723
3736
|
session?.remoteAdapter.send?.(normalizedItems);
|
|
3724
3737
|
},
|
|
3725
3738
|
[enabled, normalizeItems, onItemsChange, session]
|
|
@@ -3770,7 +3783,7 @@ function useRealtimeCanvasDocument(options) {
|
|
|
3770
3783
|
if (resolvedItems.length > 0) {
|
|
3771
3784
|
hasEverPropagatedItemsRef.current = true;
|
|
3772
3785
|
}
|
|
3773
|
-
onItemsChange(resolvedItems);
|
|
3786
|
+
onItemsChange(resolvedItems, { motive: "remote-sync" });
|
|
3774
3787
|
}).finally(() => {
|
|
3775
3788
|
if (inFlightRevisionRef.current === documentRevision) {
|
|
3776
3789
|
inFlightRevisionRef.current = null;
|