@pixerate/editor 0.271.0 → 0.272.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/agent/index.cjs +34 -32
  2. package/dist/agent/index.js +10 -8
  3. package/dist/animation-editor/index.cjs +60 -60
  4. package/dist/animation-editor/index.js +4 -4
  5. package/dist/brushes/index.cjs +69 -66
  6. package/dist/brushes/index.js +6 -3
  7. package/dist/brushes/patch.d.cts +1 -1
  8. package/dist/brushes/patch.d.ts +1 -1
  9. package/dist/brushes/schema.d.cts +1 -0
  10. package/dist/brushes/schema.d.ts +1 -0
  11. package/dist/brushes/types.d.cts +8 -0
  12. package/dist/brushes/types.d.ts +8 -0
  13. package/dist/{brushstrokeRender-WR2N5HHY.cjs → brushstrokeRender-5YBCLFDQ.cjs} +15 -15
  14. package/dist/{brushstrokeRender-A727TTNQ.js → brushstrokeRender-DZGFU3J4.js} +3 -3
  15. package/dist/canvas/index.cjs +13 -13
  16. package/dist/canvas/index.js +1 -1
  17. package/dist/chart/contract.d.cts +95 -0
  18. package/dist/chart/contract.d.ts +95 -0
  19. package/dist/chart/controller.d.cts +4 -0
  20. package/dist/chart/controller.d.ts +4 -0
  21. package/dist/chart/index.cjs +492 -26
  22. package/dist/chart/index.d.cts +1 -0
  23. package/dist/chart/index.d.ts +1 -0
  24. package/dist/chart/index.js +476 -10
  25. package/dist/chart/tools.d.cts +3 -0
  26. package/dist/chart/tools.d.ts +3 -0
  27. package/dist/chart-maps/index.cjs +4 -64
  28. package/dist/chart-maps/index.js +3 -63
  29. package/dist/{chunk-YNFSH72F.js → chunk-2F3YDXCN.js} +1 -1
  30. package/dist/{chunk-QYXUE37Q.js → chunk-2XDNF73E.js} +1 -1
  31. package/dist/{chunk-3KNQ2W6X.cjs → chunk-3JKCREEU.cjs} +59 -53
  32. package/dist/{chunk-NMZQMPFZ.js → chunk-4LZQO5Y7.js} +2 -0
  33. package/dist/{chunk-B5W677L7.js → chunk-5HP2VSAS.js} +1 -1
  34. package/dist/chunk-5UGRMVNE.js +328 -0
  35. package/dist/{chunk-X4FTNFIA.js → chunk-7MGPW2OV.js} +1 -1
  36. package/dist/{chunk-BPJSI4NT.cjs → chunk-7W2EQQBP.cjs} +2 -2
  37. package/dist/{chunk-DGITFN73.cjs → chunk-BWJBZAUE.cjs} +8 -8
  38. package/dist/chunk-CHZYVNXZ.js +336 -0
  39. package/dist/{chunk-LETF75CA.js → chunk-CLB2I2FU.js} +1 -1
  40. package/dist/chunk-DRMZ5R3S.cjs +67 -0
  41. package/dist/{chunk-BAZMCFVL.js → chunk-DZVRH63Y.js} +1 -1
  42. package/dist/chunk-EI5GFTKG.js +67 -0
  43. package/dist/{chunk-U2ASNGO6.cjs → chunk-FXVCB6YG.cjs} +35 -35
  44. package/dist/{chunk-EU2ZZA6L.cjs → chunk-GHGBIAWQ.cjs} +126 -39
  45. package/dist/chunk-JV7DKLMX.js +1073 -0
  46. package/dist/{chunk-2WOGXEDX.cjs → chunk-M3RZOF3G.cjs} +1 -1
  47. package/dist/chunk-MFBUQC67.cjs +328 -0
  48. package/dist/{chunk-GSTSZPSR.js → chunk-N3SKPQEH.js} +225 -18
  49. package/dist/{chunk-J5VQYK7T.cjs → chunk-N5IMDAHM.cjs} +251 -44
  50. package/dist/{chunk-ININNHLM.js → chunk-NAHJV3O6.js} +11 -5
  51. package/dist/{chunk-IBXEQOGI.js → chunk-PYHB2EHE.js} +2 -324
  52. package/dist/chunk-QEUI6OGE.cjs +336 -0
  53. package/dist/{chunk-6ZSFRRJI.js → chunk-RSF6BT34.js} +1 -1
  54. package/dist/{chunk-JJ2H25JG.cjs → chunk-SNAFFCAX.cjs} +200 -174
  55. package/dist/chunk-T2HUQBRC.cjs +1073 -0
  56. package/dist/{chunk-M2ZVPU7L.cjs → chunk-TNLKFW7D.cjs} +23 -23
  57. package/dist/{chunk-KZI3YWKW.js → chunk-UXYCY3HP.js} +93 -6
  58. package/dist/{chunk-GSLOH2IN.cjs → chunk-VF6ODSYX.cjs} +2 -0
  59. package/dist/{chunk-NQUKTRKN.cjs → chunk-WZLNNGG3.cjs} +45 -45
  60. package/dist/{chunk-NRBGAEFI.cjs → chunk-Y3RUYOOW.cjs} +8 -330
  61. package/dist/{chunk-DDL3ZBHK.cjs → chunk-YJANF2BL.cjs} +86 -86
  62. package/dist/{chunk-TNHDCP4R.js → chunk-ZEI7ZEA4.js} +31 -5
  63. package/dist/commands/index.cjs +7 -323
  64. package/dist/commands/index.js +5 -321
  65. package/dist/extensions/index.cjs +4 -4
  66. package/dist/extensions/index.js +3 -3
  67. package/dist/image-editor/index.cjs +789 -789
  68. package/dist/image-editor/index.js +5 -5
  69. package/dist/index.cjs +9 -9
  70. package/dist/index.js +3 -3
  71. package/dist/paint/index.cjs +2 -2
  72. package/dist/paint/index.js +1 -1
  73. package/dist/paint/wet/world.d.cts +37 -1
  74. package/dist/paint/wet/world.d.ts +37 -1
  75. package/dist/paint-editor/brush-controls.d.cts +2 -0
  76. package/dist/paint-editor/brush-controls.d.ts +2 -0
  77. package/dist/paint-editor/brush-model.d.cts +14 -1
  78. package/dist/paint-editor/brush-model.d.ts +14 -1
  79. package/dist/paint-editor/index.cjs +343 -306
  80. package/dist/paint-editor/index.js +48 -11
  81. package/dist/paint-editor/ui.d.cts +1 -1
  82. package/dist/paint-editor/ui.d.ts +1 -1
  83. package/dist/paint-editor/wet.d.cts +8 -1
  84. package/dist/paint-editor/wet.d.ts +8 -1
  85. package/dist/persistence/index.cjs +24 -1042
  86. package/dist/persistence/index.js +22 -1040
  87. package/dist/tools/index.cjs +5 -3
  88. package/dist/tools/index.js +8 -6
  89. package/dist/vector/index.cjs +999 -999
  90. package/dist/vector/index.js +5 -5
  91. package/package.json +1 -1
  92. package/skills/pixerate-brushes/SKILL.md +1 -0
  93. package/skills/pixerate-paint-editor/SKILL.md +4 -11
  94. package/skills/pixerate-paint-editor/references/brush-facets.md +1 -0
  95. package/skills/pixerate-paint-editor/references/ghost.md +47 -0
  96. package/skills/pixerate-paint-watercolour/SKILL.md +1 -0
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkBPJSI4NTcjs = require('./chunk-BPJSI4NT.cjs');
3
+ var _chunk7W2EQQBPcjs = require('./chunk-7W2EQQBP.cjs');
4
4
 
5
5
 
6
- var _chunk2WOGXEDXcjs = require('./chunk-2WOGXEDX.cjs');
6
+ var _chunkM3RZOF3Gcjs = require('./chunk-M3RZOF3G.cjs');
7
7
 
8
8
 
9
9
 
@@ -14,7 +14,7 @@ var _chunk2WOGXEDXcjs = require('./chunk-2WOGXEDX.cjs');
14
14
 
15
15
 
16
16
 
17
- var _chunkEU2ZZA6Lcjs = require('./chunk-EU2ZZA6L.cjs');
17
+ var _chunkGHGBIAWQcjs = require('./chunk-GHGBIAWQ.cjs');
18
18
  require('./chunk-RDFHWAHL.cjs');
19
19
 
20
20
 
@@ -48,17 +48,17 @@ require('./chunk-5UEFBM2M.cjs');
48
48
  require('./chunk-IPJ3TEYR.cjs');
49
49
 
50
50
  // src/canvas/brushstrokeRender.ts
51
- var PRESETS = _chunkEU2ZZA6Lcjs.listPresets.call(void 0, _chunkEU2ZZA6Lcjs.CANVAS_PROFILE).map((spec) => _chunkEU2ZZA6Lcjs.BUILTIN_BRUSHES.find((b) => b.id === spec.id));
51
+ var PRESETS = _chunkGHGBIAWQcjs.listPresets.call(void 0, _chunkGHGBIAWQcjs.CANVAS_PROFILE).map((spec) => _chunkGHGBIAWQcjs.BUILTIN_BRUSHES.find((b) => b.id === spec.id));
52
52
  var presetIds = () => PRESETS.map((b) => b.id).join(", ");
