@pixerate/editor 0.126.0 → 0.127.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/dist/animation/index.d.cts +2 -3
  2. package/dist/animation/index.d.ts +2 -3
  3. package/dist/animation-editor/index.cjs +63 -63
  4. package/dist/animation-editor/index.cjs.map +1 -1
  5. package/dist/animation-editor/index.d.cts +6 -8
  6. package/dist/animation-editor/index.d.ts +6 -8
  7. package/dist/animation-editor/index.js +10 -10
  8. package/dist/{bezier-CBzKKDjl.d.cts → bezier-DBz0IgEt.d.cts} +22 -2
  9. package/dist/{bezier-CWv6LQal.d.ts → bezier-DWI5MEkI.d.ts} +22 -2
  10. package/dist/{brushstrokeRender-LRV7GXGD.js → brushstrokeRender-7RUITO42.js} +3 -3
  11. package/dist/{brushstrokeRender-EELTV7U4.cjs → brushstrokeRender-OW6ENCZG.cjs} +7 -7
  12. package/dist/{brushstrokeRender-EELTV7U4.cjs.map → brushstrokeRender-OW6ENCZG.cjs.map} +1 -1
  13. package/dist/canvas/index.cjs +423 -37
  14. package/dist/canvas/index.cjs.map +1 -1
  15. package/dist/canvas/index.d.cts +189 -11
  16. package/dist/canvas/index.d.ts +189 -11
  17. package/dist/canvas/index.js +395 -9
  18. package/dist/canvas/index.js.map +1 -1
  19. package/dist/{chunk-7LQO6OHH.cjs → chunk-33SO3QWP.cjs} +4 -4
  20. package/dist/{chunk-7LQO6OHH.cjs.map → chunk-33SO3QWP.cjs.map} +1 -1
  21. package/dist/{chunk-MPQAO33O.js → chunk-A6KHMKI4.js} +3 -3
  22. package/dist/{chunk-V5YGPRCZ.cjs → chunk-BEGEWQHD.cjs} +41 -41
  23. package/dist/{chunk-V5YGPRCZ.cjs.map → chunk-BEGEWQHD.cjs.map} +1 -1
  24. package/dist/{chunk-N3FVUOZD.cjs → chunk-BJTCSLF6.cjs} +7 -7
  25. package/dist/{chunk-N3FVUOZD.cjs.map → chunk-BJTCSLF6.cjs.map} +1 -1
  26. package/dist/{chunk-WUDPFWAN.js → chunk-F7Q2NE2Y.js} +3 -3
  27. package/dist/{chunk-GUZ47CJM.cjs → chunk-IZ4WRXZA.cjs} +1 -1
  28. package/dist/{chunk-GUZ47CJM.cjs.map → chunk-IZ4WRXZA.cjs.map} +1 -1
  29. package/dist/{chunk-GLWZXQ4Q.js → chunk-KHNZ6MOU.js} +1 -1
  30. package/dist/chunk-KHNZ6MOU.js.map +1 -0
  31. package/dist/{chunk-GCJWMEYW.cjs → chunk-KSJLDRHK.cjs} +46 -46
  32. package/dist/{chunk-GCJWMEYW.cjs.map → chunk-KSJLDRHK.cjs.map} +1 -1
  33. package/dist/{chunk-QQKTOA4U.cjs → chunk-ORE334I6.cjs} +132 -132
  34. package/dist/{chunk-QQKTOA4U.cjs.map → chunk-ORE334I6.cjs.map} +1 -1
  35. package/dist/{chunk-X6KTSFAE.js → chunk-Q4NBEVV5.js} +2 -2
  36. package/dist/{chunk-FPRIUR4T.js → chunk-ROZFX4QI.js} +3 -3
  37. package/dist/{chunk-J67OLQUQ.js → chunk-UABQTYQF.js} +3 -3
  38. package/dist/{chunk-O5RVCDEC.cjs → chunk-XLUYXUBD.cjs} +88 -88
  39. package/dist/{chunk-O5RVCDEC.cjs.map → chunk-XLUYXUBD.cjs.map} +1 -1
  40. package/dist/{chunk-FG274FYT.js → chunk-YGJIER2R.js} +2 -2
  41. package/dist/effects/index.d.cts +6 -38
  42. package/dist/effects/index.d.ts +6 -38
  43. package/dist/evaluate-BbCeF6pt.d.ts +114 -0
  44. package/dist/evaluate-BsxYieLN.d.cts +114 -0
  45. package/dist/{export-DVl4fWy5.d.cts → export-Cbr9IqpJ.d.cts} +1 -1
  46. package/dist/{export-Bp7ji2r4.d.cts → export-CcldobdN.d.cts} +3 -3
  47. package/dist/{export-C1s4eolZ.d.ts → export-ClPKUB-v.d.ts} +1 -1
  48. package/dist/{export-DAyPY94f.d.ts → export-PGhOpDmz.d.ts} +3 -3
  49. package/dist/{helpers-i95Ob6Vi.d.cts → helpers-C5aAd44p.d.cts} +67 -4
  50. package/dist/{helpers-BBLlekuM.d.ts → helpers-CPWcK504.d.ts} +67 -4
  51. package/dist/image-editor/index.cjs +606 -606
  52. package/dist/image-editor/index.cjs.map +1 -1
  53. package/dist/image-editor/index.d.cts +9 -11
  54. package/dist/image-editor/index.d.ts +9 -11
  55. package/dist/image-editor/index.js +4 -4
  56. package/dist/{opentype-14PDI5D2.d.ts → opentype-01rMIuQR.d.ts} +1 -1
  57. package/dist/{opentype-D80AVmMu.d.cts → opentype-BgqvmGT-.d.cts} +1 -1
  58. package/dist/paint-editor/index.cjs +9 -9
  59. package/dist/paint-editor/index.cjs.map +1 -1
  60. package/dist/paint-editor/index.d.cts +6 -8
  61. package/dist/paint-editor/index.d.ts +6 -8
  62. package/dist/paint-editor/index.js +4 -4
  63. package/dist/{pathfinder-DjISxkUv.d.ts → pathfinder-D-h0Imus.d.ts} +1 -1
  64. package/dist/{pathfinder-C0UoFypx.d.cts → pathfinder-DgG0Z9Lr.d.cts} +1 -1
  65. package/dist/{player-cGLrngL_.d.ts → player-BK2kKbfd.d.ts} +1 -1
  66. package/dist/{player-CBtEoU2x.d.cts → player-CmbY3218.d.cts} +1 -1
  67. package/dist/pool-C7GtrL34.d.cts +34 -0
  68. package/dist/pool-CTrtciaN.d.ts +34 -0
  69. package/dist/{svg-DJKriJ4A.d.ts → svg-BRLwcibA.d.ts} +2 -3
  70. package/dist/{svg-BkRL-fZJ.d.cts → svg-DLBBPQP9.d.cts} +2 -3
  71. package/dist/{tools-CM8Oe8F3.d.ts → tools-AugT22z3.d.ts} +1 -1
  72. package/dist/{tools-DZCv2kX1.d.cts → tools-BpCmUNxb.d.cts} +1 -1
  73. package/dist/vector/index.cjs +918 -918
  74. package/dist/vector/index.cjs.map +1 -1
  75. package/dist/vector/index.d.cts +10 -12
  76. package/dist/vector/index.d.ts +10 -12
  77. package/dist/vector/index.js +11 -11
  78. package/dist/video-editor/index.d.cts +6 -8
  79. package/dist/video-editor/index.d.ts +6 -8
  80. package/dist/{warp-CH9MM435.d.cts → warp-C13L_GRn.d.cts} +1 -1
  81. package/dist/{warp-k_PdtXOG.d.ts → warp-q8FK5HHi.d.ts} +1 -1
  82. package/package.json +1 -1
  83. package/skills/pixerate-canvas/SKILL.md +19 -0
  84. package/dist/behavior-Ymbld6jL.d.cts +0 -60
  85. package/dist/behavior-Ymbld6jL.d.ts +0 -60
  86. package/dist/chunk-GLWZXQ4Q.js.map +0 -1
  87. package/dist/evaluate-2S3vSPLy.d.cts +0 -55
  88. package/dist/evaluate-CfmT6xA3.d.ts +0 -55
  89. package/dist/gradient-KDfCvhuj.d.cts +0 -66
  90. package/dist/gradient-KDfCvhuj.d.ts +0 -66
  91. /package/dist/{brushstrokeRender-LRV7GXGD.js.map → brushstrokeRender-7RUITO42.js.map} +0 -0
  92. /package/dist/{chunk-MPQAO33O.js.map → chunk-A6KHMKI4.js.map} +0 -0
  93. /package/dist/{chunk-WUDPFWAN.js.map → chunk-F7Q2NE2Y.js.map} +0 -0
  94. /package/dist/{chunk-X6KTSFAE.js.map → chunk-Q4NBEVV5.js.map} +0 -0
  95. /package/dist/{chunk-FPRIUR4T.js.map → chunk-ROZFX4QI.js.map} +0 -0
  96. /package/dist/{chunk-J67OLQUQ.js.map → chunk-UABQTYQF.js.map} +0 -0
  97. /package/dist/{chunk-FG274FYT.js.map → chunk-YGJIER2R.js.map} +0 -0
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkGCJWMEYWcjs = require('../chunk-GCJWMEYW.cjs');
9
+ var _chunkKSJLDRHKcjs = require('../chunk-KSJLDRHK.cjs');
10
10
 
11
11
 
12
12
 
@@ -50,7 +50,7 @@ var _chunkII77MLHNcjs = require('../chunk-II77MLHN.cjs');
50
50
 
51
51
 
52
52
 
53
- var _chunk7LQO6OHHcjs = require('../chunk-7LQO6OHH.cjs');
53
+ var _chunk33SO3QWPcjs = require('../chunk-33SO3QWP.cjs');
54
54
 
55
55
 
56
56
 
@@ -84,6 +84,9 @@ var _chunk26BVFKHUcjs = require('../chunk-26BVFKHU.cjs');
84
84
  var _chunkEI2MOVQ3cjs = require('../chunk-EI2MOVQ3.cjs');
85
85
 
86
86
 
87
+ var _chunkW6QTLHZ3cjs = require('../chunk-W6QTLHZ3.cjs');
88
+
89
+
87
90
 
88
91
  var _chunkVJUVNERTcjs = require('../chunk-VJUVNERT.cjs');
89
92
 
@@ -153,7 +156,11 @@ require('../chunk-XP5IUZUO.cjs');
153
156
 
154
157
 
155
158
 
156
- var _chunkN3FVUOZDcjs = require('../chunk-N3FVUOZD.cjs');
159
+ var _chunkBJTCSLF6cjs = require('../chunk-BJTCSLF6.cjs');
160
+
161
+
162
+
163
+
157
164
 
158
165
 
159
166
 
@@ -176,11 +183,14 @@ var _chunkN3FVUOZDcjs = require('../chunk-N3FVUOZD.cjs');
176
183
 
177
184
 
178
185
 
186
+ var _chunkIZ4WRXZAcjs = require('../chunk-IZ4WRXZA.cjs');
179
187
 
180
188
 
181
189
 
182
190
 
183
- var _chunkGUZ47CJMcjs = require('../chunk-GUZ47CJM.cjs');
191
+
192
+ var _chunkJODTP4DPcjs = require('../chunk-JODTP4DP.cjs');
193
+ require('../chunk-RIWPYSKU.cjs');
184
194
 
