@agent-native/toolkit 0.11.2 → 0.12.1

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 (75) hide show
  1. package/README.md +19 -0
  2. package/agent-native.eject.json +38 -0
  3. package/dist/canvas-annotations/CanvasCommentPins.d.ts +68 -0
  4. package/dist/canvas-annotations/CanvasCommentPins.d.ts.map +1 -0
  5. package/dist/canvas-annotations/CanvasCommentPins.js +513 -0
  6. package/dist/canvas-annotations/CanvasCommentPins.js.map +1 -0
  7. package/dist/canvas-annotations/DrawOverlay.d.ts +108 -0
  8. package/dist/canvas-annotations/DrawOverlay.d.ts.map +1 -0
  9. package/dist/canvas-annotations/DrawOverlay.js +746 -0
  10. package/dist/canvas-annotations/DrawOverlay.js.map +1 -0
  11. package/dist/canvas-annotations/DrawOverlay.spec.d.ts +2 -0
  12. package/dist/canvas-annotations/DrawOverlay.spec.d.ts.map +1 -0
  13. package/dist/canvas-annotations/DrawOverlay.spec.js +111 -0
  14. package/dist/canvas-annotations/DrawOverlay.spec.js.map +1 -0
  15. package/dist/canvas-annotations/index.d.ts +4 -0
  16. package/dist/canvas-annotations/index.d.ts.map +1 -0
  17. package/dist/canvas-annotations/index.js +3 -0
  18. package/dist/canvas-annotations/index.js.map +1 -0
  19. package/dist/canvas-annotations/types.d.ts +8 -0
  20. package/dist/canvas-annotations/types.d.ts.map +1 -0
  21. package/dist/canvas-annotations/types.js +2 -0
  22. package/dist/canvas-annotations/types.js.map +1 -0
  23. package/dist/canvas-interactions/canvas-interactions.d.ts +334 -0
  24. package/dist/canvas-interactions/canvas-interactions.d.ts.map +1 -0
  25. package/dist/canvas-interactions/canvas-interactions.js +451 -0
  26. package/dist/canvas-interactions/canvas-interactions.js.map +1 -0
  27. package/dist/canvas-interactions/canvas-interactions.spec.d.ts +2 -0
  28. package/dist/canvas-interactions/canvas-interactions.spec.d.ts.map +1 -0
  29. package/dist/canvas-interactions/canvas-interactions.spec.js +538 -0
  30. package/dist/canvas-interactions/canvas-interactions.spec.js.map +1 -0
  31. package/dist/canvas-interactions/index.d.ts +2 -0
  32. package/dist/canvas-interactions/index.d.ts.map +1 -0
  33. package/dist/canvas-interactions/index.js +2 -0
  34. package/dist/canvas-interactions/index.js.map +1 -0
  35. package/dist/composer/runtime-adapters.d.ts.map +1 -1
  36. package/dist/composer/runtime-adapters.js +13 -10
  37. package/dist/composer/runtime-adapters.js.map +1 -1
  38. package/dist/composer/runtime-adapters.spec.d.ts +2 -0
  39. package/dist/composer/runtime-adapters.spec.d.ts.map +1 -0
  40. package/dist/composer/runtime-adapters.spec.js +54 -0
  41. package/dist/composer/runtime-adapters.spec.js.map +1 -0
  42. package/dist/design-tweaks/scrub-input-utils.d.ts +61 -0
  43. package/dist/design-tweaks/scrub-input-utils.d.ts.map +1 -0
  44. package/dist/design-tweaks/scrub-input-utils.js +235 -0
  45. package/dist/design-tweaks/scrub-input-utils.js.map +1 -0
  46. package/dist/design-tweaks/scrub-input.d.ts +66 -0
  47. package/dist/design-tweaks/scrub-input.d.ts.map +1 -0
  48. package/dist/design-tweaks/scrub-input.js +313 -0
  49. package/dist/design-tweaks/scrub-input.js.map +1 -0
  50. package/dist/design-tweaks/visual-style-controls.d.ts +2 -12
  51. package/dist/design-tweaks/visual-style-controls.d.ts.map +1 -1
  52. package/dist/design-tweaks/visual-style-controls.js +3 -107
  53. package/dist/design-tweaks/visual-style-controls.js.map +1 -1
  54. package/dist/design-tweaks/visual-style-controls.spec.js +26 -0
  55. package/dist/design-tweaks/visual-style-controls.spec.js.map +1 -1
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +1 -0
  59. package/dist/index.js.map +1 -1
  60. package/package.json +29 -1
  61. package/src/canvas-annotations/CanvasCommentPins.tsx +861 -0
  62. package/src/canvas-annotations/DrawOverlay.spec.tsx +145 -0
  63. package/src/canvas-annotations/DrawOverlay.tsx +1233 -0
  64. package/src/canvas-annotations/index.ts +15 -0
  65. package/src/canvas-annotations/types.ts +14 -0
  66. package/src/canvas-interactions/canvas-interactions.spec.ts +688 -0
  67. package/src/canvas-interactions/canvas-interactions.ts +933 -0
  68. package/src/canvas-interactions/index.ts +67 -0
  69. package/src/composer/runtime-adapters.spec.tsx +83 -0
  70. package/src/composer/runtime-adapters.tsx +16 -11
  71. package/src/design-tweaks/scrub-input-utils.ts +311 -0
  72. package/src/design-tweaks/scrub-input.tsx +491 -0
  73. package/src/design-tweaks/visual-style-controls.spec.tsx +60 -0
  74. package/src/design-tweaks/visual-style-controls.tsx +23 -168
  75. package/src/index.ts +1 -0
