@pixerate/editor-svelte 0.15.3 → 0.16.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.
Files changed (149) hide show
  1. package/dist/BubbleMenu.svelte.d.ts +14 -0
  2. package/dist/BubbleMenu.svelte.d.ts.map +1 -0
  3. package/{src → dist}/EditableTextNodeEditor.svelte +1 -1
  4. package/dist/EditableTextNodeEditor.svelte.d.ts +26 -0
  5. package/dist/EditableTextNodeEditor.svelte.d.ts.map +1 -0
  6. package/dist/TemplateRenderer.svelte.d.ts +14 -0
  7. package/dist/TemplateRenderer.svelte.d.ts.map +1 -0
  8. package/dist/canvas/AgentPresenceLayer.svelte.d.ts +9 -0
  9. package/dist/canvas/AgentPresenceLayer.svelte.d.ts.map +1 -0
  10. package/dist/canvas/FloatingHorizontalScrollbar.svelte.d.ts +9 -0
  11. package/dist/canvas/FloatingHorizontalScrollbar.svelte.d.ts.map +1 -0
  12. package/dist/canvas/createCanvasClipboard.svelte.d.ts +32 -0
  13. package/dist/canvas/createCanvasClipboard.svelte.d.ts.map +1 -0
  14. package/dist/canvas/createCanvasClipboard.svelte.js +171 -0
  15. package/dist/canvas/createCanvasDisplacement.d.ts +32 -0
  16. package/dist/canvas/createCanvasDisplacement.d.ts.map +1 -0
  17. package/dist/canvas/createCanvasDisplacement.js +170 -0
  18. package/dist/canvas/createCanvasDocking.svelte.d.ts +56 -0
  19. package/dist/canvas/createCanvasDocking.svelte.d.ts.map +1 -0
  20. package/dist/canvas/createCanvasDocking.svelte.js +227 -0
  21. package/dist/canvas/createCanvasExplosion.svelte.d.ts +31 -0
  22. package/dist/canvas/createCanvasExplosion.svelte.d.ts.map +1 -0
  23. package/dist/canvas/createCanvasExplosion.svelte.js +346 -0
  24. package/dist/canvas/createCanvasGraph.svelte.d.ts +62 -0
  25. package/dist/canvas/createCanvasGraph.svelte.d.ts.map +1 -0
  26. package/dist/canvas/createCanvasGraph.svelte.js +223 -0
  27. package/dist/canvas/createCanvasInteractions.svelte.d.ts +28 -0
  28. package/dist/canvas/createCanvasInteractions.svelte.d.ts.map +1 -0
  29. package/dist/canvas/createCanvasInteractions.svelte.js +95 -0
  30. package/dist/canvas/createCanvasLayout.d.ts +22 -0
  31. package/dist/canvas/createCanvasLayout.d.ts.map +1 -0
  32. package/dist/canvas/createCanvasLayout.js +76 -0
  33. package/dist/canvas/createCanvasMultiDrag.svelte.d.ts +61 -0
  34. package/dist/canvas/createCanvasMultiDrag.svelte.d.ts.map +1 -0
  35. package/dist/canvas/createCanvasMultiDrag.svelte.js +105 -0
  36. package/dist/canvas/createCanvasNodeSync.svelte.d.ts +58 -0
  37. package/dist/canvas/createCanvasNodeSync.svelte.d.ts.map +1 -0
  38. package/dist/canvas/createCanvasNodeSync.svelte.js +82 -0
  39. package/dist/canvas/createCanvasSelection.svelte.d.ts +26 -0
  40. package/dist/canvas/createCanvasSelection.svelte.d.ts.map +1 -0
  41. package/dist/canvas/createCanvasSelection.svelte.js +26 -0
  42. package/dist/canvas/createCanvasShortcuts.d.ts +9 -0
  43. package/dist/canvas/createCanvasShortcuts.d.ts.map +1 -0
  44. package/dist/canvas/createCanvasShortcuts.js +97 -0
  45. package/dist/canvas/createCanvasTrajectory.d.ts +31 -0
  46. package/dist/canvas/createCanvasTrajectory.d.ts.map +1 -0
  47. package/dist/canvas/createCanvasTrajectory.js +141 -0
  48. package/dist/canvas/createStreamingCanvas.svelte.d.ts +19 -0
  49. package/dist/canvas/createStreamingCanvas.svelte.d.ts.map +1 -0
  50. package/dist/canvas/createStreamingCanvas.svelte.js +32 -0
  51. package/dist/canvas/index.d.ts +18 -688
  52. package/dist/canvas/index.d.ts.map +1 -0
  53. package/dist/canvas/index.js +34 -1839
  54. package/dist/canvas/types.d.ts +183 -0
  55. package/dist/canvas/types.d.ts.map +1 -0
  56. package/dist/canvas/types.js +1 -0
  57. package/dist/createNavigationGuard.svelte.d.ts +24 -0
  58. package/dist/createNavigationGuard.svelte.d.ts.map +1 -0
  59. package/dist/createNavigationGuard.svelte.js +65 -0
  60. package/dist/editor.svelte.d.ts +23 -0
  61. package/dist/editor.svelte.d.ts.map +1 -0
  62. package/dist/editor.svelte.js +41 -0
  63. package/dist/history/createHistoryShortcuts.d.ts +24 -0
  64. package/dist/history/createHistoryShortcuts.d.ts.map +1 -0
  65. package/dist/history/createHistoryShortcuts.js +57 -0
  66. package/dist/history/history.svelte.d.ts +18 -0
  67. package/dist/history/history.svelte.d.ts.map +1 -0
  68. package/dist/history/history.svelte.js +43 -0
  69. package/dist/history/index.d.ts +3 -0
  70. package/dist/history/index.d.ts.map +1 -0
  71. package/dist/history/index.js +2 -0
  72. package/{src → dist}/image-editor/ImageEditor.svelte +1 -1
  73. package/dist/image-editor/ImageEditor.svelte.d.ts +17 -0
  74. package/dist/image-editor/ImageEditor.svelte.d.ts.map +1 -0
  75. package/dist/image-editor/imageEditorState.svelte.d.ts +50 -0
  76. package/dist/image-editor/imageEditorState.svelte.d.ts.map +1 -0
  77. package/dist/image-editor/imageEditorState.svelte.js +132 -0
  78. package/dist/image-editor/index.d.ts +6 -16
  79. package/dist/image-editor/index.d.ts.map +1 -0
  80. package/dist/image-editor/index.js +2 -9
  81. package/dist/index.d.ts +20 -249
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +10 -1119
  84. package/dist/navigationGuard.d.ts +21 -0
  85. package/dist/navigationGuard.d.ts.map +1 -0
  86. package/dist/navigationGuard.js +59 -0
  87. package/{src → dist}/spreadsheet/FormulaBar.svelte +1 -1
  88. package/dist/spreadsheet/FormulaBar.svelte.d.ts +17 -0
  89. package/dist/spreadsheet/FormulaBar.svelte.d.ts.map +1 -0
  90. package/{src → dist}/spreadsheet/SpreadsheetEditor.svelte +1 -1
  91. package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts +22 -0
  92. package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts.map +1 -0
  93. package/dist/spreadsheet/index.d.ts +9 -0
  94. package/dist/spreadsheet/index.d.ts.map +1 -0
  95. package/{src/spreadsheet/index.ts → dist/spreadsheet/index.js} +1 -1
  96. package/dist/spreadsheet/spreadsheet.svelte.d.ts +33 -0
  97. package/dist/spreadsheet/spreadsheet.svelte.d.ts.map +1 -0
  98. package/dist/spreadsheet/spreadsheet.svelte.js +160 -0
  99. package/package.json +13 -15
  100. package/dist/canvas/index.js.map +0 -1
  101. package/dist/chunk-HEOI4UNF.js +0 -1191
  102. package/dist/chunk-HEOI4UNF.js.map +0 -1
  103. package/dist/image-editor/index.js.map +0 -1
  104. package/dist/index.css +0 -50
  105. package/dist/index.css.map +0 -1
  106. package/dist/index.js.map +0 -1
  107. package/src/canvas/__tests__/canvas-clipboard.test.ts +0 -154
  108. package/src/canvas/__tests__/canvas-docking.test.ts +0 -288
  109. package/src/canvas/__tests__/canvas-explosion.test.ts +0 -634
  110. package/src/canvas/__tests__/canvas-graph.test.ts +0 -159
  111. package/src/canvas/__tests__/canvas-interactions.test.ts +0 -86
  112. package/src/canvas/__tests__/canvas-layout.test.ts +0 -75
  113. package/src/canvas/__tests__/canvas-multi-drag.test.ts +0 -112
  114. package/src/canvas/__tests__/canvas-node-sync.svelte.test.ts +0 -104
  115. package/src/canvas/__tests__/canvas-shortcuts.test.ts +0 -59
  116. package/src/canvas/createCanvasClipboard.svelte.ts +0 -219
  117. package/src/canvas/createCanvasDisplacement.ts +0 -253
  118. package/src/canvas/createCanvasDocking.svelte.ts +0 -355
  119. package/src/canvas/createCanvasExplosion.svelte.ts +0 -457
  120. package/src/canvas/createCanvasGraph.svelte.ts +0 -330
  121. package/src/canvas/createCanvasInteractions.svelte.ts +0 -112
  122. package/src/canvas/createCanvasLayout.ts +0 -129
  123. package/src/canvas/createCanvasMultiDrag.svelte.ts +0 -175
  124. package/src/canvas/createCanvasNodeSync.svelte.ts +0 -150
  125. package/src/canvas/createCanvasSelection.svelte.ts +0 -51
  126. package/src/canvas/createCanvasShortcuts.ts +0 -99
  127. package/src/canvas/createCanvasTrajectory.ts +0 -207
  128. package/src/canvas/createStreamingCanvas.svelte.ts +0 -56
  129. package/src/canvas/index.d.ts +0 -688
  130. package/src/canvas/index.ts +0 -126
  131. package/src/canvas/types.ts +0 -223
  132. package/src/createNavigationGuard.svelte.ts +0 -97
  133. package/src/editor.svelte.ts +0 -65
  134. package/src/history/createHistoryShortcuts.ts +0 -95
  135. package/src/history/history.svelte.ts +0 -68
  136. package/src/history/index.ts +0 -2
  137. package/src/image-editor/imageEditorState.svelte.ts +0 -151
  138. package/src/image-editor/index.d.ts +0 -16
  139. package/src/image-editor/index.ts +0 -2
  140. package/src/index.d.ts +0 -249
  141. package/src/index.ts +0 -89
  142. package/src/navigationGuard.ts +0 -82
  143. package/src/spreadsheet/spreadsheet.svelte.ts +0 -176
  144. package/src/svelte.d.ts +0 -5
  145. /package/{src → dist}/BubbleMenu.svelte +0 -0
  146. /package/{src → dist}/TemplateRenderer.svelte +0 -0
  147. /package/{src → dist}/canvas/AgentPresenceLayer.svelte +0 -0
  148. /package/{src → dist}/canvas/FloatingHorizontalScrollbar.svelte +0 -0
  149. /package/{src → dist}/canvas/README.md +0 -0
