@pixerate/editor 0.28.0 → 0.30.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 (97) hide show
  1. package/README.md +20 -1
  2. package/dist/HistoryManager-DWSLd6Tf.d.ts +150 -0
  3. package/dist/HistoryManager-DeQQMBCj.d.cts +150 -0
  4. package/dist/agent/index.cjs +20 -427
  5. package/dist/agent/index.cjs.map +1 -1
  6. package/dist/agent/index.d.cts +4 -342
  7. package/dist/agent/index.d.ts +4 -342
  8. package/dist/agent/index.js +14 -421
  9. package/dist/agent/index.js.map +1 -1
  10. package/dist/animation/index.cjs +6 -2
  11. package/dist/animation/index.cjs.map +1 -1
  12. package/dist/animation/index.d.cts +3 -73
  13. package/dist/animation/index.d.ts +3 -73
  14. package/dist/animation/index.js +17 -13
  15. package/dist/{builtins-nMXh9sT3.d.cts → builtins-DxC3aUR2.d.cts} +2 -2
  16. package/dist/{builtins-haN82vjT.d.ts → builtins-NGxNxQfJ.d.ts} +2 -2
  17. package/dist/canvas/index.cjs +338 -28
  18. package/dist/canvas/index.cjs.map +1 -1
  19. package/dist/canvas/index.d.cts +109 -4
  20. package/dist/canvas/index.d.ts +109 -4
  21. package/dist/canvas/index.js +323 -13
  22. package/dist/canvas/index.js.map +1 -1
  23. package/dist/chunk-36BLROHV.js +438 -0
  24. package/dist/chunk-36BLROHV.js.map +1 -0
  25. package/dist/{chunk-OYEFRO3D.cjs → chunk-6MDQKHRH.cjs} +4 -4
  26. package/dist/{chunk-OYEFRO3D.cjs.map → chunk-6MDQKHRH.cjs.map} +1 -1
  27. package/dist/{chunk-ARRTP33I.js → chunk-D6S5M7HV.js} +2 -2
  28. package/dist/{chunk-ARRTP33I.js.map → chunk-D6S5M7HV.js.map} +1 -1
  29. package/dist/{chunk-MXZJ4PKN.js → chunk-DDADOHJW.js} +8 -8
  30. package/dist/{chunk-CPOKFNBG.cjs → chunk-I6BZB5ZH.cjs} +2 -2
  31. package/dist/{chunk-CPOKFNBG.cjs.map → chunk-I6BZB5ZH.cjs.map} +1 -1
  32. package/dist/chunk-PIIAZV3L.cjs +244 -0
  33. package/dist/chunk-PIIAZV3L.cjs.map +1 -0
  34. package/dist/{chunk-G2I4QJOT.cjs → chunk-QKLRAA4T.cjs} +3 -244
  35. package/dist/chunk-QKLRAA4T.cjs.map +1 -0
  36. package/dist/{chunk-2H7ZHPEJ.js → chunk-QVZZGT4X.js} +1 -242
  37. package/dist/chunk-QVZZGT4X.js.map +1 -0
  38. package/dist/chunk-UB2OY7FD.js +262 -0
  39. package/dist/chunk-UB2OY7FD.js.map +1 -0
  40. package/dist/chunk-V7CC7RZ6.cjs +438 -0
  41. package/dist/chunk-V7CC7RZ6.cjs.map +1 -0
  42. package/dist/{chunk-PWJARCI4.js → chunk-W7BOBWZD.js} +5 -196
  43. package/dist/chunk-W7BOBWZD.js.map +1 -0
  44. package/dist/{chunk-TTYCN6ZH.cjs → chunk-XHRZSB77.cjs} +8 -199
  45. package/dist/chunk-XHRZSB77.cjs.map +1 -0
  46. package/dist/chunk-XZ4L3R4K.cjs +262 -0
  47. package/dist/chunk-XZ4L3R4K.cjs.map +1 -0
  48. package/dist/chunk-YK57D7PW.js +244 -0
  49. package/dist/chunk-YK57D7PW.js.map +1 -0
  50. package/dist/commands/index.cjs +2 -2
  51. package/dist/commands/index.cjs.map +1 -1
  52. package/dist/commands/index.d.cts +2 -2
  53. package/dist/commands/index.d.ts +2 -2
  54. package/dist/commands/index.js +1 -1
  55. package/dist/commands/index.js.map +1 -1
  56. package/dist/easing-DTmX99QG.d.cts +88 -0
  57. package/dist/easing-DTmX99QG.d.ts +88 -0
  58. package/dist/extensions/index.cjs +5 -5
  59. package/dist/extensions/index.cjs.map +1 -1
  60. package/dist/extensions/index.js +9 -9
  61. package/dist/generation/index.cjs +2 -2
  62. package/dist/generation/index.cjs.map +1 -1
  63. package/dist/generation/index.js +1 -1
  64. package/dist/generation/index.js.map +1 -1
  65. package/dist/history/index.cjs +4 -2
  66. package/dist/history/index.cjs.map +1 -1
  67. package/dist/history/index.d.cts +3 -149
  68. package/dist/history/index.d.ts +3 -149
  69. package/dist/history/index.js +5 -3
  70. package/dist/image-editor/index.cjs.map +1 -1
  71. package/dist/image-editor/index.js.map +1 -1
  72. package/dist/index.cjs +15 -13
  73. package/dist/index.cjs.map +1 -1
  74. package/dist/index.d.cts +3 -2
  75. package/dist/index.d.ts +3 -2
  76. package/dist/index.js +22 -20
  77. package/dist/index.js.map +1 -1
  78. package/dist/parameters/index.cjs +1320 -0
  79. package/dist/parameters/index.cjs.map +1 -0
  80. package/dist/parameters/index.d.cts +625 -0
  81. package/dist/parameters/index.d.ts +625 -0
  82. package/dist/parameters/index.js +1320 -0
  83. package/dist/parameters/index.js.map +1 -0
  84. package/dist/tools/index.cjs +31 -0
  85. package/dist/tools/index.cjs.map +1 -0
  86. package/dist/tools/index.d.cts +343 -0
  87. package/dist/tools/index.d.ts +343 -0
  88. package/dist/tools/index.js +31 -0
  89. package/dist/tools/index.js.map +1 -0
  90. package/dist/{types-GT5a5YAX.d.cts → types-DsiXGmjo.d.cts} +1 -1
  91. package/dist/{types-GT5a5YAX.d.ts → types-DsiXGmjo.d.ts} +1 -1
  92. package/package.json +11 -1
  93. package/dist/chunk-2H7ZHPEJ.js.map +0 -1
  94. package/dist/chunk-G2I4QJOT.cjs.map +0 -1
  95. package/dist/chunk-PWJARCI4.js.map +0 -1
  96. package/dist/chunk-TTYCN6ZH.cjs.map +0 -1
  97. /package/dist/{chunk-MXZJ4PKN.js.map → chunk-DDADOHJW.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { H as HistoryState } from './types-GT5a5YAX.cjs';
1
+ import { H as HistoryState } from './types-DsiXGmjo.cjs';
2
2
  import { C as CanvasArrangeAction, A as AlignEdge, D as DistributeAxis, a as DistributeMode, Z as ZOrderOperation } from './arrange-BICutYPk.cjs';
3
3
  import { S as ShortcutBinding, C as CommandSpec, K as KeyboardEventLike, P as Platform } from './registry-D0GADKc7.cjs';
4
4
 
@@ -203,4 +203,4 @@ interface SpreadsheetCommandOptions {
203
203
  /** Palette / agent commands for common spreadsheet table actions (no default shortcuts). */
204
204
  declare function createSpreadsheetCommands(controller: SpreadsheetCommandTarget, options?: SpreadsheetCommandOptions): CommandSpec[];
205
205
 
206
- export { type ArrangeCommandOptions as A, type ComponentCommandOptions as C, DEFAULT_HISTORY_SHORTCUTS as D, type HistoryCommandOptions as H, type ShapeCommandOptions as S, type ArrangeCommandTarget as a, type ComponentCommandTarget as b, type HistoryCommandTarget as c, type ShapeCommandTarget as d, type SpreadsheetCommandOptions as e, type SpreadsheetCommandTarget as f, createArrangeCommands as g, createComponentCommands as h, createHistoryCommands as i, createShapeCommands as j, createSpreadsheetCommands as k, hasVariantCommands as l, matchHistoryShortcut as m };
206
+ export { type ArrangeCommandOptions as A, type ComponentCommandTarget as C, DEFAULT_HISTORY_SHORTCUTS as D, type HistoryCommandOptions as H, type ShapeCommandOptions as S, type ArrangeCommandTarget as a, type ComponentCommandOptions as b, type HistoryCommandTarget as c, type ShapeCommandTarget as d, type SpreadsheetCommandOptions as e, type SpreadsheetCommandTarget as f, createArrangeCommands as g, createComponentCommands as h, createHistoryCommands as i, createShapeCommands as j, createSpreadsheetCommands as k, hasVariantCommands as l, matchHistoryShortcut as m };
@@ -1,4 +1,4 @@
1
- import { H as HistoryState } from './types-GT5a5YAX.js';
1
+ import { H as HistoryState } from './types-DsiXGmjo.js';
2
2
  import { C as CanvasArrangeAction, A as AlignEdge, D as DistributeAxis, a as DistributeMode, Z as ZOrderOperation } from './arrange-BICutYPk.js';
3
3
  import { S as ShortcutBinding, C as CommandSpec, K as KeyboardEventLike, P as Platform } from './registry-DhVUZioj.js';
4
4
 
@@ -203,4 +203,4 @@ interface SpreadsheetCommandOptions {
203
203
  /** Palette / agent commands for common spreadsheet table actions (no default shortcuts). */
204
204
  declare function createSpreadsheetCommands(controller: SpreadsheetCommandTarget, options?: SpreadsheetCommandOptions): CommandSpec[];
205
205
 
206
- export { type ArrangeCommandOptions as A, type ComponentCommandOptions as C, DEFAULT_HISTORY_SHORTCUTS as D, type HistoryCommandOptions as H, type ShapeCommandOptions as S, type ArrangeCommandTarget as a, type ComponentCommandTarget as b, type HistoryCommandTarget as c, type ShapeCommandTarget as d, type SpreadsheetCommandOptions as e, type SpreadsheetCommandTarget as f, createArrangeCommands as g, createComponentCommands as h, createHistoryCommands as i, createShapeCommands as j, createSpreadsheetCommands as k, hasVariantCommands as l, matchHistoryShortcut as m };
206
+ export { type ArrangeCommandOptions as A, type ComponentCommandTarget as C, DEFAULT_HISTORY_SHORTCUTS as D, type HistoryCommandOptions as H, type ShapeCommandOptions as S, type ArrangeCommandTarget as a, type ComponentCommandOptions as b, type HistoryCommandTarget as c, type ShapeCommandTarget as d, type SpreadsheetCommandOptions as e, type SpreadsheetCommandTarget as f, createArrangeCommands as g, createComponentCommands as h, createHistoryCommands as i, createShapeCommands as j, createSpreadsheetCommands as k, hasVariantCommands as l, matchHistoryShortcut as m };
@@ -41,6 +41,7 @@ var _chunkK2UYKJ6Mcjs = require('../chunk-K2UYKJ6M.cjs');
41
41
 
42
42
 
43
43
 
44
+ var _chunkXHRZSB77cjs = require('../chunk-XHRZSB77.cjs');
44
45
 
45
46
 
46
47
 
@@ -53,7 +54,9 @@ var _chunkK2UYKJ6Mcjs = require('../chunk-K2UYKJ6M.cjs');
53
54
 
54
55
 
55
56
 
56
- var _chunkTTYCN6ZHcjs = require('../chunk-TTYCN6ZH.cjs');
57
+
58
+
59
+ var _chunkXZ4L3R4Kcjs = require('../chunk-XZ4L3R4K.cjs');
57
60
 
58
61
 
59
62
  var _chunkA6PHCAGXcjs = require('../chunk-A6PHCAGX.cjs');
@@ -138,7 +141,7 @@ function runMultiNodeTransition(transitions, options = {}) {
138
141
  const {
139
142
  defaultDuration = 400,
140
143
  defaultEasing: easingFunc = defaultEasing,
141
- clock = _chunkTTYCN6ZHcjs.realClock,
144
+ clock = _chunkXHRZSB77cjs.realClock,
142
145
  styleFormat = "string",
143
146
  onUpdate,
144
147
  onComplete
@@ -574,7 +577,7 @@ var StreamingLayoutManager = (_class = class {
574
577
  this.throttleMs = _nullishCoalesce(options.throttleMs, () => ( 200));
575
578
  this.glideDurationMs = _nullishCoalesce(options.glideDurationMs, () => ( 300));
576
579
  this.connectedOnly = _nullishCoalesce(options.connectedOnly, () => ( false));
577
- this.clock = _nullishCoalesce(options.clock, () => ( _chunkTTYCN6ZHcjs.realClock));
580
+ this.clock = _nullishCoalesce(options.clock, () => ( _chunkXHRZSB77cjs.realClock));
578
581
  this.layoutOptions = _nullishCoalesce(options.layoutOptions, () => ( { direction: "LR" }));
579
582
  this.onLayoutUpdated = options.onLayoutUpdated;
580
583
  }
@@ -7949,7 +7952,7 @@ function getNodeAnimation(node) {
7949
7952
  }
7950
7953
  function getAnimationTrack(node, property) {
7951
7954
  const track = _optionalChain([getNodeAnimation, 'call', _217 => _217(node), 'optionalAccess', _218 => _218.tracks, 'access', _219 => _219[property]]);
7952
- return track && Array.isArray(track.keyframes) && _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes).length > 0 ? track : void 0;
7955
+ return track && Array.isArray(track.keyframes) && _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes).length > 0 ? track : void 0;
7953
7956
  }
7954
7957
  function isNodeAnimated(node) {
7955
7958
  const animation = getNodeAnimation(node);
@@ -7986,7 +7989,7 @@ function getAnimationDuration(doc) {
7986
7989
  if (!animation) continue;
7987
7990
  for (const track of Object.values(animation.tracks)) {
7988
7991
  if (!track || track.enabled === false) continue;
7989
- const keys = _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes);
7992
+ const keys = _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes);
7990
7993
  if (keys.length > 0) end = Math.max(end, keys[keys.length - 1].time);
7991
7994
  }
7992
7995
  }
@@ -8003,7 +8006,7 @@ function evaluateAnimation(doc, time, options = {}) {
8003
8006
  for (const [key, track] of Object.entries(animation.tracks)) {
8004
8007
  if (!track || track.enabled === false) continue;
8005
8008
  const property = (_nullishCoalesce(options.properties, () => ( ANIMATABLE_PROPERTIES))).find((p) => p.key === key);
8006
- const value = _chunkTTYCN6ZHcjs.evaluateTrack.call(void 0, track, time, _nullishCoalesce(_optionalChain([property, 'optionalAccess', _221 => _221.type]), () => ( "number")));
8009
+ const value = _chunkXHRZSB77cjs.evaluateTrack.call(void 0, track, time, _nullishCoalesce(_optionalChain([property, 'optionalAccess', _221 => _221.type]), () => ( "number")));
8007
8010
  if (value === void 0) continue;
8008
8011
  (values ??= {})[key] = clampAnimationValue(property, value);
8009
8012
  }
@@ -8041,7 +8044,7 @@ var AnimationEditError = class extends Error {
8041
8044
  }
8042
8045
  };
8043
8046
  var MAX_KEYFRAME_REFS = 4096;
8044
- var sameTime = (a, b) => Math.abs(a - b) <= _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON;
8047
+ var sameTime = (a, b) => Math.abs(a - b) <= _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON;
8045
8048
  var refKey = (r) => `${r.nodeId}\0${r.property}`;
8046
8049
  function snapTimeToFrame(time, fps) {
8047
8050
  if (!(fps > 0)) return time;
@@ -8061,9 +8064,9 @@ function coerceValue(property, value) {
8061
8064
  }
8062
8065
  function coerceEasing(easing) {
8063
8066
  if (typeof easing === "string") {
8064
- const parsed = _chunkTTYCN6ZHcjs.parseCssEasing.call(void 0, easing);
8067
+ const parsed = _chunkXZ4L3R4Kcjs.parseCssEasing.call(void 0, easing);
8065
8068
  if (parsed) return parsed;
8066
- } else if (_chunkTTYCN6ZHcjs.isAnimationEasing.call(void 0, easing)) return easing;
8069
+ } else if (_chunkXZ4L3R4Kcjs.isAnimationEasing.call(void 0, easing)) return easing;
8067
8070
  throw new AnimationEditError("invalid_easing", `Unknown easing ${JSON.stringify(easing)}.`);
8068
8071
  }
8069
8072
  function coerceTime(time) {
@@ -8095,7 +8098,7 @@ var Draft = (_class7 = class {
8095
8098
  const current = getNodeAnimation(this.node(id));
8096
8099
  const tracks = {};
8097
8100
  for (const [key, track] of Object.entries(_nullishCoalesce(_optionalChain([current, 'optionalAccess', _223 => _223.tracks]), () => ( {})))) {
8098
- if (track) tracks[key] = { ...track, keyframes: _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes) };
8101
+ if (track) tracks[key] = { ...track, keyframes: _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes) };
8099
8102
  }
8100
8103
  animation = { ..._nullishCoalesce(current, () => ( {})), tracks };
8101
8104
  this.animations.set(id, animation);
@@ -8165,7 +8168,7 @@ function readAnimatableValue(node, property) {
8165
8168
  function getAnimatedValue(node, propertyKey, time, options = {}) {
8166
8169
  const property = getAnimatableProperty(propertyKey, options);
8167
8170
  const track = getAnimationTrack(node, propertyKey);
8168
- if (track && track.enabled !== false) return _chunkTTYCN6ZHcjs.evaluateTrack.call(void 0, track, time, _nullishCoalesce(_optionalChain([property, 'optionalAccess', _229 => _229.type]), () => ( "number")));
8171
+ if (track && track.enabled !== false) return _chunkXHRZSB77cjs.evaluateTrack.call(void 0, track, time, _nullishCoalesce(_optionalChain([property, 'optionalAccess', _229 => _229.type]), () => ( "number")));
8169
8172
  return property ? readAnimatableValue(node, property) : void 0;
8170
8173
  }
8171
8174
  function putKey(draft, nodeId, property, time, value, easing, inherit = true) {
@@ -8267,7 +8270,7 @@ function removeTrack(nodes, nodeId, property, options = {}) {
8267
8270
  if (!track) return nodes;
8268
8271
  const p = draft.property(property);
8269
8272
  if (options.keepValueAt !== void 0 && p && property !== "motionPath") {
8270
- const value = _chunkTTYCN6ZHcjs.evaluateTrack.call(void 0, track, options.keepValueAt, p.type);
8273
+ const value = _chunkXHRZSB77cjs.evaluateTrack.call(void 0, track, options.keepValueAt, p.type);
8271
8274
  if (value !== void 0) draft.writeNode(nodeId, (n) => p.write(n, value));
8272
8275
  }
8273
8276
  draft.setKeys(nodeId, property, []);
@@ -8296,10 +8299,10 @@ function moveKeyframes(nodes, refs, delta, options = {}) {
8296
8299
  low = Math.max(low, min - time);
8297
8300
  high = Math.min(high, max - time);
8298
8301
  }
8299
- if (low > high + _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON) throw new AnimationEditError("no_movement_range", "The keyframes have no common movement range.");
8302
+ if (low > high + _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON) throw new AnimationEditError("no_movement_range", "The keyframes have no common movement range.");
8300
8303
  const applied = Math.min(high, Math.max(low, delta));
8301
8304
  const moved = refs.map((ref) => ({ ...ref, time: draft.keys(ref.nodeId, ref.property)[draft.find(ref)].time + applied }));
8302
- if (Math.abs(applied) <= _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON) return { nodes, delta: 0, refs: refs.map((r) => ({ ...r })) };
8305
+ if (Math.abs(applied) <= _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON) return { nodes, delta: 0, refs: refs.map((r) => ({ ...r })) };
8303
8306
  retime(draft, refs, (time) => time + applied);
8304
8307
  return { nodes: draft.commit(), delta: applied, refs: moved };
8305
8308
  }
@@ -8345,7 +8348,7 @@ function getKeyframeTimes(nodes, options = {}) {
8345
8348
  if (!animation) continue;
8346
8349
  for (const [property, track] of Object.entries(animation.tracks)) {
8347
8350
  const skip = _nullishCoalesce(excluded.get(refKey({ nodeId: node.id, property })), () => ( []));
8348
- for (const k of _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, _optionalChain([track, 'optionalAccess', _231 => _231.keyframes]))) if (!skip.some((t) => sameTime(t, k.time))) times.push(k.time);
8351
+ for (const k of _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, _optionalChain([track, 'optionalAccess', _231 => _231.keyframes]))) if (!skip.some((t) => sameTime(t, k.time))) times.push(k.time);
8349
8352
  }
8350
8353
  }
8351
8354
  times.sort((a, b) => a - b);
@@ -8403,7 +8406,7 @@ function parseKeyframeClipboard(input) {
8403
8406
  const clip = value;
8404
8407
  if (clip.type !== "pixerate/keyframes" || clip.version !== 1 || !Array.isArray(clip.keyframes)) return null;
8405
8408
  const keyframes = clip.keyframes.filter(
8406
- (k) => k && typeof k.nodeId === "string" && typeof k.property === "string" && typeof k.offset === "number" && Number.isFinite(k.offset) && (typeof k.value === "number" && Number.isFinite(k.value) || typeof k.value === "string") && (k.easing === void 0 || _chunkTTYCN6ZHcjs.isAnimationEasing.call(void 0, k.easing))
8409
+ (k) => k && typeof k.nodeId === "string" && typeof k.property === "string" && typeof k.offset === "number" && Number.isFinite(k.offset) && (typeof k.value === "number" && Number.isFinite(k.value) || typeof k.value === "string") && (k.easing === void 0 || _chunkXZ4L3R4Kcjs.isAnimationEasing.call(void 0, k.easing))
8407
8410
  );
8408
8411
  return keyframes.length > 0 ? { type: "pixerate/keyframes", version: 1, keyframes } : null;
8409
8412
  }
@@ -8464,7 +8467,7 @@ function recordAnimationChanges(base, before, after, time, options = {}) {
8464
8467
  };
8465
8468
  if (animated) {
8466
8469
  if (changed) {
8467
- const keys = _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes).filter((k) => !sameTime(k.time, t));
8470
+ const keys = _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes).filter((k) => !sameTime(k.time, t));
8468
8471
  const before2 = [...keys].reverse().find((k) => k.time < t);
8469
8472
  keys.push({ time: t, value: now, ..._optionalChain([before2, 'optionalAccess', _233 => _233.easing]) !== void 0 ? { easing: before2.easing } : {} });
8470
8473
  tracksOf()[p.key] = { ...track, keyframes: keys.sort((a, b) => a.time - b.time) };
@@ -8473,7 +8476,7 @@ function recordAnimationChanges(base, before, after, time, options = {}) {
8473
8476
  restore();
8474
8477
  } else if (changed && options.recording && !track) {
8475
8478
  const keys = [];
8476
- if (t > _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON && was !== void 0) keys.push({ time: 0, value: was });
8479
+ if (t > _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON && was !== void 0) keys.push({ time: 0, value: was });
8477
8480
  keys.push({ time: t, value: now });
8478
8481
  tracksOf()[p.key] = { keyframes: keys };
8479
8482
  keyed.push({ nodeId: next.id, property: p.key, time: t });
@@ -8576,7 +8579,7 @@ function exactStops(keys, duration, format) {
8576
8579
  stops.push({
8577
8580
  offset: Math.min(1, Math.max(0, k.time / duration)),
8578
8581
  value: format(k, i),
8579
- ...next ? { easing: _chunkTTYCN6ZHcjs.easingToCss.call(void 0, k.easing, next.time - k.time) } : {}
8582
+ ...next ? { easing: _chunkXZ4L3R4Kcjs.easingToCss.call(void 0, k.easing, next.time - k.time) } : {}
8580
8583
  });
8581
8584
  });
8582
8585
  const last = keys[keys.length - 1];
@@ -8600,7 +8603,7 @@ function getCssPropertyAnimations(nodes, nodeId, options = {}) {
8600
8603
  const tracks = /* @__PURE__ */ new Map();
8601
8604
  for (const [key, track] of Object.entries(animation.tracks)) {
8602
8605
  if (!track || track.enabled === false || !map[key]) continue;
8603
- const keys = _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes);
8606
+ const keys = _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes);
8604
8607
  if (keys.length > 0) tracks.set(key, keys);
8605
8608
  }
8606
8609
  const typeOf = (key) => _nullishCoalesce(_optionalChain([ANIMATABLE_PROPERTIES, 'access', _238 => _238.find, 'call', _239 => _239((p) => p.key === key), 'optionalAccess', _240 => _240.type]), () => ( "number"));
@@ -8613,7 +8616,7 @@ function getCssPropertyAnimations(nodes, nodeId, options = {}) {
8613
8616
  for (const [css, sources] of groups) {
8614
8617
  const camel2 = map[sources[0]].camel;
8615
8618
  const keysOf = (k) => tracks.get(k);
8616
- const evalAt = (k, t) => _chunkTTYCN6ZHcjs.evaluateTrack.call(void 0, keysOf(k), t, typeOf(k));
8619
+ const evalAt = (k, t) => _chunkXHRZSB77cjs.evaluateTrack.call(void 0, keysOf(k), t, typeOf(k));
8617
8620
  const allTimes = sources.flatMap((k) => keysOf(k).map((x) => x.time));
8618
8621
  if (sources.includes("motionPath")) {
8619
8622
  const position = (t) => {
@@ -8709,7 +8712,7 @@ function isCssExportExact(nodes, nodeId) {
8709
8712
 
8710
8713
  // src/canvas/animation/timeline.ts
8711
8714
  function isKeyframeSelected(selection, ref) {
8712
- return selection.some((s) => s.nodeId === ref.nodeId && s.property === ref.property && Math.abs(s.time - ref.time) <= _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON);
8715
+ return selection.some((s) => s.nodeId === ref.nodeId && s.property === ref.property && Math.abs(s.time - ref.time) <= _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON);
8713
8716
  }
8714
8717
  var defaultLabel = (node) => typeof _optionalChain([node, 'access', _241 => _241.data, 'optionalAccess', _242 => _242.label]) === "string" && node.data.label.trim() ? node.data.label : node.id;
8715
8718
  function getTimelineRows(nodes, ids, options = {}) {
@@ -8730,7 +8733,7 @@ function getTimelineRows(nodes, ids, options = {}) {
8730
8733
  property,
8731
8734
  label,
8732
8735
  enabled: track.enabled !== false,
8733
- keyframes: _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes).map((k) => {
8736
+ keyframes: _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes).map((k) => {
8734
8737
  const ref = { nodeId: id, property, time: k.time };
8735
8738
  const selected = isKeyframeSelected(selection, ref);
8736
8739
  return {
@@ -8790,7 +8793,7 @@ function createCanvasAnimationController(options) {
8790
8793
  }
8791
8794
  return _nullishCoalesce(fixedDuration, () => ( durationValue));
8792
8795
  };
8793
- const player = new (0, _chunkTTYCN6ZHcjs.AnimationPlayer)({
8796
+ const player = new (0, _chunkXHRZSB77cjs.AnimationPlayer)({
8794
8797
  clock: options.clock,
8795
8798
  duration,
8796
8799
  loop: options.loop,
@@ -8869,7 +8872,7 @@ function createCanvasAnimationController(options) {
8869
8872
  const byId = new Map(options.getNodes().map((n) => [n.id, n]));
8870
8873
  const kept = selection.filter((ref) => {
8871
8874
  const track = _optionalChain([getNodeAnimation, 'call', _255 => _255(byId.get(ref.nodeId)), 'optionalAccess', _256 => _256.tracks, 'access', _257 => _257[ref.property]]);
8872
- return !!track && _chunkTTYCN6ZHcjs.normalizeKeyframes.call(void 0, track.keyframes).some((k) => Math.abs(k.time - ref.time) <= _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON);
8875
+ return !!track && _chunkXHRZSB77cjs.normalizeKeyframes.call(void 0, track.keyframes).some((k) => Math.abs(k.time - ref.time) <= _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON);
8873
8876
  });
8874
8877
  if (kept.length !== selection.length) selection = kept;
8875
8878
  }
@@ -8941,7 +8944,7 @@ function createCanvasAnimationController(options) {
8941
8944
  nextKeyframe(ids = selectedIds()) {
8942
8945
  const list = [...ids];
8943
8946
  const times = getKeyframeTimes(options.getNodes(), list.length ? { ids: list } : {});
8944
- const next = times.find((t) => t > player.currentTime + _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON);
8947
+ const next = times.find((t) => t > player.currentTime + _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON);
8945
8948
  if (next === void 0) return null;
8946
8949
  player.seek(next);
8947
8950
  return next;
@@ -8949,7 +8952,7 @@ function createCanvasAnimationController(options) {
8949
8952
  previousKeyframe(ids = selectedIds()) {
8950
8953
  const list = [...ids];
8951
8954
  const times = getKeyframeTimes(options.getNodes(), list.length ? { ids: list } : {});
8952
- const prev = [...times].reverse().find((t) => t < player.currentTime - _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON);
8955
+ const prev = [...times].reverse().find((t) => t < player.currentTime - _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON);
8953
8956
  if (prev === void 0) return null;
8954
8957
  player.seek(prev);
8955
8958
  return prev;
@@ -11398,6 +11401,313 @@ function getCanvasComponentDragId(dataTransfer) {
11398
11401
  return id ? id : void 0;
11399
11402
  }
11400
11403
 
11404
+ // src/canvas/freehand.ts
11405
+ function createDefaultStrokeStyle(tool) {
11406
+ if (tool === "highlighter") {
11407
+ return {
11408
+ color: "#facc15",
11409
+ width: 24,
11410
+ opacity: 0.35,
11411
+ cap: "round",
11412
+ join: "round"
11413
+ };
11414
+ }
11415
+ return {
11416
+ color: "#3b82f6",
11417
+ width: 3,
11418
+ opacity: 1,
11419
+ cap: "round",
11420
+ join: "round"
11421
+ };
11422
+ }
11423
+ function streamlinePoints(points, factor = 0.35) {
11424
+ if (points.length < 3 || factor <= 0) return [...points];
11425
+ const clampedFactor = Math.min(Math.max(factor, 0), 0.95);
11426
+ const smoothed = [points[0]];
11427
+ for (let i = 1; i < points.length - 1; i++) {
11428
+ const prev = smoothed[i - 1];
11429
+ const curr = points[i];
11430
+ const x = prev[0] * clampedFactor + curr[0] * (1 - clampedFactor);
11431
+ const y = prev[1] * clampedFactor + curr[1] * (1 - clampedFactor);
11432
+ smoothed.push([x, y]);
11433
+ }
11434
+ smoothed.push(points[points.length - 1]);
11435
+ return smoothed;
11436
+ }
11437
+ function strokeBoundingBox(points, margin = 0) {
11438
+ if (points.length === 0) {
11439
+ return { x: 0, y: 0, width: 0, height: 0 };
11440
+ }
11441
+ let minX = Infinity;
11442
+ let minY = Infinity;
11443
+ let maxX = -Infinity;
11444
+ let maxY = -Infinity;
11445
+ for (const [x, y] of points) {
11446
+ if (x < minX) minX = x;
11447
+ if (y < minY) minY = y;
11448
+ if (x > maxX) maxX = x;
11449
+ if (y > maxY) maxY = y;
11450
+ }
11451
+ const w = Math.max(maxX - minX, 0);
11452
+ const h = Math.max(maxY - minY, 0);
11453
+ return {
11454
+ x: minX - margin,
11455
+ y: minY - margin,
11456
+ width: Math.max(w + margin * 2, 1),
11457
+ height: Math.max(h + margin * 2, 1)
11458
+ };
11459
+ }
11460
+ function strokePointsToPathData(points, options = {}) {
11461
+ if (points.length === 0) return "";
11462
+ if (points.length === 1) {
11463
+ const [x, y] = points[0];
11464
+ return `M ${x} ${y} L ${x + 0.01} ${y}`;
11465
+ }
11466
+ if (points.length === 2) {
11467
+ const [p0, p1] = points;
11468
+ return `M ${p0[0]} ${p0[1]} L ${p1[0]} ${p1[1]}`;
11469
+ }
11470
+ const fitted = fitFreehandPath(points, options);
11471
+ return fitted.length > 0 ? fitted : `M ${points[0][0]} ${points[0][1]}`;
11472
+ }
11473
+ function strokeToShapeNode(stroke, options = {}) {
11474
+ const points = stroke.points;
11475
+ const strokeWidth = stroke.style.width || 3;
11476
+ const bounds = strokeBoundingBox(points, 0);
11477
+ const localPoints = points.map(
11478
+ ([x, y]) => [x - bounds.x, y - bounds.y]
11479
+ );
11480
+ const d = strokePointsToPathData(localPoints, {
11481
+ tolerance: _nullishCoalesce(options.tolerance, () => ( 1)),
11482
+ cornerAngleDeg: _nullishCoalesce(options.cornerAngleDeg, () => ( 40))
11483
+ });
11484
+ const width = Math.max(bounds.width, 1);
11485
+ const height = Math.max(bounds.height, 1);
11486
+ return {
11487
+ id: _nullishCoalesce(options.id, () => ( stroke.id)),
11488
+ type: "shape",
11489
+ position: { x: bounds.x, y: bounds.y },
11490
+ width,
11491
+ height,
11492
+ style: {
11493
+ width,
11494
+ height
11495
+ },
11496
+ data: {
11497
+ shape: {
11498
+ kind: "path",
11499
+ d,
11500
+ viewBox: [0, 0, width, height],
11501
+ stroke: stroke.style.color,
11502
+ strokeWidth,
11503
+ opacity: stroke.style.opacity,
11504
+ fill: "none"
11505
+ },
11506
+ tool: stroke.tool
11507
+ }
11508
+ };
11509
+ }
11510
+ function findStrokesAtPoint(point, nodes, radius = 12) {
11511
+ const matches2 = [];
11512
+ for (const node of nodes) {
11513
+ const shape = getNodeShape(node);
11514
+ if (!shape || shape.kind !== "path") continue;
11515
+ const rect = getNodeRect(node);
11516
+ const strokeWidth = _nullishCoalesce(shape.strokeWidth, () => ( 2));
11517
+ const effectiveRadius = radius + strokeWidth / 2;
11518
+ if (point[0] < rect.x - effectiveRadius || point[0] > rect.x + rect.width + effectiveRadius || point[1] < rect.y - effectiveRadius || point[1] > rect.y + rect.height + effectiveRadius) {
11519
+ continue;
11520
+ }
11521
+ const localPoint = [point[0] - rect.x, point[1] - rect.y];
11522
+ try {
11523
+ const dist3 = distanceToBezierPath(shape.d, localPoint);
11524
+ if (dist3 <= effectiveRadius) {
11525
+ matches2.push(node);
11526
+ }
11527
+ } catch (e12) {
11528
+ if (point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height) {
11529
+ matches2.push(node);
11530
+ }
11531
+ }
11532
+ }
11533
+ return matches2;
11534
+ }
11535
+
11536
+ // src/canvas/drawController.ts
11537
+ function createCanvasDrawController(options) {
11538
+ let currentTool = _nullishCoalesce(options.tool, () => ( "select"));
11539
+ let currentStyle = {
11540
+ ...createDefaultStrokeStyle(currentTool),
11541
+ ...options.style
11542
+ };
11543
+ let activeStroke = null;
11544
+ const erasedInDrag = /* @__PURE__ */ new Map();
11545
+ let dragStartNodes = null;
11546
+ function setTool(tool) {
11547
+ if (currentTool === tool) return;
11548
+ cancelStroke();
11549
+ currentTool = tool;
11550
+ if (tool === "pen" || tool === "highlighter") {
11551
+ currentStyle = {
11552
+ ...createDefaultStrokeStyle(tool),
11553
+ ...options.style
11554
+ };
11555
+ _optionalChain([options, 'access', _332 => _332.onStyleChange, 'optionalCall', _333 => _333(currentStyle)]);
11556
+ }
11557
+ _optionalChain([options, 'access', _334 => _334.onToolChange, 'optionalCall', _335 => _335(tool)]);
11558
+ }
11559
+ function setStyle(style) {
11560
+ currentStyle = { ...currentStyle, ...style };
11561
+ _optionalChain([options, 'access', _336 => _336.onStyleChange, 'optionalCall', _337 => _337(currentStyle)]);
11562
+ }
11563
+ function startStroke(point) {
11564
+ if (currentTool === "select") return;
11565
+ if (currentTool === "eraser") {
11566
+ erasedInDrag.clear();
11567
+ dragStartNodes = [...options.getNodes()];
11568
+ eraseAt(point);
11569
+ return;
11570
+ }
11571
+ const id = _nullishCoalesce(_optionalChain([options, 'access', _338 => _338.generateNodeId, 'optionalCall', _339 => _339()]), () => ( `stroke-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`));
11572
+ activeStroke = {
11573
+ id,
11574
+ tool: currentTool,
11575
+ points: [point],
11576
+ style: { ...currentStyle },
11577
+ startTime: Date.now()
11578
+ };
11579
+ _optionalChain([options, 'access', _340 => _340.onActiveStrokeChange, 'optionalCall', _341 => _341(activeStroke)]);
11580
+ }
11581
+ function continueStroke(point) {
11582
+ if (currentTool === "eraser") {
11583
+ eraseAt(point);
11584
+ return;
11585
+ }
11586
+ if (!activeStroke) return;
11587
+ const points = activeStroke.points;
11588
+ const last = points[points.length - 1];
11589
+ if (Math.hypot(point[0] - last[0], point[1] - last[1]) < 0.25) return;
11590
+ points.push(point);
11591
+ _optionalChain([options, 'access', _342 => _342.onActiveStrokeChange, 'optionalCall', _343 => _343({ ...activeStroke, points: [...points] })]);
11592
+ }
11593
+ function endStroke() {
11594
+ if (currentTool === "eraser") {
11595
+ const startSnapshot = dragStartNodes;
11596
+ dragStartNodes = null;
11597
+ if (erasedInDrag.size > 0 && options.history && startSnapshot) {
11598
+ const erasedIds = new Set(Array.from(erasedInDrag.keys()));
11599
+ options.history.execute({
11600
+ name: "Erase strokes",
11601
+ execute: () => {
11602
+ const remaining = options.getNodes().filter((n) => !erasedIds.has(n.id));
11603
+ options.setNodes(remaining);
11604
+ },
11605
+ undo: () => {
11606
+ options.setNodes(startSnapshot);
11607
+ }
11608
+ });
11609
+ }
11610
+ erasedInDrag.clear();
11611
+ return null;
11612
+ }
11613
+ if (!activeStroke) return null;
11614
+ const stroke = activeStroke;
11615
+ activeStroke = null;
11616
+ _optionalChain([options, 'access', _344 => _344.onActiveStrokeChange, 'optionalCall', _345 => _345(null)]);
11617
+ if (stroke.points.length === 0) return null;
11618
+ const drawOpts = _nullishCoalesce(options.drawOptions, () => ( {}));
11619
+ const smoothed = streamlinePoints(stroke.points, _nullishCoalesce(drawOpts.streamline, () => ( 0.35)));
11620
+ const node = strokeToShapeNode(
11621
+ { ...stroke, points: smoothed },
11622
+ {
11623
+ tolerance: _nullishCoalesce(drawOpts.tolerance, () => ( 1)),
11624
+ cornerAngleDeg: _nullishCoalesce(drawOpts.cornerAngleDeg, () => ( 40))
11625
+ }
11626
+ );
11627
+ if (options.history) {
11628
+ options.history.execute({
11629
+ name: `Draw ${stroke.tool}`,
11630
+ execute: () => {
11631
+ options.setNodes([...options.getNodes(), node]);
11632
+ },
11633
+ undo: () => {
11634
+ options.setNodes(options.getNodes().filter((n) => n.id !== node.id));
11635
+ }
11636
+ });
11637
+ } else {
11638
+ options.setNodes([...options.getNodes(), node]);
11639
+ }
11640
+ _optionalChain([options, 'access', _346 => _346.onStrokeComplete, 'optionalCall', _347 => _347(node)]);
11641
+ return node;
11642
+ }
11643
+ function cancelStroke() {
11644
+ if (activeStroke) {
11645
+ activeStroke = null;
11646
+ _optionalChain([options, 'access', _348 => _348.onActiveStrokeChange, 'optionalCall', _349 => _349(null)]);
11647
+ }
11648
+ if (erasedInDrag.size > 0) {
11649
+ const entries = Array.from(erasedInDrag.values());
11650
+ const current = [...options.getNodes()];
11651
+ const sorted = [...entries].sort((a, b) => a.index - b.index);
11652
+ for (const { node, index } of sorted) {
11653
+ const insertAt = Math.min(index, current.length);
11654
+ current.splice(insertAt, 0, node);
11655
+ }
11656
+ options.setNodes(current);
11657
+ erasedInDrag.clear();
11658
+ }
11659
+ }
11660
+ function eraseAt(point, radius = 12) {
11661
+ const nodes = options.getNodes();
11662
+ const candidates = findStrokesAtPoint(point, nodes, radius);
11663
+ const newlyErased = [];
11664
+ for (const candidate of candidates) {
11665
+ if (erasedInDrag.has(candidate.id) || isLocked(candidate)) continue;
11666
+ const index = nodes.findIndex((n) => n.id === candidate.id);
11667
+ if (index !== -1) {
11668
+ erasedInDrag.set(candidate.id, { node: candidate, index });
11669
+ newlyErased.push(candidate);
11670
+ }
11671
+ }
11672
+ if (newlyErased.length > 0) {
11673
+ const erasedSet = new Set(newlyErased.map((n) => n.id));
11674
+ const nextNodes = nodes.filter((n) => !erasedSet.has(n.id));
11675
+ options.setNodes(nextNodes);
11676
+ _optionalChain([options, 'access', _350 => _350.onNodesErase, 'optionalCall', _351 => _351(newlyErased)]);
11677
+ }
11678
+ return newlyErased;
11679
+ }
11680
+ return {
11681
+ get tool() {
11682
+ return currentTool;
11683
+ },
11684
+ setTool,
11685
+ get style() {
11686
+ return currentStyle;
11687
+ },
11688
+ setStyle,
11689
+ get activeStroke() {
11690
+ return activeStroke;
11691
+ },
11692
+ get isDrawing() {
11693
+ return activeStroke !== null;
11694
+ },
11695
+ startStroke,
11696
+ continueStroke,
11697
+ endStroke,
11698
+ cancelStroke,
11699
+ eraseAt
11700
+ };
11701
+ }
11702
+
11703
+
11704
+
11705
+
11706
+
11707
+
11708
+
11709
+
11710
+
11401
11711
 
11402
11712
 
11403
11713
 
@@ -11752,5 +12062,5 @@ function getCanvasComponentDragId(dataTransfer) {
11752
12062
 
11753
12063
 
11754
12064
 
11755
- exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunkTTYCN6ZHcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunkTTYCN6ZHcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunkTTYCN6ZHcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkTTYCN6ZHcjs.AnimationPlayer; exports.CANVAS_COMPONENT_DRAG_TYPE = CANVAS_COMPONENT_DRAG_TYPE; exports.CANVAS_TOKEN_PROPERTIES = CANVAS_TOKEN_PROPERTIES; exports.CHILD_LAYOUT_DATA_KEY = CHILD_LAYOUT_DATA_KEY; exports.COMPONENT_DATA_KEY = COMPONENT_DATA_KEY; exports.COMPONENT_OVERRIDES_DATA_KEY = COMPONENT_OVERRIDES_DATA_KEY; exports.COMPONENT_PROPERTY_REFS_DATA_KEY = COMPONENT_PROPERTY_REFS_DATA_KEY; exports.COMPONENT_SET_DATA_KEY = COMPONENT_SET_DATA_KEY; exports.COMPONENT_SOURCE_DATA_KEY = COMPONENT_SOURCE_DATA_KEY; exports.CONNECTION_LINE_TYPES = CONNECTION_LINE_TYPES; exports.CSS_ANIMATION_PROPERTIES = CSS_ANIMATION_PROPERTIES; exports.CUBIC_BEZIER_PRESETS = _chunkTTYCN6ZHcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunk26BVFKHUcjs.DEFAULT_ARRANGE_SHORTCUTS; exports.DEFAULT_NODE_HEIGHT = _chunkWADCJ7A7cjs.DEFAULT_NODE_HEIGHT; exports.DEFAULT_NODE_WIDTH = _chunkWADCJ7A7cjs.DEFAULT_NODE_WIDTH; exports.DEFAULT_PLACEMENT_GAP = _chunkWADCJ7A7cjs.DEFAULT_PLACEMENT_GAP; exports.INSTANCE_DATA_KEY = INSTANCE_DATA_KEY; exports.LOCKED_DATA_KEY = LOCKED_DATA_KEY; exports.LOCKED_PREVIOUS_FLAGS_KEY = LOCKED_PREVIOUS_FLAGS_KEY; exports.MAX_KEYFRAME_REFS = MAX_KEYFRAME_REFS; exports.ManualClock = _chunkTTYCN6ZHcjs.ManualClock; exports.PathOpsError = PathOpsError; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.StreamingLayoutManager = StreamingLayoutManager; exports.TOKEN_BINDINGS_DATA_KEY = TOKEN_BINDINGS_DATA_KEY; exports.TOKEN_MODES_DATA_KEY = TOKEN_MODES_DATA_KEY; exports.addCanvasVariant = addCanvasVariant; exports.addKeyframesAtTime = addKeyframesAtTime; exports.alignNodes = alignNodes; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = arcToCubics; exports.bezierPathArea = bezierPathArea; exports.bezierPathBounds = bezierPathBounds; exports.bezierPathLength = bezierPathLength; exports.bezierPathPointAtLength = bezierPathPointAtLength; exports.bezierPathSignedArea = bezierPathSignedArea; exports.bezierPathToSvg = bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendLayout = blendLayout; exports.boundsOf = _chunkWADCJ7A7cjs.boundsOf; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasHeight = canvasHeight; exports.centerNodes = _chunkWADCJ7A7cjs.centerNodes; exports.centre = _chunkWADCJ7A7cjs.centre; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedOnly = connectedOnly; exports.contourSignedArea = contourSignedArea; exports.contoursToPath = contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = countPathSegments; exports.createAnimationPlayer = _chunkTTYCN6ZHcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = createNodeLookup; exports.cubicBezierAt = _chunkTTYCN6ZHcjs.cubicBezierAt; exports.cubicPointAt = cubicPointAt; exports.cubicsToPathData = cubicsToPathData; exports.dashContours = dashContours; exports.defaultEasing = defaultEasing; exports.deleteKeyframes = deleteKeyframes; exports.detachCanvasInstance = detachCanvasInstance; exports.detachTokenBindings = detachTokenBindings; exports.diffOverrideGroups = diffOverrideGroups; exports.distanceToBezierPath = distanceToBezierPath; exports.distributeNodes = distributeNodes; exports.dividePaths = dividePaths; exports.dividePolygons = dividePolygons; exports.easingFromInfluence = _chunkTTYCN6ZHcjs.easingFromInfluence; exports.easingLabel = _chunkTTYCN6ZHcjs.easingLabel; exports.easingToCss = _chunkTTYCN6ZHcjs.easingToCss; exports.ensureLayout = _chunkWADCJ7A7cjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateNodeSize = _chunkWADCJ7A7cjs.estimateNodeSize; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunkTTYCN6ZHcjs.evaluateEasing; exports.evaluateTrack = _chunkTTYCN6ZHcjs.evaluateTrack; exports.excludePaths = excludePaths; exports.exportCssAnimation = exportCssAnimation; exports.findConnectorSnap = findConnectorSnap; exports.findVariant = findVariant; exports.fitCubicRun = fitCubicRun; exports.fitCubics = fitCubics; exports.fitFreehandPath = fitFreehandPath; exports.fitPathData = fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = flattenSvgPath; exports.flowSide = _chunkWADCJ7A7cjs.flowSide; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = formatNumber2; exports.formatOklab = _chunkTTYCN6ZHcjs.formatOklab; exports.formatVariantName = formatVariantName; exports.getAbsolutePosition = getAbsolutePosition; exports.getAnimatableProperty = getAnimatableProperty; exports.getAnimatedProperties = getAnimatedProperties; exports.getAnimatedValue = getAnimatedValue; exports.getAnimationDuration = getAnimationDuration; exports.getAnimationTrack = getAnimationTrack; exports.getAutoLayout = getAutoLayout; exports.getAutoLayoutGrid = getAutoLayoutGrid; exports.getAutoLayoutInsertTarget = getAutoLayoutInsertTarget; exports.getBindableTokenProperties = getBindableTokenProperties; exports.getCanvasComponentDragId = getCanvasComponentDragId; exports.getCanvasTokenProperty = getCanvasTokenProperty; exports.getCenteredNodePosition = _chunkWADCJ7A7cjs.getCenteredNodePosition; exports.getChildLayout = getChildLayout; exports.getComponentData = getComponentData; exports.getComponentInstances = getComponentInstances; exports.getComponentPropertyDefs = getComponentPropertyDefs; exports.getComponentPropertyRefs = getComponentPropertyRefs; exports.getComponentSourceId = getComponentSourceId; exports.getCssPropertyAnimations = getCssPropertyAnimations; exports.getDefaultVariant = getDefaultVariant; exports.getEffectiveTokenModes = getEffectiveTokenModes; exports.getFlowChildren = getFlowChildren; exports.getInstanceData = getInstanceData; exports.getInstanceProperties = getInstanceProperties; exports.getInstanceStatus = getInstanceStatus; exports.getKeyframeTimes = getKeyframeTimes; exports.getLayerName = getLayerName; exports.getLayoutParent = getLayoutParent; exports.getLayoutSizing = getLayoutSizing; exports.getLayoutedNodes = _chunkWADCJ7A7cjs.getLayoutedNodes; exports.getNextVariantValues = getNextVariantValues; exports.getNodeAnimation = getNodeAnimation; exports.getNodeOverrides = getNodeOverrides; exports.getNodeRect = getNodeRect; exports.getNodeShape = getNodeShape; exports.getNodeSize = getNodeSize; exports.getNodeTokenBindings = getNodeTokenBindings; exports.getNodeTokenModes = getNodeTokenModes; exports.getOwningComponent = getOwningComponent; exports.getOwningInstance = getOwningInstance; exports.getResizingNodeRect = getResizingNodeRect; exports.getRootInstance = getRootInstance; exports.getShapeRenderData = getShapeRenderData; exports.getShapeSvg = getShapeSvg; exports.getTimelineRows = getTimelineRows; exports.getTimelineTicks = getTimelineTicks; exports.getTokenPropertyScope = getTokenPropertyScope; exports.getTokensForProperty = getTokensForProperty; exports.getVariantConflicts = getVariantConflicts; exports.getVariantOptions = getVariantOptions; exports.getVariantSet = getVariantSet; exports.getVariantValues = getVariantValues; exports.handlePoint = handlePoint; exports.hasVisibleStroke = hasVisibleStroke; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interpolateAnimationValue = _chunkTTYCN6ZHcjs.interpolateAnimationValue; exports.intersectPaths = intersectPaths; exports.intersectPolygons = intersectPolygons; exports.invertNodeUpdates = invertNodeUpdates; exports.isAnimationEasing = _chunkTTYCN6ZHcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkTTYCN6ZHcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasInstance = isCanvasInstance; exports.isCssExportExact = isCssExportExact; exports.isEventFromTextInput = isEventFromTextInput; exports.isInsideInstance = isInsideInstance; exports.isKeyframeSelected = isKeyframeSelected; exports.isLocked = isLocked; exports.isMeasureModifierHeld = isMeasureModifierHeld; exports.isNodeAnimated = isNodeAnimated; exports.isShapeDescription = isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = isStraightCubic; exports.isValidCanvasEdge = isValidCanvasEdge; exports.isValidCanvasNode = isValidCanvasNode; exports.isValidCanvasScene = isValidCanvasScene; exports.isValidUrl = isValidUrl; exports.layoutAll = layoutAll; exports.layoutBounds = layoutBounds; exports.layoutFrame = layoutFrame; exports.layoutUp = layoutUp; exports.layoutUpMany = layoutUpMany; exports.linearPositionTrajectory = linearPositionTrajectory; exports.linearTrajectory = linearTrajectory; exports.listCanvasComponents = listCanvasComponents; exports.lockNodes = lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunk26BVFKHUcjs.matchArrangeShortcut; exports.matchSize = matchSize; exports.measureBetween = measureBetween; exports.measureLabel = measureLabel; exports.measureSelection = measureSelection; exports.measureToLine = measureToLine; exports.mergeNodeUpdates = mergeNodeUpdates; exports.mixColorsOklab = _chunkTTYCN6ZHcjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = multiPolygonArea; exports.multiPolygonBounds = multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.normalizeBezierPath = normalizeBezierPath; exports.normalizeKeyframes = _chunkTTYCN6ZHcjs.normalizeKeyframes; exports.offsetPath = offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunkTTYCN6ZHcjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = outlineStroke; exports.overlaps = _chunkWADCJ7A7cjs.overlaps; exports.pageHidden = _chunkTTYCN6ZHcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunkTTYCN6ZHcjs.parseCssEasing; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunkTTYCN6ZHcjs.parseOklab; exports.parseSvgPath = parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = pathBoolean; exports.pathToContours = pathToContours; exports.placeBeside = _chunkWADCJ7A7cjs.placeBeside; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = pointInBezierPath; exports.pointInMultiPolygon = pointInMultiPolygon; exports.pointInRings = pointInRings; exports.polygonArea = polygonArea; exports.polygonBoolean = polygonBoolean; exports.polygonToSvgPath = polygonToSvgPath; exports.positionToSide = positionToSide; exports.pruneCanvasTokenModes = pruneCanvasTokenModes; exports.pushCanvasInstanceOverrides = pushCanvasInstanceOverrides; exports.readAnimatableValue = readAnimatableValue; exports.readNodeStyleProperty = readNodeStyleProperty; exports.readOverrideGroup = readOverrideGroup; exports.readStyleSize = readStyleSize; exports.realClock = _chunkTTYCN6ZHcjs.realClock; exports.recordAnimationChanges = recordAnimationChanges; exports.relayoutUpdates = relayoutUpdates; exports.remapPastedNodes = remapPastedNodes; exports.removeCanvasVariant = removeCanvasVariant; exports.removeTrack = removeTrack; exports.renameCanvasVariantProperty = renameCanvasVariantProperty; exports.renameCanvasVariantValue = renameCanvasVariantValue; exports.reorderNodes = reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunkTTYCN6ZHcjs.resolveEasing; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunkTTYCN6ZHcjs.rgbToOklab; exports.ringSignedArea = ringSignedArea; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.segmentBounds = segmentBounds; exports.segmentCurvature = segmentCurvature; exports.segmentDerivative = segmentDerivative; exports.segmentExtrema = segmentExtrema; exports.segmentLength = segmentLength; exports.segmentNearest = segmentNearest; exports.segmentParamAtLength = segmentParamAtLength; exports.segmentPoint = segmentPoint; exports.segmentTangent = segmentTangent; exports.serializeCanvasNodes = serializeCanvasNodes; exports.setCanvasComponentProperty = setCanvasComponentProperty; exports.setCanvasInstanceProperties = setCanvasInstanceProperties; exports.setCanvasTokenMode = setCanvasTokenMode; exports.setCanvasVariantProperties = setCanvasVariantProperties; exports.setKeyframe = setKeyframe; exports.setKeyframeEasing = setKeyframeEasing; exports.setMotionPath = setMotionPath; exports.setTrackEnabled = setTrackEnabled; exports.shapeNodeToBezierPath = shapeNodeToBezierPath; exports.shapeNodeToPolygon = shapeNodeToPolygon; exports.shapeToBezierPath = shapeToBezierPath; exports.shapeToPolygon = shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = splitSegment; exports.springAt = _chunkTTYCN6ZHcjs.springAt; exports.strokeOutlineRings = strokeOutlineRings; exports.subSegment = subSegment; exports.subtractPaths = subtractPaths; exports.subtractPolygons = subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.toBezierPath = toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = toggleLockNodes; exports.transformBezierPath = transformBezierPath; exports.trimSegments = trimSegments; exports.unionPolygons = unionPolygons; exports.unitePaths = unitePaths; exports.unlockNodes = unlockNodes; exports.updateKeyframe = updateKeyframe; exports.windingNumber = windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkTTYCN6ZHcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = xorPolygons;
12065
+ exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunkXZ4L3R4Kcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunkXZ4L3R4Kcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunkXHRZSB77cjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkXHRZSB77cjs.AnimationPlayer; exports.CANVAS_COMPONENT_DRAG_TYPE = CANVAS_COMPONENT_DRAG_TYPE; exports.CANVAS_TOKEN_PROPERTIES = CANVAS_TOKEN_PROPERTIES; exports.CHILD_LAYOUT_DATA_KEY = CHILD_LAYOUT_DATA_KEY; exports.COMPONENT_DATA_KEY = COMPONENT_DATA_KEY; exports.COMPONENT_OVERRIDES_DATA_KEY = COMPONENT_OVERRIDES_DATA_KEY; exports.COMPONENT_PROPERTY_REFS_DATA_KEY = COMPONENT_PROPERTY_REFS_DATA_KEY; exports.COMPONENT_SET_DATA_KEY = COMPONENT_SET_DATA_KEY; exports.COMPONENT_SOURCE_DATA_KEY = COMPONENT_SOURCE_DATA_KEY; exports.CONNECTION_LINE_TYPES = CONNECTION_LINE_TYPES; exports.CSS_ANIMATION_PROPERTIES = CSS_ANIMATION_PROPERTIES; exports.CUBIC_BEZIER_PRESETS = _chunkXZ4L3R4Kcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunk26BVFKHUcjs.DEFAULT_ARRANGE_SHORTCUTS; exports.DEFAULT_NODE_HEIGHT = _chunkWADCJ7A7cjs.DEFAULT_NODE_HEIGHT; exports.DEFAULT_NODE_WIDTH = _chunkWADCJ7A7cjs.DEFAULT_NODE_WIDTH; exports.DEFAULT_PLACEMENT_GAP = _chunkWADCJ7A7cjs.DEFAULT_PLACEMENT_GAP; exports.INSTANCE_DATA_KEY = INSTANCE_DATA_KEY; exports.LOCKED_DATA_KEY = LOCKED_DATA_KEY; exports.LOCKED_PREVIOUS_FLAGS_KEY = LOCKED_PREVIOUS_FLAGS_KEY; exports.MAX_KEYFRAME_REFS = MAX_KEYFRAME_REFS; exports.ManualClock = _chunkXHRZSB77cjs.ManualClock; exports.PathOpsError = PathOpsError; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.StreamingLayoutManager = StreamingLayoutManager; exports.TOKEN_BINDINGS_DATA_KEY = TOKEN_BINDINGS_DATA_KEY; exports.TOKEN_MODES_DATA_KEY = TOKEN_MODES_DATA_KEY; exports.addCanvasVariant = addCanvasVariant; exports.addKeyframesAtTime = addKeyframesAtTime; exports.alignNodes = alignNodes; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = arcToCubics; exports.bezierPathArea = bezierPathArea; exports.bezierPathBounds = bezierPathBounds; exports.bezierPathLength = bezierPathLength; exports.bezierPathPointAtLength = bezierPathPointAtLength; exports.bezierPathSignedArea = bezierPathSignedArea; exports.bezierPathToSvg = bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendLayout = blendLayout; exports.boundsOf = _chunkWADCJ7A7cjs.boundsOf; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasHeight = canvasHeight; exports.centerNodes = _chunkWADCJ7A7cjs.centerNodes; exports.centre = _chunkWADCJ7A7cjs.centre; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedOnly = connectedOnly; exports.contourSignedArea = contourSignedArea; exports.contoursToPath = contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = countPathSegments; exports.createAnimationPlayer = _chunkXHRZSB77cjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasDrawController = createCanvasDrawController; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = createNodeLookup; exports.cubicBezierAt = _chunkXZ4L3R4Kcjs.cubicBezierAt; exports.cubicPointAt = cubicPointAt; exports.cubicsToPathData = cubicsToPathData; exports.dashContours = dashContours; exports.defaultEasing = defaultEasing; exports.deleteKeyframes = deleteKeyframes; exports.detachCanvasInstance = detachCanvasInstance; exports.detachTokenBindings = detachTokenBindings; exports.diffOverrideGroups = diffOverrideGroups; exports.distanceToBezierPath = distanceToBezierPath; exports.distributeNodes = distributeNodes; exports.dividePaths = dividePaths; exports.dividePolygons = dividePolygons; exports.easingFromInfluence = _chunkXZ4L3R4Kcjs.easingFromInfluence; exports.easingLabel = _chunkXZ4L3R4Kcjs.easingLabel; exports.easingToCss = _chunkXZ4L3R4Kcjs.easingToCss; exports.elasticAt = _chunkXZ4L3R4Kcjs.elasticAt; exports.ensureLayout = _chunkWADCJ7A7cjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateNodeSize = _chunkWADCJ7A7cjs.estimateNodeSize; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunkXZ4L3R4Kcjs.evaluateEasing; exports.evaluateTrack = _chunkXHRZSB77cjs.evaluateTrack; exports.excludePaths = excludePaths; exports.exportCssAnimation = exportCssAnimation; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = fitCubicRun; exports.fitCubics = fitCubics; exports.fitFreehandPath = fitFreehandPath; exports.fitPathData = fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = flattenSvgPath; exports.flowSide = _chunkWADCJ7A7cjs.flowSide; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = formatNumber2; exports.formatOklab = _chunkXHRZSB77cjs.formatOklab; exports.formatVariantName = formatVariantName; exports.getAbsolutePosition = getAbsolutePosition; exports.getAnimatableProperty = getAnimatableProperty; exports.getAnimatedProperties = getAnimatedProperties; exports.getAnimatedValue = getAnimatedValue; exports.getAnimationDuration = getAnimationDuration; exports.getAnimationTrack = getAnimationTrack; exports.getAutoLayout = getAutoLayout; exports.getAutoLayoutGrid = getAutoLayoutGrid; exports.getAutoLayoutInsertTarget = getAutoLayoutInsertTarget; exports.getBindableTokenProperties = getBindableTokenProperties; exports.getCanvasComponentDragId = getCanvasComponentDragId; exports.getCanvasTokenProperty = getCanvasTokenProperty; exports.getCenteredNodePosition = _chunkWADCJ7A7cjs.getCenteredNodePosition; exports.getChildLayout = getChildLayout; exports.getComponentData = getComponentData; exports.getComponentInstances = getComponentInstances; exports.getComponentPropertyDefs = getComponentPropertyDefs; exports.getComponentPropertyRefs = getComponentPropertyRefs; exports.getComponentSourceId = getComponentSourceId; exports.getCssPropertyAnimations = getCssPropertyAnimations; exports.getDefaultVariant = getDefaultVariant; exports.getEffectiveTokenModes = getEffectiveTokenModes; exports.getFlowChildren = getFlowChildren; exports.getInstanceData = getInstanceData; exports.getInstanceProperties = getInstanceProperties; exports.getInstanceStatus = getInstanceStatus; exports.getKeyframeTimes = getKeyframeTimes; exports.getLayerName = getLayerName; exports.getLayoutParent = getLayoutParent; exports.getLayoutSizing = getLayoutSizing; exports.getLayoutedNodes = _chunkWADCJ7A7cjs.getLayoutedNodes; exports.getNextVariantValues = getNextVariantValues; exports.getNodeAnimation = getNodeAnimation; exports.getNodeOverrides = getNodeOverrides; exports.getNodeRect = getNodeRect; exports.getNodeShape = getNodeShape; exports.getNodeSize = getNodeSize; exports.getNodeTokenBindings = getNodeTokenBindings; exports.getNodeTokenModes = getNodeTokenModes; exports.getOwningComponent = getOwningComponent; exports.getOwningInstance = getOwningInstance; exports.getResizingNodeRect = getResizingNodeRect; exports.getRootInstance = getRootInstance; exports.getShapeRenderData = getShapeRenderData; exports.getShapeSvg = getShapeSvg; exports.getTimelineRows = getTimelineRows; exports.getTimelineTicks = getTimelineTicks; exports.getTokenPropertyScope = getTokenPropertyScope; exports.getTokensForProperty = getTokensForProperty; exports.getVariantConflicts = getVariantConflicts; exports.getVariantOptions = getVariantOptions; exports.getVariantSet = getVariantSet; exports.getVariantValues = getVariantValues; exports.handlePoint = handlePoint; exports.hasVisibleStroke = hasVisibleStroke; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interpolateAnimationValue = _chunkXHRZSB77cjs.interpolateAnimationValue; exports.intersectPaths = intersectPaths; exports.intersectPolygons = intersectPolygons; exports.invertNodeUpdates = invertNodeUpdates; exports.isAnimationEasing = _chunkXZ4L3R4Kcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkXHRZSB77cjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasInstance = isCanvasInstance; exports.isCssExportExact = isCssExportExact; exports.isEventFromTextInput = isEventFromTextInput; exports.isInsideInstance = isInsideInstance; exports.isKeyframeSelected = isKeyframeSelected; exports.isLocked = isLocked; exports.isMeasureModifierHeld = isMeasureModifierHeld; exports.isNodeAnimated = isNodeAnimated; exports.isShapeDescription = isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = isStraightCubic; exports.isValidCanvasEdge = isValidCanvasEdge; exports.isValidCanvasNode = isValidCanvasNode; exports.isValidCanvasScene = isValidCanvasScene; exports.isValidUrl = isValidUrl; exports.layoutAll = layoutAll; exports.layoutBounds = layoutBounds; exports.layoutFrame = layoutFrame; exports.layoutUp = layoutUp; exports.layoutUpMany = layoutUpMany; exports.linearPositionTrajectory = linearPositionTrajectory; exports.linearTrajectory = linearTrajectory; exports.listCanvasComponents = listCanvasComponents; exports.lockNodes = lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunk26BVFKHUcjs.matchArrangeShortcut; exports.matchSize = matchSize; exports.measureBetween = measureBetween; exports.measureLabel = measureLabel; exports.measureSelection = measureSelection; exports.measureToLine = measureToLine; exports.mergeNodeUpdates = mergeNodeUpdates; exports.mixColorsOklab = _chunkXHRZSB77cjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = multiPolygonArea; exports.multiPolygonBounds = multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.normalizeBezierPath = normalizeBezierPath; exports.normalizeKeyframes = _chunkXHRZSB77cjs.normalizeKeyframes; exports.offsetPath = offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunkXHRZSB77cjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = outlineStroke; exports.overlaps = _chunkWADCJ7A7cjs.overlaps; exports.pageHidden = _chunkXHRZSB77cjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunkXZ4L3R4Kcjs.parseCssEasing; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunkXHRZSB77cjs.parseOklab; exports.parseSvgPath = parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = pathBoolean; exports.pathToContours = pathToContours; exports.placeBeside = _chunkWADCJ7A7cjs.placeBeside; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = pointInBezierPath; exports.pointInMultiPolygon = pointInMultiPolygon; exports.pointInRings = pointInRings; exports.polygonArea = polygonArea; exports.polygonBoolean = polygonBoolean; exports.polygonToSvgPath = polygonToSvgPath; exports.positionToSide = positionToSide; exports.pruneCanvasTokenModes = pruneCanvasTokenModes; exports.pushCanvasInstanceOverrides = pushCanvasInstanceOverrides; exports.readAnimatableValue = readAnimatableValue; exports.readNodeStyleProperty = readNodeStyleProperty; exports.readOverrideGroup = readOverrideGroup; exports.readStyleSize = readStyleSize; exports.realClock = _chunkXHRZSB77cjs.realClock; exports.recordAnimationChanges = recordAnimationChanges; exports.relayoutUpdates = relayoutUpdates; exports.remapPastedNodes = remapPastedNodes; exports.removeCanvasVariant = removeCanvasVariant; exports.removeTrack = removeTrack; exports.renameCanvasVariantProperty = renameCanvasVariantProperty; exports.renameCanvasVariantValue = renameCanvasVariantValue; exports.reorderNodes = reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunkXZ4L3R4Kcjs.resolveEasing; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunkXHRZSB77cjs.rgbToOklab; exports.ringSignedArea = ringSignedArea; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.segmentBounds = segmentBounds; exports.segmentCurvature = segmentCurvature; exports.segmentDerivative = segmentDerivative; exports.segmentExtrema = segmentExtrema; exports.segmentLength = segmentLength; exports.segmentNearest = segmentNearest; exports.segmentParamAtLength = segmentParamAtLength; exports.segmentPoint = segmentPoint; exports.segmentTangent = segmentTangent; exports.serializeCanvasNodes = serializeCanvasNodes; exports.setCanvasComponentProperty = setCanvasComponentProperty; exports.setCanvasInstanceProperties = setCanvasInstanceProperties; exports.setCanvasTokenMode = setCanvasTokenMode; exports.setCanvasVariantProperties = setCanvasVariantProperties; exports.setKeyframe = setKeyframe; exports.setKeyframeEasing = setKeyframeEasing; exports.setMotionPath = setMotionPath; exports.setTrackEnabled = setTrackEnabled; exports.shapeNodeToBezierPath = shapeNodeToBezierPath; exports.shapeNodeToPolygon = shapeNodeToPolygon; exports.shapeToBezierPath = shapeToBezierPath; exports.shapeToPolygon = shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = splitSegment; exports.springAt = _chunkXZ4L3R4Kcjs.springAt; exports.streamlinePoints = streamlinePoints; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = subSegment; exports.subtractPaths = subtractPaths; exports.subtractPolygons = subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.toBezierPath = toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = toggleLockNodes; exports.transformBezierPath = transformBezierPath; exports.trimSegments = trimSegments; exports.unionPolygons = unionPolygons; exports.unitePaths = unitePaths; exports.unlockNodes = unlockNodes; exports.updateKeyframe = updateKeyframe; exports.windingNumber = windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkXHRZSB77cjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = xorPolygons;
11756
12066
  //# sourceMappingURL=index.cjs.map