@@ -0,0 +1,451 @@
1
+ /**
2
+ * Headless canvas interaction primitives shared by visual editors.
3
+ *
4
+ * This module deliberately knows nothing about React, DOM elements, or how an
5
+ * application persists objects. An app supplies its object adapter and turns
6
+ * the returned semantic commands into its own mutations.
7
+ */
8
+ export const DEFAULT_CANVAS_DRAG_THRESHOLD = 3;
9
+ export const DEFAULT_CANVAS_NUDGE = 1;
10
+ export const DEFAULT_CANVAS_ACCELERATED_NUDGE = 10;
11
+ export const DEFAULT_CANVAS_MIN_SIZE = 24;
12
+ export const DEFAULT_CANVAS_INTERACTION_CAPABILITIES = {
13
+ selection: true,
14
+ multiSelection: false,
15
+ move: true,
16
+ resize: true,
17
+ textEditing: true,
18
+ nudge: true,
19
+ duplicate: true,
20
+ clipboard: true,
21
+ delete: true,
22
+ arrange: true,
23
+ snapping: false,
24
+ alignment: false,
25
+ distribution: false,
26
+ grouping: false,
27
+ rotation: false,
28
+ marquee: false,
29
+ };
30
+ export const DEFAULT_CANVAS_SHORTCUTS = [
31
+ { command: "select-all", key: "a", modifiers: ["primary"] },
32
+ { command: "undo", key: "z", modifiers: ["primary"] },
33
+ { command: "redo", key: "z", modifiers: ["primary", "shift"] },
34
+ { command: "copy", key: "c", modifiers: ["primary"] },
35
+ { command: "cut", key: "x", modifiers: ["primary"] },
36
+ { command: "paste", key: "v", modifiers: ["primary"] },
37
+ { command: "duplicate", key: "d", modifiers: ["primary"] },
38
+ { command: "delete", key: "Backspace" },
39
+ { command: "delete", key: "Delete" },
40
+ {
41
+ command: "arrange-front",
42
+ key: "]",
43
+ code: "BracketRight",
44
+ modifiers: ["primary", "shift"],
45
+ },
46
+ {
47
+ command: "arrange-back",
48
+ key: "[",
49
+ code: "BracketLeft",
50
+ modifiers: ["primary", "shift"],
51
+ },
52
+ ];
53
+ function primaryModifierIsPressed(modifiers) {
54
+ return Boolean(modifiers.metaKey || modifiers.ctrlKey);
55
+ }
56
+ function hasShortcutModifier(modifier, input) {
57
+ switch (modifier) {
58
+ case "primary":
59
+ return primaryModifierIsPressed(input);
60
+ case "shift":
61
+ return Boolean(input.shiftKey);
62
+ case "alt":
63
+ return Boolean(input.altKey);
64
+ case "ctrl":
65
+ return Boolean(input.ctrlKey);
66
+ case "meta":
67
+ return Boolean(input.metaKey);
68
+ }
69
+ }
70
+ function hasOnlyShortcutModifiers(shortcut, input) {
71
+ const modifiers = new Set(shortcut.modifiers ?? []);
72
+ const expectedPrimary = modifiers.has("primary");
73
+ const expectedCtrl = modifiers.has("ctrl") || expectedPrimary;
74
+ const expectedMeta = modifiers.has("meta") || expectedPrimary;
75
+ return (Boolean(input.shiftKey) === modifiers.has("shift") &&
76
+ Boolean(input.altKey) === modifiers.has("alt") &&
77
+ (!input.ctrlKey || expectedCtrl) &&
78
+ (!input.metaKey || expectedMeta) &&
79
+ (!expectedPrimary || primaryModifierIsPressed(input)));
80
+ }
81
+ /** Resolves click-to-edit without attaching event listeners. */
82
+ export function resolveCanvasTextActivation(input, policy = {}) {
83
+ if (!input.textEditable)
84
+ return "select";
85
+ const activation = policy.activation ?? "double-click";
86
+ return input.clickCount >= (activation === "single-click" ? 1 : 2)
87
+ ? "edit"
88
+ : "select";
89
+ }
90
+ /**
91
+ * Escape has one explicit owner: editing wins over any box-selection state.
92
+ * The host applies this result before handing Escape to generic UI dismissal.
93
+ */
94
+ export function resolveCanvasEscape(input, policy = {}) {
95
+ const selectedObjectIds = input.selectedObjectIds ?? [];
96
+ if (input.editingObjectId === null) {
97
+ return { action: "none", editingObjectId: null, selectedObjectIds };
98
+ }
99
+ if ((policy.escapeBehavior ?? "select-object") === "cancel-edit") {
100
+ return { action: "cancel-edit", editingObjectId: null, selectedObjectIds };
101
+ }
102
+ if ((policy.escapeBehavior ?? "select-object") === "clear-selection") {
103
+ return {
104
+ action: "clear-selection",
105
+ editingObjectId: null,
106
+ selectedObjectIds: [],
107
+ };
108
+ }
109
+ return {
110
+ action: "select-object",
111
+ editingObjectId: null,
112
+ selectedObjectIds: [input.editingObjectId],
113
+ };
114
+ }
115
+ /** Converts a browser client point into unscaled canvas coordinates. */
116
+ export function clientPointToCanvasPoint(point, viewport, canvas) {
117
+ if (viewport.width <= 0 || viewport.height <= 0)
118
+ return { x: 0, y: 0 };
119
+ return {
120
+ x: ((point.x - viewport.left) / viewport.width) * canvas.width,
121
+ y: ((point.y - viewport.top) / viewport.height) * canvas.height,
122
+ };
123
+ }
124
+ /** Converts a client-space drag delta to the canvas's unscaled coordinate space. */
125
+ export function clientDeltaToCanvasDelta(delta, viewport, canvas) {
126
+ if (viewport.width <= 0 || viewport.height <= 0)
127
+ return { x: 0, y: 0 };
128
+ return {
129
+ x: (delta.x / viewport.width) * canvas.width,
130
+ y: (delta.y / viewport.height) * canvas.height,
131
+ };
132
+ }
133
+ /** Whether the client pointer crossed the intentional-drag threshold. */
134
+ export function hasCrossedCanvasDragThreshold(start, current, threshold = DEFAULT_CANVAS_DRAG_THRESHOLD) {
135
+ const dx = current.x - start.x;
136
+ const dy = current.y - start.y;
137
+ return dx * dx + dy * dy >= threshold * threshold;
138
+ }
139
+ /** Locks a drag to its dominant axis, used for Shift-drag. */
140
+ export function constrainCanvasDragDelta(delta, lockAxis = false) {
141
+ if (!lockAxis)
142
+ return delta;
143
+ return Math.abs(delta.x) >= Math.abs(delta.y)
144
+ ? { x: delta.x, y: 0 }
145
+ : { x: 0, y: delta.y };
146
+ }
147
+ /**
148
+ * Resizes against the opposite edge. Shift preserves aspect ratio on corners;
149
+ * midpoint handles stay single-axis so their fixed edge remains predictable.
150
+ */
151
+ export function resizeCanvasRect(start, input) {
152
+ const fromWest = input.handle === "nw" || input.handle === "w" || input.handle === "sw";
153
+ const fromEast = input.handle === "ne" || input.handle === "e" || input.handle === "se";
154
+ const fromNorth = input.handle === "nw" || input.handle === "n" || input.handle === "ne";
155
+ const fromSouth = input.handle === "sw" || input.handle === "s" || input.handle === "se";
156
+ const resizesHorizontally = fromWest || fromEast;
157
+ const resizesVertically = fromNorth || fromSouth;
158
+ let width = start.width + (fromWest ? -input.delta.x : fromEast ? input.delta.x : 0);
159
+ let height = start.height + (fromNorth ? -input.delta.y : fromSouth ? input.delta.y : 0);
160
+ const minWidth = input.minWidth ?? DEFAULT_CANVAS_MIN_SIZE;
161
+ const minHeight = input.minHeight ?? DEFAULT_CANVAS_MIN_SIZE;
162
+ if (input.preserveAspectRatio &&
163
+ resizesHorizontally &&
164
+ resizesVertically &&
165
+ start.width > 0 &&
166
+ start.height > 0) {
167
+ const horizontalScale = width / start.width;
168
+ const verticalScale = height / start.height;
169
+ const scale = Math.abs(horizontalScale - 1) >= Math.abs(verticalScale - 1)
170
+ ? horizontalScale
171
+ : verticalScale;
172
+ const minScale = Math.max(minWidth / start.width, minHeight / start.height);
173
+ width = start.width * Math.max(minScale, scale);
174
+ height = start.height * Math.max(minScale, scale);
175
+ }
176
+ width = Math.max(minWidth, width);
177
+ height = Math.max(minHeight, height);
178
+ return {
179
+ x: fromWest ? start.x + start.width - width : start.x,
180
+ y: fromNorth ? start.y + start.height - height : start.y,
181
+ width,
182
+ height,
183
+ };
184
+ }
185
+ /** Whether this drag gesture should duplicate selected objects before moving. */
186
+ export function shouldDuplicateCanvasDrag(modifiers, duplicateModifier = "alt") {
187
+ switch (duplicateModifier) {
188
+ case "alt":
189
+ return Boolean(modifiers.altKey);
190
+ case "meta":
191
+ return Boolean(modifiers.metaKey);
192
+ case "ctrl":
193
+ return Boolean(modifiers.ctrlKey);
194
+ case "none":
195
+ return false;
196
+ }
197
+ }
198
+ /** Resolves standard arrow-key movement, including Shift's accelerated nudge. */
199
+ export function resolveCanvasNudge(input, policy = {}) {
200
+ const amount = input.shiftKey
201
+ ? (policy.acceleratedAmount ?? DEFAULT_CANVAS_ACCELERATED_NUDGE)
202
+ : (policy.amount ?? DEFAULT_CANVAS_NUDGE);
203
+ switch (input.key) {
204
+ case "ArrowLeft":
205
+ return { command: "nudge-left", delta: { x: -amount, y: 0 } };
206
+ case "ArrowRight":
207
+ return { command: "nudge-right", delta: { x: amount, y: 0 } };
208
+ case "ArrowUp":
209
+ return { command: "nudge-up", delta: { x: 0, y: -amount } };
210
+ case "ArrowDown":
211
+ return { command: "nudge-down", delta: { x: 0, y: amount } };
212
+ default:
213
+ return null;
214
+ }
215
+ }
216
+ /** Looks up a semantic command without referring to platform-specific events. */
217
+ export function resolveCanvasShortcut(input, shortcuts = DEFAULT_CANVAS_SHORTCUTS) {
218
+ const normalizedKey = input.key.toLowerCase();
219
+ const shortcut = shortcuts.find((candidate) => (candidate.key.toLowerCase() === normalizedKey ||
220
+ (candidate.code !== undefined && candidate.code === input.code)) &&
221
+ (candidate.modifiers ?? []).every((modifier) => hasShortcutModifier(modifier, input)) &&
222
+ hasOnlyShortcutModifiers(candidate, input));
223
+ return shortcut?.command ?? null;
224
+ }
225
+ /** Creates a reusable, immutable shortcut lookup for one editor policy. */
226
+ export function createCanvasShortcutRegistry(shortcuts = DEFAULT_CANVAS_SHORTCUTS) {
227
+ return {
228
+ shortcuts,
229
+ resolve: (input) => resolveCanvasShortcut(input, shortcuts),
230
+ };
231
+ }
232
+ /**
233
+ * Creates an app-configured pure interaction core. `dispatch` is optional so
234
+ * hosts can either use the helpers directly or receive semantic commands via
235
+ * their adapter without the Toolkit owning any state.
236
+ */
237
+ export function createCanvasInteractionCore(config = {}, adapter) {
238
+ const textEditing = config.textEditing ?? {};
239
+ const capabilities = {
240
+ ...DEFAULT_CANVAS_INTERACTION_CAPABILITIES,
241
+ ...adapter?.capabilities,
242
+ ...config.capabilities,
243
+ };
244
+ const drag = config.drag ?? {};
245
+ const nudge = config.nudge ?? {};
246
+ const shortcuts = createCanvasShortcutRegistry(config.shortcuts);
247
+ const supportsCommand = (command) => {
248
+ switch (command.id) {
249
+ case "copy":
250
+ case "cut":
251
+ case "paste":
252
+ return capabilities.clipboard;
253
+ case "duplicate":
254
+ return capabilities.duplicate;
255
+ case "delete":
256
+ return capabilities.delete;
257
+ case "nudge":
258
+ case "nudge-left":
259
+ case "nudge-right":
260
+ case "nudge-up":
261
+ case "nudge-down":
262
+ return capabilities.nudge;
263
+ case "arrange-front":
264
+ case "arrange-back":
265
+ case "bring-forward":
266
+ case "bring-to-front":
267
+ case "send-backward":
268
+ case "send-to-back":
269
+ return capabilities.arrange;
270
+ case "align-left":
271
+ case "align-center":
272
+ case "align-right":
273
+ case "align-top":
274
+ case "align-middle":
275
+ case "align-bottom":
276
+ return capabilities.alignment;
277
+ case "distribute-horizontal":
278
+ case "distribute-vertical":
279
+ return capabilities.distribution;
280
+ case "group":
281
+ case "ungroup":
282
+ return capabilities.grouping;
283
+ case "frame-selection":
284
+ return capabilities.selection;
285
+ default:
286
+ return true;
287
+ }
288
+ };
289
+ return {
290
+ capabilities,
291
+ textActivation: (input) => capabilities.textEditing
292
+ ? resolveCanvasTextActivation(input, textEditing)
293
+ : "select",
294
+ escape: (input) => resolveCanvasEscape(input, textEditing),
295
+ clientPointToCanvas: (point, viewport, canvas) => clientPointToCanvasPoint(point, viewport, canvas),
296
+ clientDeltaToCanvas: (delta, viewport, canvas) => clientDeltaToCanvasDelta(delta, viewport, canvas),
297
+ hasCrossedDragThreshold: (start, current) => hasCrossedCanvasDragThreshold(start, current, drag.threshold),
298
+ constrainDrag: (delta, modifiers = {}) => constrainCanvasDragDelta(delta, Boolean(modifiers.shiftKey)),
299
+ resize: (start, input) => resizeCanvasRect(start, {
300
+ ...input,
301
+ minWidth: input.minWidth ?? config.minSize,
302
+ minHeight: input.minHeight ?? config.minSize,
303
+ }),
304
+ shouldDuplicateDrag: (modifiers) => capabilities.duplicate &&
305
+ shouldDuplicateCanvasDrag(modifiers, drag.duplicateModifier),
306
+ nudge: (input) => capabilities.nudge ? resolveCanvasNudge(input, nudge) : null,
307
+ shortcut: (input) => shortcuts.resolve(input),
308
+ dispatch: (command) => {
309
+ if (!adapter)
310
+ return { handled: false, reason: "no-adapter" };
311
+ if (!supportsCommand(command)) {
312
+ return { handled: false, reason: "unsupported" };
313
+ }
314
+ return adapter.dispatch(command);
315
+ },
316
+ };
317
+ }
318
+ /**
319
+ * Creates a small state machine for one pointer gesture at a time. It keeps
320
+ * browser coordinates at its boundary, while every emitted preview and commit
321
+ * is in stable canvas coordinates. Hosts own rendering and persistence.
322
+ */
323
+ export function createCanvasGestureController(config) {
324
+ const core = createCanvasInteractionCore(config);
325
+ let start = null;
326
+ let activeGesture = null;
327
+ const state = () => ({
328
+ phase: activeGesture ? "active" : start ? "pending" : "idle",
329
+ gesture: activeGesture,
330
+ });
331
+ const canStart = (kind) => kind === "move" ? core.capabilities.move : core.capabilities.resize;
332
+ const buildGesture = (gestureStart, pointer) => {
333
+ const clientDelta = {
334
+ x: pointer.x - gestureStart.pointer.x,
335
+ y: pointer.y - gestureStart.pointer.y,
336
+ };
337
+ const convertedDelta = clientDeltaToCanvasDelta(clientDelta, gestureStart.viewport, gestureStart.canvas);
338
+ const duplicate = gestureStart.kind === "move" && core.capabilities.duplicate
339
+ ? core.shouldDuplicateDrag(gestureStart.pointer) &&
340
+ core.shouldDuplicateDrag(pointer)
341
+ : false;
342
+ if (gestureStart.kind === "move") {
343
+ return {
344
+ kind: "move",
345
+ objectIds: gestureStart.objectIds,
346
+ startPointer: gestureStart.pointer,
347
+ pointer,
348
+ clientDelta,
349
+ canvasDelta: core.constrainDrag(convertedDelta, pointer),
350
+ duplicate,
351
+ };
352
+ }
353
+ return {
354
+ kind: "resize",
355
+ objectIds: gestureStart.objectIds,
356
+ startPointer: gestureStart.pointer,
357
+ pointer,
358
+ clientDelta,
359
+ canvasDelta: convertedDelta,
360
+ duplicate: false,
361
+ handle: gestureStart.handle,
362
+ startRect: gestureStart.rect,
363
+ rect: core.resize(gestureStart.rect, {
364
+ handle: gestureStart.handle,
365
+ delta: convertedDelta,
366
+ preserveAspectRatio: Boolean(pointer.shiftKey),
367
+ }),
368
+ };
369
+ };
370
+ const preview = (gesture) => {
371
+ activeGesture = gesture;
372
+ return {
373
+ phase: "active",
374
+ gesture,
375
+ preview: config.adapter.preview?.(gesture) ?? null,
376
+ state: state(),
377
+ };
378
+ };
379
+ const update = (pointer) => {
380
+ if (!start)
381
+ return { phase: "idle", state: state() };
382
+ if (!activeGesture) {
383
+ const crossedThreshold = core.hasCrossedDragThreshold(start.pointer, pointer);
384
+ if (!crossedThreshold)
385
+ return { phase: "pending", state: state() };
386
+ }
387
+ return preview(buildGesture(start, pointer));
388
+ };
389
+ const hasSamePointerState = (first, second) => first.x === second.x &&
390
+ first.y === second.y &&
391
+ Boolean(first.altKey) === Boolean(second.altKey) &&
392
+ Boolean(first.ctrlKey) === Boolean(second.ctrlKey) &&
393
+ Boolean(first.metaKey) === Boolean(second.metaKey) &&
394
+ Boolean(first.shiftKey) === Boolean(second.shiftKey);
395
+ return {
396
+ capabilities: core.capabilities,
397
+ getState: state,
398
+ pointerDown: (gestureStart) => {
399
+ if (start) {
400
+ return { accepted: false, reason: "already-active", state: state() };
401
+ }
402
+ if (!canStart(gestureStart.kind)) {
403
+ return { accepted: false, reason: "unsupported", state: state() };
404
+ }
405
+ if (gestureStart.kind === "resize" &&
406
+ (gestureStart.rect.width <= 0 || gestureStart.rect.height <= 0)) {
407
+ return { accepted: false, reason: "invalid-resize", state: state() };
408
+ }
409
+ start = gestureStart;
410
+ return { accepted: true, state: state() };
411
+ },
412
+ pointerMove: update,
413
+ pointerUp: (pointer) => {
414
+ const shouldUpdate = activeGesture === null ||
415
+ !hasSamePointerState(activeGesture.pointer, pointer);
416
+ const beforeEnd = shouldUpdate
417
+ ? update(pointer)
418
+ : { phase: "active", state: state() };
419
+ const gesture = activeGesture;
420
+ start = null;
421
+ activeGesture = null;
422
+ if (!gesture) {
423
+ return {
424
+ committed: false,
425
+ reason: beforeEnd.phase === "idle" ? "idle" : "below-threshold",
426
+ state: state(),
427
+ };
428
+ }
429
+ return {
430
+ committed: true,
431
+ gesture,
432
+ result: config.adapter.commit(gesture),
433
+ state: state(),
434
+ };
435
+ },
436
+ cancel: () => {
437
+ const gesture = activeGesture;
438
+ start = null;
439
+ activeGesture = null;
440
+ if (!gesture)
441
+ return { cancelled: false, reason: "idle", state: state() };
442
+ return {
443
+ cancelled: true,
444
+ gesture,
445
+ result: config.adapter.cancel?.(gesture) ?? null,
446
+ state: state(),
447
+ };
448
+ },
449
+ };
450
+ }
451
+ //# sourceMappingURL=canvas-interactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-interactions.js","sourceRoot":"","sources":["../../src/canvas-interactions/canvas-interactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=canvas-interactions.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-interactions.spec.d.ts","sourceRoot":"","sources":["../../src/canvas-interactions/canvas-interactions.spec.ts"],"names":[],"mappings":""}