@@ -1,688 +0,0 @@
1
- import type { Node, Edge, XYPosition, Rect, ColorMode } from '@xyflow/svelte';
2
-
3
- /**
4
- * Generic node interface representing an element on the canvas.
5
- */
6
- export type CanvasNode<
7
- TData extends Record<string, any> = Record<string, any>,
8
- TType extends string | undefined = string | undefined
9
- > = Node<TData, TType>;
10
-
11
- /**
12
- * Generic edge interface representing a connection on the canvas.
13
- */
14
- export type CanvasEdge<
15
- TData extends Record<string, any> = Record<string, any>,
16
- TType extends string | undefined = string | undefined
17
- > = Edge<TData, TType>;
18
-
19
- /**
20
- * Differences computed between two graph states.
21
- */
22
- export interface GraphDifferences<
23
- TNode extends CanvasNode = CanvasNode,
24
- TEdge extends CanvasEdge = CanvasEdge
25
- > {
26
- changedNodes: TNode[];
27
- changedEdges: TEdge[];
28
- removedNodes: TNode[];
29
- removedEdges: TEdge[];
30
- }
31
-
32
- /**
33
- * Standard serialized clipboard payload for nodes and optional edges.
34
- */
35
- export interface CanvasClipboardPayload<
36
- TNode extends CanvasNode = CanvasNode,
37
- TEdge extends CanvasEdge = CanvasEdge
38
- > {
39
- version?: number;
40
- nodes: TNode[];
41
- edges?: TEdge[];
42
- }
43
-
44
- /**
45
- * Options for Dagre graph layout.
46
- */
47
- export interface CanvasLayoutOptions {
48
- direction?: 'LR' | 'TB' | 'RL' | 'BT';
49
- ranksep?: number;
50
- nodesep?: number;
51
- defaultNodeWidth?: number;
52
- defaultNodeHeight?: number;
53
- }
54
-
55
- /**
56
- * Options for keyboard shortcuts.
57
- */
58
- export interface CanvasShortcutsOptions<TNode extends CanvasNode = CanvasNode> {
59
- targetElement?: HTMLElement | Window;
60
- onCopy?: () => void;
61
- onCut?: () => void;
62
- onPaste?: (event: ClipboardEvent) => void;
63
- onDelete?: (selectedNodes: TNode[]) => void;
64
- onDuplicate?: (selectedNodes: TNode[]) => void;
65
- onSelectAll?: () => void;
66
- onGroup?: (selectedNodes: TNode[]) => void;
67
- onUngroup?: (selectedNodes: TNode[]) => void;
68
- onZoomIn?: () => void;
69
- onZoomOut?: () => void;
70
- onFitView?: () => void;
71
- onSearch?: () => void;
72
- getSelectedNodes?: () => TNode[];
73
- }
74
-
75
- /**
76
- * Docking and intersection callbacks.
77
- */
78
- export interface CanvasDockingCallbacks<TNode extends CanvasNode = CanvasNode> {
79
- onDockHover?: (dockTarget: TNode, draggedNode: TNode) => void;
80
- onDockLeave?: (dockTarget: TNode, draggedNode: TNode) => void;
81
- onDockDrop?: (dockTarget: TNode, draggedNode: TNode) => void;
82
- }
83
-
84
- /**
85
- * Configuration options for SvelteFlow presets.
86
- */
87
- export interface CanvasInteractionPresetConfig {
88
- snapGrid?: [number, number];
89
- panOnDrag?: number[] | boolean;
90
- panOnScroll?: boolean;
91
- selectionOnDrag?: boolean;
92
- colorMode?: ColorMode;
93
- multiSelectionKey?: string[];
94
- minZoom?: number;
95
- maxZoom?: number;
96
- selectionMode?: 'partial' | 'full';
97
- }
98
-
99
- /**
100
- * Parametric point returned by a trajectory evaluation.
101
- */
102
- export interface TrajectoryPoint {
103
- position: XYPosition;
104
- scale?: number;
105
- opacity?: number;
106
- }
107
-
108
- /**
109
- * Trajectory evaluation function determining path, scale, and opacity over time t in [0, 1].
110
- */
111
- export type TrajectoryFunction = (
112
- origin: XYPosition,
113
- target: XYPosition,
114
- progress: number,
115
- index: number,
116
- total: number
117
- ) => TrajectoryPoint;
118
-
119
- /**
120
- * Options for fan-out trajectory generator.
121
- */
122
- export interface FanOutTrajectoryOptions {
123
- curvature?: number;
124
- spreadAngle?: number;
125
- startScale?: number;
126
- endScale?: number;
127
- startOpacity?: number;
128
- endOpacity?: number;
129
- }
130
-
131
- /**
132
- * Single node animation transition definition.
133
- */
134
- export interface NodeTransition<TNode extends CanvasNode = CanvasNode> {
135
- node: TNode;
136
- from: XYPosition;
137
- to: XYPosition;
138
- trajectory?: TrajectoryFunction;
139
- delay?: number;
140
- duration?: number;
141
- easing?: (t: number) => number;
142
- index?: number;
143
- total?: number;
144
- }
145
-
146
- /**
147
- * Displacement axis / direction.
148
- */
149
- export type DisplacementDirection = 'right' | 'left' | 'down' | 'up' | 'vertical';
150
-
151
- /**
152
- * Options for directional displacement calculation.
153
- */
154
- export interface DirectionalDisplacementOptions {
155
- direction?: DisplacementDirection;
156
- gap?: number;
157
- spreadSiblingLanes?: boolean;
158
- siblingTolerance?: number;
159
- minY?: number;
160
- }
161
-
162
- /**
163
- * Options for Dagre reflow displacement calculation.
164
- */
165
- export interface ReflowDisplacementOptions extends CanvasLayoutOptions {
166
- anchorNodeId: string;
167
- }
168
-
169
- /**
170
- * Snapshot of canvas graph state prior to node explosion, enabling exact reversibility.
171
- */
172
- export interface ExplosionSnapshot<
173
- TNode extends CanvasNode = CanvasNode,
174
- TEdge extends CanvasEdge = CanvasEdge
175
- > {
176
- parentId: string;
177
- childNodeIds: string[];
178
- childEdgeIds: string[];
179
- displacedNodes: { id: string; originalPosition: XYPosition }[];
180
- timestamp: number;
181
- }
182
-
183
- /**
184
- * Options for exploding a node.
185
- */
186
- export interface ExplodeNodeOptions<
187
- TNode extends CanvasNode = CanvasNode,
188
- TEdge extends CanvasEdge = CanvasEdge
189
- > {
190
- childNodes: TNode[];
191
- childEdges?: TEdge[];
192
- connectParentToChildren?: boolean | 'first' | 'all';
193
- connectChildrenToDownstream?: boolean;
194
- displacementStrategy?: 'directional' | 'dagre' | 'none';
195
- directionalOptions?: DirectionalDisplacementOptions;
196
- reflowOptions?: Partial<ReflowDisplacementOptions>;
197
- trajectory?: TrajectoryFunction;
198
- duration?: number;
199
- staggerDelay?: number;
200
- easing?: (t: number) => number;
201
- onComplete?: () => void;
202
- }
203
-
204
- /**
205
- * Options for collapsing an exploded node.
206
- */
207
- export interface CollapseNodeOptions {
208
- duration?: number;
209
- staggerDelay?: number;
210
- easing?: (t: number) => number;
211
- trajectory?: TrajectoryFunction;
212
- onComplete?: () => void;
213
- }
214
-
215
-
216
- /**
217
- * Pure calculation of graph differences between a current state and a baseline state.
218
- */
219
- export declare function calculateGraphDifferences<
220
- TNode extends CanvasNode = CanvasNode,
221
- TEdge extends CanvasEdge = CanvasEdge
222
- >(
223
- currentState: { nodes?: TNode[]; edges?: TEdge[] },
224
- baselineState: { nodes?: TNode[]; edges?: TEdge[] }
225
- ): GraphDifferences<TNode, TEdge>;
226
-
227
- /**
228
- * Pure function to replace a node in a graph, optionally preserving its connected edges.
229
- */
230
- export declare function replaceNodeInGraph<
231
- TNode extends CanvasNode = CanvasNode,
232
- TEdge extends CanvasEdge = CanvasEdge
233
- >(
234
- nodes: TNode[],
235
- edges: TEdge[],
236
- oldNode: TNode,
237
- newNode: TNode,
238
- keepEdges?: boolean
239
- ): { nodes: TNode[]; edges: TEdge[] };
240
-
241
- export interface CreateCanvasGraphOptions<
242
- TNode extends CanvasNode = CanvasNode,
243
- TEdge extends CanvasEdge = CanvasEdge
244
- > {
245
- initialNodes?: TNode[];
246
- initialEdges?: TEdge[];
247
- onNodesChange?: (nodes: TNode[]) => void;
248
- onEdgesChange?: (edges: TEdge[]) => void;
249
- onSave?: () => void;
250
- createEdge?: (
251
- sourceId: string,
252
- targetId: string,
253
- options?: { label?: string; animated?: boolean; data?: any }
254
- ) => TEdge;
255
- }
256
-
257
- /**
258
- * Headless Svelte 5 rune managing canvas graph state and operations.
259
- */
260
- export declare function createCanvasGraph<
261
- TNode extends CanvasNode = CanvasNode,
262
- TEdge extends CanvasEdge = CanvasEdge
263
- >(options?: CreateCanvasGraphOptions<TNode, TEdge>): {
264
- nodes: TNode[];
265
- edges: TEdge[];
266
- setNodes(newNodes: TNode[], triggerCallback?: boolean): void;
267
- setEdges(newEdges: TEdge[], triggerCallback?: boolean): void;
268
- addNodeOrNodes(nodeOrNodesToAdd: TNode | TNode[], animateFromPosition?: XYPosition, save?: boolean): void;
269
- addEdge(edgeToAdd: TEdge, save?: boolean): void;
270
- addEdges(edgesToAdd: TEdge[], save?: boolean): void;
271
- removeNodes(nodesToRemove: TNode[], save?: boolean): void;
272
- removeEdges(edgesToRemove: TEdge[], save?: boolean): void;
273
- replaceNode(oldNode: TNode, newNode: TNode, save?: boolean, keepEdges?: boolean): void;
274
- addConnectedNodes(params: {
275
- nodesToAdd: TNode[];
276
- inboundNodes?: TNode[];
277
- outboundNodes?: TNode[];
278
- animatedEdges?: boolean;
279
- animateFromPosition?: XYPosition;
280
- inboundEdgeData?: any;
281
- outboundEdgeData?: any;
282
- getEdgeLabel?: (source: TNode, target: TNode) => string;
283
- }): void;
284
- animateNodePosition(
285
- node: TNode,
286
- targetPosition: XYPosition,
287
- duration?: number,
288
- easing?: (t: number) => number
289
- ): void;
290
- getDifferences(baseline: { nodes?: TNode[]; edges?: TEdge[] }): GraphDifferences<TNode, TEdge>;
291
- };
292
-
293
- /**
294
- * Calculates upper-left flow coordinate for an element to be centered in the viewport.
295
- */
296
- export declare function getCenteredNodePosition(
297
- width?: number,
298
- height?: number,
299
- screenToFlowPosition?: (position: XYPosition) => XYPosition,
300
- screenDimensions?: { width: number; height: number }
301
- ): XYPosition;
302
-
303
- /**
304
- * Updates positions of nodes so their collective bounding box is centered in the current viewport.
305
- */
306
- export declare function centerNodes<TNode extends CanvasNode = CanvasNode>(
307
- nodes: TNode[],
308
- screenToFlowPosition: (position: XYPosition) => XYPosition,
309
- getNodesBounds: (nodes: TNode[]) => Rect,
310
- screenDimensions?: { width: number; height: number }
311
- ): TNode[];
312
-
313
- /**
314
- * Automatically calculates directed hierarchical layout of nodes and edges using Dagre.
315
- */
316
- export declare function getLayoutedNodes<
317
- TNode extends CanvasNode = CanvasNode,
318
- TEdge extends CanvasEdge = CanvasEdge
319
- >(
320
- nodes: TNode[],
321
- edges: TEdge[],
322
- getNodesBounds: (nodes: TNode[]) => Rect,
323
- options?: CanvasLayoutOptions
324
- ): TNode[];
325
-
326
- /**
327
- * Checks if an event originated from a text input, textarea, contenteditable element, or rich editor.
328
- */
329
- export declare function isEventFromTextInput(event: Event | { target: EventTarget | null }): boolean;
330
-
331
- /**
332
- * Validates that an object conforms to minimal CanvasNode shape.
333
- */
334
- export declare function isValidCanvasNode(obj: unknown): obj is CanvasNode;
335
-
336
- /**
337
- * Checks if a string is a valid HTTP/HTTPS URL.
338
- */
339
- export declare function isValidUrl(url: string): boolean;
340
-
341
- export interface CreateCanvasClipboardOptions<
342
- TNode extends CanvasNode = CanvasNode,
343
- TEdge extends CanvasEdge = CanvasEdge
344
- > {
345
- onPasteNodes?: (nodes: TNode[], edges?: TEdge[]) => void | Promise<void>;
346
- onPasteUrl?: (url: string, position?: XYPosition) => void;
347
- onPasteText?: (text: string, position?: XYPosition) => void;
348
- onPasteImage?: (blob: File) => void | Promise<void>;
349
- screenToFlowPosition?: (position: XYPosition) => XYPosition;
350
- }
351
-
352
- /**
353
- * Headless Svelte 5 rune managing canvas copy, cut, and paste interactions.
354
- */
355
- export declare function createCanvasClipboard<
356
- TNode extends CanvasNode = CanvasNode,
357
- TEdge extends CanvasEdge = CanvasEdge
358
- >(options?: CreateCanvasClipboardOptions<TNode, TEdge>): {
359
- copySelectedNodes(
360
- selectedNodes: TNode[],
361
- connectedEdges?: TEdge[],
362
- event?: ClipboardEvent
363
- ): boolean;
364
- cutSelectedNodes(
365
- selectedNodes: TNode[],
366
- connectedEdges?: TEdge[],
367
- onRemove?: (nodes: TNode[]) => void,
368
- event?: ClipboardEvent
369
- ): boolean;
370
- handlePasteEvent(event: ClipboardEvent): Promise<boolean>;
371
- };
372
-
373
- export interface CreateCanvasDockingOptions<TNode extends CanvasNode = CanvasNode>
374
- extends CanvasDockingCallbacks<TNode> {
375
- isDockTarget?: (target: TNode) => boolean;
376
- restorePositionOnDock?: boolean;
377
- onSave?: () => void;
378
- }
379
-
380
- /**
381
- * Headless Svelte 5 rune managing canvas node dragging, docking intersection, and connection tracking.
382
- */
383
- export declare function createCanvasDocking<TNode extends CanvasNode = CanvasNode>(
384
- options?: CreateCanvasDockingOptions<TNode>
385
- ): {
386
- readonly draggedNode: TNode | null;
387
- readonly draggedInitialPosition: XYPosition | null;
388
- readonly connectingHandle: string;
389
- readonly connectingNode: TNode | null;
390
- readonly isDragging: boolean;
391
- handleNodeDragStart(params: {
392
- targetNode: TNode | null;
393
- event?: MouseEvent | TouchEvent;
394
- }): void;
395
- handleNodeDrag(
396
- params: {
397
- targetNode: TNode | null;
398
- event?: MouseEvent | TouchEvent;
399
- },
400
- getIntersectingNodes: (node: TNode) => TNode[]
401
- ): void;
402
- handleNodeDragStop(
403
- params: {
404
- targetNode: TNode | null;
405
- event?: MouseEvent | TouchEvent;
406
- },
407
- getIntersectingNodes: (node: TNode) => TNode[],
408
- updateNodePosition?: (nodeId: string, position: XYPosition) => void
409
- ): void;
410
- handleConnectStart(
411
- params: {
412
- nodeId: string | null;
413
- handleId?: string | null;
414
- handleType: 'source' | 'target' | null;
415
- },
416
- getNode: (id: string) => TNode | undefined
417
- ): void;
418
- handleConnectEnd(): void;
419
- reset(): void;
420
- };
421
-
422
- /**
423
- * Attaches keyboard shortcut handlers for canvas interaction.
424
- * Automatically ignores shortcuts when the user is typing into text inputs, textareas, or rich editors.
425
- *
426
- * @returns A cleanup function to remove event listeners.
427
- */
428
- export declare function createCanvasShortcuts<TNode extends CanvasNode = CanvasNode>(
429
- options: CanvasShortcutsOptions<TNode>
430
- ): () => void;
431
-
432
- export interface CreateCanvasInteractionsOptions {
433
- targetElement?: HTMLElement | Window;
434
- onPanModeChange?: (active: boolean) => void;
435
- onTrackpadDetected?: () => void;
436
- }
437
-
438
- /**
439
- * Headless Svelte 5 rune managing canvas pan interactions (spacebar panning, trackpad pinch detection).
440
- */
441
- export declare function createCanvasInteractions(
442
- options?: CreateCanvasInteractionsOptions
443
- ): {
444
- readonly isSpacebarPanning: boolean;
445
- readonly trackpadDetected: boolean;
446
- attachListeners(target?: HTMLElement | Window): () => void;
447
- destroy: () => void;
448
- };
449
-
450
- /**
451
- * Default interaction configuration presets for SvelteFlow.
452
- */
453
- export declare const defaultSvelteFlowPreset: CanvasInteractionPresetConfig;
454
-
455
- /**
456
- * Miro-compatible interaction preset (middle/right drag to pan, left drag to select).
457
- */
458
- export declare const miroCompatiblePreset: CanvasInteractionPresetConfig;
459
-
460
- /**
461
- * Helper to ensure panels restore pointer events after selection rectangle releases.
462
- */
463
- export declare function restorePanelPointerEvents(panelSelector?: string): void;
464
-
465
- /**
466
- * Standard linear trajectory: straight line interpolation with linear scale & opacity progression.
467
- */
468
- export declare const linearTrajectory: TrajectoryFunction;
469
-
470
- /**
471
- * Creates a fan-out trajectory where nodes arc outward from origin to target.
472
- */
473
- export declare function createFanOutTrajectory(options?: FanOutTrajectoryOptions): TrajectoryFunction;
474
-
475
- /**
476
- * Creates a custom quadratic Bezier trajectory with a specified or dynamically calculated control point.
477
- */
478
- export declare function createBezierTrajectory(
479
- getControlPoint: (origin: XYPosition, target: XYPosition) => XYPosition
480
- ): TrajectoryFunction;
481
-
482
- /**
483
- * Coordinates and animates multiple node transitions simultaneously with zero per-frame array allocations.
484
- */
485
- export declare function runMultiNodeTransition<TNode extends CanvasNode = CanvasNode>(
486
- transitions: NodeTransition<TNode>[],
487
- options?: {
488
- defaultDuration?: number;
489
- defaultEasing?: (t: number) => number;
490
- onUpdate?: () => void;
491
- onComplete?: () => void;
492
- }
493
- ): () => void;
494
-
495
- /**
496
- * Calculates a bounding rectangle for a set of nodes.
497
- */
498
- export declare function computeNodesBoundingBox<TNode extends CanvasNode = CanvasNode>(
499
- nodes: TNode[],
500
- defaultWidth?: number,
501
- defaultHeight?: number
502
- ): Rect;
503
-
504
- /**
505
- * Pure directional displacement calculation.
506
- */
507
- export declare function calculateDirectionalDisplacement<TNode extends CanvasNode = CanvasNode>(params: {
508
- existingNodes: TNode[];
509
- originNode: TNode;
510
- childNodes: TNode[];
511
- getNodesBounds?: (nodes: TNode[]) => Rect;
512
- options?: DirectionalDisplacementOptions;
513
- }): Map<string, XYPosition>;
514
-
515
- /**
516
- * Pure hierarchical Dagre reflow displacement calculation.
517
- */
518
- export declare function calculateReflowDisplacement<
519
- TNode extends CanvasNode = CanvasNode,
520
- TEdge extends CanvasEdge = CanvasEdge
521
- >(params: {
522
- existingNodes: TNode[];
523
- existingEdges: TEdge[];
524
- originNode: TNode;
525
- childNodes: TNode[];
526
- childEdges?: TEdge[];
527
- getNodesBounds?: (nodes: TNode[]) => Rect;
528
- options?: CanvasLayoutOptions;
529
- }): Map<string, XYPosition>;
530
-
531
- export interface CanvasGraphTarget<
532
- TNode extends CanvasNode = CanvasNode,
533
- TEdge extends CanvasEdge = CanvasEdge
534
- > {
535
- nodes: TNode[];
536
- edges: TEdge[];
537
- setNodes: (nodes: TNode[], triggerCallback?: boolean) => void;
538
- setEdges: (edges: TEdge[], triggerCallback?: boolean) => void;
539
- addNodeOrNodes: (nodes: TNode | TNode[], animateFrom?: XYPosition, save?: boolean) => void;
540
- addEdges: (edges: TEdge[], save?: boolean) => void;
541
- removeNodes: (nodes: TNode[], save?: boolean) => void;
542
- removeEdges: (edges: TEdge[], save?: boolean) => void;
543
- createEdge?: (sourceId: string, targetId: string, options?: any) => TEdge;
544
- onSave?: () => void;
545
- }
546
-
547
- export interface CreateCanvasExplosionOptions<TNode extends CanvasNode = CanvasNode> {
548
- getNodesBounds?: (nodes: TNode[]) => Rect;
549
- onSave?: () => void;
550
- }
551
-
552
- /**
553
- * Headless Svelte 5 rune managing canvas node explosion, spatial layout displacement,
554
- * coordinated multi-node animation paths, and reversible collapsing.
555
- */
556
- export declare function createCanvasExplosion<
557
- TNode extends CanvasNode = CanvasNode,
558
- TEdge extends CanvasEdge = CanvasEdge
559
- >(
560
- graph: CanvasGraphTarget<TNode, TEdge>,
561
- options?: CreateCanvasExplosionOptions<TNode>
562
- ): {
563
- readonly explodedNodeIds: string[];
564
- isExploded(nodeId: string): boolean;
565
- explodeNode(parentId: string, explodeOptions: ExplodeNodeOptions<TNode, TEdge>): boolean;
566
- collapseNode(parentId: string, collapseOptions?: CollapseNodeOptions): boolean;
567
- toggleExplode(
568
- parentId: string,
569
- explodeOptions: ExplodeNodeOptions<TNode, TEdge>,
570
- collapseOptions?: CollapseNodeOptions
571
- ): boolean;
572
- getSnapshot(parentId: string): ExplosionSnapshot<TNode, TEdge> | undefined;
573
- };
574
-
575
- export interface HandleConfig {
576
- id?: string | null;
577
- type: 'source' | 'target';
578
- position: any;
579
- x?: number;
580
- y?: number;
581
- width?: number;
582
- height?: number;
583
- }
584
-
585
- export interface NodeMeasurement {
586
- width: number;
587
- height: number;
588
- }
589
-
590
- export declare function preserveNodeMeasurements<TNode extends CanvasNode = CanvasNode>(
591
- newNodes: TNode[],
592
- existingNodes: TNode[] | Map<string, TNode>
593
- ): TNode[];
594
-
595
- export declare function normalizeNodeHandles<TNode extends CanvasNode = CanvasNode>(
596
- node: TNode,
597
- handles?: HandleConfig[]
598
- ): TNode;
599
-
600
- export interface CreateCanvasNodeSyncOptions<
601
- TItem,
602
- TNode extends CanvasNode = CanvasNode,
603
- TEdge extends CanvasEdge = CanvasEdge
604
- > {
605
- items: () => TItem[];
606
- toNode: (
607
- item: TItem,
608
- index: number,
609
- context: { existingNode?: TNode; prevNodesMap: Map<string, TNode> }
610
- ) => TNode;
611
- toEdges?: (items: TItem[], nodes: TNode[]) => TEdge[];
612
- defaultHandles?: (node: TNode) => HandleConfig[] | undefined;
613
- }
614
-
615
- export declare function createCanvasNodeSync<
616
- TItem,
617
- TNode extends CanvasNode = CanvasNode,
618
- TEdge extends CanvasEdge = CanvasEdge
619
- >(options: CreateCanvasNodeSyncOptions<TItem, TNode, TEdge>): {
620
- nodes: TNode[];
621
- edges: TEdge[];
622
- updateNodeMeasurements(id: string, width: number, height: number): void;
623
- };
624
-
625
- export interface MultiDragFollowerOffset {
626
- deltaX: number;
627
- deltaY: number;
628
- originalPosition: XYPosition;
629
- stackOffsetX: number;
630
- stackOffsetY: number;
631
- rotationDeg: number;
632
- }
633
-
634
- export interface MultiDragState {
635
- leadId: string;
636
- offsets: Record<string, MultiDragFollowerOffset>;
637
- count: number;
638
- }
639
-
640
- export interface CreateCanvasMultiDragOptions {
641
- stackOffsetStepX?: number;
642
- stackOffsetStepY?: number;
643
- rotationAngles?: number[];
644
- baseZIndex?: number;
645
- }
646
-
647
- export interface FollowerTransform {
648
- isFollower: boolean;
649
- stackOffsetX: number;
650
- stackOffsetY: number;
651
- rotationDeg: number;
652
- zIndex: number;
653
- }
654
-
655
- export declare function createCanvasMultiDrag(options?: CreateCanvasMultiDragOptions): {
656
- readonly dragState: MultiDragState | null;
657
- readonly isMultiDrag: boolean;
658
- readonly count: number;
659
- readonly leadId: string | null;
660
- startMultiDrag(
661
- leadNodeId: string,
662
- selectedNodeIds: string[] | Set<string>,
663
- nodes: CanvasNode[] | Map<string, CanvasNode>
664
- ): MultiDragState | null;
665
- getFollowerTransform(nodeId: string): FollowerTransform;
666
- cancelMultiDrag(
667
- applyRestore?: (restores: { id: string; originalPosition: XYPosition }[]) => void
668
- ): { id: string; originalPosition: XYPosition }[];
669
- commitMultiDrag(): void;
670
- };
671
-
672
- export interface CanvasSelectionOptions {
673
- isSpacebarPanning?: boolean;
674
- selectionMode?: 'partial' | 'full';
675
- multiSelectionKey?: string[];
676
- }
677
-
678
- export declare function getMarqueeSelectionPreset(
679
- options?: CanvasSelectionOptions
680
- ): CanvasInteractionPresetConfig;
681
-
682
- export declare function handleDeselectOnEscape(
683
- event: KeyboardEvent,
684
- onDeselect: () => void
685
- ): boolean;
686
-
687
- export declare const FloatingHorizontalScrollbar: any;
688
-