@mhamz.01/easyflow-whiteboard 2.85.0 → 2.88.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,3 +1 @@
1
- import { CanvasOverlayLayerProps } from "./types/overlay-types";
2
- export default function CanvasOverlayLayer({ tasks, documents, onTasksUpdate, onDocumentsUpdate, canvasZoom, canvasViewport, selectionBox, selectedCanvasObjects, fabricCanvas, }: CanvasOverlayLayerProps): import("react/jsx-runtime").JSX.Element;
3
1
  //# sourceMappingURL=custom-node-overlay-fix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-node-overlay-fix.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-fix.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAQhF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAc,EACd,cAA+B,EAC/B,YAAmB,EACnB,qBAA0B,EAC1B,YAAY,GACb,EAAE,uBAAuB,2CAmSzB"}
1
+ {"version":3,"file":"custom-node-overlay-fix.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-fix.tsx"],"names":[],"mappings":""}
@@ -1,192 +1,283 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useEffect, useRef, useCallback } from "react";
4
- import TaskNode from "./custom-node";
5
- import DocumentNode from "./document-node";
6
- import { useWheelZoom } from "./hooks/useWheelZoom";
7
- import { useNodeDrag } from "./hooks/useNodeDrag";
8
- import { useSelectionBox } from "./hooks/useSelectionBox";
9
- import { useKeyboardShortcuts } from "./hooks/useKeyboardShortcuts";
10
- import { useCanvasReady } from "./hooks/useCanvasReady";
11
- import { useNodeSync } from "./hooks/useNodeSync";
12
- export default function CanvasOverlayLayer({ tasks, documents, onTasksUpdate, onDocumentsUpdate, canvasZoom = 1, canvasViewport = { x: 0, y: 0 }, selectionBox = null, selectedCanvasObjects = [], fabricCanvas, }) {
13
- // ─── State Management ──────────────────────────────────────────────────
14
- const [localTasks, setLocalTasks] = useState(tasks);
15
- const [localDocuments, setLocalDocuments] = useState(documents);
16
- const [selectedIds, setSelectedIds] = useState(new Set());
17
- const [dragging, setDragging] = useState(null);
18
- const overlayRef = useRef(null);
19
- const dragStateRef = useRef(null);
20
- // ─── Hooks ────────────────────────────────────────────────────────────
21
- const canvasReady = useCanvasReady({ fabricCanvas });
22
- const { handleOverlayWheel } = useWheelZoom({
23
- overlayRef,
24
- fabricCanvas,
25
- canvasZoom,
26
- canvasReady,
27
- });
28
- const { dragStateRef: dragRef, rafIdRef, getPointerEvent, getViewportTransform, handleDragStart: handleDragStartHook, handleDragMove: handleDragMoveHook, handleDragEnd: handleDragEndHook, } = useNodeDrag({
29
- selectedIds,
30
- fabricCanvas,
31
- selectedCanvasObjects,
32
- onDragStateChange: setDragging,
33
- });
34
- dragStateRef.current = dragRef.current;
35
- useSelectionBox({
36
- selectionBox,
37
- localTasks,
38
- localDocuments,
39
- canvasZoom,
40
- canvasViewport,
41
- onSelectionChange: setSelectedIds,
42
- });
43
- useNodeSync({
44
- tasks: localTasks,
45
- documents: localDocuments,
46
- selectedIds,
47
- fabricCanvas,
48
- onTasksUpdate,
49
- onDocumentsUpdate,
50
- });
51
- useKeyboardShortcuts({
52
- selectedIds,
53
- localTasks,
54
- localDocuments,
55
- onSelectAll: () => setSelectedIds(new Set([...localTasks.map((t) => t.id), ...localDocuments.map((d) => d.id)])),
56
- onClearSelection: () => setSelectedIds(new Set()),
57
- onDeleteSelected: (tasks, docs) => {
58
- setLocalTasks(tasks);
59
- setLocalDocuments(docs);
60
- setSelectedIds(new Set());
61
- onTasksUpdate?.(tasks);
62
- onDocumentsUpdate?.(docs);
63
- },
64
- });
65
- // ─── Effects ──────────────────────────────────────────────────────────
66
- useEffect(() => {
67
- setLocalTasks(tasks);
68
- }, [tasks]);
69
- useEffect(() => {
70
- setLocalDocuments(documents);
71
- }, [documents]);
72
- // ─── Handlers ─────────────────────────────────────────────────────────
73
- const getItemPosition = useCallback((id) => {
74
- const task = localTasks.find((t) => t.id === id);
75
- if (task)
76
- return { x: task.x, y: task.y };
77
- const doc = localDocuments.find((d) => d.id === id);
78
- if (doc)
79
- return { x: doc.x, y: doc.y };
80
- return undefined;
81
- }, [localTasks, localDocuments]);
82
- const handleDragStart = useCallback((itemId, e) => {
83
- handleDragStartHook(itemId, getItemPosition, e);
84
- }, [handleDragStartHook, getItemPosition]);
85
- // ─── Drag Move Effect ─────────────────────────────────────────────────
86
- useEffect(() => {
87
- if (!dragging)
88
- return;
89
- const handleMove = (e) => {
90
- if (!dragStateRef.current?.isDragging)
91
- return;
92
- if (e.cancelable)
93
- e.preventDefault();
94
- const pointer = getPointerEvent(e);
95
- if (rafIdRef.current !== null)
96
- cancelAnimationFrame(rafIdRef.current);
97
- rafIdRef.current = requestAnimationFrame(() => {
98
- const { itemIds, startPositions, canvasObjectsStartPos, offsetX, offsetY } = dragStateRef.current;
99
- const canvas = fabricCanvas?.current;
100
- if (!canvas)
101
- return;
102
- const { zoom: liveZoom, vpX: liveVpX, vpY: liveVpY } = getViewportTransform(canvas);
103
- const currentWorldX = (pointer.clientX - liveVpX) / liveZoom;
104
- const currentWorldY = (pointer.clientY - liveVpY) / liveZoom;
105
- const deltaX = currentWorldX - offsetX;
106
- const deltaY = currentWorldY - offsetY;
107
- // Update HTML Nodes
108
- setLocalTasks((prev) => prev.map((t) => itemIds.includes(t.id)
109
- ? {
110
- ...t,
111
- x: (startPositions.get(t.id)?.x ?? t.x) + deltaX,
112
- y: (startPositions.get(t.id)?.y ?? t.y) + deltaY,
113
- }
114
- : t));
115
- setLocalDocuments((prev) => prev.map((d) => itemIds.includes(d.id)
116
- ? {
117
- ...d,
118
- x: (startPositions.get(d.id)?.x ?? d.x) + deltaX,
119
- y: (startPositions.get(d.id)?.y ?? d.y) + deltaY,
120
- }
121
- : d));
122
- // Update Fabric Objects
123
- canvasObjectsStartPos.forEach((startPos, obj) => {
124
- obj.set({
125
- left: startPos.left + deltaX,
126
- top: startPos.top + deltaY,
127
- });
128
- obj.setCoords();
129
- });
130
- canvas.requestRenderAll();
131
- });
132
- };
133
- const handleEnd = () => {
134
- handleDragEndHook();
135
- onTasksUpdate?.(localTasks);
136
- onDocumentsUpdate?.(localDocuments);
137
- };
138
- window.addEventListener("mousemove", handleMove, { passive: false });
139
- window.addEventListener("mouseup", handleEnd);
140
- window.addEventListener("touchmove", handleMove, { passive: false });
141
- window.addEventListener("touchend", handleEnd);
142
- window.addEventListener("touchcancel", handleEnd);
143
- return () => {
144
- window.removeEventListener("mousemove", handleMove);
145
- window.removeEventListener("mouseup", handleEnd);
146
- window.removeEventListener("touchmove", handleMove);
147
- window.removeEventListener("touchend", handleEnd);
148
- window.removeEventListener("touchcancel", handleEnd);
149
- };
150
- }, [dragging, localTasks, localDocuments, fabricCanvas, getViewportTransform, getPointerEvent, handleDragEndHook, onTasksUpdate, onDocumentsUpdate]);
151
- // ─── Selection Handlers ────────────────────────────────────────────────
152
- const handleSelect = useCallback((id, e) => {
153
- if (e?.shiftKey || e?.ctrlKey || e?.metaKey) {
154
- setSelectedIds((prev) => {
155
- const next = new Set(prev);
156
- next.has(id) ? next.delete(id) : next.add(id);
157
- return next;
158
- });
159
- }
160
- else {
161
- setSelectedIds(new Set([id]));
162
- }
163
- }, []);
164
- const handleStatusChange = useCallback((taskId, newStatus) => {
165
- const updated = localTasks.map((t) => t.id === taskId ? { ...t, status: newStatus } : t);
166
- setLocalTasks(updated);
167
- onTasksUpdate?.(updated);
168
- }, [localTasks, onTasksUpdate]);
169
- // ─── Render Helper ────────────────────────────────────────────────────
170
- const renderItem = useCallback((id, x, y, children) => {
171
- const screenX = x * canvasZoom;
172
- const screenY = y * canvasZoom;
173
- const isDragging = dragging?.itemIds.includes(id);
174
- return (_jsx("div", { className: "pointer-events-auto absolute", style: {
175
- left: 0,
176
- top: 0,
177
- transform: `translate3d(${screenX}px, ${screenY}px, 0) scale(${canvasZoom})`,
178
- transformOrigin: "top left",
179
- transition: "none",
180
- willChange: "transform",
181
- zIndex: isDragging ? 1000 : 1,
182
- }, children: children }, id));
183
- }, [canvasZoom, dragging]);
184
- // ─── Render ───────────────────────────────────────────────────────────
185
- return (_jsx("div", { ref: overlayRef, className: "absolute inset-0 pointer-events-none", style: { zIndex: 50 }, onWheel: handleOverlayWheel, onClick: (e) => {
186
- if (e.target === e.currentTarget)
187
- setSelectedIds(new Set());
188
- }, children: _jsxs("div", { className: "absolute top-0 left-0 pointer-events-none", style: {
189
- transform: `translate(${canvasViewport.x}px, ${canvasViewport.y}px)`,
190
- transformOrigin: "top left",
191
- }, children: [localTasks.map((task) => renderItem(task.id, task.x, task.y, _jsx(TaskNode, { ...task, isSelected: selectedIds.has(task.id), onSelect: handleSelect, onDragStart: handleDragStart, onStatusChange: handleStatusChange, zoom: 1 }))), localDocuments.map((doc) => renderItem(doc.id, doc.x, doc.y, _jsx(DocumentNode, { ...doc, isSelected: selectedIds.has(doc.id), onSelect: handleSelect, onDragStart: handleDragStart })))] }) }));
192
- }
1
+ "use strict";
2
+ // "use client";
3
+ // import { useState, useEffect, useRef, useCallback } from "react";
4
+ // import { FabricObject, Canvas } from "fabric";
5
+ // import TaskNode from "./custom-node";
6
+ // import DocumentNode from "./document-node";
7
+ // import { Task, Document, CanvasOverlayLayerProps } from "./types/overlay-types";
8
+ // import { useWheelZoom } from "./hooks/useWheelZoom";
9
+ // import { useNodeDrag } from "./hooks/useNodeDrag";
10
+ // import { useSelectionBox } from "./hooks/useSelectionBox";
11
+ // import { useKeyboardShortcuts } from "./hooks/useKeyboardShortcuts";
12
+ // import { useCanvasReady } from "./hooks/useCanvasReady";
13
+ // import { useNodeSync } from "./hooks/useNodeSync";
14
+ // export default function CanvasOverlayLayer({
15
+ // tasks,
16
+ // documents,
17
+ // onTasksUpdate,
18
+ // onDocumentsUpdate,
19
+ // canvasZoom = 1,
20
+ // canvasViewport = { x: 0, y: 0 },
21
+ // selectionBox = null,
22
+ // selectedCanvasObjects = [],
23
+ // fabricCanvas,
24
+ // }: CanvasOverlayLayerProps) {
25
+ // // ─── State Management ──────────────────────────────────────────────────
26
+ // const [localTasks, setLocalTasks] = useState<Task[]>(tasks);
27
+ // const [localDocuments, setLocalDocuments] = useState<Document[]>(documents);
28
+ // const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set());
29
+ // const [dragging, setDragging] = useState<{ itemIds: string[] } | null>(null);
30
+ // const overlayRef = useRef<HTMLDivElement>(null);
31
+ // const dragStateRef = useRef<any>(null);
32
+ // // ─── Hooks ────────────────────────────────────────────────────────────
33
+ // const canvasReady = useCanvasReady({ fabricCanvas });
34
+ // const { handleOverlayWheel } = useWheelZoom({
35
+ // overlayRef,
36
+ // fabricCanvas,
37
+ // canvasZoom,
38
+ // canvasReady,
39
+ // });
40
+ // const {
41
+ // dragStateRef: dragRef,
42
+ // rafIdRef,
43
+ // getPointerEvent,
44
+ // getViewportTransform,
45
+ // handleDragStart: handleDragStartHook,
46
+ // handleDragMove: handleDragMoveHook,
47
+ // handleDragEnd: handleDragEndHook,
48
+ // } = useNodeDrag({
49
+ // selectedIds,
50
+ // fabricCanvas,
51
+ // selectedCanvasObjects,
52
+ // onDragStateChange: setDragging,
53
+ // });
54
+ // dragStateRef.current = dragRef.current;
55
+ // useSelectionBox({
56
+ // selectionBox,
57
+ // localTasks,
58
+ // localDocuments,
59
+ // canvasZoom,
60
+ // canvasViewport,
61
+ // onSelectionChange: setSelectedIds,
62
+ // });
63
+ // useNodeSync({
64
+ // tasks: localTasks,
65
+ // documents: localDocuments,
66
+ // selectedIds,
67
+ // fabricCanvas,
68
+ // onTasksUpdate,
69
+ // onDocumentsUpdate,
70
+ // });
71
+ // useKeyboardShortcuts({
72
+ // selectedIds,
73
+ // localTasks,
74
+ // localDocuments,
75
+ // onSelectAll: () =>
76
+ // setSelectedIds(
77
+ // new Set([...localTasks.map((t) => t.id), ...localDocuments.map((d) => d.id)])
78
+ // ),
79
+ // onClearSelection: () => setSelectedIds(new Set()),
80
+ // onDeleteSelected: (tasks, docs) => {
81
+ // setLocalTasks(tasks);
82
+ // setLocalDocuments(docs);
83
+ // setSelectedIds(new Set());
84
+ // onTasksUpdate?.(tasks);
85
+ // onDocumentsUpdate?.(docs);
86
+ // },
87
+ // });
88
+ // // ─── Effects ──────────────────────────────────────────────────────────
89
+ // useEffect(() => {
90
+ // setLocalTasks(tasks);
91
+ // }, [tasks]);
92
+ // useEffect(() => {
93
+ // setLocalDocuments(documents);
94
+ // }, [documents]);
95
+ // // ─── Handlers ─────────────────────────────────────────────────────────
96
+ // const getItemPosition = useCallback(
97
+ // (id: string): { x: number; y: number } | undefined => {
98
+ // const task = localTasks.find((t) => t.id === id);
99
+ // if (task) return { x: task.x, y: task.y };
100
+ // const doc = localDocuments.find((d) => d.id === id);
101
+ // if (doc) return { x: doc.x, y: doc.y };
102
+ // return undefined;
103
+ // },
104
+ // [localTasks, localDocuments]
105
+ // );
106
+ // const handleDragStart = useCallback(
107
+ // (itemId: string, e: React.MouseEvent | React.TouchEvent) => {
108
+ // handleDragStartHook(itemId, getItemPosition, e);
109
+ // },
110
+ // [handleDragStartHook, getItemPosition]
111
+ // );
112
+ // // ─── Drag Move Effect ─────────────────────────────────────────────────
113
+ // useEffect(() => {
114
+ // if (!dragging) return;
115
+ // const handleMove = (e: MouseEvent | TouchEvent) => {
116
+ // if (!dragStateRef.current?.isDragging) return;
117
+ // if (e.cancelable) e.preventDefault();
118
+ // const pointer = getPointerEvent(e);
119
+ // if (rafIdRef.current !== null) cancelAnimationFrame(rafIdRef.current);
120
+ // rafIdRef.current = requestAnimationFrame(() => {
121
+ // const { itemIds, startPositions, canvasObjectsStartPos, offsetX, offsetY } =
122
+ // dragStateRef.current;
123
+ // const canvas = fabricCanvas?.current;
124
+ // if (!canvas) return;
125
+ // const { zoom: liveZoom, vpX: liveVpX, vpY: liveVpY } = getViewportTransform(canvas);
126
+ // const currentWorldX = (pointer.clientX - liveVpX) / liveZoom;
127
+ // const currentWorldY = (pointer.clientY - liveVpY) / liveZoom;
128
+ // const deltaX = currentWorldX - offsetX;
129
+ // const deltaY = currentWorldY - offsetY;
130
+ // // Update HTML Nodes
131
+ // setLocalTasks((prev) =>
132
+ // prev.map((t) =>
133
+ // itemIds.includes(t.id)
134
+ // ? {
135
+ // ...t,
136
+ // x: (startPositions.get(t.id)?.x ?? t.x) + deltaX,
137
+ // y: (startPositions.get(t.id)?.y ?? t.y) + deltaY,
138
+ // }
139
+ // : t
140
+ // )
141
+ // );
142
+ // setLocalDocuments((prev) =>
143
+ // prev.map((d) =>
144
+ // itemIds.includes(d.id)
145
+ // ? {
146
+ // ...d,
147
+ // x: (startPositions.get(d.id)?.x ?? d.x) + deltaX,
148
+ // y: (startPositions.get(d.id)?.y ?? d.y) + deltaY,
149
+ // }
150
+ // : d
151
+ // )
152
+ // );
153
+ // // Update Fabric Objects
154
+ // canvasObjectsStartPos.forEach((startPos: { left: number; top: number }, obj: { set: (arg0: { left: number; top: number; }) => void; setCoords: () => void; }) => {
155
+ // obj.set({
156
+ // left: startPos.left + deltaX,
157
+ // top: startPos.top + deltaY,
158
+ // });
159
+ // obj.setCoords();
160
+ // });
161
+ // canvas.requestRenderAll();
162
+ // });
163
+ // };
164
+ // const handleEnd = () => {
165
+ // handleDragEndHook();
166
+ // onTasksUpdate?.(localTasks);
167
+ // onDocumentsUpdate?.(localDocuments);
168
+ // };
169
+ // window.addEventListener("mousemove", handleMove, { passive: false });
170
+ // window.addEventListener("mouseup", handleEnd);
171
+ // window.addEventListener("touchmove", handleMove, { passive: false });
172
+ // window.addEventListener("touchend", handleEnd);
173
+ // window.addEventListener("touchcancel", handleEnd);
174
+ // return () => {
175
+ // window.removeEventListener("mousemove", handleMove);
176
+ // window.removeEventListener("mouseup", handleEnd);
177
+ // window.removeEventListener("touchmove", handleMove);
178
+ // window.removeEventListener("touchend", handleEnd);
179
+ // window.removeEventListener("touchcancel", handleEnd);
180
+ // };
181
+ // }, [dragging, localTasks, localDocuments, fabricCanvas, getViewportTransform, getPointerEvent, handleDragEndHook, onTasksUpdate, onDocumentsUpdate]);
182
+ // // ─── Selection Handlers ────────────────────────────────────────────────
183
+ // const handleSelect = useCallback(
184
+ // (id: string, e?: React.MouseEvent) => {
185
+ // if (e?.shiftKey || e?.ctrlKey || e?.metaKey) {
186
+ // setSelectedIds((prev) => {
187
+ // const next = new Set(prev);
188
+ // next.has(id) ? next.delete(id) : next.add(id);
189
+ // return next;
190
+ // });
191
+ // } else {
192
+ // setSelectedIds(new Set([id]));
193
+ // }
194
+ // },
195
+ // []
196
+ // );
197
+ // const handleStatusChange = useCallback(
198
+ // (taskId: string, newStatus: "todo" | "in-progress" | "done") => {
199
+ // const updated = localTasks.map((t) =>
200
+ // t.id === taskId ? { ...t, status: newStatus } : t
201
+ // );
202
+ // setLocalTasks(updated);
203
+ // onTasksUpdate?.(updated);
204
+ // },
205
+ // [localTasks, onTasksUpdate]
206
+ // );
207
+ // // ─── Render Helper ────────────────────────────────────────────────────
208
+ // const renderItem = useCallback(
209
+ // (id: string, x: number, y: number, children: React.ReactNode) => {
210
+ // const screenX = x * canvasZoom;
211
+ // const screenY = y * canvasZoom;
212
+ // const isDragging = dragging?.itemIds.includes(id);
213
+ // return (
214
+ // <div
215
+ // key={id}
216
+ // className="pointer-events-auto absolute"
217
+ // style={{
218
+ // left: 0,
219
+ // top: 0,
220
+ // transform: `translate3d(${screenX}px, ${screenY}px, 0) scale(${canvasZoom})`,
221
+ // transformOrigin: "top left",
222
+ // transition: "none",
223
+ // willChange: "transform",
224
+ // zIndex: isDragging ? 1000 : 1,
225
+ // }}
226
+ // >
227
+ // {children}
228
+ // </div>
229
+ // );
230
+ // },
231
+ // [canvasZoom, dragging]
232
+ // );
233
+ // // ─── Render ───────────────────────────────────────────────────────────
234
+ // return (
235
+ // <div
236
+ // ref={overlayRef}
237
+ // className="absolute inset-0 pointer-events-none"
238
+ // style={{ zIndex: 50 }}
239
+ // onWheel={handleOverlayWheel}
240
+ // onClick={(e) => {
241
+ // if (e.target === e.currentTarget) setSelectedIds(new Set());
242
+ // }}
243
+ // >
244
+ // <div
245
+ // className="absolute top-0 left-0 pointer-events-none"
246
+ // style={{
247
+ // transform: `translate(${canvasViewport.x}px, ${canvasViewport.y}px)`,
248
+ // transformOrigin: "top left",
249
+ // }}
250
+ // >
251
+ // {localTasks.map((task) =>
252
+ // renderItem(
253
+ // task.id,
254
+ // task.x,
255
+ // task.y,
256
+ // <TaskNode
257
+ // {...task}
258
+ // isSelected={selectedIds.has(task.id)}
259
+ // onSelect={handleSelect}
260
+ // onDragStart={handleDragStart}
261
+ // onStatusChange={handleStatusChange}
262
+ // zoom={1}
263
+ // />
264
+ // )
265
+ // )}
266
+ // {localDocuments.map((doc) =>
267
+ // renderItem(
268
+ // doc.id,
269
+ // doc.x,
270
+ // doc.y,
271
+ // <DocumentNode
272
+ // {...doc}
273
+ // isSelected={selectedIds.has(doc.id)}
274
+ // onSelect={handleSelect}
275
+ // onDragStart={handleDragStart}
276
+ // />
277
+ // )
278
+ // )}
279
+ // </div>
280
+ // </div>
281
+ // );
282
+ // }
283
+ // // export { Task, Document, CanvasOverlayLayerProps } from "./types/overlay-types";
@@ -1 +1,45 @@
1
+ import { FabricObject, Canvas } from "fabric";
2
+ export interface Task {
3
+ id: string;
4
+ title: string;
5
+ status: "todo" | "in-progress" | "done";
6
+ x: number;
7
+ y: number;
8
+ assignee?: string;
9
+ project?: string;
10
+ priority?: "low" | "medium" | "high";
11
+ dueDate?: string;
12
+ }
13
+ export interface Document {
14
+ id: string;
15
+ title: string;
16
+ project: string;
17
+ breadcrumb?: string[];
18
+ preview: string;
19
+ updatedAt?: string;
20
+ x: number;
21
+ y: number;
22
+ }
23
+ interface CanvasOverlayLayerProps {
24
+ tasks: Task[];
25
+ documents: Document[];
26
+ onTasksUpdate?: (tasks: Task[]) => void;
27
+ onDocumentsUpdate?: (documents: Document[]) => void;
28
+ canvasZoom?: number;
29
+ canvasViewport?: {
30
+ x: number;
31
+ y: number;
32
+ };
33
+ selectionBox?: {
34
+ x1: number;
35
+ y1: number;
36
+ x2: number;
37
+ y2: number;
38
+ } | null;
39
+ selectedCanvasObjects?: FabricObject[];
40
+ fabricCanvas?: React.RefObject<Canvas | null>;
41
+ canvasReady?: boolean;
42
+ }
43
+ export default function CanvasOverlayLayer({ tasks, documents, onTasksUpdate, onDocumentsUpdate, canvasZoom, canvasViewport, selectionBox, selectedCanvasObjects, fabricCanvas, }: CanvasOverlayLayerProps): import("react/jsx-runtime").JSX.Element;
44
+ export {};
1
45
  //# sourceMappingURL=custom-node-overlay-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-node-overlay-layer.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-layer.tsx"],"names":[],"mappings":""}
1
+ {"version":3,"file":"custom-node-overlay-layer.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-layer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAO9C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE,qBAAqB,CAAC,EAAE,YAAY,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAaD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAc,EACd,cAA+B,EAC/B,YAAmB,EACnB,qBAA0B,EAC1B,YAAY,GACb,EAAE,uBAAuB,2CAomBzB"}