53
- var refusal = (brush) => _chunkEU2ZZA6Lcjs.checkBrush.call(void 0, brush, _chunkEU2ZZA6Lcjs.CANVAS_PROFILE).issues.filter((i) => i.severity === "error").map((i) => `${i.reason} ${i.fix}`).join(" ");
53
+ var refusal = (brush) => _chunkGHGBIAWQcjs.checkBrush.call(void 0, brush, _chunkGHGBIAWQcjs.CANVAS_PROFILE).issues.filter((i) => i.severity === "error").map((i) => `${i.reason} ${i.fix}`).join(" ");
54
54
  function readCanvasBrushSpec(spec) {
55
55
  let brush;
56
56
  try {
57
- brush = _chunkEU2ZZA6Lcjs.normalizeBrushSpec.call(void 0, spec);
57
+ brush = _chunkGHGBIAWQcjs.normalizeBrushSpec.call(void 0, spec);
58
58
  } catch (e) {
59
59
  throw new Error(`Not a brush: ${e.message}`);
60
60
  }
61
- if (!_chunkEU2ZZA6Lcjs.checkBrush.call(void 0, brush, _chunkEU2ZZA6Lcjs.CANVAS_PROFILE).ok) throw new Error(`Brush '${brush.id}' (${brush.name}) can't brush a canvas stroke: ${refusal(brush)}`);
61
+ if (!_chunkGHGBIAWQcjs.checkBrush.call(void 0, brush, _chunkGHGBIAWQcjs.CANVAS_PROFILE).ok) throw new Error(`Brush '${brush.id}' (${brush.name}) can't brush a canvas stroke: ${refusal(brush)}`);
62
62
  return brush;
63
63
  }
64
64
  function listCanvasBrushes(user = []) {
@@ -66,12 +66,12 @@ function listCanvasBrushes(user = []) {
66
66
  const d = _optionalChain([spec, 'access', _2 => _2.colour, 'optionalAccess', _3 => _3.default]);
67
67
  return typeof d === "string" || _chunkMLLTWAXHcjs.isDualColor.call(void 0, d) ? { defaultColor: d } : {};
68
68
  };
69
- const out = PRESETS.map((b) => ({ id: b.id, name: b.name, category: b.category, size: b.tip.size, builtin: true, ...colourOf(_chunkEU2ZZA6Lcjs.BRUSH_PRESETS.find((p) => p.id === b.id)) }));
69
+ const out = PRESETS.map((b) => ({ id: b.id, name: b.name, category: b.category, size: b.tip.size, builtin: true, ...colourOf(_chunkGHGBIAWQcjs.BRUSH_PRESETS.find((p) => p.id === b.id)) }));
70
70
  for (const raw of user) {
71
71
  try {
72
72
  const brush = readCanvasBrushSpec(raw);
73
73
  if (out.some((b) => b.id === brush.id)) continue;
74
- out.push({ id: brush.id, name: brush.name, category: _chunkEU2ZZA6Lcjs.resolveCategory.call(void 0, brush), size: _chunkEU2ZZA6Lcjs.resolveBrush.call(void 0, brush).tip.size, builtin: false, spec: brush, ...colourOf(brush) });
74
+ out.push({ id: brush.id, name: brush.name, category: _chunkGHGBIAWQcjs.resolveCategory.call(void 0, brush), size: _chunkGHGBIAWQcjs.resolveBrush.call(void 0, brush).tip.size, builtin: false, spec: brush, ...colourOf(brush) });
75
75
  } catch (e2) {
76
76
  }
77
77
  }
@@ -82,15 +82,15 @@ function resolveCanvasBrush(brush, width, spec) {
82
82
  const sized = (b) => given === void 0 ? b : { ...b, tip: { ...b.tip, size: given } };
83
83
  if (typeof brush === "string") {
84
84
  if (spec !== void 0 && spec !== null) {
85
- const saved = _chunkEU2ZZA6Lcjs.resolveBrush.call(void 0, readCanvasBrushSpec(spec));
85
+ const saved = _chunkGHGBIAWQcjs.resolveBrush.call(void 0, readCanvasBrushSpec(spec));
86
86
  if (!_chunkSTLTOISWcjs.isBrushstrokeBrush.call(void 0, saved)) throw new Error(`Brush '${saved.id}' (${saved.name}) can't brush a canvas stroke: it is not a dry dab brush.`);
87
87
  return sized(saved);
88
88
  }
89
89
  const preset = PRESETS.find((b) => b.id === brush);
90
90
  if (preset) return sized(preset);
91
- const other = _chunkEU2ZZA6Lcjs.BRUSH_PRESETS.find((b) => b.id === brush);
91
+ const other = _chunkGHGBIAWQcjs.BRUSH_PRESETS.find((b) => b.id === brush);
92
92
  if (other) throw new Error(`Brush '${brush}' (${other.name}) can't brush a canvas stroke: ${refusal(other)} Use one of: ${presetIds()}, or a saved brush the canvas can paint.`);
93
- throw new Error(`Unknown brush '${brush}'. ${_chunkEU2ZZA6Lcjs.closest.call(void 0, brush, PRESETS.map((b) => b.id))}Use one of the dry presets (${presetIds()}), a saved brush from the brush library, or tip settings ({ hardness, spacing, flow, \u2026 }).`);
93
+ throw new Error(`Unknown brush '${brush}'. ${_chunkGHGBIAWQcjs.closest.call(void 0, brush, PRESETS.map((b) => b.id))}Use one of the dry presets (${presetIds()}), a saved brush from the brush library, or tip settings ({ hardness, spacing, flow, \u2026 }).`);
94
94
  }
95
95
  if (!brush || typeof brush !== "object" || Array.isArray(brush)) {
96
96
  throw new Error("A brush is a preset or saved brush id (see listCanvasBrushes / canvas.listBrushes) or an object of tip settings.");
@@ -126,7 +126,7 @@ function renderShapeBrushstrokeNow(shape, scale, place = {}) {
126
126
  const textured = typeof seed === "number" && Number.isFinite(seed);
127
127
  const size = _nullishCoalesce(shape.brush.size, () => ( (textured ? void 0 : _nullishCoalesce(shape.strokeWidth, () => ( 3)))));
128
128
  const brush = resolveCanvasBrush(shape.brush.brush, size, shape.brush.spec);
129
- const points = _chunk2WOGXEDXcjs.pathDataToPolyline.call(void 0, shape.d);
129
+ const points = _chunkM3RZOF3Gcjs.pathDataToPolyline.call(void 0, shape.d);
130
130
  if (!points.length) return null;
131
131
  const { pressure, tiltX, tiltY } = shape.brush;
132
132
  const input = {
@@ -164,8 +164,8 @@ function brushedShapeSvgNow(shape, size, scale, place = {}) {
164
164
  return `<svg xmlns="http://www.w3.org/2000/svg" width="${f(size.width)}" height="${f(size.height)}" viewBox="0 0 ${f(size.width)} ${f(size.height)}">${content}</svg>`;
165
165
  }
166
166
  function swatchColour(brush, background, spec) {
167
- const facets = typeof brush !== "string" ? null : spec ? readCanvasBrushSpec(spec) : _chunkEU2ZZA6Lcjs.BRUSH_PRESETS.find((b) => b.id === brush);
168
- return background && facets ? _chunkBPJSI4NTcjs.brushPreviewColours.call(void 0, facets, { paper: background, profile: _chunkEU2ZZA6Lcjs.CANVAS_PROFILE, keepPaper: true }).color : "#1f2937";
167
+ const facets = typeof brush !== "string" ? null : spec ? readCanvasBrushSpec(spec) : _chunkGHGBIAWQcjs.BRUSH_PRESETS.find((b) => b.id === brush);
168
+ return background && facets ? _chunk7W2EQQBPcjs.brushPreviewColours.call(void 0, facets, { paper: background, profile: _chunkGHGBIAWQcjs.CANVAS_PROFILE, keepPaper: true }).color : "#1f2937";
169
169
  }
170
170
  function brushSwatchNow(brush, options, spec) {
171
171
  const w = options.width && options.width > 8 ? options.width : 96;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  brushPreviewColours
3
- } from "./chunk-LETF75CA.js";
3
+ } from "./chunk-CLB2I2FU.js";
4
4
  import {
5
5
  pathDataToPolyline
6
- } from "./chunk-BAZMCFVL.js";
6
+ } from "./chunk-DZVRH63Y.js";
7
7
  import {
8
8
  BRUSH_PRESETS,
9
9
  BUILTIN_BRUSHES,
@@ -14,7 +14,7 @@ import {
14
14
  normalizeBrushSpec,
15
15
  resolveBrush,
16
16
  resolveCategory
17
- } from "./chunk-KZI3YWKW.js";
17
+ } from "./chunk-UXYCY3HP.js";
18
18
  import "./chunk-JL6YH5WD.js";
19
19
  import {
20
20
  formatNumber,
@@ -46,7 +46,7 @@ var _chunk3FSUJIXNcjs = require('../chunk-3FSUJIXN.cjs');
46
46
 
47
47
 
48
48
 
49
- var _chunk2WOGXEDXcjs = require('../chunk-2WOGXEDX.cjs');
49
+ var _chunkM3RZOF3Gcjs = require('../chunk-M3RZOF3G.cjs');
50
50
 
51
51
 
52
52
 
@@ -7984,12 +7984,12 @@ function freehandBrushstroke(brush, points, samples, profileLength = 32) {
7984
7984
  if (!samples || samples.length !== points.length) return out;
7985
7985
  const finite2 = (v) => typeof v === "number" && Number.isFinite(v);
7986
7986
  if (samples.some((s) => finite2(s.pressure))) {
7987
- const pressure = _chunk2WOGXEDXcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s.pressure) ? Math.min(1, Math.max(0, s.pressure)) : 1), profileLength);
7987
+ const pressure = _chunkM3RZOF3Gcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s.pressure) ? Math.min(1, Math.max(0, s.pressure)) : 1), profileLength);
7988
7988
  if (pressure.some((p) => p !== 1)) out.pressure = pressure;