185
195
 
186
196
 
@@ -1599,6 +1609,8 @@ function cloneScene(scene) {
1599
1609
  viewport: { x: scene.viewport.x, y: scene.viewport.y, zoom: scene.viewport.zoom }
1600
1610
  };
1601
1611
  if (scene.nodeIds) copy.nodeIds = [...scene.nodeIds];
1612
+ const t = scene.transition;
1613
+ if (t && typeof t.effect === "string" && t.effect) copy.transition = JSON.parse(JSON.stringify(t));
1602
1614
  return copy;
1603
1615
  }
1604
1616
  function parseCanvasScenes(input) {
@@ -1815,18 +1827,18 @@ var BOOLEAN_FOR = {
1815
1827
  exclude: "xor"
1816
1828
  };
1817
1829
  function isShapeNode(node) {
1818
- return !!node && _chunkGUZ47CJMcjs.isShapeDescription.call(void 0, _optionalChain([node, 'access', _55 => _55.data, 'optionalAccess', _56 => _56[SHAPE_DATA_KEY]]));
1830
+ return !!node && _chunkIZ4WRXZAcjs.isShapeDescription.call(void 0, _optionalChain([node, 'access', _55 => _55.data, 'optionalAccess', _56 => _56[SHAPE_DATA_KEY]]));
1819
1831
  }
1820
1832
  function getNodeShape(node) {
1821
1833
  const shape = _optionalChain([node, 'optionalAccess', _57 => _57.data, 'optionalAccess', _58 => _58[SHAPE_DATA_KEY]]);
1822
- return _chunkGUZ47CJMcjs.isShapeDescription.call(void 0, shape) ? shape : null;
1834
+ return _chunkIZ4WRXZAcjs.isShapeDescription.call(void 0, shape) ? shape : null;
1823
1835
  }
1824
1836
  function shapeNodeToPolygon(node, lookup, options = {}) {
1825
1837
  const shape = getNodeShape(node);
1826
1838
  if (!shape) return null;
1827
1839
  const size2 = getNodeSize(node, options);
1828
1840
  const origin = node.parentId && lookup ? getAbsolutePosition(node, lookup) : node.position;
1829
- const { rings, fillRule } = _chunkGUZ47CJMcjs.shapeToPolygon.call(void 0, shape, size2, { tolerance: options.tolerance });
1841
+ const { rings, fillRule } = _chunkIZ4WRXZAcjs.shapeToPolygon.call(void 0, shape, size2, { tolerance: options.tolerance });
1830
1842
  return {
1831
1843
  rings: rings.map((ring) => ring.map(([x, y]) => [x + origin.x, y + origin.y])),
1832
1844
  fillRule
@@ -1835,14 +1847,14 @@ function shapeNodeToPolygon(node, lookup, options = {}) {
1835
1847
  function shapeToBezierPath(shape, size2) {
1836
1848
  const { width: w, height: h } = size2;
1837
1849
  if (!(w > 0) || !(h > 0)) return { path: [], fillRule: "nonzero" };
1838
- const svg = _chunkGUZ47CJMcjs.getShapeSvg.call(void 0, { ...shape, rotation: 0 }, size2);
1839
- let path = _chunkN3FVUOZDcjs.toBezierPath.call(void 0, svg.d);
1850
+ const svg = _chunkIZ4WRXZAcjs.getShapeSvg.call(void 0, { ...shape, rotation: 0 }, size2);
1851
+ let path = _chunkBJTCSLF6cjs.toBezierPath.call(void 0, svg.d);
1840
1852
  if (shape.kind === "path" && shape.viewBox) {
1841
1853
  const vb = shape.viewBox;
1842
1854
  if (vb.length === 4 && vb.every(Number.isFinite) && vb[2] > 0 && vb[3] > 0) {
1843
1855
  const sx = w / vb[2];
1844
1856
  const sy = h / vb[3];
1845
- path = _chunkN3FVUOZDcjs.transformBezierPath.call(void 0, path, [sx, 0, 0, sy, -vb[0] * sx, -vb[1] * sy]);
1857
+ path = _chunkBJTCSLF6cjs.transformBezierPath.call(void 0, path, [sx, 0, 0, sy, -vb[0] * sx, -vb[1] * sy]);
1846
1858
  }
1847
1859
  }
1848
1860
  const deg = _nullishCoalesce(shape.rotation, () => ( 0));
@@ -1853,7 +1865,7 @@ function shapeToBezierPath(shape, size2) {
1853
1865
  const cx = w / 2;
1854
1866
  const cy = h / 2;
1855
1867
  const m = [cos, sin, -sin, cos, cx - cx * cos + cy * sin, cy - cx * sin - cy * cos];
1856
- path = _chunkN3FVUOZDcjs.transformBezierPath.call(void 0, path, m);
1868
+ path = _chunkBJTCSLF6cjs.transformBezierPath.call(void 0, path, m);
1857
1869
  }
1858
1870
  return { path, fillRule: svg.fillRule };
1859
1871
  }
@@ -1863,7 +1875,7 @@ function shapeNodeToBezierPath(node, lookup, options = {}) {
1863
1875
  const size2 = getNodeSize(node, options);
1864
1876
  const origin = node.parentId && lookup ? getAbsolutePosition(node, lookup) : node.position;
1865
1877
  const { path, fillRule } = shapeToBezierPath(shape, size2);
1866
- return { path: _chunkN3FVUOZDcjs.transformBezierPath.call(void 0, path, [1, 0, 0, 1, origin.x, origin.y]), fillRule };
1878
+ return { path: _chunkBJTCSLF6cjs.transformBezierPath.call(void 0, path, [1, 0, 0, 1, origin.x, origin.y]), fillRule };
1867
1879
  }
1868
1880
  var idCounter = 0;
1869
1881
  function defaultId2(index) {
@@ -1916,7 +1928,7 @@ function combineShapeNodes(nodes, ids, operation, options = {}) {
1916
1928
  const operands = ordered.map((node) => shapeNodeToBezierPath(node, lookup, options));
1917
1929
  const pathOptions = { epsilon: options.epsilon, onFallback: options.onFallback, fallbackTolerance: options.tolerance };
1918
1930
  if (operation === "divide") {
1919
- const result = _chunkN3FVUOZDcjs.dividePaths.call(void 0, operands, pathOptions);
1931
+ const result = _chunkBJTCSLF6cjs.dividePaths.call(void 0, operands, pathOptions);
1920
1932
  report = result;
1921
1933
  for (const piece of result.pieces) {
1922
1934
  const source = ordered[piece.operands[piece.operands.length - 1]];
@@ -1924,7 +1936,7 @@ function combineShapeNodes(nodes, ids, operation, options = {}) {
1924
1936
  if (node) created.push(node);
1925
1937
  }
1926
1938
  } else {
1927
- const result = _chunkN3FVUOZDcjs.pathBoolean.call(void 0, BOOLEAN_FOR[operation], operands, pathOptions);
1939
+ const result = _chunkBJTCSLF6cjs.pathBoolean.call(void 0, BOOLEAN_FOR[operation], operands, pathOptions);
1928
1940
  report = result;
1929
1941
  const node = buildPathNode(result.path, pickSource(), createId(0), buildOptions);
1930
1942
  if (node) created.push(node);
@@ -1932,8 +1944,8 @@ function combineShapeNodes(nodes, ids, operation, options = {}) {
1932
1944
  } else {
1933
1945
  report = { engine: "polygon" };
1934
1946
  const operands = ordered.map((node) => shapeNodeToPolygon(node, lookup, options));
1935
- const write = (polygon2) => _chunkN3FVUOZDcjs.toBezierPath.call(void 0,
1936
- _chunkGUZ47CJMcjs.polygonToSvgPath.call(void 0, polygon2, {
1947
+ const write = (polygon2) => _chunkBJTCSLF6cjs.toBezierPath.call(void 0,
1948
+ _chunkIZ4WRXZAcjs.polygonToSvgPath.call(void 0, polygon2, {
1937
1949
  precision: 9,
1938
1950
  simplify: options.simplify,
1939
1951
  curves: _nullishCoalesce(options.curves, () => ( "fit")),
@@ -1942,13 +1954,13 @@ function combineShapeNodes(nodes, ids, operation, options = {}) {
1942
1954
  })
1943
1955
  );
1944
1956
  if (operation === "divide") {
1945
- for (const piece of _chunkN3FVUOZDcjs.dividePolygons.call(void 0, operands, { epsilon: options.epsilon })) {
1957
+ for (const piece of _chunkBJTCSLF6cjs.dividePolygons.call(void 0, operands, { epsilon: options.epsilon })) {
1946
1958
  const source = ordered[piece.operands[piece.operands.length - 1]];
1947
1959
  const node = buildPathNode(write([piece.polygon]), source, createId(created.length), buildOptions);
1948
1960
  if (node) created.push(node);
1949
1961
  }
1950
1962
  } else {
1951
- const result = _chunkN3FVUOZDcjs.polygonBoolean.call(void 0, BOOLEAN_FOR[operation], operands, { epsilon: options.epsilon });
1963
+ const result = _chunkBJTCSLF6cjs.polygonBoolean.call(void 0, BOOLEAN_FOR[operation], operands, { epsilon: options.epsilon });
1952
1964
  const node = buildPathNode(write(result), pickSource(), createId(0), buildOptions);
1953
1965
  if (node) created.push(node);
1954
1966
  }
@@ -1965,12 +1977,12 @@ function combineShapeNodes(nodes, ids, operation, options = {}) {
1965
1977
  return done2;
1966
1978
  }
1967
1979
  function buildPathNode(path, source, id, options) {
1968
- const bounds = _chunkN3FVUOZDcjs.bezierPathBounds.call(void 0, path);
1980
+ const bounds = _chunkBJTCSLF6cjs.bezierPathBounds.call(void 0, path);
1969
1981
  if (!bounds) return null;
1970
1982
  const width = bounds.maxX - bounds.minX;
1971
1983
  const height = bounds.maxY - bounds.minY;
1972
1984
  if (!(width > 0) || !(height > 0)) return null;
1973
- const d = _chunkN3FVUOZDcjs.bezierPathToSvg.call(void 0, path, { precision: _nullishCoalesce(options.precision, () => ( 3)), offset: { x: -bounds.minX, y: -bounds.minY } });
1985
+ const d = _chunkBJTCSLF6cjs.bezierPathToSvg.call(void 0, path, { precision: _nullishCoalesce(options.precision, () => ( 3)), offset: { x: -bounds.minX, y: -bounds.minY } });
1974
1986
  if (!d) return null;
1975
1987
  const sourceShape = getNodeShape(source);
1976
1988
  const shape = {
@@ -2102,7 +2114,7 @@ function offsetShapeNodes(nodes, ids, distance, options = {}) {
2102
2114
  for (const id of check.shapeIds) {
2103
2115
  const node = lookup.get(id);
2104
2116
  const outline = shapeNodeToBezierPath(node, lookup, options);
2105
- const path = _chunkN3FVUOZDcjs.offsetPath.call(void 0, outline.path, distance, {
2117
+ const path = _chunkBJTCSLF6cjs.offsetPath.call(void 0, outline.path, distance, {
2106
2118
  join: options.join,
2107
2119
  miterLimit: options.miterLimit,
2108
2120
  fillRule: outline.fillRule,
@@ -2138,7 +2150,7 @@ function outlineShapeNodeStrokes(nodes, ids, options = {}) {
2138
2150
  const node = lookup.get(id);
2139
2151
  const shape = getNodeShape(node);
2140
2152
  const outline = shapeNodeToBezierPath(node, lookup, options);
2141
- const path = _chunkN3FVUOZDcjs.outlineStroke.call(void 0, outline.path, {
2153
+ const path = _chunkBJTCSLF6cjs.outlineStroke.call(void 0, outline.path, {
2142
2154
  width: _nullishCoalesce(_nullishCoalesce(options.width, () => ( shape.strokeWidth)), () => ( 1)),
2143
2155
  join: options.join,
2144
2156
  cap: options.cap,
@@ -4177,7 +4189,7 @@ function withStyle(node, prop, value, unitless = false) {
4177
4189
  }
4178
4190
  function shapeOf(node) {
4179
4191
  const shape = _optionalChain([node, 'access', _161 => _161.data, 'optionalAccess', _162 => _162.shape]);
4180
- return _chunkGUZ47CJMcjs.isShapeDescription.call(void 0, shape) ? shape : null;
4192
+ return _chunkIZ4WRXZAcjs.isShapeDescription.call(void 0, shape) ? shape : null;
4181
4193
  }
4182
4194
  function withShape(node, key, value) {
4183
4195
  const shape = shapeOf(node);
@@ -4584,8 +4596,8 @@ function motionPathPoint(node, progress) {
4584
4596
  const path = _optionalChain([getNodeAnimation, 'call', _173 => _173(node), 'optionalAccess', _174 => _174.motionPath]);
4585
4597
  if (!path || typeof path.d !== "string") return null;
4586
4598
  try {
4587
- const length = _chunkN3FVUOZDcjs.bezierPathLength.call(void 0, path.d);
4588
- return _chunkN3FVUOZDcjs.bezierPathPointAtLength.call(void 0, path.d, Math.min(1, Math.max(0, progress)) * length);
4599
+ const length = _chunkBJTCSLF6cjs.bezierPathLength.call(void 0, path.d);
4600
+ return _chunkBJTCSLF6cjs.bezierPathPointAtLength.call(void 0, path.d, Math.min(1, Math.max(0, progress)) * length);
4589
4601
  } catch (e5) {
4590
4602
  return null;
4591
4603
  }
@@ -7975,11 +7987,11 @@ function createCanvasComponentsController(options) {
7975
7987
  },
7976
7988
  canResetOverrides(id) {
7977
7989
  const at = target(id);
7978
- const info = at ? inspectCanvasInstance(nodes(), at) : void 0;
7979
- if (!info) return "Select an instance or a layer inside one.";
7980
- const changedProps = !info.nested && info.properties.some((p) => p.value !== p.default);
7981
- const own = info.id === at ? info.overrides.length > 0 : getNodeOverrides(nodes().find((n3) => n3.id === at)).length > 0;
7982
- return own || info.id === at && changedProps ? true : "No overrides to reset.";
7990
+ const info2 = at ? inspectCanvasInstance(nodes(), at) : void 0;
7991
+ if (!info2) return "Select an instance or a layer inside one.";
7992
+ const changedProps = !info2.nested && info2.properties.some((p) => p.value !== p.default);
7993
+ const own = info2.id === at ? info2.overrides.length > 0 : getNodeOverrides(nodes().find((n3) => n3.id === at)).length > 0;
7994
+ return own || info2.id === at && changedProps ? true : "No overrides to reset.";
7983
7995
  },
7984
7996
  /** Push the (outermost) instance's overrides to its main component. */
7985
7997
  pushOverrides(id) {
@@ -8210,7 +8222,7 @@ function strokePointsToPathData(points, options = {}) {
8210
8222
  const [p0, p1] = points;
8211
8223
  return `M ${p0[0]} ${p0[1]} L ${p1[0]} ${p1[1]}`;
8212
8224
  }
8213
- const fitted = _chunkGUZ47CJMcjs.fitFreehandPath.call(void 0, points, options);
8225
+ const fitted = _chunkIZ4WRXZAcjs.fitFreehandPath.call(void 0, points, options);
8214
8226
  return fitted.length > 0 ? fitted : `M ${points[0][0]} ${points[0][1]}`;
8215
8227
  }
8216
8228
  function freehandBrushstroke(brush, points, samples, profileLength = 32) {
@@ -8218,12 +8230,12 @@ function freehandBrushstroke(brush, points, samples, profileLength = 32) {
8218
8230
  if (!samples || samples.length !== points.length) return out;
8219
8231
  const finite2 = (v) => typeof v === "number" && Number.isFinite(v);
8220
8232
  if (samples.some((s) => finite2(s.pressure))) {
8221
- const pressure = _chunk7LQO6OHHcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s.pressure) ? Math.min(1, Math.max(0, s.pressure)) : 1), profileLength);
8233
+ const pressure = _chunk33SO3QWPcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s.pressure) ? Math.min(1, Math.max(0, s.pressure)) : 1), profileLength);
8222
8234
  if (pressure.some((p) => p !== 1)) out.pressure = pressure;
8223
8235
  }
8224
8236
  for (const key of ["tiltX", "tiltY"]) {
8225
8237
  if (!samples.some((s) => finite2(s[key]) && s[key] !== 0)) continue;
8226
- out[key] = _chunk7LQO6OHHcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s[key]) ? Math.min(90, Math.max(-90, s[key])) : 0), profileLength);
8238
+ out[key] = _chunk33SO3QWPcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s[key]) ? Math.min(90, Math.max(-90, s[key])) : 0), profileLength);
8227
8239
  }
8228
8240
  return out;
8229
8241
  }
@@ -8283,7 +8295,7 @@ function findStrokesAtPoint(point, nodes, radius = 12) {
8283
8295
  }
8284
8296
  const localPoint = [point[0] - rect2.x, point[1] - rect2.y];
8285
8297
  try {
8286
- const dist = _chunkN3FVUOZDcjs.distanceToBezierPath.call(void 0, shape.d, localPoint);
8298
+ const dist = _chunkBJTCSLF6cjs.distanceToBezierPath.call(void 0, shape.d, localPoint);
8287
8299
  if (dist <= effectiveRadius) {
8288
8300
  matches2.push(node);
8289
8301
  }
@@ -8432,7 +8444,7 @@ function createCanvasDrawController(options) {
8432
8444
  if ((input.pressure || input.tiltX || input.tiltY) && style.brush === void 0) {
8433
8445
  throw new Error("pressure and tilt profiles only shape brushed strokes: pass a brush too (see canvas.listBrushes).");
8434
8446
  }
8435
- if (style.brush !== void 0) await _chunk7LQO6OHHcjs.validateCanvasBrush.call(void 0, style.brush);
8447
+ if (style.brush !== void 0) await _chunk33SO3QWPcjs.validateCanvasBrush.call(void 0, style.brush);
8436
8448
  const id = _nullishCoalesce(_optionalChain([options, 'access', _318 => _318.generateNodeId, 'optionalCall', _319 => _319()]), () => ( `stroke-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`));
8437
8449
  const smoothed = input.streamline ? streamlinePoints(points, _nullishCoalesce(_optionalChain([options, 'access', _320 => _320.drawOptions, 'optionalAccess', _321 => _321.streamline]), () => ( 0.35))) : [...points];
8438
8450
  const node = strokeToShapeNode(
@@ -8512,7 +8524,7 @@ function createCanvasDrawController(options) {
8512
8524
  eraseAt,
8513
8525
  drawStroke,
8514
8526
  /** The dry paint presets a stroke can be brushed with (loads the paint engine). */
8515
- listBrushes: _chunk7LQO6OHHcjs.listCanvasBrushes
8527
+ listBrushes: _chunk33SO3QWPcjs.listCanvasBrushes
8516
8528
  };
8517
8529
  }
8518
8530
  function computeDragBounds(start, current, modifiers = {}) {
@@ -11602,6 +11614,380 @@ function createCanvasCaptureToolProvider(options) {
11602
11614
  });
11603
11615
  }
11604
11616
 
11617
+ // src/canvas/effects.ts
11618
+ var CANVAS_EFFECT_PLACES = {
11619
+ /** Paints a shape's inside. */
11620
+ fill: ["generator", "interactive"],
11621
+ /** Draws over a node's box. */
11622
+ overlay: ["overlay", "title", "interactive", "generator"],
11623
+ transition: ["transition"]
11624
+ };
11625
+ function canvasNodeEffect(node) {
11626
+ const shape = _optionalChain([node, 'access', _488 => _488.data, 'optionalAccess', _489 => _489.shape]);
11627
+ return _chunkIZ4WRXZAcjs.isShapeDescription.call(void 0, shape) ? shape.effect : void 0;
11628
+ }
11629
+ function createCanvasEffectsController(options) {
11630
+ const slot = new (0, _chunkJODTP4DPcjs.EffectsSlot)();
11631
+ if (options.effects) slot.set(options.effects);
11632
+ const describe = async (effect, place2) => {
11633
+ const d = await slot.require().describe(effect);
11634
+ const allowed = CANVAS_EFFECT_PLACES[place2];
11635
+ if (d.kind === "motion" || !d.uses.some((u) => allowed.includes(u))) {
11636
+ const where = place2 === "transition" ? "a scene transition" : place2 === "fill" ? "a fill" : "an overlay";
11637
+ throw new (0, _chunkJODTP4DPcjs.EffectUnsupportedError)(`"${d.id}" (${d.name}) is a ${d.uses.join(" / ")} effect and cannot be ${where}, which takes ${allowed.join(" or ")} effects; search_effects with use "${allowed[0]}" lists ones that fit.`, d.id);
11638
+ }
11639
+ return d;
11640
+ };
11641
+ const shapeNode = (id) => {
11642
+ const node = options.getNodes().find((n3) => n3.id === id);
11643
+ if (!node) throw new Error(`There is no node "${id}"; the nodes are ${options.getNodes().map((n3) => `"${n3.id}"`).slice(0, 20).join(", ") || "none"}.`);
11644
+ const shape = _optionalChain([node, 'access', _490 => _490.data, 'optionalAccess', _491 => _491.shape]);
11645
+ if (!_chunkIZ4WRXZAcjs.isShapeDescription.call(void 0, shape)) throw new Error(`Node "${id}" is not a shape; effects draw on shape nodes (data.shape).`);
11646
+ return { node, shape };
11647
+ };
11648
+ const commit = (label, next) => {
11649
+ const before = options.getNodes();
11650
+ if (options.history) options.history.execute({ name: label, execute: () => options.setNodes(next), undo: () => options.setNodes(before), redo: () => options.setNodes(next) });
11651
+ else options.setNodes(next);
11652
+ };
11653
+ const withEffect = (id, effect) => options.getNodes().map((n3) => {
11654
+ if (n3.id !== id) return n3;
11655
+ const shape = { ...n3.data.shape };
11656
+ if (effect) shape.effect = effect;
11657
+ else delete shape.effect;
11658
+ return { ...n3, data: { ...n3.data, shape } };
11659
+ });
11660
+ const mergeValues = (d, was, values) => {
11661
+ const base = { ...was };
11662
+ const given = {};
11663
+ for (const [k, v] of Object.entries(values)) {
11664
+ if (v !== null) given[k] = v;
11665
+ else if (k in d.controls.properties) base[k] = d.defaults[k];
11666
+ else throw new Error(`"${k}" is not a control of "${d.id}"; its controls are ${Object.keys(d.controls.properties).join(", ")}.`);
11667
+ }
11668
+ return { ...base, ..._chunkJODTP4DPcjs.resolveEffectValues.call(void 0, { ...d, defaults: base }, given) };
11669
+ };
11670
+ return {
11671
+ /** The provider slot. */
11672
+ effects: slot,
11673
+ get effectsProvider() {
11674
+ return slot.provider;
11675
+ },
11676
+ /** Registers (or with `null` removes) the effects provider. */
11677
+ setEffectsProvider(provider) {
11678
+ slot.set(provider);
11679
+ },
11680
+ /** Registers `provider` and returns a function that removes it again. */
11681
+ useEffects(provider) {
11682
+ return slot.use(provider);
11683
+ },
11684
+ /** The shape nodes that carry effects (or one node's). */
11685
+ list(nodeId) {
11686
+ return options.getNodes().filter((n3) => !nodeId || n3.id === nodeId).map((n3) => ({ nodeId: n3.id, effect: canvasNodeEffect(n3) })).filter((e) => !!e.effect);
11687
+ },
11688
+ /**
11689
+ * Draws a provider effect on a shape node: `fill` paints its inside (generators), `overlay`
11690
+ * draws over its box (overlays, titles, interactive effects). Replaces any effect it had. One
11691
+ * undoable step. Returns the effect.
11692
+ */
11693
+ async applyNodeEffect(nodeId, effect, opts = {}) {
11694
+ shapeNode(nodeId);
11695
+ const mode = _nullishCoalesce(opts.mode, () => ( "fill"));
11696
+ const d = await describe(effect, mode);
11697
+ if (opts.opacity !== void 0 && !(opts.opacity >= 0 && opts.opacity <= 1)) throw new Error("opacity must be from 0 to 1.");
11698
+ const next = { effect: d.id, provider: slot.require().id, name: d.name, values: _chunkJODTP4DPcjs.resolveEffectValues.call(void 0, d, opts.values), mode, ...opts.opacity !== void 0 && opts.opacity !== 1 ? { opacity: opts.opacity } : {} };
11699
+ commit(`Add effect ${d.name}`, withEffect(nodeId, next));
11700
+ return next;
11701
+ },
11702
+ /** Changes a node's effect: `values` merged (`null` resets), `mode`, `opacity`, `playing`. One undoable step. */
11703
+ async updateNodeEffect(nodeId, changes) {
11704
+ const { shape } = shapeNode(nodeId);
11705
+ const was = shape.effect;
11706
+ if (!was) throw new Error(`Node "${nodeId}" has no effect; add one with apply_effect.`);
11707
+ const next = { ...was };
11708
+ if (changes.values || changes.mode) {
11709
+ const d = await describe(was.effect, _nullishCoalesce(changes.mode, () => ( was.mode)));
11710
+ if (changes.values) next.values = mergeValues(d, was.values, changes.values);
11711
+ if (changes.mode) next.mode = changes.mode;
11712
+ } else slot.require();
11713
+ if (changes.opacity !== void 0) {
11714
+ if (!(changes.opacity >= 0 && changes.opacity <= 1)) throw new Error("opacity must be from 0 to 1.");
11715
+ if (changes.opacity === 1) delete next.opacity;
11716
+ else next.opacity = changes.opacity;
11717
+ }
11718
+ if (changes.playing !== void 0) {
11719
+ if (changes.playing) delete next.playing;
11720
+ else next.playing = false;
11721
+ }
11722
+ commit(`Change effect ${_nullishCoalesce(was.name, () => ( was.effect))}`, withEffect(nodeId, next));
11723
+ return next;
11724
+ },
11725
+ /** Removes a node's effect (works without a provider). One undoable step. */
11726
+ removeNodeEffect(nodeId) {
11727
+ const { shape } = shapeNode(nodeId);
11728
+ if (!shape.effect) throw new Error(`Node "${nodeId}" has no effect.`);
11729
+ commit(`Remove effect ${_nullishCoalesce(shape.effect.name, () => ( shape.effect.effect))}`, withEffect(nodeId, void 0));
11730
+ return shape.effect;
11731
+ },
11732
+ /** The scenes, in order (empty without a Scenes store). */
11733
+ scenes() {
11734
+ return _nullishCoalesce(_optionalChain([options, 'access', _492 => _492.scenes, 'optionalAccess', _493 => _493.getState, 'call', _494 => _494(), 'access', _495 => _495.scenes]), () => ( []));
11735
+ },
11736
+ /** The transition into a scene, if it has one. */
11737
+ sceneTransition(sceneId) {
11738
+ return _optionalChain([options, 'access', _496 => _496.scenes, 'optionalAccess', _497 => _497.getScene, 'call', _498 => _498(sceneId), 'optionalAccess', _499 => _499.transition]);
11739
+ },
11740
+ /**
11741
+ * Sets (or with `effect` null removes) the provider transition played when the canvas moves to
11742
+ * a scene. Returns the transition.
11743
+ */
11744
+ async setSceneTransition(sceneId, effect, opts = {}) {
11745
+ const scenes2 = options.scenes;
11746
+ if (!scenes2) throw new Error("This canvas has no Scenes store.");
11747
+ if (!scenes2.getScene(sceneId)) throw new Error(`There is no scene "${sceneId}"; the scenes are ${scenes2.getState().scenes.map((s) => `"${s.id}"`).join(", ") || "none"}.`);
11748
+ if (effect === null) {
11749
+ scenes2.update(sceneId, { transition: void 0 });
11750
+ return null;
11751
+ }
11752
+ const d = await describe(effect, "transition");
11753
+ const duration = _nullishCoalesce(_nullishCoalesce(opts.duration, () => ( d.duration)), () => ( 600));
11754
+ if (!(duration > 0)) throw new Error("duration must be a number of ms above 0.");
11755
+ const transition = { effect: d.id, provider: slot.require().id, name: d.name, values: _chunkJODTP4DPcjs.resolveEffectValues.call(void 0, d, opts.values), duration };
11756
+ scenes2.update(sceneId, { transition });
11757
+ return transition;
11758
+ }
11759
+ };
11760
+ }
11761
+
11762
+ // src/canvas/effect-player.ts
11763
+ var defaultClock = {
11764
+ now: () => typeof performance !== "undefined" ? performance.now() : Date.now(),
11765
+ frame: (cb) => {
11766
+ if (typeof requestAnimationFrame === "undefined") {
11767
+ const t = setTimeout(cb, 16);
11768
+ return () => clearTimeout(t);
11769
+ }
11770
+ const id = requestAnimationFrame(cb);
11771
+ return () => cancelAnimationFrame(id);
11772
+ }
11773
+ };
11774
+ var canvasEffectsPool = new (0, _chunkW6QTLHZ3cjs.EffectRendererPool)({ maxRenderers: 6 });
11775
+ function draw(target, p) {
11776
+ const ctx = target.getContext("2d");
11777
+ if (!ctx || typeof ImageData === "undefined") return;
11778
+ ctx.putImageData(new ImageData(new Uint8ClampedArray(p.data), p.width, p.height), 0, 0);
11779
+ }
11780
+ function runCanvasNodeEffect(options) {
11781
+ const { provider, effect, target } = options;
11782
+ const clock = _nullishCoalesce(options.clock, () => ( defaultClock));
11783
+ const pool = _nullishCoalesce(options.pool, () => ( canvasEffectsPool));
11784
+ const size2 = { width: Math.max(1, Math.round(target.width)), height: Math.max(1, Math.round(target.height)) };
11785
+ const start = clock.now();
11786
+ let stopped = false;
11787
+ let cancel = () => {
11788
+ };
11789
+ const tick = () => {
11790
+ if (stopped) return;
11791
+ const time = options.animate === false || effect.playing === false ? 0 : clock.now() - start;
11792
+ pool.render(provider, effect.effect, size2, { time, values: effect.values }).then(
11793
+ (p) => {
11794
+ if (stopped) return;
11795
+ draw(target, p);
11796
+ if (options.animate !== false && effect.playing !== false) cancel = clock.frame(tick);
11797
+ },
11798
+ (e) => {
11799
+ if (!stopped) _optionalChain([options, 'access', _500 => _500.onError, 'optionalCall', _501 => _501(e)]);
11800
+ }
11801
+ );
11802
+ };
11803
+ tick();
11804
+ return {
11805
+ stop() {
11806
+ stopped = true;
11807
+ cancel();
11808
+ }
11809
+ };
11810
+ }
11811
+ async function playCanvasSceneTransition(options) {
11812
+ const { provider, transition, from, to, target } = options;
11813
+ const clock = _nullishCoalesce(options.clock, () => ( defaultClock));
11814
+ const pool = _nullishCoalesce(options.pool, () => ( canvasEffectsPool));
11815
+ const duration = _nullishCoalesce(transition.duration, () => ( 600));
11816
+ const size2 = { width: from.width, height: from.height };
11817
+ const start = clock.now();
11818
+ for (; ; ) {
11819
+ const time = Math.min(duration, clock.now() - start);
11820
+ const p = await pool.render(provider, transition.effect, size2, { time, progress: time / duration, values: transition.values, inputs: { from, to } });
11821
+ draw(target, p);
11822
+ if (time >= duration) return;
11823
+ await new Promise((resolve) => clock.frame(resolve));
11824
+ }
11825
+ }
11826
+ async function captureCanvasView(element, size2) {
11827
+ const url = await _chunkEI2MOVQ3cjs.rasterizeElement.call(void 0, element, { pixelWidth: size2.width, pixelHeight: size2.height, exclude: _chunkEI2MOVQ3cjs.CAPTURE_OVERLAY_SELECTORS });
11828
+ const doc = element.ownerDocument;
11829
+ const image = new doc.defaultView.Image();
11830
+ await new Promise((resolve, reject) => {
11831
+ image.onload = () => resolve();
11832
+ image.onerror = () => reject(new Error("The canvas view could not be captured."));
11833
+ image.src = url;
11834
+ });
11835
+ const canvas = doc.createElement("canvas");
11836
+ canvas.width = size2.width;
11837
+ canvas.height = size2.height;
11838
+ const ctx = canvas.getContext("2d");
11839
+ if (!ctx) throw new Error("The canvas view could not be captured (no 2D canvas).");
11840
+ ctx.drawImage(image, 0, 0, size2.width, size2.height);
11841
+ const data = ctx.getImageData(0, 0, size2.width, size2.height).data;
11842
+ return { width: size2.width, height: size2.height, data };
11843
+ }
11844
+ async function transitionCanvasView(options) {
11845
+ const { element } = options;
11846
+ const clock = _nullishCoalesce(options.clock, () => ( defaultClock));
11847
+ const scale = _nullishCoalesce(options.scale, () => ( Math.min(1, typeof devicePixelRatio === "number" ? devicePixelRatio : 1)));
11848
+ const size2 = { width: Math.max(1, Math.round(element.clientWidth * scale)), height: Math.max(1, Math.round(element.clientHeight * scale)) };
11849
+ let from;
11850
+ try {
11851
+ from = await captureCanvasView(element, size2);
11852
+ } catch (e10) {
11853
+ options.jump();
11854
+ return;
11855
+ }
11856
+ const overlay = element.ownerDocument.createElement("canvas");
11857
+ overlay.width = size2.width;
11858
+ overlay.height = size2.height;
11859
+ overlay.setAttribute("data-capture", "overlay");
11860
+ overlay.setAttribute("data-canvas-transition", options.transition.effect);
11861
+ Object.assign(overlay.style, { position: "absolute", inset: "0", width: "100%", height: "100%", pointerEvents: "none", zIndex: "1000" });
11862
+ _optionalChain([overlay, 'access', _502 => _502.getContext, 'call', _503 => _503("2d"), 'optionalAccess', _504 => _504.putImageData, 'call', _505 => _505(new ImageData(new Uint8ClampedArray(from.data), size2.width, size2.height), 0, 0)]);
11863
+ if (getComputedStyle(element).position === "static") element.style.position = "relative";
11864
+ element.appendChild(overlay);
11865
+ try {
11866
+ options.jump();
11867
+ await new Promise((r) => clock.frame(() => clock.frame(r)));
11868
+ const to = await captureCanvasView(element, size2);
11869
+ await playCanvasSceneTransition({ provider: options.provider, transition: options.transition, from, to, target: overlay, clock });
11870
+ } catch (e11) {
11871
+ } finally {
11872
+ overlay.remove();
11873
+ }
11874
+ }
11875
+
11876
+ // src/canvas/effect-tools.ts
11877
+ var info = (e) => ({
11878
+ id: "effect",
11879
+ effect: e.effect,
11880
+ ...e.name ? { name: e.name } : {},
11881
+ ...e.provider ? { provider: e.provider } : {},
11882
+ role: e.mode === "fill" ? "fill" : "overlay",
11883
+ enabled: e.playing !== false,
11884
+ opacity: _nullishCoalesce(e.opacity, () => ( 1)),
11885
+ values: { ...e.values }
11886
+ });
11887
+ function createCanvasEffectsToolProvider(controller, options = {}) {
11888
+ const readOnlyReason = () => {
11889
+ const ro = typeof options.readOnly === "function" ? options.readOnly() : options.readOnly;
11890
+ return ro ? typeof ro === "string" ? ro : "The canvas is read-only." : null;
11891
+ };
11892
+ const result = (nodeId, effect) => {
11893
+ const now = _optionalChain([controller, 'access', _506 => _506.list, 'call', _507 => _507(nodeId), 'access', _508 => _508[0], 'optionalAccess', _509 => _509.effect]);
11894
+ return { target: nodeId, effect: info(_nullishCoalesce(effect, () => ( now))), effects: now ? [info(now)] : [] };
11895
+ };
11896
+ const once = (instance) => {
11897
+ if (instance !== "effect") throw new Error('A shape node has one effect, "effect".');
11898
+ };
11899
+ return _chunkJODTP4DPcjs.createEffectToolProvider.call(void 0, {
11900
+ id: _nullishCoalesce(options.id, () => ( "canvas-effects")),
11901
+ namespace: options.namespace,
11902
+ target: { noun: "node", id: "A shape node id on the canvas (a node with data.shape)." },
11903
+ applyUses: ["generator", "overlay", "title", "interactive"],
11904
+ applyDetails: "Generators fill the shape (clipped to its outline); overlays, titles and interactive effects draw over the node's box (set_canvas_effect_mode switches). A node has one effect: this replaces it. enabled false holds the first frame; opacity mixes it. index does not apply.",
11905
+ provider: () => controller.effectsProvider,
11906
+ readOnlyReason,
11907
+ list: (target) => controller.list(target).map((e) => ({ target: e.nodeId, effects: [info(e.effect)] })),
11908
+ apply: async (target, effect, args) => {
11909
+ if (args.index !== void 0) throw new Error("index does not apply: a shape node has one effect.");
11910
+ const provider = controller.effectsProvider;
11911
+ const d = provider ? await provider.describe(effect) : null;
11912
+ const mode = d && !d.uses.includes("generator") ? "overlay" : "fill";
11913
+ const applied = await controller.applyNodeEffect(target, effect, { mode, values: args.values, opacity: args.opacity });
11914
+ if (args.enabled === false) await controller.updateNodeEffect(target, { playing: false });
11915
+ return result(target, args.enabled === false ? { ...applied, playing: false } : applied);
11916
+ },
11917
+ update: async (target, instance, changes) => {
11918
+ once(instance);
11919
+ if (changes.index !== void 0) throw new Error("index does not apply: a shape node has one effect.");
11920
+ const e = await controller.updateNodeEffect(target, { values: changes.values, opacity: changes.opacity, playing: changes.enabled });
11921
+ return result(target, e);
11922
+ },
11923
+ remove: async (target, instance) => {
11924
+ once(instance);
11925
+ const was = controller.removeNodeEffect(target);
11926
+ return { target, effect: info(was), effects: [] };
11927
+ },
11928
+ subscribe: options.subscribe ? (notify) => options.subscribe(notify) : (notify) => controller.effects.subscribe(() => notify()),
11929
+ extraTools: (ctx) => [
11930
+ {
11931
+ name: "set_canvas_effect_mode",
11932
+ title: "Set a node effect's mode",
11933
+ description: "Switches a shape node's effect between fill (paints the inside, clipped to the outline) and overlay (draws over the node's box). One undoable step. Returns the effect.",
11934
+ inputSchema: {
11935
+ type: "object",
11936
+ properties: {
11937
+ node: { type: "string", minLength: 1, description: "A shape node id from list_applied_effects." },
11938
+ mode: { type: "string", enum: ["fill", "overlay"], description: "fill or overlay." }
11939
+ },
11940
+ required: ["node", "mode"],
11941
+ additionalProperties: false
11942
+ },
11943
+ annotations: { title: "Set a node effect's mode", ...ctx.annotations.writeIdempotent },
11944
+ handler: async (args) => {
11945
+ ctx.requireProvider();
11946
+ return { node: args.node, effect: info(await controller.updateNodeEffect(args.node, { mode: args.mode })) };
11947
+ }
11948
+ },
11949
+ {
11950
+ name: "list_scene_transitions",
11951
+ title: "List scene transitions",
11952
+ description: "Lists the canvas Scenes in order with the transition effect played when moving to each (or null). Works without a provider.",
11953
+ inputSchema: { type: "object", properties: {}, additionalProperties: false },
11954
+ annotations: { title: "List scene transitions", ...ctx.annotations.read },
11955
+ handler: () => ({ scenes: controller.scenes().map((s) => ({ id: s.id, name: s.name, transition: _nullishCoalesce(s.transition, () => ( null)) })) })
11956
+ },
11957
+ {
11958
+ name: "set_scene_transition",
11959
+ title: "Set a scene transition",
11960
+ description: "Sets the provider transition effect (search_effects with use transition) played when the canvas moves to a scene: the view before and after are captured and the effect blends between them. effect null removes it. Returns the transition.",
11961
+ inputSchema: {
11962
+ type: "object",
11963
+ properties: {
11964
+ scene: { type: "string", minLength: 1, description: "A scene id from list_scene_transitions." },
11965
+ effect: { anyOf: [ctx.effectIdSchema(["transition"]), { type: "null" }], description: "A transition effect id from search_effects, or null to remove the transition." },
11966
+ values: ctx.valuesSchema("Control values over the effect's defaults"),
11967
+ duration: { type: "number", exclusiveMinimum: 0, description: "Length in ms (default: the effect's own, else 600)." }
11968
+ },
11969
+ required: ["scene", "effect"],
11970
+ additionalProperties: false
11971
+ },
11972
+ annotations: { title: "Set a scene transition", ...ctx.annotations.writeIdempotent },
11973
+ handler: async (args) => {
11974
+ if (args.effect !== null) ctx.requireProvider();
11975
+ return { scene: args.scene, transition: await controller.setSceneTransition(args.scene, args.effect, { values: args.values, duration: args.duration }) };
11976
+ }
11977
+ }
11978
+ ]
11979
+ });
11980
+ }
11981
+
11982
+
11983
+
11984
+
11985
+
11986
+
11987
+
11988
+
11989
+
11990
+
11605
11991
 
11606
11992
 
11607
11993
 
@@ -12085,5 +12471,5 @@ function createCanvasCaptureToolProvider(options) {
12085
12471
 
12086
12472
 
12087
12473
 
12088
- exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunk2FHLHZALcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunk2FHLHZALcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunk477UVMNRcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunk477UVMNRcjs.AnimationPlayer; exports.BUILTIN_FAMILY_SCENES = BUILTIN_FAMILY_SCENES; exports.CANVAS_CAPTURE_CHROME_SELECTORS = CANVAS_CAPTURE_CHROME_SELECTORS; exports.CANVAS_CAPTURE_OVERLAY_SELECTORS = CANVAS_CAPTURE_OVERLAY_SELECTORS; exports.CANVAS_CAPTURE_VIEWPORT_SELECTOR = CANVAS_CAPTURE_VIEWPORT_SELECTOR; exports.CANVAS_COMPONENT_DRAG_TYPE = CANVAS_COMPONENT_DRAG_TYPE; exports.CANVAS_GRADIENT_PRESETS = _chunkGUZ47CJMcjs.CANVAS_GRADIENT_PRESETS; exports.CANVAS_TOKEN_PROPERTIES = CANVAS_TOKEN_PROPERTIES; exports.CARD_INSPECTION_ZONES = CARD_INSPECTION_ZONES; 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.CSS_VARIABLE_DIAGRAM_SCENE_THEME = CSS_VARIABLE_DIAGRAM_SCENE_THEME; exports.CUBIC_BEZIER_PRESETS = _chunk2FHLHZALcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunk26BVFKHUcjs.DEFAULT_ARRANGE_SHORTCUTS; exports.DEFAULT_CURSOR_INACTIVITY_MS = DEFAULT_CURSOR_INACTIVITY_MS; exports.DEFAULT_DIAGRAM_NODE_HEIGHT = DEFAULT_DIAGRAM_NODE_HEIGHT; exports.DEFAULT_DIAGRAM_NODE_WIDTH = DEFAULT_DIAGRAM_NODE_WIDTH; 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.DIAGRAM_MARKER_IDS = DIAGRAM_MARKER_IDS; exports.DIAGRAM_RASTER_MAX_SIZE = DIAGRAM_RASTER_MAX_SIZE; exports.DIAGRAM_SCENE_DARK_THEME = DIAGRAM_SCENE_DARK_THEME; exports.DIAGRAM_SCENE_LIGHT_THEME = DIAGRAM_SCENE_LIGHT_THEME; exports.DIAGRAM_SVG_DARK_THEME = DIAGRAM_SVG_DARK_THEME; exports.DIAGRAM_SVG_LIGHT_THEME = DIAGRAM_SVG_LIGHT_THEME; exports.DIAGRAM_TITLE_TARGET = DIAGRAM_TITLE_TARGET; exports.DiagramStream = DiagramStream; 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.MERMAID_SHAPE_PAINT = MERMAID_SHAPE_PAINT; exports.ManualClock = _chunk477UVMNRcjs.ManualClock; exports.PATHFINDER_OPERATIONS = _chunkGCJWMEYWcjs.PATHFINDER_OPERATIONS; exports.PIXERATE_BRAND_GRADIENT = _chunkGUZ47CJMcjs.PIXERATE_BRAND_GRADIENT; exports.PathOpsError = _chunkN3FVUOZDcjs.PathOpsError; exports.PlanarMap = _chunkGCJWMEYWcjs.PlanarMap; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = _chunkGUZ47CJMcjs.SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.SPRING_PRESETS = _chunk2FHLHZALcjs.SPRING_PRESETS; 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.angleToSvgLinearCoords = _chunkGUZ47CJMcjs.angleToSvgLinearCoords; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = _chunkN3FVUOZDcjs.arcToCubics; exports.architectureScene = architectureScene; exports.autoLayoutDiagram = autoLayoutDiagram; exports.bezierPathArea = _chunkN3FVUOZDcjs.bezierPathArea; exports.bezierPathBounds = _chunkN3FVUOZDcjs.bezierPathBounds; exports.bezierPathLength = _chunkN3FVUOZDcjs.bezierPathLength; exports.bezierPathPointAtLength = _chunkN3FVUOZDcjs.bezierPathPointAtLength; exports.bezierPathSignedArea = _chunkN3FVUOZDcjs.bezierPathSignedArea; exports.bezierPathToSvg = _chunkN3FVUOZDcjs.bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendDiagramLayout = blendDiagramLayout; exports.blendLayout = blendLayout; exports.boundsOf = _chunkWADCJ7A7cjs.boundsOf; exports.brushstrokeScaleBucket = _chunkSYPFUL5Bcjs.brushstrokeScaleBucket; exports.c4Scene = c4Scene; exports.calculateCursorArrowRotation = calculateCursorArrowRotation; exports.calculateCurvedPath = calculateCurvedPath; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasHeight = canvasHeight; exports.canvasNodeCaptureRect = canvasNodeCaptureRect; exports.centerNodes = _chunkWADCJ7A7cjs.centerNodes; exports.centre = _chunkWADCJ7A7cjs.centre; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = _chunkN3FVUOZDcjs.closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeDragBounds = computeDragBounds; exports.computeDragBoundsFromPoints = computeDragBoundsFromPoints; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedDiagramOnly = connectedDiagramOnly; exports.connectedOnly = connectedOnly; exports.contourEnclosesArea = _chunkGCJWMEYWcjs.contourEnclosesArea; exports.contourSignedArea = _chunkN3FVUOZDcjs.contourSignedArea; exports.contoursToPath = _chunkN3FVUOZDcjs.contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = _chunkN3FVUOZDcjs.countPathSegments; exports.createAnimationPlayer = _chunk477UVMNRcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasCaptureSurface = createCanvasCaptureSurface; exports.createCanvasCaptureToolProvider = createCanvasCaptureToolProvider; 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 = _chunk2FHLHZALcjs.cubicBezierAt; exports.cubicPointAt = _chunkGUZ47CJMcjs.cubicPointAt; exports.cubicsToPathData = _chunkGUZ47CJMcjs.cubicsToPathData; exports.cutOutPiece = _chunkGCJWMEYWcjs.cutOutPiece; exports.dashContours = _chunkN3FVUOZDcjs.dashContours; exports.defaultEasing = defaultEasing; exports.deleteKeyframes = deleteKeyframes; exports.detachCanvasInstance = detachCanvasInstance; exports.detachTokenBindings = detachTokenBindings; exports.diagramCanvasHeight = diagramCanvasHeight; exports.diagramFileName = diagramFileName; exports.diagramGroupSize = diagramGroupSize; exports.diagramImageSize = diagramImageSize; exports.diagramLayoutBounds = diagramLayoutBounds; exports.diagramMarksBounds = diagramMarksBounds; exports.diagramMarksToSvg = diagramMarksToSvg; exports.diagramRenameOp = diagramRenameOp; exports.diagramTargetLabel = diagramTargetLabel; exports.diagramTextBaseline = diagramTextBaseline; exports.diffOverrideGroups = diffOverrideGroups; exports.distanceToBezierPath = _chunkN3FVUOZDcjs.distanceToBezierPath; exports.distributeNodes = distributeNodes; exports.dividePaths = _chunkN3FVUOZDcjs.dividePaths; exports.dividePolygons = _chunkN3FVUOZDcjs.dividePolygons; exports.downloadDiagramPng = downloadDiagramPng; exports.easeDiagramTween = easeDiagramTween; exports.easingFromInfluence = _chunk2FHLHZALcjs.easingFromInfluence; exports.easingLabel = _chunk2FHLHZALcjs.easingLabel; exports.easingToCss = _chunk2FHLHZALcjs.easingToCss; exports.elasticAt = _chunk2FHLHZALcjs.elasticAt; exports.ensureDiagramLayout = ensureDiagramLayout; exports.ensureLayout = _chunkWADCJ7A7cjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateDiagramCanvasHeight = estimateDiagramCanvasHeight; exports.estimateDiagramNodeSize = estimateDiagramNodeSize; exports.estimateNodeSize = _chunkWADCJ7A7cjs.estimateNodeSize; exports.estimateTextWidth = estimateTextWidth2; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunk2FHLHZALcjs.evaluateEasing; exports.evaluateTrack = _chunk477UVMNRcjs.evaluateTrack; exports.excludePaths = _chunkN3FVUOZDcjs.excludePaths; exports.exportCssAnimation = exportCssAnimation; exports.familySceneFromLayout = familySceneFromLayout; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = _chunkGUZ47CJMcjs.fitCubicRun; exports.fitCubicWithTangents = _chunkGUZ47CJMcjs.fitCubicWithTangents; exports.fitCubics = _chunkGUZ47CJMcjs.fitCubics; exports.fitFreehandPath = _chunkGUZ47CJMcjs.fitFreehandPath; exports.fitPathData = _chunkGUZ47CJMcjs.fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = _chunkGUZ47CJMcjs.flattenSvgPath; exports.flowSide = _chunkWADCJ7A7cjs.flowSide; exports.formatAgentCursorName = formatAgentCursorName; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = _chunkGUZ47CJMcjs.formatNumber; exports.formatOklab = _chunkMR3Z4OQIcjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.getAbsolutePosition = getAbsolutePosition; exports.getAgentCardAnchor = getAgentCardAnchor; 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.getBrushedShapeSvg = _chunk7LQO6OHHcjs.getBrushedShapeSvg; 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.getCursorTransitionDuration = getCursorTransitionDuration; exports.getDefaultVariant = getDefaultVariant; exports.getEffectiveTokenModes = getEffectiveTokenModes; exports.getFamilyScene = getFamilyScene; 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.getNaturalMovementTiming = getNaturalMovementTiming; 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 = _chunkGUZ47CJMcjs.getShapeRenderData; exports.getShapeSvg = _chunkGUZ47CJMcjs.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.gitGraphScene = gitGraphScene; exports.gradientToSvgDef = _chunkGUZ47CJMcjs.gradientToSvgDef; exports.handlePoint = handlePoint; exports.hasFamilyScene = hasFamilyScene; exports.hasVisibleStroke = hasVisibleStroke; exports.hashString = hashString; exports.hatchPath = _chunkGCJWMEYWcjs.hatchPath; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interiorPoint = _chunkGCJWMEYWcjs.interiorPoint; exports.interpolateAnimationValue = _chunk477UVMNRcjs.interpolateAnimationValue; exports.intersectPaths = _chunkN3FVUOZDcjs.intersectPaths; exports.intersectPolygons = _chunkN3FVUOZDcjs.intersectPolygons; exports.invertNodeUpdates = invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunk2FHLHZALcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunk477UVMNRcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunk7LQO6OHHcjs.isBrushedShape; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasGradient = _chunkGUZ47CJMcjs.isCanvasGradient; 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 = _chunkGUZ47CJMcjs.isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = _chunkGUZ47CJMcjs.isStraightCubic; exports.isValidCanvasEdge = isValidCanvasEdge; exports.isValidCanvasNode = isValidCanvasNode; exports.isValidCanvasScene = isValidCanvasScene; exports.isValidUrl = isValidUrl; exports.journeyScene = journeyScene; exports.layoutAll = layoutAll; exports.layoutBounds = layoutBounds; exports.layoutFrame = layoutFrame; exports.layoutUp = layoutUp; exports.layoutUpMany = layoutUpMany; exports.linearPositionTrajectory = linearPositionTrajectory; exports.linearTrajectory = linearTrajectory; exports.listCanvasBrushes = _chunk7LQO6OHHcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunk7LQO6OHHcjs.loadCanvasBrushstrokeRenderer; 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.mermaidEdgeDash = mermaidEdgeDash; exports.mermaidEdgeMarker = mermaidEdgeMarker; exports.mermaidEdgeWidth = mermaidEdgeWidth; exports.mermaidFlowEdges = mermaidFlowEdges; exports.mermaidFlowNodes = mermaidFlowNodes; exports.mermaidLabelLines = mermaidLabelLines; exports.mermaidMarkerId = mermaidMarkerId; exports.mermaidMovesFromCanvas = mermaidMovesFromCanvas; exports.mermaidNodeMembers = mermaidNodeMembers; exports.mermaidNodePaint = mermaidNodePaint; exports.mermaidShapePaths = mermaidShapePaths; exports.mermaidThumbnailSvg = mermaidThumbnailSvg; exports.mermaidToCanvas = mermaidToCanvas; exports.mermaidToScene = mermaidToScene; exports.mermaidToSvg = mermaidToSvg; exports.mindmapScene = mindmapScene; exports.mixColorsOklab = _chunkMR3Z4OQIcjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = _chunkN3FVUOZDcjs.multiPolygonArea; exports.multiPolygonBounds = _chunkN3FVUOZDcjs.multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.normalizeBezierPath = _chunkN3FVUOZDcjs.normalizeBezierPath; exports.normalizeKeyframes = _chunk477UVMNRcjs.normalizeKeyframes; exports.offsetPath = _chunkN3FVUOZDcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunkMR3Z4OQIcjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkN3FVUOZDcjs.outlineStroke; exports.overlaps = _chunkWADCJ7A7cjs.overlaps; exports.pageHidden = _chunk477UVMNRcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunk2FHLHZALcjs.parseCssEasing; exports.parseCssGradient = _chunkGUZ47CJMcjs.parseCssGradient; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseMermaidStyles = parseMermaidStyles; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunkMR3Z4OQIcjs.parseOklab; exports.parseSvgPath = _chunkGUZ47CJMcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkN3FVUOZDcjs.pathBoolean; exports.pathBooleanSelect = _chunkN3FVUOZDcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunk7LQO6OHHcjs.pathDataToPolyline; exports.pathToContours = _chunkN3FVUOZDcjs.pathToContours; exports.pathfinder = _chunkGCJWMEYWcjs.pathfinder; exports.pieScene = pieScene; exports.placeBeside = _chunkWADCJ7A7cjs.placeBeside; exports.planarSplit = _chunkN3FVUOZDcjs.planarSplit; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = _chunkN3FVUOZDcjs.pointInBezierPath; exports.pointInMultiPolygon = _chunkN3FVUOZDcjs.pointInMultiPolygon; exports.pointInRings = _chunkN3FVUOZDcjs.pointInRings; exports.pointerPenSample = pointerPenSample; exports.polygonArea = _chunkN3FVUOZDcjs.polygonArea; exports.polygonBoolean = _chunkN3FVUOZDcjs.polygonBoolean; exports.polygonToSvgPath = _chunkGUZ47CJMcjs.polygonToSvgPath; exports.positionToSide = positionToSide; exports.profileAlongPolyline = _chunk7LQO6OHHcjs.profileAlongPolyline; exports.pruneCanvasTokenModes = pruneCanvasTokenModes; exports.pushCanvasInstanceOverrides = pushCanvasInstanceOverrides; exports.quadrantScene = quadrantScene; exports.radarChartSpec = radarChartSpec; exports.radarScene = radarScene; exports.rasterSize = rasterSize; exports.rasterizeSvg = rasterizeSvg; exports.readAnimatableValue = readAnimatableValue; exports.readNodeStyleProperty = readNodeStyleProperty; exports.readOverrideGroup = readOverrideGroup; exports.readStyleSize = readStyleSize; exports.realClock = _chunk477UVMNRcjs.realClock; exports.recordAnimationChanges = recordAnimationChanges; exports.registerFamilyScene = registerFamilyScene; exports.relayoutUpdates = relayoutUpdates; exports.remapPastedNodes = remapPastedNodes; exports.removeCanvasVariant = removeCanvasVariant; exports.removeTrack = removeTrack; exports.renameCanvasVariantProperty = renameCanvasVariantProperty; exports.renameCanvasVariantValue = renameCanvasVariantValue; exports.renderShapeBrushstroke = _chunk7LQO6OHHcjs.renderShapeBrushstroke; exports.reorderNodes = reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasGradient = _chunkGUZ47CJMcjs.resolveCanvasGradient; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunk2FHLHZALcjs.resolveEasing; exports.resolveMermaidStyles = resolveMermaidStyles; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.reverseCubicBezier = _chunk2FHLHZALcjs.reverseCubicBezier; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunkMR3Z4OQIcjs.rgbToOklab; exports.ringSignedArea = _chunkN3FVUOZDcjs.ringSignedArea; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.sceneColor = sceneColor; exports.segmentBounds = _chunkN3FVUOZDcjs.segmentBounds; exports.segmentCurvature = _chunkN3FVUOZDcjs.segmentCurvature; exports.segmentDerivative = _chunkN3FVUOZDcjs.segmentDerivative; exports.segmentExtrema = _chunkN3FVUOZDcjs.segmentExtrema; exports.segmentIntersections = _chunkN3FVUOZDcjs.segmentIntersections; exports.segmentLength = _chunkN3FVUOZDcjs.segmentLength; exports.segmentNearest = _chunkN3FVUOZDcjs.segmentNearest; exports.segmentParamAtLength = _chunkN3FVUOZDcjs.segmentParamAtLength; exports.segmentPoint = _chunkN3FVUOZDcjs.segmentPoint; exports.segmentTangent = _chunkN3FVUOZDcjs.segmentTangent; exports.sequenceScene = sequenceScene; 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 = _chunkGUZ47CJMcjs.shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = _chunkGUZ47CJMcjs.simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = _chunkN3FVUOZDcjs.splitSegment; exports.springAt = _chunk2FHLHZALcjs.springAt; exports.springSettleMs = _chunk2FHLHZALcjs.springSettleMs; exports.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = _chunkN3FVUOZDcjs.strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = _chunkN3FVUOZDcjs.subSegment; exports.subtractPaths = _chunkN3FVUOZDcjs.subtractPaths; exports.subtractPolygons = _chunkN3FVUOZDcjs.subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.timelineScene = timelineScene; exports.toBezierPath = _chunkN3FVUOZDcjs.toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = toggleLockNodes; exports.transformBezierPath = _chunkN3FVUOZDcjs.transformBezierPath; exports.trimSegments = _chunkN3FVUOZDcjs.trimSegments; exports.unionPolygons = _chunkN3FVUOZDcjs.unionPolygons; exports.unitePaths = _chunkN3FVUOZDcjs.unitePaths; exports.unlockNodes = unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunk7LQO6OHHcjs.validateCanvasBrush; exports.windingNumber = _chunkN3FVUOZDcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunk477UVMNRcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkN3FVUOZDcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
12474
+ exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunk2FHLHZALcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunk2FHLHZALcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunk477UVMNRcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunk477UVMNRcjs.AnimationPlayer; exports.BUILTIN_FAMILY_SCENES = BUILTIN_FAMILY_SCENES; exports.CANVAS_CAPTURE_CHROME_SELECTORS = CANVAS_CAPTURE_CHROME_SELECTORS; exports.CANVAS_CAPTURE_OVERLAY_SELECTORS = CANVAS_CAPTURE_OVERLAY_SELECTORS; exports.CANVAS_CAPTURE_VIEWPORT_SELECTOR = CANVAS_CAPTURE_VIEWPORT_SELECTOR; exports.CANVAS_COMPONENT_DRAG_TYPE = CANVAS_COMPONENT_DRAG_TYPE; exports.CANVAS_EFFECT_PLACES = CANVAS_EFFECT_PLACES; exports.CANVAS_GRADIENT_PRESETS = _chunkIZ4WRXZAcjs.CANVAS_GRADIENT_PRESETS; exports.CANVAS_TOKEN_PROPERTIES = CANVAS_TOKEN_PROPERTIES; exports.CARD_INSPECTION_ZONES = CARD_INSPECTION_ZONES; 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.CSS_VARIABLE_DIAGRAM_SCENE_THEME = CSS_VARIABLE_DIAGRAM_SCENE_THEME; exports.CUBIC_BEZIER_PRESETS = _chunk2FHLHZALcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunk26BVFKHUcjs.DEFAULT_ARRANGE_SHORTCUTS; exports.DEFAULT_CURSOR_INACTIVITY_MS = DEFAULT_CURSOR_INACTIVITY_MS; exports.DEFAULT_DIAGRAM_NODE_HEIGHT = DEFAULT_DIAGRAM_NODE_HEIGHT; exports.DEFAULT_DIAGRAM_NODE_WIDTH = DEFAULT_DIAGRAM_NODE_WIDTH; 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.DIAGRAM_MARKER_IDS = DIAGRAM_MARKER_IDS; exports.DIAGRAM_RASTER_MAX_SIZE = DIAGRAM_RASTER_MAX_SIZE; exports.DIAGRAM_SCENE_DARK_THEME = DIAGRAM_SCENE_DARK_THEME; exports.DIAGRAM_SCENE_LIGHT_THEME = DIAGRAM_SCENE_LIGHT_THEME; exports.DIAGRAM_SVG_DARK_THEME = DIAGRAM_SVG_DARK_THEME; exports.DIAGRAM_SVG_LIGHT_THEME = DIAGRAM_SVG_LIGHT_THEME; exports.DIAGRAM_TITLE_TARGET = DIAGRAM_TITLE_TARGET; exports.DiagramStream = DiagramStream; 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.MERMAID_SHAPE_PAINT = MERMAID_SHAPE_PAINT; exports.ManualClock = _chunk477UVMNRcjs.ManualClock; exports.PATHFINDER_OPERATIONS = _chunkKSJLDRHKcjs.PATHFINDER_OPERATIONS; exports.PIXERATE_BRAND_GRADIENT = _chunkIZ4WRXZAcjs.PIXERATE_BRAND_GRADIENT; exports.PathOpsError = _chunkBJTCSLF6cjs.PathOpsError; exports.PlanarMap = _chunkKSJLDRHKcjs.PlanarMap; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = _chunkIZ4WRXZAcjs.SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.SPRING_PRESETS = _chunk2FHLHZALcjs.SPRING_PRESETS; 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.angleToSvgLinearCoords = _chunkIZ4WRXZAcjs.angleToSvgLinearCoords; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = _chunkBJTCSLF6cjs.arcToCubics; exports.architectureScene = architectureScene; exports.autoLayoutDiagram = autoLayoutDiagram; exports.bezierPathArea = _chunkBJTCSLF6cjs.bezierPathArea; exports.bezierPathBounds = _chunkBJTCSLF6cjs.bezierPathBounds; exports.bezierPathLength = _chunkBJTCSLF6cjs.bezierPathLength; exports.bezierPathPointAtLength = _chunkBJTCSLF6cjs.bezierPathPointAtLength; exports.bezierPathSignedArea = _chunkBJTCSLF6cjs.bezierPathSignedArea; exports.bezierPathToSvg = _chunkBJTCSLF6cjs.bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendDiagramLayout = blendDiagramLayout; exports.blendLayout = blendLayout; exports.boundsOf = _chunkWADCJ7A7cjs.boundsOf; exports.brushstrokeScaleBucket = _chunkSYPFUL5Bcjs.brushstrokeScaleBucket; exports.c4Scene = c4Scene; exports.calculateCursorArrowRotation = calculateCursorArrowRotation; exports.calculateCurvedPath = calculateCurvedPath; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasEffectsPool = canvasEffectsPool; exports.canvasHeight = canvasHeight; exports.canvasNodeCaptureRect = canvasNodeCaptureRect; exports.canvasNodeEffect = canvasNodeEffect; exports.captureCanvasView = captureCanvasView; exports.centerNodes = _chunkWADCJ7A7cjs.centerNodes; exports.centre = _chunkWADCJ7A7cjs.centre; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = _chunkBJTCSLF6cjs.closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeDragBounds = computeDragBounds; exports.computeDragBoundsFromPoints = computeDragBoundsFromPoints; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedDiagramOnly = connectedDiagramOnly; exports.connectedOnly = connectedOnly; exports.contourEnclosesArea = _chunkKSJLDRHKcjs.contourEnclosesArea; exports.contourSignedArea = _chunkBJTCSLF6cjs.contourSignedArea; exports.contoursToPath = _chunkBJTCSLF6cjs.contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = _chunkBJTCSLF6cjs.countPathSegments; exports.createAnimationPlayer = _chunk477UVMNRcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasCaptureSurface = createCanvasCaptureSurface; exports.createCanvasCaptureToolProvider = createCanvasCaptureToolProvider; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasDrawController = createCanvasDrawController; exports.createCanvasEffectsController = createCanvasEffectsController; exports.createCanvasEffectsToolProvider = createCanvasEffectsToolProvider; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = createNodeLookup; exports.cubicBezierAt = _chunk2FHLHZALcjs.cubicBezierAt; exports.cubicPointAt = _chunkIZ4WRXZAcjs.cubicPointAt; exports.cubicsToPathData = _chunkIZ4WRXZAcjs.cubicsToPathData; exports.cutOutPiece = _chunkKSJLDRHKcjs.cutOutPiece; exports.dashContours = _chunkBJTCSLF6cjs.dashContours; exports.defaultEasing = defaultEasing; exports.deleteKeyframes = deleteKeyframes; exports.detachCanvasInstance = detachCanvasInstance; exports.detachTokenBindings = detachTokenBindings; exports.diagramCanvasHeight = diagramCanvasHeight; exports.diagramFileName = diagramFileName; exports.diagramGroupSize = diagramGroupSize; exports.diagramImageSize = diagramImageSize; exports.diagramLayoutBounds = diagramLayoutBounds; exports.diagramMarksBounds = diagramMarksBounds; exports.diagramMarksToSvg = diagramMarksToSvg; exports.diagramRenameOp = diagramRenameOp; exports.diagramTargetLabel = diagramTargetLabel; exports.diagramTextBaseline = diagramTextBaseline; exports.diffOverrideGroups = diffOverrideGroups; exports.distanceToBezierPath = _chunkBJTCSLF6cjs.distanceToBezierPath; exports.distributeNodes = distributeNodes; exports.dividePaths = _chunkBJTCSLF6cjs.dividePaths; exports.dividePolygons = _chunkBJTCSLF6cjs.dividePolygons; exports.downloadDiagramPng = downloadDiagramPng; exports.easeDiagramTween = easeDiagramTween; exports.easingFromInfluence = _chunk2FHLHZALcjs.easingFromInfluence; exports.easingLabel = _chunk2FHLHZALcjs.easingLabel; exports.easingToCss = _chunk2FHLHZALcjs.easingToCss; exports.elasticAt = _chunk2FHLHZALcjs.elasticAt; exports.ensureDiagramLayout = ensureDiagramLayout; exports.ensureLayout = _chunkWADCJ7A7cjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateDiagramCanvasHeight = estimateDiagramCanvasHeight; exports.estimateDiagramNodeSize = estimateDiagramNodeSize; exports.estimateNodeSize = _chunkWADCJ7A7cjs.estimateNodeSize; exports.estimateTextWidth = estimateTextWidth2; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunk2FHLHZALcjs.evaluateEasing; exports.evaluateTrack = _chunk477UVMNRcjs.evaluateTrack; exports.excludePaths = _chunkBJTCSLF6cjs.excludePaths; exports.exportCssAnimation = exportCssAnimation; exports.familySceneFromLayout = familySceneFromLayout; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = _chunkIZ4WRXZAcjs.fitCubicRun; exports.fitCubicWithTangents = _chunkIZ4WRXZAcjs.fitCubicWithTangents; exports.fitCubics = _chunkIZ4WRXZAcjs.fitCubics; exports.fitFreehandPath = _chunkIZ4WRXZAcjs.fitFreehandPath; exports.fitPathData = _chunkIZ4WRXZAcjs.fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = _chunkIZ4WRXZAcjs.flattenSvgPath; exports.flowSide = _chunkWADCJ7A7cjs.flowSide; exports.formatAgentCursorName = formatAgentCursorName; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = _chunkIZ4WRXZAcjs.formatNumber; exports.formatOklab = _chunkMR3Z4OQIcjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.getAbsolutePosition = getAbsolutePosition; exports.getAgentCardAnchor = getAgentCardAnchor; 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.getBrushedShapeSvg = _chunk33SO3QWPcjs.getBrushedShapeSvg; 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.getCursorTransitionDuration = getCursorTransitionDuration; exports.getDefaultVariant = getDefaultVariant; exports.getEffectiveTokenModes = getEffectiveTokenModes; exports.getFamilyScene = getFamilyScene; 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.getNaturalMovementTiming = getNaturalMovementTiming; 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 = _chunkIZ4WRXZAcjs.getShapeRenderData; exports.getShapeSvg = _chunkIZ4WRXZAcjs.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.gitGraphScene = gitGraphScene; exports.gradientToSvgDef = _chunkIZ4WRXZAcjs.gradientToSvgDef; exports.handlePoint = handlePoint; exports.hasFamilyScene = hasFamilyScene; exports.hasVisibleStroke = hasVisibleStroke; exports.hashString = hashString; exports.hatchPath = _chunkKSJLDRHKcjs.hatchPath; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interiorPoint = _chunkKSJLDRHKcjs.interiorPoint; exports.interpolateAnimationValue = _chunk477UVMNRcjs.interpolateAnimationValue; exports.intersectPaths = _chunkBJTCSLF6cjs.intersectPaths; exports.intersectPolygons = _chunkBJTCSLF6cjs.intersectPolygons; exports.invertNodeUpdates = invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunk2FHLHZALcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunk477UVMNRcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunk33SO3QWPcjs.isBrushedShape; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasGradient = _chunkIZ4WRXZAcjs.isCanvasGradient; 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 = _chunkIZ4WRXZAcjs.isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = _chunkIZ4WRXZAcjs.isStraightCubic; exports.isValidCanvasEdge = isValidCanvasEdge; exports.isValidCanvasNode = isValidCanvasNode; exports.isValidCanvasScene = isValidCanvasScene; exports.isValidUrl = isValidUrl; exports.journeyScene = journeyScene; exports.layoutAll = layoutAll; exports.layoutBounds = layoutBounds; exports.layoutFrame = layoutFrame; exports.layoutUp = layoutUp; exports.layoutUpMany = layoutUpMany; exports.linearPositionTrajectory = linearPositionTrajectory; exports.linearTrajectory = linearTrajectory; exports.listCanvasBrushes = _chunk33SO3QWPcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunk33SO3QWPcjs.loadCanvasBrushstrokeRenderer; 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.mermaidEdgeDash = mermaidEdgeDash; exports.mermaidEdgeMarker = mermaidEdgeMarker; exports.mermaidEdgeWidth = mermaidEdgeWidth; exports.mermaidFlowEdges = mermaidFlowEdges; exports.mermaidFlowNodes = mermaidFlowNodes; exports.mermaidLabelLines = mermaidLabelLines; exports.mermaidMarkerId = mermaidMarkerId; exports.mermaidMovesFromCanvas = mermaidMovesFromCanvas; exports.mermaidNodeMembers = mermaidNodeMembers; exports.mermaidNodePaint = mermaidNodePaint; exports.mermaidShapePaths = mermaidShapePaths; exports.mermaidThumbnailSvg = mermaidThumbnailSvg; exports.mermaidToCanvas = mermaidToCanvas; exports.mermaidToScene = mermaidToScene; exports.mermaidToSvg = mermaidToSvg; exports.mindmapScene = mindmapScene; exports.mixColorsOklab = _chunkMR3Z4OQIcjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = _chunkBJTCSLF6cjs.multiPolygonArea; exports.multiPolygonBounds = _chunkBJTCSLF6cjs.multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.normalizeBezierPath = _chunkBJTCSLF6cjs.normalizeBezierPath; exports.normalizeKeyframes = _chunk477UVMNRcjs.normalizeKeyframes; exports.offsetPath = _chunkBJTCSLF6cjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunkMR3Z4OQIcjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkBJTCSLF6cjs.outlineStroke; exports.overlaps = _chunkWADCJ7A7cjs.overlaps; exports.pageHidden = _chunk477UVMNRcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunk2FHLHZALcjs.parseCssEasing; exports.parseCssGradient = _chunkIZ4WRXZAcjs.parseCssGradient; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseMermaidStyles = parseMermaidStyles; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunkMR3Z4OQIcjs.parseOklab; exports.parseSvgPath = _chunkIZ4WRXZAcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkBJTCSLF6cjs.pathBoolean; exports.pathBooleanSelect = _chunkBJTCSLF6cjs.pathBooleanSelect; exports.pathDataToPolyline = _chunk33SO3QWPcjs.pathDataToPolyline; exports.pathToContours = _chunkBJTCSLF6cjs.pathToContours; exports.pathfinder = _chunkKSJLDRHKcjs.pathfinder; exports.pieScene = pieScene; exports.placeBeside = _chunkWADCJ7A7cjs.placeBeside; exports.planarSplit = _chunkBJTCSLF6cjs.planarSplit; exports.playCanvasSceneTransition = playCanvasSceneTransition; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = _chunkBJTCSLF6cjs.pointInBezierPath; exports.pointInMultiPolygon = _chunkBJTCSLF6cjs.pointInMultiPolygon; exports.pointInRings = _chunkBJTCSLF6cjs.pointInRings; exports.pointerPenSample = pointerPenSample; exports.polygonArea = _chunkBJTCSLF6cjs.polygonArea; exports.polygonBoolean = _chunkBJTCSLF6cjs.polygonBoolean; exports.polygonToSvgPath = _chunkIZ4WRXZAcjs.polygonToSvgPath; exports.positionToSide = positionToSide; exports.profileAlongPolyline = _chunk33SO3QWPcjs.profileAlongPolyline; exports.pruneCanvasTokenModes = pruneCanvasTokenModes; exports.pushCanvasInstanceOverrides = pushCanvasInstanceOverrides; exports.quadrantScene = quadrantScene; exports.radarChartSpec = radarChartSpec; exports.radarScene = radarScene; exports.rasterSize = rasterSize; exports.rasterizeSvg = rasterizeSvg; exports.readAnimatableValue = readAnimatableValue; exports.readNodeStyleProperty = readNodeStyleProperty; exports.readOverrideGroup = readOverrideGroup; exports.readStyleSize = readStyleSize; exports.realClock = _chunk477UVMNRcjs.realClock; exports.recordAnimationChanges = recordAnimationChanges; exports.registerFamilyScene = registerFamilyScene; exports.relayoutUpdates = relayoutUpdates; exports.remapPastedNodes = remapPastedNodes; exports.removeCanvasVariant = removeCanvasVariant; exports.removeTrack = removeTrack; exports.renameCanvasVariantProperty = renameCanvasVariantProperty; exports.renameCanvasVariantValue = renameCanvasVariantValue; exports.renderShapeBrushstroke = _chunk33SO3QWPcjs.renderShapeBrushstroke; exports.reorderNodes = reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasGradient = _chunkIZ4WRXZAcjs.resolveCanvasGradient; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunk2FHLHZALcjs.resolveEasing; exports.resolveMermaidStyles = resolveMermaidStyles; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.reverseCubicBezier = _chunk2FHLHZALcjs.reverseCubicBezier; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunkMR3Z4OQIcjs.rgbToOklab; exports.ringSignedArea = _chunkBJTCSLF6cjs.ringSignedArea; exports.runCanvasNodeEffect = runCanvasNodeEffect; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.sceneColor = sceneColor; exports.segmentBounds = _chunkBJTCSLF6cjs.segmentBounds; exports.segmentCurvature = _chunkBJTCSLF6cjs.segmentCurvature; exports.segmentDerivative = _chunkBJTCSLF6cjs.segmentDerivative; exports.segmentExtrema = _chunkBJTCSLF6cjs.segmentExtrema; exports.segmentIntersections = _chunkBJTCSLF6cjs.segmentIntersections; exports.segmentLength = _chunkBJTCSLF6cjs.segmentLength; exports.segmentNearest = _chunkBJTCSLF6cjs.segmentNearest; exports.segmentParamAtLength = _chunkBJTCSLF6cjs.segmentParamAtLength; exports.segmentPoint = _chunkBJTCSLF6cjs.segmentPoint; exports.segmentTangent = _chunkBJTCSLF6cjs.segmentTangent; exports.sequenceScene = sequenceScene; 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 = _chunkIZ4WRXZAcjs.shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = _chunkIZ4WRXZAcjs.simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = _chunkBJTCSLF6cjs.splitSegment; exports.springAt = _chunk2FHLHZALcjs.springAt; exports.springSettleMs = _chunk2FHLHZALcjs.springSettleMs; exports.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = _chunkBJTCSLF6cjs.strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = _chunkBJTCSLF6cjs.subSegment; exports.subtractPaths = _chunkBJTCSLF6cjs.subtractPaths; exports.subtractPolygons = _chunkBJTCSLF6cjs.subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.timelineScene = timelineScene; exports.toBezierPath = _chunkBJTCSLF6cjs.toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = toggleLockNodes; exports.transformBezierPath = _chunkBJTCSLF6cjs.transformBezierPath; exports.transitionCanvasView = transitionCanvasView; exports.trimSegments = _chunkBJTCSLF6cjs.trimSegments; exports.unionPolygons = _chunkBJTCSLF6cjs.unionPolygons; exports.unitePaths = _chunkBJTCSLF6cjs.unitePaths; exports.unlockNodes = unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunk33SO3QWPcjs.validateCanvasBrush; exports.windingNumber = _chunkBJTCSLF6cjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunk477UVMNRcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkBJTCSLF6cjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
12089
12475
  //# sourceMappingURL=index.cjs.map