7989
7989
  }
7990
7990
  for (const key of ["tiltX", "tiltY"]) {
7991
7991
  if (!samples.some((s) => finite2(s[key]) && s[key] !== 0)) continue;
7992
- out[key] = _chunk2WOGXEDXcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s[key]) ? Math.min(90, Math.max(-90, s[key])) : 0), profileLength);
7992
+ out[key] = _chunkM3RZOF3Gcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s[key]) ? Math.min(90, Math.max(-90, s[key])) : 0), profileLength);
7993
7993
  }
7994
7994
  return out;
7995
7995
  }
@@ -8035,7 +8035,7 @@ function strokeToShapeNode(stroke, options = {}) {
8035
8035
  ...stroke.style.paint !== void 0 ? { paint: stroke.style.paint } : {},
8036
8036
  ...stroke.style.brushSpec && typeof stroke.style.brush === "string" && stroke.style.brushSpec.id === stroke.style.brush ? { spec: stroke.style.brushSpec } : {},
8037
8037
  // New strokes carry a character seed (jitter and grain) and their size, if chosen.
8038
- seed: _chunk2WOGXEDXcjs.brushstrokeSeed.call(void 0, _nullishCoalesce(options.id, () => ( stroke.id))),
8038
+ seed: _chunkM3RZOF3Gcjs.brushstrokeSeed.call(void 0, _nullishCoalesce(options.id, () => ( stroke.id))),
8039
8039
  ...stroke.style.brushSize !== void 0 && stroke.style.brushSize > 0 ? { size: stroke.style.brushSize } : {}
8040
8040
  }
8041
8041
  } : {},
@@ -8204,7 +8204,7 @@ function createCanvasDrawController(options) {
8204
8204
  if (tool !== "pen" && tool !== "highlighter") throw new Error(`Unknown tool '${String(tool)}': use 'pen' or 'highlighter'.`);
8205
8205
  const style = { ...createDefaultStrokeStyle(tool), ...input.style };
8206
8206
  if (_optionalChain([input, 'access', _312 => _312.style, 'optionalAccess', _313 => _313.color]) === void 0 && typeof style.brush === "string") {
8207
- const preset = (await _chunk2WOGXEDXcjs.listCanvasBrushes.call(void 0, options.brushLibrary)).find((b) => b.id === style.brush);
8207
+ const preset = (await _chunkM3RZOF3Gcjs.listCanvasBrushes.call(void 0, options.brushLibrary)).find((b) => b.id === style.brush);
8208
8208
  const hex = _optionalChain([preset, 'optionalAccess', _314 => _314.defaultColor]) !== void 0 ? _chunkJBZRVLXVcjs.brushColourHex.call(void 0, preset.defaultColor, colorScheme) : null;
8209
8209
  if (hex) style.color = hex;
8210
8210
  }
@@ -8224,12 +8224,12 @@ function createCanvasDrawController(options) {
8224
8224
  throw new Error("paint (gradient paint) only colours brushed strokes: pass a brush too (see canvas.listBrushes), or use color for a plain stroke.");
8225
8225
  }
8226
8226
  if (style.brush !== void 0) {
8227
- const spec = await _asyncNullishCoalesce((_optionalChain([style, 'access', _315 => _315.brushSpec, 'optionalAccess', _316 => _316.id]) === style.brush ? style.brushSpec : void 0), async () => ( await _chunk2WOGXEDXcjs.resolveCanvasBrushSpec.call(void 0, style.brush, options.brushLibrary)));
8228
- await _chunk2WOGXEDXcjs.validateCanvasBrush.call(void 0, style.brush, spec);
8227
+ const spec = await _asyncNullishCoalesce((_optionalChain([style, 'access', _315 => _315.brushSpec, 'optionalAccess', _316 => _316.id]) === style.brush ? style.brushSpec : void 0), async () => ( await _chunkM3RZOF3Gcjs.resolveCanvasBrushSpec.call(void 0, style.brush, options.brushLibrary)));
8228
+ await _chunkM3RZOF3Gcjs.validateCanvasBrush.call(void 0, style.brush, spec);
8229
8229
  if (spec) style.brushSpec = spec;
8230
8230
  else delete style.brushSpec;
8231
8231
  }
8232
- if (style.paint !== void 0) style.paint = (await _chunk2WOGXEDXcjs.loadCanvasBrushstrokeRenderer.call(void 0, )).resolveCanvasPaint(style.paint);
8232
+ if (style.paint !== void 0) style.paint = (await _chunkM3RZOF3Gcjs.loadCanvasBrushstrokeRenderer.call(void 0, )).resolveCanvasPaint(style.paint);
8233
8233
  const id = _nullishCoalesce(_optionalChain([options, 'access', _317 => _317.generateNodeId, 'optionalCall', _318 => _318()]), () => ( `stroke-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`));
8234
8234
  const smoothed = input.streamline ? streamlinePoints(points, _nullishCoalesce(_optionalChain([options, 'access', _319 => _319.drawOptions, 'optionalAccess', _320 => _320.streamline]), () => ( 0.35))) : [...points];
8235
8235
  const node = strokeToShapeNode(
@@ -8315,7 +8315,7 @@ function createCanvasDrawController(options) {
8315
8315
  drawStroke,
8316
8316
  nodeBounds,
8317
8317
  /** The presets and saved brushes (of `brushLibrary`) a stroke can be brushed with (loads the paint engine). */
8318
- listBrushes: () => _chunk2WOGXEDXcjs.listCanvasBrushes.call(void 0, options.brushLibrary),
8318
+ listBrushes: () => _chunkM3RZOF3Gcjs.listCanvasBrushes.call(void 0, options.brushLibrary),
8319
8319
  /**
8320
8320
  * A brush picker's choice: brushes the pen and highlighter with `id` (`null`: a plain vector
8321
8321
  * stroke) at the brush's own size, embedding a saved brush, and makes its default colour
@@ -8329,9 +8329,9 @@ function createCanvasDrawController(options) {
8329
8329
  setStyle({ brush: void 0, brushSize: void 0, brushSpec: void 0, paint: void 0 });
8330
8330
  return null;
8331
8331
  }
8332
- const preset = (await _chunk2WOGXEDXcjs.listCanvasBrushes.call(void 0, options.brushLibrary)).find((b) => b.id === id);
8332
+ const preset = (await _chunkM3RZOF3Gcjs.listCanvasBrushes.call(void 0, options.brushLibrary)).find((b) => b.id === id);
8333
8333
  if (!preset) {
8334
- await _chunk2WOGXEDXcjs.validateCanvasBrush.call(void 0, id);
8334
+ await _chunkM3RZOF3Gcjs.validateCanvasBrush.call(void 0, id);
8335
8335
  throw new Error(`Brush '${id}' is not one the canvas can paint; listBrushes lists them.`);
8336
8336
  }
8337
8337
  const hex = !choice.keepColour && !colorLocked && preset.defaultColor !== void 0 ? _chunkJBZRVLXVcjs.brushColourHex.call(void 0, preset.defaultColor, colorScheme) : null;
@@ -8373,7 +8373,7 @@ function createCanvasDrawController(options) {
8373
8373
  };
8374
8374
  },
8375
8375
  /** The saved brush to embed for a brush id (undefined for presets and tip settings); for a brush picker. */
8376
- brushSpec: (brush) => _chunk2WOGXEDXcjs.resolveCanvasBrushSpec.call(void 0, brush, options.brushLibrary)
8376
+ brushSpec: (brush) => _chunkM3RZOF3Gcjs.resolveCanvasBrushSpec.call(void 0, brush, options.brushLibrary)
8377
8377
  };
8378
8378
  }
8379
8379
  function computeDragBounds(start, current, modifiers = {}) {
@@ -13352,4 +13352,4 @@ function createCanvasStickerHost(options) {
13352
13352
 
13353
13353
 
13354
13354
 
13355
- exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunkDWJJI6RTcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunkDWJJI6RTcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunkM5GLQQWGcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkM5GLQQWGcjs.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_MISSING_PATTERN = CANVAS_EFFECT_MISSING_PATTERN; exports.CANVAS_EFFECT_PLACES = CANVAS_EFFECT_PLACES; exports.CANVAS_GRADIENT_PRESETS = _chunkNM3G4VQTcjs.CANVAS_GRADIENT_PRESETS; exports.CANVAS_PROPOSAL_CLASS = CANVAS_PROPOSAL_CLASS; 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 = _chunkDWJJI6RTcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunkE2Z4UARJcjs.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 = _chunkEL4PSKFTcjs.DEFAULT_NODE_HEIGHT; exports.DEFAULT_NODE_WIDTH = _chunkEL4PSKFTcjs.DEFAULT_NODE_WIDTH; exports.DEFAULT_PLACEMENT_GAP = _chunkEL4PSKFTcjs.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 = _chunkEL4PSKFTcjs.LOCKED_DATA_KEY; exports.LOCKED_PREVIOUS_FLAGS_KEY = _chunkEL4PSKFTcjs.LOCKED_PREVIOUS_FLAGS_KEY; exports.MAX_KEYFRAME_REFS = MAX_KEYFRAME_REFS; exports.MERMAID_SHAPE_PAINT = MERMAID_SHAPE_PAINT; exports.ManualClock = _chunkM5GLQQWGcjs.ManualClock; exports.PATHFINDER_OPERATIONS = _chunkYAWLMF3Ocjs.PATHFINDER_OPERATIONS; exports.PIXERATE_BRAND_GRADIENT = _chunkNM3G4VQTcjs.PIXERATE_BRAND_GRADIENT; exports.PathOpsError = _chunkGF2RBSDMcjs.PathOpsError; exports.PlanarMap = _chunkYAWLMF3Ocjs.PlanarMap; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = _chunkNM3G4VQTcjs.SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.SPRING_PRESETS = _chunkDWJJI6RTcjs.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 = _chunkEL4PSKFTcjs.alignNodes; exports.angleToSvgLinearCoords = _chunkNM3G4VQTcjs.angleToSvgLinearCoords; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = _chunkEL4PSKFTcjs.applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = _chunkGF2RBSDMcjs.arcToCubics; exports.architectureScene = architectureScene; exports.arrowGesture = _chunkE2Z4UARJcjs.arrowGesture; exports.autoLayoutDiagram = autoLayoutDiagram; exports.bezierPathArea = _chunkGF2RBSDMcjs.bezierPathArea; exports.bezierPathBounds = _chunkGF2RBSDMcjs.bezierPathBounds; exports.bezierPathLength = _chunkGF2RBSDMcjs.bezierPathLength; exports.bezierPathPointAtLength = _chunkGF2RBSDMcjs.bezierPathPointAtLength; exports.bezierPathSignedArea = _chunkGF2RBSDMcjs.bezierPathSignedArea; exports.bezierPathToSvg = _chunkGF2RBSDMcjs.bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendDiagramLayout = blendDiagramLayout; exports.blendLayout = blendLayout; exports.boundsOf = _chunkEL4PSKFTcjs.boundsOf; exports.bracketGesture = _chunkE2Z4UARJcjs.bracketGesture; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeSeed = _chunk2WOGXEDXcjs.brushstrokeSeed; exports.c4Scene = c4Scene; exports.calculateCursorArrowRotation = calculateCursorArrowRotation; exports.calculateCurvedPath = calculateCurvedPath; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.calculateReflowDisplacement = calculateReflowDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasDocumentContentKey = canvasDocumentContentKey; exports.canvasEffectErrorReason = canvasEffectErrorReason; exports.canvasEffectStatus = canvasEffectStatus; exports.canvasEffectsPool = canvasEffectsPool; exports.canvasExplosionToolTarget = canvasExplosionToolTarget; exports.canvasHeight = canvasHeight; exports.canvasNodeCaptureRect = canvasNodeCaptureRect; exports.canvasNodeEffect = canvasNodeEffect; exports.captureCanvasView = captureCanvasView; exports.centerNodes = _chunkEL4PSKFTcjs.centerNodes; exports.centre = _chunkEL4PSKFTcjs.centre; exports.checkGesture = _chunkE2Z4UARJcjs.checkGesture; exports.circleGesture = _chunkE2Z4UARJcjs.circleGesture; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = _chunkGF2RBSDMcjs.closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeCanvasExplosionLayout = computeCanvasExplosionLayout; exports.computeDragBounds = computeDragBounds; exports.computeDragBoundsFromPoints = computeDragBoundsFromPoints; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedDiagramOnly = connectedDiagramOnly; exports.connectedOnly = connectedOnly; exports.contourEnclosesArea = _chunkYAWLMF3Ocjs.contourEnclosesArea; exports.contourSignedArea = _chunkGF2RBSDMcjs.contourSignedArea; exports.contoursToPath = _chunkGF2RBSDMcjs.contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = _chunkGF2RBSDMcjs.countPathSegments; exports.createAnimationPlayer = _chunkM5GLQQWGcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasCaptureSurface = createCanvasCaptureSurface; exports.createCanvasCaptureToolProvider = createCanvasCaptureToolProvider; exports.createCanvasChangeFeed = createCanvasChangeFeed; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasDrawController = createCanvasDrawController; exports.createCanvasEditorDocument = createCanvasEditorDocument; exports.createCanvasEffectsController = createCanvasEffectsController; exports.createCanvasEffectsToolProvider = createCanvasEffectsToolProvider; exports.createCanvasExplosionStateController = createCanvasExplosionStateController; exports.createCanvasExplosionToolProvider = createCanvasExplosionToolProvider; exports.createCanvasGestureRecorder = createCanvasGestureRecorder; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasPlaybackLocator = createCanvasPlaybackLocator; exports.createCanvasProposalToolProvider = createCanvasProposalToolProvider; exports.createCanvasProposals = createCanvasProposals; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createCanvasStickerHost = createCanvasStickerHost; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = _chunkEL4PSKFTcjs.createNodeLookup; exports.crossGesture = _chunkE2Z4UARJcjs.crossGesture; exports.cubicBezierAt = _chunkDWJJI6RTcjs.cubicBezierAt; exports.cubicPointAt = _chunkNM3G4VQTcjs.cubicPointAt; exports.cubicsToPathData = _chunkNM3G4VQTcjs.cubicsToPathData; exports.cutOutPiece = _chunkYAWLMF3Ocjs.cutOutPiece; exports.dashContours = _chunkGF2RBSDMcjs.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 = _chunkGF2RBSDMcjs.distanceToBezierPath; exports.distributeNodes = _chunkEL4PSKFTcjs.distributeNodes; exports.dividePaths = _chunkGF2RBSDMcjs.dividePaths; exports.dividePolygons = _chunkGF2RBSDMcjs.dividePolygons; exports.downloadDiagramPng = downloadDiagramPng; exports.easeDiagramTween = easeDiagramTween; exports.easingFromInfluence = _chunkDWJJI6RTcjs.easingFromInfluence; exports.easingLabel = _chunkDWJJI6RTcjs.easingLabel; exports.easingToCss = _chunkDWJJI6RTcjs.easingToCss; exports.elasticAt = _chunkDWJJI6RTcjs.elasticAt; exports.ensureDiagramLayout = ensureDiagramLayout; exports.ensureLayout = _chunkEL4PSKFTcjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateDiagramCanvasHeight = estimateDiagramCanvasHeight; exports.estimateDiagramNodeSize = estimateDiagramNodeSize; exports.estimateNodeSize = _chunkEL4PSKFTcjs.estimateNodeSize; exports.estimateTextWidth = estimateTextWidth2; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunkDWJJI6RTcjs.evaluateEasing; exports.evaluateTrack = _chunkM5GLQQWGcjs.evaluateTrack; exports.excludePaths = _chunkGF2RBSDMcjs.excludePaths; exports.explosionEdgeId = explosionEdgeId; exports.exportCssAnimation = exportCssAnimation; exports.familySceneFromLayout = familySceneFromLayout; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = _chunkNM3G4VQTcjs.fitCubicRun; exports.fitCubicWithTangents = _chunkNM3G4VQTcjs.fitCubicWithTangents; exports.fitCubics = _chunkNM3G4VQTcjs.fitCubics; exports.fitFreehandPath = _chunkNM3G4VQTcjs.fitFreehandPath; exports.fitPathData = _chunkNM3G4VQTcjs.fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = _chunkNM3G4VQTcjs.flattenSvgPath; exports.flowSide = _chunkEL4PSKFTcjs.flowSide; exports.formatAgentCursorName = formatAgentCursorName; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = _chunkNM3G4VQTcjs.formatNumber; exports.formatOklab = _chunk4ZC5QJE2cjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.gestureEdgePoint = _chunkE2Z4UARJcjs.gestureEdgePoint; exports.gestureRandom = _chunkE2Z4UARJcjs.gestureRandom; exports.gestureSeed = _chunkE2Z4UARJcjs.gestureSeed; exports.gestureUnion = _chunkE2Z4UARJcjs.gestureUnion; exports.getAbsolutePosition = _chunkEL4PSKFTcjs.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 = _chunk2WOGXEDXcjs.getBrushedShapeSvg; exports.getCanvasComponentDragId = getCanvasComponentDragId; exports.getCanvasTokenProperty = getCanvasTokenProperty; exports.getCenteredNodePosition = _chunkEL4PSKFTcjs.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 = _chunkEL4PSKFTcjs.getLayoutedNodes; exports.getNaturalMovementTiming = getNaturalMovementTiming; exports.getNextVariantValues = getNextVariantValues; exports.getNodeAnimation = getNodeAnimation; exports.getNodeOverrides = getNodeOverrides; exports.getNodeRect = _chunkEL4PSKFTcjs.getNodeRect; exports.getNodeShape = getNodeShape; exports.getNodeSize = _chunkEL4PSKFTcjs.getNodeSize; exports.getNodeTokenBindings = getNodeTokenBindings; exports.getNodeTokenModes = getNodeTokenModes; exports.getOwningComponent = getOwningComponent; exports.getOwningInstance = getOwningInstance; exports.getResizingNodeRect = getResizingNodeRect; exports.getRootInstance = getRootInstance; exports.getShapeRenderData = _chunkNM3G4VQTcjs.getShapeRenderData; exports.getShapeSvg = _chunkNM3G4VQTcjs.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 = _chunkNM3G4VQTcjs.gradientToSvgDef; exports.handlePoint = handlePoint; exports.hasFamilyScene = hasFamilyScene; exports.hasVisibleStroke = hasVisibleStroke; exports.hashString = hashString; exports.hatchPath = _chunkYAWLMF3Ocjs.hatchPath; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interiorPoint = _chunkYAWLMF3Ocjs.interiorPoint; exports.interpolateAnimationValue = _chunkM5GLQQWGcjs.interpolateAnimationValue; exports.intersectPaths = _chunkGF2RBSDMcjs.intersectPaths; exports.intersectPolygons = _chunkGF2RBSDMcjs.intersectPolygons; exports.invertNodeUpdates = _chunkEL4PSKFTcjs.invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunkDWJJI6RTcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkM5GLQQWGcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunk2WOGXEDXcjs.isBrushedShape; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasGradient = _chunkNM3G4VQTcjs.isCanvasGradient; exports.isCanvasInstance = isCanvasInstance; exports.isCssExportExact = isCssExportExact; exports.isEventFromTextInput = isEventFromTextInput; exports.isInsideInstance = isInsideInstance; exports.isKeyframeSelected = isKeyframeSelected; exports.isLocked = _chunkEL4PSKFTcjs.isLocked; exports.isMeasureModifierHeld = isMeasureModifierHeld; exports.isNodeAnimated = isNodeAnimated; exports.isShapeDescription = _chunkNM3G4VQTcjs.isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = _chunkNM3G4VQTcjs.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 = _chunk2WOGXEDXcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunk2WOGXEDXcjs.loadCanvasBrushstrokeRenderer; exports.lockNodes = _chunkEL4PSKFTcjs.lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunkE2Z4UARJcjs.matchArrangeShortcut; exports.matchSize = _chunkEL4PSKFTcjs.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 = _chunk4ZC5QJE2cjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = _chunkGF2RBSDMcjs.multiPolygonArea; exports.multiPolygonBounds = _chunkGF2RBSDMcjs.multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.nodeSizeOf = nodeSizeOf; exports.normalizeBezierPath = _chunkGF2RBSDMcjs.normalizeBezierPath; exports.normalizeKeyframes = _chunkM5GLQQWGcjs.normalizeKeyframes; exports.offsetPath = _chunkGF2RBSDMcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunk4ZC5QJE2cjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkGF2RBSDMcjs.outlineStroke; exports.overlaps = _chunkEL4PSKFTcjs.overlaps; exports.pageHidden = _chunkM5GLQQWGcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunkDWJJI6RTcjs.parseCssEasing; exports.parseCssGradient = _chunkNM3G4VQTcjs.parseCssGradient; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseMermaidStyles = parseMermaidStyles; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunk4ZC5QJE2cjs.parseOklab; exports.parseSvgPath = _chunkNM3G4VQTcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkGF2RBSDMcjs.pathBoolean; exports.pathBooleanSelect = _chunkGF2RBSDMcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunk2WOGXEDXcjs.pathDataToPolyline; exports.pathToContours = _chunkGF2RBSDMcjs.pathToContours; exports.pathfinder = _chunkYAWLMF3Ocjs.pathfinder; exports.pieScene = pieScene; exports.placeBeside = _chunkEL4PSKFTcjs.placeBeside; exports.placeInView = _chunkEL4PSKFTcjs.placeInView; exports.planarSplit = _chunkGF2RBSDMcjs.planarSplit; exports.playCanvasSceneTransition = playCanvasSceneTransition; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = _chunkGF2RBSDMcjs.pointInBezierPath; exports.pointInMultiPolygon = _chunkGF2RBSDMcjs.pointInMultiPolygon; exports.pointInRings = _chunkGF2RBSDMcjs.pointInRings; exports.pointerPenSample = pointerPenSample; exports.polygonArea = _chunkGF2RBSDMcjs.polygonArea; exports.polygonBoolean = _chunkGF2RBSDMcjs.polygonBoolean; exports.polygonToSvgPath = _chunkNM3G4VQTcjs.polygonToSvgPath; exports.positionToSide = positionToSide; exports.profileAlongPolyline = _chunk2WOGXEDXcjs.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 = _chunkEL4PSKFTcjs.readStyleSize; exports.realClock = _chunkM5GLQQWGcjs.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.renderCanvasBrushPreview = _chunk2WOGXEDXcjs.renderCanvasBrushPreview; exports.renderCanvasBrushSwatch = _chunk2WOGXEDXcjs.renderCanvasBrushSwatch; exports.renderShapeBrushstroke = _chunk2WOGXEDXcjs.renderShapeBrushstroke; exports.reorderNodes = _chunkEL4PSKFTcjs.reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasBrushSpec = _chunk2WOGXEDXcjs.resolveCanvasBrushSpec; exports.resolveCanvasGradient = _chunkNM3G4VQTcjs.resolveCanvasGradient; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunkDWJJI6RTcjs.resolveEasing; exports.resolveMermaidStyles = resolveMermaidStyles; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.reverseCubicBezier = _chunkDWJJI6RTcjs.reverseCubicBezier; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunk4ZC5QJE2cjs.rgbToOklab; exports.ringSignedArea = _chunkGF2RBSDMcjs.ringSignedArea; exports.runCanvasNodeEffect = runCanvasNodeEffect; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.sceneColor = sceneColor; exports.segmentBounds = _chunkGF2RBSDMcjs.segmentBounds; exports.segmentCurvature = _chunkGF2RBSDMcjs.segmentCurvature; exports.segmentDerivative = _chunkGF2RBSDMcjs.segmentDerivative; exports.segmentExtrema = _chunkGF2RBSDMcjs.segmentExtrema; exports.segmentIntersections = _chunkGF2RBSDMcjs.segmentIntersections; exports.segmentLength = _chunkGF2RBSDMcjs.segmentLength; exports.segmentNearest = _chunkGF2RBSDMcjs.segmentNearest; exports.segmentParamAtLength = _chunkGF2RBSDMcjs.segmentParamAtLength; exports.segmentPoint = _chunkGF2RBSDMcjs.segmentPoint; exports.segmentTangent = _chunkGF2RBSDMcjs.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 = _chunkNM3G4VQTcjs.shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = _chunkNM3G4VQTcjs.simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = _chunkGF2RBSDMcjs.splitSegment; exports.springAt = _chunkDWJJI6RTcjs.springAt; exports.springSettleMs = _chunkDWJJI6RTcjs.springSettleMs; exports.stickerCanvasNode = stickerCanvasNode; exports.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strikeGesture = _chunkE2Z4UARJcjs.strikeGesture; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = _chunkGF2RBSDMcjs.strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = _chunkGF2RBSDMcjs.subSegment; exports.subtractPaths = _chunkGF2RBSDMcjs.subtractPaths; exports.subtractPolygons = _chunkGF2RBSDMcjs.subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.timelineScene = timelineScene; exports.toBezierPath = _chunkGF2RBSDMcjs.toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = _chunkEL4PSKFTcjs.toggleLockNodes; exports.transformBezierPath = _chunkGF2RBSDMcjs.transformBezierPath; exports.transitionCanvasView = transitionCanvasView; exports.trimSegments = _chunkGF2RBSDMcjs.trimSegments; exports.underlineGesture = _chunkE2Z4UARJcjs.underlineGesture; exports.unionPolygons = _chunkGF2RBSDMcjs.unionPolygons; exports.unitePaths = _chunkGF2RBSDMcjs.unitePaths; exports.unlockNodes = _chunkEL4PSKFTcjs.unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunk2WOGXEDXcjs.validateCanvasBrush; exports.validateCanvasBrushPaint = _chunk2WOGXEDXcjs.validateCanvasBrushPaint; exports.windingNumber = _chunkGF2RBSDMcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = _chunkEL4PSKFTcjs.withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkM5GLQQWGcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkGF2RBSDMcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
13355
+ exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunkDWJJI6RTcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunkDWJJI6RTcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunkM5GLQQWGcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkM5GLQQWGcjs.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_MISSING_PATTERN = CANVAS_EFFECT_MISSING_PATTERN; exports.CANVAS_EFFECT_PLACES = CANVAS_EFFECT_PLACES; exports.CANVAS_GRADIENT_PRESETS = _chunkNM3G4VQTcjs.CANVAS_GRADIENT_PRESETS; exports.CANVAS_PROPOSAL_CLASS = CANVAS_PROPOSAL_CLASS; 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 = _chunkDWJJI6RTcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunkE2Z4UARJcjs.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 = _chunkEL4PSKFTcjs.DEFAULT_NODE_HEIGHT; exports.DEFAULT_NODE_WIDTH = _chunkEL4PSKFTcjs.DEFAULT_NODE_WIDTH; exports.DEFAULT_PLACEMENT_GAP = _chunkEL4PSKFTcjs.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 = _chunkEL4PSKFTcjs.LOCKED_DATA_KEY; exports.LOCKED_PREVIOUS_FLAGS_KEY = _chunkEL4PSKFTcjs.LOCKED_PREVIOUS_FLAGS_KEY; exports.MAX_KEYFRAME_REFS = MAX_KEYFRAME_REFS; exports.MERMAID_SHAPE_PAINT = MERMAID_SHAPE_PAINT; exports.ManualClock = _chunkM5GLQQWGcjs.ManualClock; exports.PATHFINDER_OPERATIONS = _chunkYAWLMF3Ocjs.PATHFINDER_OPERATIONS; exports.PIXERATE_BRAND_GRADIENT = _chunkNM3G4VQTcjs.PIXERATE_BRAND_GRADIENT; exports.PathOpsError = _chunkGF2RBSDMcjs.PathOpsError; exports.PlanarMap = _chunkYAWLMF3Ocjs.PlanarMap; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = _chunkNM3G4VQTcjs.SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.SPRING_PRESETS = _chunkDWJJI6RTcjs.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 = _chunkEL4PSKFTcjs.alignNodes; exports.angleToSvgLinearCoords = _chunkNM3G4VQTcjs.angleToSvgLinearCoords; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = _chunkEL4PSKFTcjs.applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = _chunkGF2RBSDMcjs.arcToCubics; exports.architectureScene = architectureScene; exports.arrowGesture = _chunkE2Z4UARJcjs.arrowGesture; exports.autoLayoutDiagram = autoLayoutDiagram; exports.bezierPathArea = _chunkGF2RBSDMcjs.bezierPathArea; exports.bezierPathBounds = _chunkGF2RBSDMcjs.bezierPathBounds; exports.bezierPathLength = _chunkGF2RBSDMcjs.bezierPathLength; exports.bezierPathPointAtLength = _chunkGF2RBSDMcjs.bezierPathPointAtLength; exports.bezierPathSignedArea = _chunkGF2RBSDMcjs.bezierPathSignedArea; exports.bezierPathToSvg = _chunkGF2RBSDMcjs.bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendDiagramLayout = blendDiagramLayout; exports.blendLayout = blendLayout; exports.boundsOf = _chunkEL4PSKFTcjs.boundsOf; exports.bracketGesture = _chunkE2Z4UARJcjs.bracketGesture; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeSeed = _chunkM3RZOF3Gcjs.brushstrokeSeed; exports.c4Scene = c4Scene; exports.calculateCursorArrowRotation = calculateCursorArrowRotation; exports.calculateCurvedPath = calculateCurvedPath; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.calculateReflowDisplacement = calculateReflowDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasDocumentContentKey = canvasDocumentContentKey; exports.canvasEffectErrorReason = canvasEffectErrorReason; exports.canvasEffectStatus = canvasEffectStatus; exports.canvasEffectsPool = canvasEffectsPool; exports.canvasExplosionToolTarget = canvasExplosionToolTarget; exports.canvasHeight = canvasHeight; exports.canvasNodeCaptureRect = canvasNodeCaptureRect; exports.canvasNodeEffect = canvasNodeEffect; exports.captureCanvasView = captureCanvasView; exports.centerNodes = _chunkEL4PSKFTcjs.centerNodes; exports.centre = _chunkEL4PSKFTcjs.centre; exports.checkGesture = _chunkE2Z4UARJcjs.checkGesture; exports.circleGesture = _chunkE2Z4UARJcjs.circleGesture; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = _chunkGF2RBSDMcjs.closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeCanvasExplosionLayout = computeCanvasExplosionLayout; exports.computeDragBounds = computeDragBounds; exports.computeDragBoundsFromPoints = computeDragBoundsFromPoints; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedDiagramOnly = connectedDiagramOnly; exports.connectedOnly = connectedOnly; exports.contourEnclosesArea = _chunkYAWLMF3Ocjs.contourEnclosesArea; exports.contourSignedArea = _chunkGF2RBSDMcjs.contourSignedArea; exports.contoursToPath = _chunkGF2RBSDMcjs.contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = _chunkGF2RBSDMcjs.countPathSegments; exports.createAnimationPlayer = _chunkM5GLQQWGcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasCaptureSurface = createCanvasCaptureSurface; exports.createCanvasCaptureToolProvider = createCanvasCaptureToolProvider; exports.createCanvasChangeFeed = createCanvasChangeFeed; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasDrawController = createCanvasDrawController; exports.createCanvasEditorDocument = createCanvasEditorDocument; exports.createCanvasEffectsController = createCanvasEffectsController; exports.createCanvasEffectsToolProvider = createCanvasEffectsToolProvider; exports.createCanvasExplosionStateController = createCanvasExplosionStateController; exports.createCanvasExplosionToolProvider = createCanvasExplosionToolProvider; exports.createCanvasGestureRecorder = createCanvasGestureRecorder; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasPlaybackLocator = createCanvasPlaybackLocator; exports.createCanvasProposalToolProvider = createCanvasProposalToolProvider; exports.createCanvasProposals = createCanvasProposals; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createCanvasStickerHost = createCanvasStickerHost; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = _chunkEL4PSKFTcjs.createNodeLookup; exports.crossGesture = _chunkE2Z4UARJcjs.crossGesture; exports.cubicBezierAt = _chunkDWJJI6RTcjs.cubicBezierAt; exports.cubicPointAt = _chunkNM3G4VQTcjs.cubicPointAt; exports.cubicsToPathData = _chunkNM3G4VQTcjs.cubicsToPathData; exports.cutOutPiece = _chunkYAWLMF3Ocjs.cutOutPiece; exports.dashContours = _chunkGF2RBSDMcjs.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 = _chunkGF2RBSDMcjs.distanceToBezierPath; exports.distributeNodes = _chunkEL4PSKFTcjs.distributeNodes; exports.dividePaths = _chunkGF2RBSDMcjs.dividePaths; exports.dividePolygons = _chunkGF2RBSDMcjs.dividePolygons; exports.downloadDiagramPng = downloadDiagramPng; exports.easeDiagramTween = easeDiagramTween; exports.easingFromInfluence = _chunkDWJJI6RTcjs.easingFromInfluence; exports.easingLabel = _chunkDWJJI6RTcjs.easingLabel; exports.easingToCss = _chunkDWJJI6RTcjs.easingToCss; exports.elasticAt = _chunkDWJJI6RTcjs.elasticAt; exports.ensureDiagramLayout = ensureDiagramLayout; exports.ensureLayout = _chunkEL4PSKFTcjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateDiagramCanvasHeight = estimateDiagramCanvasHeight; exports.estimateDiagramNodeSize = estimateDiagramNodeSize; exports.estimateNodeSize = _chunkEL4PSKFTcjs.estimateNodeSize; exports.estimateTextWidth = estimateTextWidth2; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunkDWJJI6RTcjs.evaluateEasing; exports.evaluateTrack = _chunkM5GLQQWGcjs.evaluateTrack; exports.excludePaths = _chunkGF2RBSDMcjs.excludePaths; exports.explosionEdgeId = explosionEdgeId; exports.exportCssAnimation = exportCssAnimation; exports.familySceneFromLayout = familySceneFromLayout; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = _chunkNM3G4VQTcjs.fitCubicRun; exports.fitCubicWithTangents = _chunkNM3G4VQTcjs.fitCubicWithTangents; exports.fitCubics = _chunkNM3G4VQTcjs.fitCubics; exports.fitFreehandPath = _chunkNM3G4VQTcjs.fitFreehandPath; exports.fitPathData = _chunkNM3G4VQTcjs.fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = _chunkNM3G4VQTcjs.flattenSvgPath; exports.flowSide = _chunkEL4PSKFTcjs.flowSide; exports.formatAgentCursorName = formatAgentCursorName; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = _chunkNM3G4VQTcjs.formatNumber; exports.formatOklab = _chunk4ZC5QJE2cjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.gestureEdgePoint = _chunkE2Z4UARJcjs.gestureEdgePoint; exports.gestureRandom = _chunkE2Z4UARJcjs.gestureRandom; exports.gestureSeed = _chunkE2Z4UARJcjs.gestureSeed; exports.gestureUnion = _chunkE2Z4UARJcjs.gestureUnion; exports.getAbsolutePosition = _chunkEL4PSKFTcjs.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 = _chunkM3RZOF3Gcjs.getBrushedShapeSvg; exports.getCanvasComponentDragId = getCanvasComponentDragId; exports.getCanvasTokenProperty = getCanvasTokenProperty; exports.getCenteredNodePosition = _chunkEL4PSKFTcjs.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 = _chunkEL4PSKFTcjs.getLayoutedNodes; exports.getNaturalMovementTiming = getNaturalMovementTiming; exports.getNextVariantValues = getNextVariantValues; exports.getNodeAnimation = getNodeAnimation; exports.getNodeOverrides = getNodeOverrides; exports.getNodeRect = _chunkEL4PSKFTcjs.getNodeRect; exports.getNodeShape = getNodeShape; exports.getNodeSize = _chunkEL4PSKFTcjs.getNodeSize; exports.getNodeTokenBindings = getNodeTokenBindings; exports.getNodeTokenModes = getNodeTokenModes; exports.getOwningComponent = getOwningComponent; exports.getOwningInstance = getOwningInstance; exports.getResizingNodeRect = getResizingNodeRect; exports.getRootInstance = getRootInstance; exports.getShapeRenderData = _chunkNM3G4VQTcjs.getShapeRenderData; exports.getShapeSvg = _chunkNM3G4VQTcjs.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 = _chunkNM3G4VQTcjs.gradientToSvgDef; exports.handlePoint = handlePoint; exports.hasFamilyScene = hasFamilyScene; exports.hasVisibleStroke = hasVisibleStroke; exports.hashString = hashString; exports.hatchPath = _chunkYAWLMF3Ocjs.hatchPath; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interiorPoint = _chunkYAWLMF3Ocjs.interiorPoint; exports.interpolateAnimationValue = _chunkM5GLQQWGcjs.interpolateAnimationValue; exports.intersectPaths = _chunkGF2RBSDMcjs.intersectPaths; exports.intersectPolygons = _chunkGF2RBSDMcjs.intersectPolygons; exports.invertNodeUpdates = _chunkEL4PSKFTcjs.invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunkDWJJI6RTcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkM5GLQQWGcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunkM3RZOF3Gcjs.isBrushedShape; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasGradient = _chunkNM3G4VQTcjs.isCanvasGradient; exports.isCanvasInstance = isCanvasInstance; exports.isCssExportExact = isCssExportExact; exports.isEventFromTextInput = isEventFromTextInput; exports.isInsideInstance = isInsideInstance; exports.isKeyframeSelected = isKeyframeSelected; exports.isLocked = _chunkEL4PSKFTcjs.isLocked; exports.isMeasureModifierHeld = isMeasureModifierHeld; exports.isNodeAnimated = isNodeAnimated; exports.isShapeDescription = _chunkNM3G4VQTcjs.isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = _chunkNM3G4VQTcjs.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 = _chunkM3RZOF3Gcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunkM3RZOF3Gcjs.loadCanvasBrushstrokeRenderer; exports.lockNodes = _chunkEL4PSKFTcjs.lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunkE2Z4UARJcjs.matchArrangeShortcut; exports.matchSize = _chunkEL4PSKFTcjs.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 = _chunk4ZC5QJE2cjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = _chunkGF2RBSDMcjs.multiPolygonArea; exports.multiPolygonBounds = _chunkGF2RBSDMcjs.multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.nodeSizeOf = nodeSizeOf; exports.normalizeBezierPath = _chunkGF2RBSDMcjs.normalizeBezierPath; exports.normalizeKeyframes = _chunkM5GLQQWGcjs.normalizeKeyframes; exports.offsetPath = _chunkGF2RBSDMcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunk4ZC5QJE2cjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkGF2RBSDMcjs.outlineStroke; exports.overlaps = _chunkEL4PSKFTcjs.overlaps; exports.pageHidden = _chunkM5GLQQWGcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunkDWJJI6RTcjs.parseCssEasing; exports.parseCssGradient = _chunkNM3G4VQTcjs.parseCssGradient; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseMermaidStyles = parseMermaidStyles; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunk4ZC5QJE2cjs.parseOklab; exports.parseSvgPath = _chunkNM3G4VQTcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkGF2RBSDMcjs.pathBoolean; exports.pathBooleanSelect = _chunkGF2RBSDMcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunkM3RZOF3Gcjs.pathDataToPolyline; exports.pathToContours = _chunkGF2RBSDMcjs.pathToContours; exports.pathfinder = _chunkYAWLMF3Ocjs.pathfinder; exports.pieScene = pieScene; exports.placeBeside = _chunkEL4PSKFTcjs.placeBeside; exports.placeInView = _chunkEL4PSKFTcjs.placeInView; exports.planarSplit = _chunkGF2RBSDMcjs.planarSplit; exports.playCanvasSceneTransition = playCanvasSceneTransition; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = _chunkGF2RBSDMcjs.pointInBezierPath; exports.pointInMultiPolygon = _chunkGF2RBSDMcjs.pointInMultiPolygon; exports.pointInRings = _chunkGF2RBSDMcjs.pointInRings; exports.pointerPenSample = pointerPenSample; exports.polygonArea = _chunkGF2RBSDMcjs.polygonArea; exports.polygonBoolean = _chunkGF2RBSDMcjs.polygonBoolean; exports.polygonToSvgPath = _chunkNM3G4VQTcjs.polygonToSvgPath; exports.positionToSide = positionToSide; exports.profileAlongPolyline = _chunkM3RZOF3Gcjs.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 = _chunkEL4PSKFTcjs.readStyleSize; exports.realClock = _chunkM5GLQQWGcjs.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.renderCanvasBrushPreview = _chunkM3RZOF3Gcjs.renderCanvasBrushPreview; exports.renderCanvasBrushSwatch = _chunkM3RZOF3Gcjs.renderCanvasBrushSwatch; exports.renderShapeBrushstroke = _chunkM3RZOF3Gcjs.renderShapeBrushstroke; exports.reorderNodes = _chunkEL4PSKFTcjs.reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasBrushSpec = _chunkM3RZOF3Gcjs.resolveCanvasBrushSpec; exports.resolveCanvasGradient = _chunkNM3G4VQTcjs.resolveCanvasGradient; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunkDWJJI6RTcjs.resolveEasing; exports.resolveMermaidStyles = resolveMermaidStyles; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.reverseCubicBezier = _chunkDWJJI6RTcjs.reverseCubicBezier; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunk4ZC5QJE2cjs.rgbToOklab; exports.ringSignedArea = _chunkGF2RBSDMcjs.ringSignedArea; exports.runCanvasNodeEffect = runCanvasNodeEffect; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.sceneColor = sceneColor; exports.segmentBounds = _chunkGF2RBSDMcjs.segmentBounds; exports.segmentCurvature = _chunkGF2RBSDMcjs.segmentCurvature; exports.segmentDerivative = _chunkGF2RBSDMcjs.segmentDerivative; exports.segmentExtrema = _chunkGF2RBSDMcjs.segmentExtrema; exports.segmentIntersections = _chunkGF2RBSDMcjs.segmentIntersections; exports.segmentLength = _chunkGF2RBSDMcjs.segmentLength; exports.segmentNearest = _chunkGF2RBSDMcjs.segmentNearest; exports.segmentParamAtLength = _chunkGF2RBSDMcjs.segmentParamAtLength; exports.segmentPoint = _chunkGF2RBSDMcjs.segmentPoint; exports.segmentTangent = _chunkGF2RBSDMcjs.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 = _chunkNM3G4VQTcjs.shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = _chunkNM3G4VQTcjs.simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = _chunkGF2RBSDMcjs.splitSegment; exports.springAt = _chunkDWJJI6RTcjs.springAt; exports.springSettleMs = _chunkDWJJI6RTcjs.springSettleMs; exports.stickerCanvasNode = stickerCanvasNode; exports.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strikeGesture = _chunkE2Z4UARJcjs.strikeGesture; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = _chunkGF2RBSDMcjs.strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = _chunkGF2RBSDMcjs.subSegment; exports.subtractPaths = _chunkGF2RBSDMcjs.subtractPaths; exports.subtractPolygons = _chunkGF2RBSDMcjs.subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.timelineScene = timelineScene; exports.toBezierPath = _chunkGF2RBSDMcjs.toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = _chunkEL4PSKFTcjs.toggleLockNodes; exports.transformBezierPath = _chunkGF2RBSDMcjs.transformBezierPath; exports.transitionCanvasView = transitionCanvasView; exports.trimSegments = _chunkGF2RBSDMcjs.trimSegments; exports.underlineGesture = _chunkE2Z4UARJcjs.underlineGesture; exports.unionPolygons = _chunkGF2RBSDMcjs.unionPolygons; exports.unitePaths = _chunkGF2RBSDMcjs.unitePaths; exports.unlockNodes = _chunkEL4PSKFTcjs.unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunkM3RZOF3Gcjs.validateCanvasBrush; exports.validateCanvasBrushPaint = _chunkM3RZOF3Gcjs.validateCanvasBrushPaint; exports.windingNumber = _chunkGF2RBSDMcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = _chunkEL4PSKFTcjs.withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkM5GLQQWGcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkGF2RBSDMcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
@@ -46,7 +46,7 @@ import {
46
46
  resolveCanvasBrushSpec,
47
47
  validateCanvasBrush,
48
48
  validateCanvasBrushPaint
49
- } from "../chunk-BAZMCFVL.js";
49
+ } from "../chunk-DZVRH63Y.js";
50
50
  import {
51
51
  PATHFINDER_OPERATIONS,
52
52
  PlanarMap,
@@ -0,0 +1,95 @@
1
+ /**
2
+ * The chart editor as language-neutral contracts (`@pixerate/conformance` `domains/chart`), so
3
+ * another implementation (the Swift port, #694) offers the same commands, tools, controls and
4
+ * documents: the commands in `createChartCommands`, the tools of the chart, chart-style and
5
+ * office-charts providers, the UI tables React and Svelte render, and a JSON Schema of a saved
6
+ * chart document. `scripts/export-contracts.mjs` writes them; `tests/chart-contract.test.ts` fails
7
+ * when the committed files differ from what this returns.
8
+ *
9
+ * Everything here is data from this module's own tables and providers; nothing depends on the
10
+ * package version, so a release does not change the files.
11
+ */
12
+ import type { ConformanceHost } from '../tools/conformance.cjs';
13
+ import { type McpToolDefinition } from '../tools/registry.cjs';
14
+ import type { JsonSchema } from '../tools/schema.cjs';
15
+ import { ChartController } from './controller.cjs';
16
+ import { type ChartTextMeasure } from './layout.cjs';
17
+ import { type ChartMapGeometry } from './maps.cjs';
18
+ import { type ChartStyleProfile } from './style.cjs';
19
+ import type { ChartSpec } from './types.cjs';
20
+ /** Bumped when a contract file changes shape (not when its data changes). */
21
+ export declare const CHART_CONTRACT_FORMAT_VERSION = 1;
22
+ /**
23
+ * Fixed text-width measure used by the conformance host (both the controller and the tools) and
24
+ * required of the Swift port so layout coordinates, tick thinning and label truncation match:
25
+ * `text.length * fontSize * (weight >= 600 ? 0.6 : 0.56)` (UTF-16 code units, matching
26
+ * `estimateChartTextWidth`).
27
+ */
28
+ export declare const conformanceChartTextMeasure: ChartTextMeasure;
29
+ /**
30
+ * JSON Schema of a saved chart document: the `pixerate.editor-document` envelope of kind `chart`
31
+ * around a `ChartSpec` (`createChartEditorDocument`), built from `chart/schemas.ts`.
32
+ */
33
+ export declare const CHART_DOCUMENT_JSON_SCHEMA: JsonSchema;
34
+ export interface ChartCommandContractEntry {
35
+ id: string;
36
+ label: string;
37
+ group?: string;
38
+ keywords?: string[];
39
+ description?: string;
40
+ params?: JsonSchema;
41
+ shortcut?: string | string[];
42
+ scope?: string;
43
+ undoable: boolean;
44
+ readOnly: boolean;
45
+ hidden?: boolean;
46
+ }
47
+ export interface ChartToolProviderContract {
48
+ id: string;
49
+ title?: string;
50
+ skill?: string;
51
+ tools: McpToolDefinition[];
52
+ }
53
+ /**
54
+ * Every chart contract file, by its path under `domains/chart/` (plain JSON values).
55
+ */
56
+ export declare function chartContracts(): Record<string, unknown>;
57
+ export interface ChartConformanceSetup {
58
+ /** Initial chart spec (or partial spec) loaded into the controller. */
59
+ spec?: Partial<ChartSpec> | Record<string, unknown>;
60
+ /** Width used by `render()` and default tool calls (default 640). */
61
+ width?: number;
62
+ /** Height used by `render()` and default tool calls (default 400). */
63
+ height?: number;
64
+ /** Read-only state or reason for the chart tool providers. */
65
+ readOnly?: boolean | string;
66
+ /**
67
+ * Open Office files for `createOfficeChartToolProvider`, either as an array of
68
+ * `{ name, data }` (base64 bytes or `Uint8Array`) or a `{ [name]: base64 }` map.
69
+ */
70
+ files?: ReadonlyArray<{
71
+ name: string;
72
+ data: string | Uint8Array;
73
+ }> | Record<string, string | Uint8Array>;
74
+ /** Optional house-style profile for `check_chart_style`. */
75
+ style?: ChartStyleProfile;
76
+ /** Extra map geometries to register alongside `EUROPE_CHART_MAP`. */
77
+ maps?: ReadonlyArray<ChartMapGeometry>;
78
+ }
79
+ export interface ChartConformanceHost extends ConformanceHost {
80
+ readonly controller: ChartController;
81
+ /** Advances the manual bar-race clock by `ms` and runs any queued animation frame steps. */
82
+ advanceRace(ms?: number): void;
83
+ }
84
+ /**
85
+ * A fresh chart editor for replaying a conformance scenario (`domains/chart/fixtures`):
86
+ * - A manual `raceTicker`: `now()` returns a counter the host advances via `advanceRace`, and
87
+ * `next()` queues the step instead of using timers, so `play_chart_race` records the same result
88
+ * on every run.
89
+ * - Fixed `measureText` (`conformanceChartTextMeasure`) in both the controller and the tools.
90
+ * - Series ids come from `uniqueChartSeriesId`'s counter (`series-1`, `series-2`, …).
91
+ * - In-memory `files` decoded from `setup.files` (base64 bytes) for the Office chart tools.
92
+ * - `render()` returns the `ChartScene` from `layoutChart` for the current state.
93
+ * - No `rasterize` option, so `render_chart` with `format: "png"` returns its documented error.
94
+ */
95
+ export declare function createChartConformanceHost(setup?: ChartConformanceSetup & Record<string, unknown>): ChartConformanceHost;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * The chart editor as language-neutral contracts (`@pixerate/conformance` `domains/chart`), so
3
+ * another implementation (the Swift port, #694) offers the same commands, tools, controls and
4
+ * documents: the commands in `createChartCommands`, the tools of the chart, chart-style and
5
+ * office-charts providers, the UI tables React and Svelte render, and a JSON Schema of a saved
6
+ * chart document. `scripts/export-contracts.mjs` writes them; `tests/chart-contract.test.ts` fails
7
+ * when the committed files differ from what this returns.
8
+ *
9
+ * Everything here is data from this module's own tables and providers; nothing depends on the
10
+ * package version, so a release does not change the files.
11
+ */
12
+ import type { ConformanceHost } from '../tools/conformance.js';
13
+ import { type McpToolDefinition } from '../tools/registry.js';
14
+ import type { JsonSchema } from '../tools/schema.js';
15
+ import { ChartController } from './controller.js';
16
+ import { type ChartTextMeasure } from './layout.js';
17
+ import { type ChartMapGeometry } from './maps.js';
18
+ import { type ChartStyleProfile } from './style.js';
19
+ import type { ChartSpec } from './types.js';
20
+ /** Bumped when a contract file changes shape (not when its data changes). */
21
+ export declare const CHART_CONTRACT_FORMAT_VERSION = 1;
22
+ /**
23
+ * Fixed text-width measure used by the conformance host (both the controller and the tools) and
24
+ * required of the Swift port so layout coordinates, tick thinning and label truncation match:
25
+ * `text.length * fontSize * (weight >= 600 ? 0.6 : 0.56)` (UTF-16 code units, matching
26
+ * `estimateChartTextWidth`).
27
+ */
28
+ export declare const conformanceChartTextMeasure: ChartTextMeasure;
29
+ /**
30
+ * JSON Schema of a saved chart document: the `pixerate.editor-document` envelope of kind `chart`
31
+ * around a `ChartSpec` (`createChartEditorDocument`), built from `chart/schemas.ts`.
32
+ */
33
+ export declare const CHART_DOCUMENT_JSON_SCHEMA: JsonSchema;
34
+ export interface ChartCommandContractEntry {
35
+ id: string;
36
+ label: string;
37
+ group?: string;
38
+ keywords?: string[];
39
+ description?: string;
40
+ params?: JsonSchema;
41
+ shortcut?: string | string[];
42
+ scope?: string;
43
+ undoable: boolean;
44
+ readOnly: boolean;
45
+ hidden?: boolean;
46
+ }
47
+ export interface ChartToolProviderContract {
48
+ id: string;
49
+ title?: string;
50
+ skill?: string;
51
+ tools: McpToolDefinition[];
52
+ }
53
+ /**
54
+ * Every chart contract file, by its path under `domains/chart/` (plain JSON values).
55
+ */
56
+ export declare function chartContracts(): Record<string, unknown>;
57
+ export interface ChartConformanceSetup {
58
+ /** Initial chart spec (or partial spec) loaded into the controller. */
59
+ spec?: Partial<ChartSpec> | Record<string, unknown>;
60
+ /** Width used by `render()` and default tool calls (default 640). */
61
+ width?: number;
62
+ /** Height used by `render()` and default tool calls (default 400). */
63
+ height?: number;
64
+ /** Read-only state or reason for the chart tool providers. */
65
+ readOnly?: boolean | string;
66
+ /**
67
+ * Open Office files for `createOfficeChartToolProvider`, either as an array of
68
+ * `{ name, data }` (base64 bytes or `Uint8Array`) or a `{ [name]: base64 }` map.
69
+ */
70
+ files?: ReadonlyArray<{
71
+ name: string;
72
+ data: string | Uint8Array;
73
+ }> | Record<string, string | Uint8Array>;
74
+ /** Optional house-style profile for `check_chart_style`. */
75
+ style?: ChartStyleProfile;
76
+ /** Extra map geometries to register alongside `EUROPE_CHART_MAP`. */
77
+ maps?: ReadonlyArray<ChartMapGeometry>;
78
+ }
79
+ export interface ChartConformanceHost extends ConformanceHost {
80
+ readonly controller: ChartController;
81
+ /** Advances the manual bar-race clock by `ms` and runs any queued animation frame steps. */
82
+ advanceRace(ms?: number): void;
83
+ }
84
+ /**
85
+ * A fresh chart editor for replaying a conformance scenario (`domains/chart/fixtures`):
86
+ * - A manual `raceTicker`: `now()` returns a counter the host advances via `advanceRace`, and
87
+ * `next()` queues the step instead of using timers, so `play_chart_race` records the same result
88
+ * on every run.
89
+ * - Fixed `measureText` (`conformanceChartTextMeasure`) in both the controller and the tools.
90
+ * - Series ids come from `uniqueChartSeriesId`'s counter (`series-1`, `series-2`, …).
91
+ * - In-memory `files` decoded from `setup.files` (base64 bytes) for the Office chart tools.
92
+ * - `render()` returns the `ChartScene` from `layoutChart` for the current state.
93
+ * - No `rasterize` option, so `render_chart` with `format: "png"` returns its documented error.
94
+ */
95
+ export declare function createChartConformanceHost(setup?: ChartConformanceSetup & Record<string, unknown>): ChartConformanceHost;
@@ -1,4 +1,5 @@
1
1
  import { HistoryManager } from '../history/HistoryManager.cjs';
2
+ import { type ChartTextMeasure } from './layout.cjs';
2
3
  import { type ChartTrendFit } from './trend.cjs';
3
4
  import { type ChartTreeRow } from './tree.cjs';
4
5
  import { type ChartTableOptions } from './spec.cjs';
@@ -12,6 +13,8 @@ export interface ChartControllerOptions {
12
13
  onChange?: (spec: Readonly<ChartSpec>) => void;
13
14
  /** Time and frames for playing a bar race (default: `performance.now` / `requestAnimationFrame`, else timers). */
14
15
  raceTicker?: ChartRaceTicker;
16
+ /** Text width in pixels for layout, summaries and hit testing (default: `estimateChartTextWidth`). */
17
+ measureText?: ChartTextMeasure;
15
18
  }
16
19
  /** Drives bar race playback: the current time in ms, and a way to run `step` on the next frame (returns a cancel). */
17
20
  export interface ChartRaceTicker {
@@ -111,6 +114,7 @@ export interface ChartEditOptions {
111
114
  */
112
115
  export declare class ChartController {
113
116
  readonly history: HistoryManager;
117
+ readonly measureText?: ChartTextMeasure;
114
118
  private spec;
115
119
  private selection;
116
120
  private issues;
@@ -1,4 +1,5 @@
1
1
  import { HistoryManager } from '../history/HistoryManager.js';
2
+ import { type ChartTextMeasure } from './layout.js';
2
3
  import { type ChartTrendFit } from './trend.js';
3
4
  import { type ChartTreeRow } from './tree.js';
4
5
  import { type ChartTableOptions } from './spec.js';
@@ -12,6 +13,8 @@ export interface ChartControllerOptions {
12
13
  onChange?: (spec: Readonly<ChartSpec>) => void;
13
14
  /** Time and frames for playing a bar race (default: `performance.now` / `requestAnimationFrame`, else timers). */
14
15
  raceTicker?: ChartRaceTicker;
16
+ /** Text width in pixels for layout, summaries and hit testing (default: `estimateChartTextWidth`). */
17
+ measureText?: ChartTextMeasure;
15
18
  }
16
19
  /** Drives bar race playback: the current time in ms, and a way to run `step` on the next frame (returns a cancel). */
17
20
  export interface ChartRaceTicker {
@@ -111,6 +114,7 @@ export interface ChartEditOptions {
111
114
  */
112
115
  export declare class ChartController {
113
116
  readonly history: HistoryManager;
117
+ readonly measureText?: ChartTextMeasure;
114
118
  private spec;
115
119
  private selection;
116
120
  private issues;