@pixerate/editor 0.244.0 → 0.246.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.
- package/dist/agent/index.cjs +34 -32
- package/dist/agent/index.js +6 -4
- package/dist/animation-editor/index.cjs +61 -61
- package/dist/animation-editor/index.js +4 -4
- package/dist/{brushstrokeRender-4542T5HP.js → brushstrokeRender-AKUI3SEJ.js} +2 -2
- package/dist/{brushstrokeRender-QA5WVIDT.cjs → brushstrokeRender-ZDHMXJAE.cjs} +5 -5
- package/dist/canvas/changeFeed.d.cts +71 -0
- package/dist/canvas/changeFeed.d.ts +71 -0
- package/dist/canvas/index.cjs +490 -34
- package/dist/canvas/index.d.cts +3 -0
- package/dist/canvas/index.d.ts +3 -0
- package/dist/canvas/index.js +483 -27
- package/dist/canvas/proposal-tools.d.cts +21 -0
- package/dist/canvas/proposal-tools.d.ts +21 -0
- package/dist/canvas/proposals.d.cts +112 -0
- package/dist/canvas/proposals.d.ts +112 -0
- package/dist/chart/index.cjs +21 -21
- package/dist/chart/index.js +2 -2
- package/dist/{chunk-7YQNKSQ7.js → chunk-4PMCMWQS.js} +1 -1
- package/dist/{chunk-4I76OCVD.cjs → chunk-5DLCOQOQ.cjs} +16 -1
- package/dist/{chunk-HZ547SGQ.cjs → chunk-5MFDD7SP.cjs} +1 -1
- package/dist/{chunk-WGN7AUKB.js → chunk-7YW7T5TJ.js} +1 -1
- package/dist/{chunk-5RFENYO5.js → chunk-A23PSOBB.js} +1 -1
- package/dist/{chunk-X3ZINLIP.js → chunk-AU6MWQKZ.js} +1 -1
- package/dist/{chunk-AIS56JOO.js → chunk-BVRRIW7F.js} +1 -1
- package/dist/{chunk-BDIH4DYR.cjs → chunk-CEPKXLBS.cjs} +23 -23
- package/dist/{chunk-OSTKS3YN.js → chunk-DQWPMGH2.js} +1 -1
- package/dist/{chunk-IZL5V5RK.cjs → chunk-FK5LTDOO.cjs} +2 -2
- package/dist/{chunk-L5PB7EG3.js → chunk-LDPLEZ5T.js} +1 -1
- package/dist/{chunk-4EQY4TZJ.js → chunk-N6WUB3Y5.js} +1 -1
- package/dist/{chunk-RNSANXPT.js → chunk-NS62CQ2B.js} +112 -14
- package/dist/{chunk-UZU6DIZA.cjs → chunk-NUTMINJZ.cjs} +45 -45
- package/dist/{chunk-4T47Z4J3.cjs → chunk-Q2UYUWAZ.cjs} +10 -0
- package/dist/{chunk-7V7QMFTI.cjs → chunk-QOBCBGGI.cjs} +2 -2
- package/dist/{chunk-FQVVO5YA.js → chunk-SGPIVHJB.js} +1 -1
- package/dist/{chunk-QTMQ5TGA.js → chunk-UCYW4M66.js} +16 -1
- package/dist/{chunk-SD23XMVJ.cjs → chunk-UVPD55UZ.cjs} +35 -35
- package/dist/{chunk-TBJEMELS.js → chunk-VDAWA546.js} +10 -0
- package/dist/{chunk-W7GRGGBH.cjs → chunk-W7L4HUT2.cjs} +8 -8
- package/dist/{chunk-FJ2MSI43.cjs → chunk-WKPXOGZZ.cjs} +124 -26
- package/dist/{chunk-M6JORA5Z.cjs → chunk-XTWXBQD4.cjs} +86 -86
- package/dist/{chunk-D2SGV525.cjs → chunk-XZNU4DUX.cjs} +2 -2
- package/dist/diagram/index.cjs +2 -2
- package/dist/diagram/index.js +1 -1
- package/dist/effects/index.cjs +4 -4
- package/dist/effects/index.js +2 -2
- package/dist/extensions/index.cjs +5 -5
- package/dist/extensions/index.js +4 -4
- package/dist/gradient/index.cjs +2 -2
- package/dist/gradient/index.js +1 -1
- package/dist/history/HistoryManager.d.cts +20 -1
- package/dist/history/HistoryManager.d.ts +20 -1
- package/dist/history/index.cjs +8 -2
- package/dist/history/index.js +8 -2
- package/dist/history/types.d.cts +31 -0
- package/dist/history/types.d.ts +31 -0
- package/dist/image-editor/index.cjs +775 -775
- package/dist/image-editor/index.js +4 -4
- package/dist/index.cjs +16 -10
- package/dist/index.js +11 -5
- package/dist/paint-editor/index.cjs +136 -136
- package/dist/paint-editor/index.js +4 -4
- package/dist/parameters/index.cjs +2 -2
- package/dist/parameters/index.js +1 -1
- package/dist/tools/index.cjs +4 -2
- package/dist/tools/index.d.cts +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +3 -1
- package/dist/tools/origin.d.cts +22 -0
- package/dist/tools/origin.d.ts +22 -0
- package/dist/vector/index.cjs +964 -964
- package/dist/vector/index.js +5 -5
- package/dist/video-editor/index.cjs +4 -4
- package/dist/video-editor/index.js +2 -2
- package/package.json +1 -1
- package/skills/pixerate-canvas/SKILL.md +25 -0
- package/skills/pixerate-paint-editor/references/light-paint.md +7 -1
package/dist/canvas/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunk5MFDD7SPcjs = require('../chunk-5MFDD7SP.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -3027,7 +3027,7 @@ function createCanvasArrangeController(options) {
|
|
|
3027
3027
|
let resizeStart = null;
|
|
3028
3028
|
let resizeIndex = null;
|
|
3029
3029
|
let lastResized = null;
|
|
3030
|
-
const
|
|
3030
|
+
const selectedIds2 = (ids) => ids ? [...ids] : _nullishCoalesce(_optionalChain([options, 'access', _131 => _131.getSelectedIds, 'optionalCall', _132 => _132()]), () => ( options.getNodes().filter((n3) => n3.selected).map((n3) => n3.id)));
|
|
3031
3031
|
const setGuides = (next) => {
|
|
3032
3032
|
if (next.length === 0 && guides.length === 0) return;
|
|
3033
3033
|
guides = next;
|
|
@@ -3074,31 +3074,31 @@ function createCanvasArrangeController(options) {
|
|
|
3074
3074
|
},
|
|
3075
3075
|
apply,
|
|
3076
3076
|
align(edge, ids, alignOptions = {}) {
|
|
3077
|
-
return apply(`Align ${edge}`, _chunkEL4PSKFTcjs.alignNodes.call(void 0, options.getNodes(),
|
|
3077
|
+
return apply(`Align ${edge}`, _chunkEL4PSKFTcjs.alignNodes.call(void 0, options.getNodes(), selectedIds2(ids), edge, { ...rect2(), ...alignOptions }));
|
|
3078
3078
|
},
|
|
3079
3079
|
distribute(axis, mode = "gaps", ids, distributeOptions = {}) {
|
|
3080
3080
|
return apply(
|
|
3081
3081
|
`Distribute ${axis}`,
|
|
3082
|
-
_chunkEL4PSKFTcjs.distributeNodes.call(void 0, options.getNodes(),
|
|
3082
|
+
_chunkEL4PSKFTcjs.distributeNodes.call(void 0, options.getNodes(), selectedIds2(ids), axis, mode, { ...rect2(), ...distributeOptions })
|
|
3083
3083
|
);
|
|
3084
3084
|
},
|
|
3085
3085
|
matchSize(dimension, ids, sizeOptions = {}) {
|
|
3086
3086
|
return apply(
|
|
3087
3087
|
"Make Same Size",
|
|
3088
|
-
_chunkEL4PSKFTcjs.matchSize.call(void 0, options.getNodes(),
|
|
3088
|
+
_chunkEL4PSKFTcjs.matchSize.call(void 0, options.getNodes(), selectedIds2(ids), dimension, { ...rect2(), ...sizeOptions })
|
|
3089
3089
|
);
|
|
3090
3090
|
},
|
|
3091
3091
|
reorder(operation, ids) {
|
|
3092
|
-
return apply(operation, _chunkEL4PSKFTcjs.reorderNodes.call(void 0, options.getNodes(),
|
|
3092
|
+
return apply(operation, _chunkEL4PSKFTcjs.reorderNodes.call(void 0, options.getNodes(), selectedIds2(ids), operation, rect2()));
|
|
3093
3093
|
},
|
|
3094
3094
|
bringForward: (ids) => controller.reorder("bringForward", ids),
|
|
3095
3095
|
sendBackward: (ids) => controller.reorder("sendBackward", ids),
|
|
3096
3096
|
bringToFront: (ids) => controller.reorder("bringToFront", ids),
|
|
3097
3097
|
sendToBack: (ids) => controller.reorder("sendToBack", ids),
|
|
3098
|
-
lock: (ids) => setLocked("Lock",
|
|
3099
|
-
unlock: (ids) => setLocked("Unlock",
|
|
3098
|
+
lock: (ids) => setLocked("Lock", selectedIds2(ids), true),
|
|
3099
|
+
unlock: (ids) => setLocked("Unlock", selectedIds2(ids), false),
|
|
3100
3100
|
toggleLock(ids) {
|
|
3101
|
-
const list =
|
|
3101
|
+
const list = selectedIds2(ids);
|
|
3102
3102
|
const set = new Set(list);
|
|
3103
3103
|
const anyUnlocked = options.getNodes().some((n3) => set.has(n3.id) && !_chunkEL4PSKFTcjs.isLocked.call(void 0, n3));
|
|
3104
3104
|
return anyUnlocked ? controller.lock(list) : controller.unlock(list);
|
|
@@ -3112,7 +3112,7 @@ function createCanvasArrangeController(options) {
|
|
|
3112
3112
|
*/
|
|
3113
3113
|
combineShapes(operation, ids, combineOptions = {}) {
|
|
3114
3114
|
const before = options.getNodes();
|
|
3115
|
-
const result = combineShapeNodes(before,
|
|
3115
|
+
const result = combineShapeNodes(before, selectedIds2(ids), operation, { ...rect2(), ...combineOptions });
|
|
3116
3116
|
if (!result.ok) return result;
|
|
3117
3117
|
const name = `${operation[0].toUpperCase()}${operation.slice(1)} Shapes`;
|
|
3118
3118
|
const run = () => options.setNodes(applyShapeCombination(options.getNodes(), result));
|
|
@@ -3127,7 +3127,7 @@ function createCanvasArrangeController(options) {
|
|
|
3127
3127
|
exclude: (ids, o) => controller.combineShapes("exclude", ids, o),
|
|
3128
3128
|
divide: (ids, o) => controller.combineShapes("divide", ids, o),
|
|
3129
3129
|
/** Whether the shape operations can run on `ids` (default: the selection). */
|
|
3130
|
-
canCombineShapes: (ids) => canCombineShapeNodes(options.getNodes(),
|
|
3130
|
+
canCombineShapes: (ids) => canCombineShapeNodes(options.getNodes(), selectedIds2(ids)).ok,
|
|
3131
3131
|
/**
|
|
3132
3132
|
* Offset Path: grows (`distance > 0`) or shrinks (`distance < 0`) every shape among
|
|
3133
3133
|
* `ids` (default: the selection) by `distance` flow units, keeping curves, as one
|
|
@@ -3136,7 +3136,7 @@ function createCanvasArrangeController(options) {
|
|
|
3136
3136
|
*/
|
|
3137
3137
|
offsetShapes(distance, ids, offsetOptions = {}) {
|
|
3138
3138
|
const before = options.getNodes();
|
|
3139
|
-
const result = offsetShapeNodes(before,
|
|
3139
|
+
const result = offsetShapeNodes(before, selectedIds2(ids), distance, { ...rect2(), ...offsetOptions });
|
|
3140
3140
|
if (!result.ok) return result;
|
|
3141
3141
|
const run = () => options.setNodes(applyShapeReplacement(options.getNodes(), result));
|
|
3142
3142
|
const undo = () => options.setNodes(revertShapeCombination(options.getNodes(), result, before));
|
|
@@ -3145,7 +3145,7 @@ function createCanvasArrangeController(options) {
|
|
|
3145
3145
|
return result;
|
|
3146
3146
|
},
|
|
3147
3147
|
/** Whether `offsetShapes` can run on `ids` (default: the selection). */
|
|
3148
|
-
canOffsetShapes: (ids) => canOffsetShapeNodes(options.getNodes(),
|
|
3148
|
+
canOffsetShapes: (ids) => canOffsetShapeNodes(options.getNodes(), selectedIds2(ids)).ok,
|
|
3149
3149
|
/**
|
|
3150
3150
|
* Outline Stroke: converts the strokes of the shapes among `ids` (default: the
|
|
3151
3151
|
* selection) to filled path shapes, as one undoable step. Refuses when a shape is
|
|
@@ -3153,7 +3153,7 @@ function createCanvasArrangeController(options) {
|
|
|
3153
3153
|
*/
|
|
3154
3154
|
outlineStroke(ids, outlineOptions = {}) {
|
|
3155
3155
|
const before = options.getNodes();
|
|
3156
|
-
const result = outlineShapeNodeStrokes(before,
|
|
3156
|
+
const result = outlineShapeNodeStrokes(before, selectedIds2(ids), { ...rect2(), ...outlineOptions });
|
|
3157
3157
|
if (!result.ok) return result;
|
|
3158
3158
|
const run = () => options.setNodes(applyShapeReplacement(options.getNodes(), result));
|
|
3159
3159
|
const undo = () => options.setNodes(revertShapeCombination(options.getNodes(), result, before));
|
|
@@ -3162,7 +3162,7 @@ function createCanvasArrangeController(options) {
|
|
|
3162
3162
|
return result;
|
|
3163
3163
|
},
|
|
3164
3164
|
/** Whether `outlineStroke` can run on `ids` (default: the selection). */
|
|
3165
|
-
canOutlineStroke: (ids) => canOutlineShapeNodeStrokes(options.getNodes(),
|
|
3165
|
+
canOutlineStroke: (ids) => canOutlineShapeNodeStrokes(options.getNodes(), selectedIds2(ids)).ok,
|
|
3166
3166
|
/**
|
|
3167
3167
|
* Runs a shortcut action. Scene actions are not handled here (see the scenes store);
|
|
3168
3168
|
* returns `false` for them and for unknown actions.
|
|
@@ -3217,7 +3217,7 @@ function createCanvasArrangeController(options) {
|
|
|
3217
3217
|
},
|
|
3218
3218
|
/** Caches the snap targets for a drag. Optional: `drag` builds them lazily. */
|
|
3219
3219
|
beginDrag(ids) {
|
|
3220
|
-
const list =
|
|
3220
|
+
const list = selectedIds2(ids);
|
|
3221
3221
|
dragKey = list.slice().sort().join("\0");
|
|
3222
3222
|
dragIndex = createNodeGuideIndex(options.getNodes(), list, rect2());
|
|
3223
3223
|
},
|
|
@@ -3228,7 +3228,7 @@ function createCanvasArrangeController(options) {
|
|
|
3228
3228
|
*/
|
|
3229
3229
|
drag(ids) {
|
|
3230
3230
|
if (options.snapping === false) return null;
|
|
3231
|
-
const list =
|
|
3231
|
+
const list = selectedIds2(ids);
|
|
3232
3232
|
const key = list.slice().sort().join("\0");
|
|
3233
3233
|
if (!dragIndex || key !== dragKey) controller.beginDrag(list);
|
|
3234
3234
|
const result = snapNodeDrag(options.getNodes(), list, {
|
|
@@ -3549,10 +3549,10 @@ function measureToLine(a, orientation, at) {
|
|
|
3549
3549
|
}
|
|
3550
3550
|
return out;
|
|
3551
3551
|
}
|
|
3552
|
-
function measureSelection(nodes,
|
|
3552
|
+
function measureSelection(nodes, selectedIds2, hoveredId, options = {}) {
|
|
3553
3553
|
const none = (selection2 = null) => ({ guides: [], target: null, selection: selection2 });
|
|
3554
3554
|
const lookup = _chunkEL4PSKFTcjs.createNodeLookup.call(void 0, nodes);
|
|
3555
|
-
const selected = [...new Set(
|
|
3555
|
+
const selected = [...new Set(selectedIds2)].map((id) => lookup.get(id)).filter((n3) => !!n3 && n3.hidden !== true);
|
|
3556
3556
|
if (selected.length === 0) return none();
|
|
3557
3557
|
const selection = _chunkEL4PSKFTcjs.boundsOf.call(void 0, selected.map((n3) => _chunkEL4PSKFTcjs.getNodeRect.call(void 0, n3, lookup, options)));
|
|
3558
3558
|
if (!selection) return none();
|
|
@@ -5209,7 +5209,7 @@ var defaultLabel = (node) => typeof _optionalChain([node, 'access', _202 => _202
|
|
|
5209
5209
|
function getTimelineRows(nodes, ids, options = {}) {
|
|
5210
5210
|
const byId = new Map(nodes.map((n3) => [n3.id, n3]));
|
|
5211
5211
|
const selection = _nullishCoalesce(options.selection, () => ( []));
|
|
5212
|
-
const
|
|
5212
|
+
const labelOf3 = _nullishCoalesce(options.labelOf, () => ( defaultLabel));
|
|
5213
5213
|
const rows = [];
|
|
5214
5214
|
for (const id of new Set(ids)) {
|
|
5215
5215
|
const node = byId.get(id);
|
|
@@ -5220,7 +5220,7 @@ function getTimelineRows(nodes, ids, options = {}) {
|
|
|
5220
5220
|
rows.push({
|
|
5221
5221
|
id: `${id}:${property}`,
|
|
5222
5222
|
nodeId: id,
|
|
5223
|
-
nodeLabel:
|
|
5223
|
+
nodeLabel: labelOf3(node),
|
|
5224
5224
|
property,
|
|
5225
5225
|
label,
|
|
5226
5226
|
enabled: track.enabled !== false,
|
|
@@ -5315,7 +5315,7 @@ function createCanvasAnimationController(options) {
|
|
|
5315
5315
|
for (const listener of listeners) listener(state);
|
|
5316
5316
|
};
|
|
5317
5317
|
player.subscribe(notify);
|
|
5318
|
-
const
|
|
5318
|
+
const selectedIds2 = () => _nullishCoalesce(_optionalChain([options, 'access', _211 => _211.getSelectedIds, 'optionalCall', _212 => _212()]), () => ( options.getNodes().filter((n3) => n3.selected).map((n3) => n3.id)));
|
|
5319
5319
|
const KEEP_FIELDS = ["selected", "dragging", "measured"];
|
|
5320
5320
|
const replaceNodes = (nodes, replacements, animationOnly = false) => nodes.map((node) => {
|
|
5321
5321
|
const replacement = replacements.get(node.id);
|
|
@@ -5432,7 +5432,7 @@ function createCanvasAnimationController(options) {
|
|
|
5432
5432
|
controller.setRecording(!recording);
|
|
5433
5433
|
},
|
|
5434
5434
|
/** Seeks to the next keyframe (of the selected nodes, or all) after the playhead. */
|
|
5435
|
-
nextKeyframe(ids =
|
|
5435
|
+
nextKeyframe(ids = selectedIds2()) {
|
|
5436
5436
|
const list = [...ids];
|
|
5437
5437
|
const times = getKeyframeTimes(options.getNodes(), list.length ? { ids: list } : {});
|
|
5438
5438
|
const next = times.find((t) => t > player.currentTime + _chunkLJZRHVZVcjs.ANIMATION_TIME_EPSILON);
|
|
@@ -5440,7 +5440,7 @@ function createCanvasAnimationController(options) {
|
|
|
5440
5440
|
player.seek(next);
|
|
5441
5441
|
return next;
|
|
5442
5442
|
},
|
|
5443
|
-
previousKeyframe(ids =
|
|
5443
|
+
previousKeyframe(ids = selectedIds2()) {
|
|
5444
5444
|
const list = [...ids];
|
|
5445
5445
|
const times = getKeyframeTimes(options.getNodes(), list.length ? { ids: list } : {});
|
|
5446
5446
|
const prev = [...times].reverse().find((t) => t < player.currentTime - _chunkLJZRHVZVcjs.ANIMATION_TIME_EPSILON);
|
|
@@ -5497,7 +5497,7 @@ function createCanvasAnimationController(options) {
|
|
|
5497
5497
|
addKeyframe(ids, keys, time = player.currentTime) {
|
|
5498
5498
|
let refs = [];
|
|
5499
5499
|
commit("Add Keyframe", (nodes) => {
|
|
5500
|
-
const result = addKeyframesAtTime(nodes, _nullishCoalesce(ids, () => (
|
|
5500
|
+
const result = addKeyframesAtTime(nodes, _nullishCoalesce(ids, () => ( selectedIds2())), time, { ...propertyOptions(), ...keys ? { keys } : {} });
|
|
5501
5501
|
refs = result.refs;
|
|
5502
5502
|
return result.nodes;
|
|
5503
5503
|
});
|
|
@@ -5584,7 +5584,7 @@ function createCanvasAnimationController(options) {
|
|
|
5584
5584
|
return clipboard;
|
|
5585
5585
|
},
|
|
5586
5586
|
/** Pastes at the playhead onto the selected nodes (or the copied ones). */
|
|
5587
|
-
pasteKeyframes(data = clipboard, nodeIds =
|
|
5587
|
+
pasteKeyframes(data = clipboard, nodeIds = selectedIds2(), time = player.currentTime) {
|
|
5588
5588
|
if (!data) return [];
|
|
5589
5589
|
let refs = [];
|
|
5590
5590
|
commit("Paste Keyframes", (nodes) => {
|
|
@@ -5676,7 +5676,7 @@ function createCanvasAnimationController(options) {
|
|
|
5676
5676
|
},
|
|
5677
5677
|
// ----- views & export ---------------------------------------------------------------
|
|
5678
5678
|
/** Timeline rows for `ids` (default: selected nodes), including the drag preview. */
|
|
5679
|
-
timelineRows(ids =
|
|
5679
|
+
timelineRows(ids = selectedIds2(), opts = {}) {
|
|
5680
5680
|
return getTimelineRows(options.getNodes(), ids, { ...propertyOptions(), ...opts, selection, dragDelta: _nullishCoalesce(_optionalChain([drag, 'optionalAccess', _225 => _225.delta]), () => ( 0)) });
|
|
5681
5681
|
},
|
|
5682
5682
|
sampleFrames(opts = {}) {
|
|
@@ -7974,12 +7974,12 @@ function freehandBrushstroke(brush, points, samples, profileLength = 32) {
|
|
|
7974
7974
|
if (!samples || samples.length !== points.length) return out;
|
|
7975
7975
|
const finite2 = (v) => typeof v === "number" && Number.isFinite(v);
|
|
7976
7976
|
if (samples.some((s) => finite2(s.pressure))) {
|
|
7977
|
-
const pressure =
|
|
7977
|
+
const pressure = _chunk5MFDD7SPcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s.pressure) ? Math.min(1, Math.max(0, s.pressure)) : 1), profileLength);
|
|
7978
7978
|
if (pressure.some((p) => p !== 1)) out.pressure = pressure;
|
|
7979
7979
|
}
|
|
7980
7980
|
for (const key of ["tiltX", "tiltY"]) {
|
|
7981
7981
|
if (!samples.some((s) => finite2(s[key]) && s[key] !== 0)) continue;
|
|
7982
|
-
out[key] =
|
|
7982
|
+
out[key] = _chunk5MFDD7SPcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s[key]) ? Math.min(90, Math.max(-90, s[key])) : 0), profileLength);
|
|
7983
7983
|
}
|
|
7984
7984
|
return out;
|
|
7985
7985
|
}
|
|
@@ -8024,7 +8024,7 @@ function strokeToShapeNode(stroke, options = {}) {
|
|
|
8024
8024
|
...freehandBrushstroke(stroke.style.brush, localPoints, stroke.samples, options.profileLength),
|
|
8025
8025
|
...stroke.style.paint !== void 0 ? { paint: stroke.style.paint } : {},
|
|
8026
8026
|
// New strokes carry a character seed (jitter and grain) and their size, if chosen.
|
|
8027
|
-
seed:
|
|
8027
|
+
seed: _chunk5MFDD7SPcjs.brushstrokeSeed.call(void 0, _nullishCoalesce(options.id, () => ( stroke.id))),
|
|
8028
8028
|
...stroke.style.brushSize !== void 0 && stroke.style.brushSize > 0 ? { size: stroke.style.brushSize } : {}
|
|
8029
8029
|
}
|
|
8030
8030
|
} : {},
|
|
@@ -8199,8 +8199,8 @@ function createCanvasDrawController(options) {
|
|
|
8199
8199
|
if (style.paint !== void 0 && style.brush === void 0) {
|
|
8200
8200
|
throw new Error("paint (gradient paint) only colours brushed strokes: pass a brush too (see canvas.listBrushes), or use color for a plain stroke.");
|
|
8201
8201
|
}
|
|
8202
|
-
if (style.brush !== void 0) await
|
|
8203
|
-
if (style.paint !== void 0) style.paint = (await
|
|
8202
|
+
if (style.brush !== void 0) await _chunk5MFDD7SPcjs.validateCanvasBrush.call(void 0, style.brush);
|
|
8203
|
+
if (style.paint !== void 0) style.paint = (await _chunk5MFDD7SPcjs.loadCanvasBrushstrokeRenderer.call(void 0, )).resolveCanvasPaint(style.paint);
|
|
8204
8204
|
const id = _nullishCoalesce(_optionalChain([options, 'access', _312 => _312.generateNodeId, 'optionalCall', _313 => _313()]), () => ( `stroke-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`));
|
|
8205
8205
|
const smoothed = input.streamline ? streamlinePoints(points, _nullishCoalesce(_optionalChain([options, 'access', _314 => _314.drawOptions, 'optionalAccess', _315 => _315.streamline]), () => ( 0.35))) : [...points];
|
|
8206
8206
|
const node = strokeToShapeNode(
|
|
@@ -8286,7 +8286,7 @@ function createCanvasDrawController(options) {
|
|
|
8286
8286
|
drawStroke,
|
|
8287
8287
|
nodeBounds,
|
|
8288
8288
|
/** The dry paint presets a stroke can be brushed with (loads the paint engine). */
|
|
8289
|
-
listBrushes:
|
|
8289
|
+
listBrushes: _chunk5MFDD7SPcjs.listCanvasBrushes
|
|
8290
8290
|
};
|
|
8291
8291
|
}
|
|
8292
8292
|
function computeDragBounds(start, current, modifiers = {}) {
|
|
@@ -12199,6 +12199,462 @@ function createCanvasExplosionToolProvider(target, options = {}) {
|
|
|
12199
12199
|
};
|
|
12200
12200
|
}
|
|
12201
12201
|
|
|
12202
|
+
// src/canvas/proposals.ts
|
|
12203
|
+
var CANVAS_PROPOSAL_CLASS = "pixerate-proposal";
|
|
12204
|
+
var toSide = (side) => side === "top" ? "above" : side === "bottom" ? "below" : _nullishCoalesce(side, () => ( "right"));
|
|
12205
|
+
var randomId = (kind) => `${kind}-${Math.random().toString(36).slice(2, 9)}`;
|
|
12206
|
+
var joinClass = (a, b) => typeof a === "string" && a ? `${a} ${b}` : b;
|
|
12207
|
+
function createCanvasProposals(options) {
|
|
12208
|
+
const size2 = _nullishCoalesce(options.defaultNodeSize, () => ( { width: 200, height: 60 }));
|
|
12209
|
+
const makeId = _nullishCoalesce(options.idGenerator, () => ( randomId));
|
|
12210
|
+
const now = _nullishCoalesce(options.now, () => ( Date.now));
|
|
12211
|
+
let state = { proposals: [] };
|
|
12212
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
12213
|
+
const set = (proposals) => {
|
|
12214
|
+
state = { proposals };
|
|
12215
|
+
listeners.forEach((l) => l(state));
|
|
12216
|
+
};
|
|
12217
|
+
const find = (id) => {
|
|
12218
|
+
const proposal = state.proposals.find((p) => p.id === id);
|
|
12219
|
+
if (!proposal) {
|
|
12220
|
+
const ids = state.proposals.map((p) => p.id);
|
|
12221
|
+
throw new Error(`No proposal "${id}". ${ids.length ? `Pending proposals: ${ids.join(", ")}.` : "There are no pending proposals."} Call list_proposals for ids.`);
|
|
12222
|
+
}
|
|
12223
|
+
return proposal;
|
|
12224
|
+
};
|
|
12225
|
+
const rectOf = (node) => ({
|
|
12226
|
+
x: node.position.x,
|
|
12227
|
+
y: node.position.y,
|
|
12228
|
+
width: _nullishCoalesce(_nullishCoalesce(_optionalChain([node, 'access', _524 => _524.measured, 'optionalAccess', _525 => _525.width]), () => ( node.width)), () => ( size2.width)),
|
|
12229
|
+
height: _nullishCoalesce(_nullishCoalesce(_optionalChain([node, 'access', _526 => _526.measured, 'optionalAccess', _527 => _527.height]), () => ( node.height)), () => ( size2.height))
|
|
12230
|
+
});
|
|
12231
|
+
const missing = (proposal) => {
|
|
12232
|
+
const present = new Set(options.getNodes().map((n3) => n3.id));
|
|
12233
|
+
return proposal.anchors.filter((id) => !present.has(id));
|
|
12234
|
+
};
|
|
12235
|
+
const propose = (input) => {
|
|
12236
|
+
const title = typeof input.title === "string" ? input.title.trim() : "";
|
|
12237
|
+
if (!title) throw new Error("A proposal needs a title: what it adds, in a few words.");
|
|
12238
|
+
const nodesIn = _nullishCoalesce(input.nodes, () => ( []));
|
|
12239
|
+
const edgesIn = _nullishCoalesce(input.edges, () => ( []));
|
|
12240
|
+
if (!nodesIn.length && !edgesIn.length) throw new Error("A proposal needs at least one node or edge.");
|
|
12241
|
+
const canvasNodes = options.getNodes();
|
|
12242
|
+
const canvasIds = new Set(canvasNodes.map((n3) => n3.id));
|
|
12243
|
+
const taken = /* @__PURE__ */ new Set([...canvasIds, ...options.getEdges().map((e) => e.id)]);
|
|
12244
|
+
for (const p of state.proposals) {
|
|
12245
|
+
p.nodes.forEach((n3) => taken.add(n3.id));
|
|
12246
|
+
p.edges.forEach((e) => taken.add(e.id));
|
|
12247
|
+
}
|
|
12248
|
+
const rects = {};
|
|
12249
|
+
for (const n3 of canvasNodes) rects[n3.id] = rectOf(n3);
|
|
12250
|
+
for (const p of state.proposals) for (const n3 of p.nodes) rects[n3.id] = rectOf(n3);
|
|
12251
|
+
const fresh = (kind, wanted) => {
|
|
12252
|
+
if (wanted !== void 0) {
|
|
12253
|
+
if (typeof wanted !== "string" || !wanted) throw new Error(`A ${kind} id must be a non-empty string.`);
|
|
12254
|
+
if (taken.has(wanted)) throw new Error(`Id "${wanted}" is already in use on the canvas or in a pending proposal. Pick another or leave it out.`);
|
|
12255
|
+
taken.add(wanted);
|
|
12256
|
+
return wanted;
|
|
12257
|
+
}
|
|
12258
|
+
let id = makeId(kind);
|
|
12259
|
+
while (taken.has(id)) id = makeId(kind);
|
|
12260
|
+
taken.add(id);
|
|
12261
|
+
return id;
|
|
12262
|
+
};
|
|
12263
|
+
const nodes = [];
|
|
12264
|
+
const edges = [];
|
|
12265
|
+
const anchors = /* @__PURE__ */ new Set();
|
|
12266
|
+
const ownIds = /* @__PURE__ */ new Set();
|
|
12267
|
+
const known = (id) => canvasIds.has(id) || ownIds.has(id);
|
|
12268
|
+
nodesIn.forEach((input2, i) => {
|
|
12269
|
+
if (input2.nearNodeId !== void 0 && !known(input2.nearNodeId)) {
|
|
12270
|
+
throw new Error(`nodes[${i}].nearNodeId "${input2.nearNodeId}" is not on the canvas or earlier in this proposal. Use an id from the canvas state.`);
|
|
12271
|
+
}
|
|
12272
|
+
const id = fresh("node", input2.id);
|
|
12273
|
+
const nodeSize = { width: _nullishCoalesce(input2.width, () => ( size2.width)), height: _nullishCoalesce(input2.height, () => ( size2.height)) };
|
|
12274
|
+
let position = input2.position;
|
|
12275
|
+
if (position && (!Number.isFinite(position.x) || !Number.isFinite(position.y))) {
|
|
12276
|
+
throw new Error(`nodes[${i}].position needs finite x and y.`);
|
|
12277
|
+
}
|
|
12278
|
+
if (!position) {
|
|
12279
|
+
const view = _optionalChain([options, 'access', _528 => _528.visibleRect, 'optionalCall', _529 => _529()]);
|
|
12280
|
+
if (input2.nearNodeId) position = _chunkEL4PSKFTcjs.placeBeside.call(void 0, rects, nodeSize, toSide(input2.side), input2.nearNodeId);
|
|
12281
|
+
else if (view) position = _chunkEL4PSKFTcjs.placeInView.call(void 0, rects, nodeSize, view);
|
|
12282
|
+
else if (canvasNodes.length || nodes.length) {
|
|
12283
|
+
const last = _nullishCoalesce(nodes[nodes.length - 1], () => ( canvasNodes[canvasNodes.length - 1]));
|
|
12284
|
+
position = _chunkEL4PSKFTcjs.placeBeside.call(void 0, rects, nodeSize, "right", last.id);
|
|
12285
|
+
} else position = { x: 100, y: 100 };
|
|
12286
|
+
}
|
|
12287
|
+
const type = _nullishCoalesce(input2.type, () => ( options.defaultNodeType));
|
|
12288
|
+
const node = {
|
|
12289
|
+
id,
|
|
12290
|
+
position,
|
|
12291
|
+
data: { ..._nullishCoalesce(input2.data, () => ( {})) },
|
|
12292
|
+
...type !== void 0 ? { type } : {},
|
|
12293
|
+
...input2.width !== void 0 ? { width: input2.width } : {},
|
|
12294
|
+
...input2.height !== void 0 ? { height: input2.height } : {}
|
|
12295
|
+
};
|
|
12296
|
+
nodes.push(node);
|
|
12297
|
+
ownIds.add(id);
|
|
12298
|
+
rects[id] = { ...position, ...nodeSize };
|
|
12299
|
+
if (input2.nearNodeId) {
|
|
12300
|
+
if (canvasIds.has(input2.nearNodeId)) anchors.add(input2.nearNodeId);
|
|
12301
|
+
edges.push({ id: fresh("edge"), source: input2.nearNodeId, target: id });
|
|
12302
|
+
}
|
|
12303
|
+
});
|
|
12304
|
+
edgesIn.forEach((input2, i) => {
|
|
12305
|
+
for (const end of ["source", "target"]) {
|
|
12306
|
+
if (typeof input2[end] !== "string" || !known(input2[end])) {
|
|
12307
|
+
throw new Error(`edges[${i}].${end} "${String(input2[end])}" is not on the canvas or in this proposal.`);
|
|
12308
|
+
}
|
|
12309
|
+
}
|
|
12310
|
+
if (input2.source === input2.target) throw new Error(`edges[${i}] connects "${input2.source}" to itself.`);
|
|
12311
|
+
const id = fresh("edge", input2.id);
|
|
12312
|
+
edges.push({ id, source: input2.source, target: input2.target, ...input2.label ? { label: input2.label } : {} });
|
|
12313
|
+
for (const end of [input2.source, input2.target]) if (canvasIds.has(end)) anchors.add(end);
|
|
12314
|
+
});
|
|
12315
|
+
const proposal = {
|
|
12316
|
+
id: makeId("proposal"),
|
|
12317
|
+
title,
|
|
12318
|
+
...input.rationale ? { rationale: input.rationale } : {},
|
|
12319
|
+
origin: _nullishCoalesce(_nullishCoalesce(input.origin, () => ( options.origin)), () => ( "agent:anonymous")),
|
|
12320
|
+
createdAt: now(),
|
|
12321
|
+
nodes,
|
|
12322
|
+
edges,
|
|
12323
|
+
anchors: [...anchors]
|
|
12324
|
+
};
|
|
12325
|
+
while (state.proposals.some((p) => p.id === proposal.id)) proposal.id = makeId("proposal");
|
|
12326
|
+
set([...state.proposals, proposal]);
|
|
12327
|
+
return proposal;
|
|
12328
|
+
};
|
|
12329
|
+
const accept = (id) => {
|
|
12330
|
+
const proposal = find(id);
|
|
12331
|
+
const reason = _optionalChain([options, 'access', _530 => _530.readOnly, 'optionalCall', _531 => _531()]);
|
|
12332
|
+
if (reason) throw new Error(reason);
|
|
12333
|
+
const gone = missing(proposal);
|
|
12334
|
+
if (gone.length) {
|
|
12335
|
+
throw new Error(`Proposal "${id}" connects to ${gone.map((g) => `"${g}"`).join(", ")}, which ${gone.length > 1 ? "are" : "is"} no longer on the canvas. Reject it and propose again.`);
|
|
12336
|
+
}
|
|
12337
|
+
const nodeIds = proposal.nodes.map((n3) => n3.id);
|
|
12338
|
+
const edgeIds = proposal.edges.map((e) => e.id);
|
|
12339
|
+
const clash = _nullishCoalesce(options.getNodes().find((n3) => nodeIds.includes(n3.id)), () => ( options.getEdges().find((e) => edgeIds.includes(e.id))));
|
|
12340
|
+
if (clash) throw new Error(`Id "${clash.id}" was taken on the canvas after proposal "${id}" was made. Reject it and propose again.`);
|
|
12341
|
+
const nodeSet = new Set(nodeIds);
|
|
12342
|
+
const edgeSet = new Set(edgeIds);
|
|
12343
|
+
const add = () => {
|
|
12344
|
+
options.setNodes([...options.getNodes().filter((n3) => !nodeSet.has(n3.id)), ...proposal.nodes.map((n3) => ({ ...n3 }))]);
|
|
12345
|
+
options.setEdges([...options.getEdges().filter((e) => !edgeSet.has(e.id)), ...proposal.edges.map((e) => ({ ...e }))]);
|
|
12346
|
+
};
|
|
12347
|
+
const remove = () => {
|
|
12348
|
+
options.setNodes(options.getNodes().filter((n3) => !nodeSet.has(n3.id)));
|
|
12349
|
+
options.setEdges(options.getEdges().filter((e) => !edgeSet.has(e.id)));
|
|
12350
|
+
};
|
|
12351
|
+
set(state.proposals.filter((p) => p.id !== id));
|
|
12352
|
+
if (options.history) options.history.execute({ name: proposal.title, origin: proposal.origin, execute: add, undo: remove });
|
|
12353
|
+
else add();
|
|
12354
|
+
return { proposalId: id, nodeIds, edgeIds, historyLabel: proposal.title };
|
|
12355
|
+
};
|
|
12356
|
+
const reject = (id) => {
|
|
12357
|
+
const proposal = find(id);
|
|
12358
|
+
set(state.proposals.filter((p) => p.id !== id));
|
|
12359
|
+
return proposal;
|
|
12360
|
+
};
|
|
12361
|
+
const clear = (origin) => {
|
|
12362
|
+
const dropped = state.proposals.filter((p) => origin === void 0 || p.origin === origin).map((p) => p.id);
|
|
12363
|
+
if (dropped.length) set(state.proposals.filter((p) => !dropped.includes(p.id)));
|
|
12364
|
+
return dropped;
|
|
12365
|
+
};
|
|
12366
|
+
const withGhosts = (nodes, edges) => {
|
|
12367
|
+
if (!state.proposals.length) return { nodes: [...nodes], edges: [...edges] };
|
|
12368
|
+
const present = new Set(nodes.map((n3) => n3.id));
|
|
12369
|
+
const ghostNodes = [];
|
|
12370
|
+
const ghostEdges = [];
|
|
12371
|
+
for (const p of state.proposals) {
|
|
12372
|
+
const meta = { id: p.id, title: p.title };
|
|
12373
|
+
for (const n3 of p.nodes) {
|
|
12374
|
+
if (present.has(n3.id)) continue;
|
|
12375
|
+
present.add(n3.id);
|
|
12376
|
+
ghostNodes.push({
|
|
12377
|
+
...n3,
|
|
12378
|
+
// Flow libraries hide a node until it is measured, and only nodes in the host's state get
|
|
12379
|
+
// measured: give the ghost the size it was placed with.
|
|
12380
|
+
measured: _nullishCoalesce(n3.measured, () => ( { width: _nullishCoalesce(n3.width, () => ( size2.width)), height: _nullishCoalesce(n3.height, () => ( size2.height)) })),
|
|
12381
|
+
draggable: false,
|
|
12382
|
+
selectable: false,
|
|
12383
|
+
connectable: false,
|
|
12384
|
+
deletable: false,
|
|
12385
|
+
className: joinClass(n3.className, CANVAS_PROPOSAL_CLASS),
|
|
12386
|
+
data: { ...n3.data, proposal: meta }
|
|
12387
|
+
});
|
|
12388
|
+
}
|
|
12389
|
+
}
|
|
12390
|
+
for (const p of state.proposals) {
|
|
12391
|
+
for (const e of p.edges) {
|
|
12392
|
+
if (!present.has(e.source) || !present.has(e.target)) continue;
|
|
12393
|
+
ghostEdges.push({ ...e, selectable: false, deletable: false, animated: true, className: joinClass(e.className, CANVAS_PROPOSAL_CLASS) });
|
|
12394
|
+
}
|
|
12395
|
+
}
|
|
12396
|
+
return { nodes: [...nodes, ...ghostNodes], edges: [...edges, ...ghostEdges] };
|
|
12397
|
+
};
|
|
12398
|
+
return {
|
|
12399
|
+
getState: () => state,
|
|
12400
|
+
subscribe: (listener) => {
|
|
12401
|
+
listeners.add(listener);
|
|
12402
|
+
return () => {
|
|
12403
|
+
listeners.delete(listener);
|
|
12404
|
+
};
|
|
12405
|
+
},
|
|
12406
|
+
propose,
|
|
12407
|
+
accept,
|
|
12408
|
+
reject,
|
|
12409
|
+
clear,
|
|
12410
|
+
get: (id) => state.proposals.find((p) => p.id === id),
|
|
12411
|
+
missing: (id) => missing(find(id)),
|
|
12412
|
+
withGhosts
|
|
12413
|
+
};
|
|
12414
|
+
}
|
|
12415
|
+
|
|
12416
|
+
// src/canvas/changeFeed.ts
|
|
12417
|
+
var RUNTIME_NODE_KEYS2 = /* @__PURE__ */ new Set(["selected", "dragging", "measured", "resizing"]);
|
|
12418
|
+
var RUNTIME_EDGE_KEYS2 = /* @__PURE__ */ new Set(["selected"]);
|
|
12419
|
+
var selectedIds = (nodes) => nodes.filter((n3) => n3.selected).map((n3) => n3.id);
|
|
12420
|
+
function diffFields(before, after, ignore) {
|
|
12421
|
+
if (before === after) return [];
|
|
12422
|
+
const fields = [];
|
|
12423
|
+
for (const key of /* @__PURE__ */ new Set([...Object.keys(before), ...Object.keys(after)])) {
|
|
12424
|
+
if (ignore.has(key)) continue;
|
|
12425
|
+
const a = before[key];
|
|
12426
|
+
const b = after[key];
|
|
12427
|
+
if (a === b) continue;
|
|
12428
|
+
if (a && b && typeof a === "object" && typeof b === "object" && JSON.stringify(a) === JSON.stringify(b)) continue;
|
|
12429
|
+
fields.push(key);
|
|
12430
|
+
}
|
|
12431
|
+
return fields;
|
|
12432
|
+
}
|
|
12433
|
+
function createCanvasChangeFeed(options) {
|
|
12434
|
+
const now = _nullishCoalesce(options.now, () => ( Date.now));
|
|
12435
|
+
const nodeIgnore = /* @__PURE__ */ new Set([...RUNTIME_NODE_KEYS2, ..._nullishCoalesce(options.ignoreNodeKeys, () => ( []))]);
|
|
12436
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
12437
|
+
let nodes = options.getNodes();
|
|
12438
|
+
let edges = options.getEdges();
|
|
12439
|
+
let seq = 0;
|
|
12440
|
+
let pending;
|
|
12441
|
+
const check = () => {
|
|
12442
|
+
const nextNodes = options.getNodes();
|
|
12443
|
+
const nextEdges = options.getEdges();
|
|
12444
|
+
if (nextNodes === nodes && nextEdges === edges) return null;
|
|
12445
|
+
const beforeNodes = new Map(nodes.map((n3) => [n3.id, n3]));
|
|
12446
|
+
const afterNodes = new Map(nextNodes.map((n3) => [n3.id, n3]));
|
|
12447
|
+
const beforeEdges = new Map(edges.map((e) => [e.id, e]));
|
|
12448
|
+
const afterEdges = new Map(nextEdges.map((e) => [e.id, e]));
|
|
12449
|
+
const addedNodes = nextNodes.filter((n3) => !beforeNodes.has(n3.id));
|
|
12450
|
+
const removedNodes = nodes.filter((n3) => !afterNodes.has(n3.id));
|
|
12451
|
+
const changedNodes = [];
|
|
12452
|
+
for (const after of nextNodes) {
|
|
12453
|
+
const before = beforeNodes.get(after.id);
|
|
12454
|
+
if (!before) continue;
|
|
12455
|
+
const fields = diffFields(before, after, nodeIgnore);
|
|
12456
|
+
if (fields.length) changedNodes.push({ before, after, fields });
|
|
12457
|
+
}
|
|
12458
|
+
const addedEdges = nextEdges.filter((e) => !beforeEdges.has(e.id));
|
|
12459
|
+
const removedEdges = edges.filter((e) => !afterEdges.has(e.id));
|
|
12460
|
+
const changedEdges = [];
|
|
12461
|
+
for (const after of nextEdges) {
|
|
12462
|
+
const before = beforeEdges.get(after.id);
|
|
12463
|
+
if (!before) continue;
|
|
12464
|
+
const fields = diffFields(before, after, RUNTIME_EDGE_KEYS2);
|
|
12465
|
+
if (fields.length) changedEdges.push({ before, after, fields });
|
|
12466
|
+
}
|
|
12467
|
+
const selBefore = selectedIds(nodes);
|
|
12468
|
+
const selAfter = selectedIds(nextNodes);
|
|
12469
|
+
const selectionChanged = selBefore.length !== selAfter.length || selBefore.some((id, i) => id !== selAfter[i]);
|
|
12470
|
+
nodes = nextNodes;
|
|
12471
|
+
edges = nextEdges;
|
|
12472
|
+
const edited = addedNodes.length + removedNodes.length + changedNodes.length + addedEdges.length + removedEdges.length + changedEdges.length > 0;
|
|
12473
|
+
if (!edited && !selectionChanged) return null;
|
|
12474
|
+
const commit = edited ? pending : void 0;
|
|
12475
|
+
if (edited) pending = void 0;
|
|
12476
|
+
const change = {
|
|
12477
|
+
seq: ++seq,
|
|
12478
|
+
origin: _optionalChain([commit, 'optionalAccess', _532 => _532.kind]) === "execute" || _optionalChain([commit, 'optionalAccess', _533 => _533.kind]) === "merge" ? commit.origin : "user",
|
|
12479
|
+
...commit ? { commit } : {},
|
|
12480
|
+
addedNodes,
|
|
12481
|
+
removedNodes,
|
|
12482
|
+
changedNodes,
|
|
12483
|
+
addedEdges,
|
|
12484
|
+
removedEdges,
|
|
12485
|
+
changedEdges,
|
|
12486
|
+
...selectionChanged ? { selection: { before: selBefore, after: selAfter } } : {},
|
|
12487
|
+
inGesture: nextNodes.some((n3) => n3.dragging || n3.resizing),
|
|
12488
|
+
at: now()
|
|
12489
|
+
};
|
|
12490
|
+
listeners.forEach((l) => l(change));
|
|
12491
|
+
return change;
|
|
12492
|
+
};
|
|
12493
|
+
const noteCommit = (event) => {
|
|
12494
|
+
pending = event;
|
|
12495
|
+
};
|
|
12496
|
+
const offHistory = _optionalChain([options, 'access', _534 => _534.history, 'optionalAccess', _535 => _535.onCommit, 'call', _536 => _536(noteCommit)]);
|
|
12497
|
+
const offCanvas = _optionalChain([options, 'access', _537 => _537.subscribe, 'optionalCall', _538 => _538(() => {
|
|
12498
|
+
check();
|
|
12499
|
+
})]);
|
|
12500
|
+
return {
|
|
12501
|
+
check,
|
|
12502
|
+
subscribe: (listener) => {
|
|
12503
|
+
listeners.add(listener);
|
|
12504
|
+
return () => {
|
|
12505
|
+
listeners.delete(listener);
|
|
12506
|
+
};
|
|
12507
|
+
},
|
|
12508
|
+
reset: () => {
|
|
12509
|
+
nodes = options.getNodes();
|
|
12510
|
+
edges = options.getEdges();
|
|
12511
|
+
pending = void 0;
|
|
12512
|
+
},
|
|
12513
|
+
noteCommit,
|
|
12514
|
+
dispose: () => {
|
|
12515
|
+
_optionalChain([offHistory, 'optionalCall', _539 => _539()]);
|
|
12516
|
+
_optionalChain([offCanvas, 'optionalCall', _540 => _540()]);
|
|
12517
|
+
listeners.clear();
|
|
12518
|
+
}
|
|
12519
|
+
};
|
|
12520
|
+
}
|
|
12521
|
+
|
|
12522
|
+
// src/canvas/proposal-tools.ts
|
|
12523
|
+
var READ2 = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
12524
|
+
var WRITE = { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
|
|
12525
|
+
var labelOf2 = (node) => {
|
|
12526
|
+
const label = _nullishCoalesce(_nullishCoalesce(_optionalChain([node, 'access', _541 => _541.data, 'optionalAccess', _542 => _542.label]), () => ( _optionalChain([node, 'access', _543 => _543.data, 'optionalAccess', _544 => _544.name]))), () => ( _optionalChain([node, 'access', _545 => _545.data, 'optionalAccess', _546 => _546.title])));
|
|
12527
|
+
return typeof label === "string" && label !== "" ? label : void 0;
|
|
12528
|
+
};
|
|
12529
|
+
var proposalIdArg = {
|
|
12530
|
+
type: "object",
|
|
12531
|
+
properties: {
|
|
12532
|
+
proposalId: { type: "string", minLength: 1, description: "Id of a pending proposal, from propose_nodes or list_proposals." }
|
|
12533
|
+
},
|
|
12534
|
+
required: ["proposalId"],
|
|
12535
|
+
additionalProperties: false
|
|
12536
|
+
};
|
|
12537
|
+
function createCanvasProposalToolProvider(proposals, options = {}) {
|
|
12538
|
+
const readOnlyReason = () => {
|
|
12539
|
+
const ro = typeof options.readOnly === "function" ? options.readOnly() : options.readOnly;
|
|
12540
|
+
return ro ? typeof ro === "string" ? ro : "The canvas is read-only: proposals can be made and rejected but not accepted." : null;
|
|
12541
|
+
};
|
|
12542
|
+
const describe = (p) => ({
|
|
12543
|
+
id: p.id,
|
|
12544
|
+
title: p.title,
|
|
12545
|
+
...p.rationale ? { rationale: p.rationale } : {},
|
|
12546
|
+
origin: p.origin,
|
|
12547
|
+
nodes: p.nodes.map((n3) => ({ id: n3.id, ...labelOf2(n3) ? { label: labelOf2(n3) } : {}, position: n3.position })),
|
|
12548
|
+
edges: p.edges.map((e) => ({ id: e.id, source: e.source, target: e.target })),
|
|
12549
|
+
anchors: p.anchors,
|
|
12550
|
+
missing: proposals.missing(p.id),
|
|
12551
|
+
createdAt: new Date(p.createdAt).toISOString()
|
|
12552
|
+
});
|
|
12553
|
+
const proposeTool = {
|
|
12554
|
+
name: "propose_nodes",
|
|
12555
|
+
title: "Propose nodes",
|
|
12556
|
+
description: "Suggests nodes and edges to add to the canvas without adding them: they appear as ghosts that the user accepts or dismisses, so use it for contributions the user did not ask for. A node with nearNodeId is placed beside that node and connected from it; others go in free space. Returns the proposal id, the planned node ids and positions, the edge ids and the canvas nodes it builds on (anchors). Follow with accept_proposal only when the user asked for it; otherwise leave the choice to them.",
|
|
12557
|
+
inputSchema: {
|
|
12558
|
+
type: "object",
|
|
12559
|
+
properties: {
|
|
12560
|
+
title: { type: "string", minLength: 1, description: 'What the suggestion adds, in a few words, e.g. "Caption for the hero image". Becomes the undo step name when accepted.' },
|
|
12561
|
+
rationale: { type: "string", description: "Why it fits what the user is doing, in one sentence. Shown to the user beside the ghost." },
|
|
12562
|
+
nodes: {
|
|
12563
|
+
type: "array",
|
|
12564
|
+
description: "Nodes to suggest, in order; a later node may sit beside an earlier one. Default none.",
|
|
12565
|
+
items: {
|
|
12566
|
+
type: "object",
|
|
12567
|
+
properties: {
|
|
12568
|
+
id: { type: "string", description: "Id for the new node (default generated). Must not be in use." },
|
|
12569
|
+
type: { type: "string", description: "Node type as the canvas renders it (default the canvas default)." },
|
|
12570
|
+
data: { type: "object", description: 'Node data, e.g. { "label": "Caption" }. Default {}.' },
|
|
12571
|
+
position: {
|
|
12572
|
+
type: "object",
|
|
12573
|
+
description: "Top-left corner in canvas coordinates (pixels). Default: placed beside nearNodeId or in free space in view.",
|
|
12574
|
+
properties: { x: { type: "number", description: "Canvas x in pixels." }, y: { type: "number", description: "Canvas y in pixels." } },
|
|
12575
|
+
required: ["x", "y"],
|
|
12576
|
+
additionalProperties: false
|
|
12577
|
+
},
|
|
12578
|
+
width: { type: "number", exclusiveMinimum: 0, description: "Width in pixels, for placement (default 200)." },
|
|
12579
|
+
height: { type: "number", exclusiveMinimum: 0, description: "Height in pixels, for placement (default 60)." },
|
|
12580
|
+
nearNodeId: { type: "string", description: "Id of a canvas node, or an earlier node of this proposal, to place it beside and connect from." },
|
|
12581
|
+
side: { type: "string", enum: ["right", "below", "left", "above", "top", "bottom"], description: "Side of nearNodeId to place it on (default right)." }
|
|
12582
|
+
},
|
|
12583
|
+
additionalProperties: false
|
|
12584
|
+
}
|
|
12585
|
+
},
|
|
12586
|
+
edges: {
|
|
12587
|
+
type: "array",
|
|
12588
|
+
description: "Extra edges, between nodes of this proposal or canvas nodes. Default none.",
|
|
12589
|
+
items: {
|
|
12590
|
+
type: "object",
|
|
12591
|
+
properties: {
|
|
12592
|
+
id: { type: "string", description: "Id for the edge (default generated)." },
|
|
12593
|
+
source: { type: "string", description: "Id of the source node (canvas or this proposal)." },
|
|
12594
|
+
target: { type: "string", description: "Id of the target node (canvas or this proposal)." },
|
|
12595
|
+
label: { type: "string", description: "Edge label. Default none." }
|
|
12596
|
+
},
|
|
12597
|
+
required: ["source", "target"],
|
|
12598
|
+
additionalProperties: false
|
|
12599
|
+
}
|
|
12600
|
+
}
|
|
12601
|
+
},
|
|
12602
|
+
required: ["title"],
|
|
12603
|
+
additionalProperties: false
|
|
12604
|
+
},
|
|
12605
|
+
annotations: { title: "Propose nodes", ...WRITE },
|
|
12606
|
+
handler: (args, context) => {
|
|
12607
|
+
const origin = _optionalChain([context, 'access', _547 => _547.actor, 'optionalAccess', _548 => _548.id]) ? `agent:${context.actor.id}` : options.fallbackOrigin;
|
|
12608
|
+
const proposal = proposals.propose({ title: args.title, rationale: args.rationale, nodes: args.nodes, edges: args.edges, ...origin ? { origin } : {} });
|
|
12609
|
+
const { id: _id, missing: _missing, createdAt: _createdAt, ...rest } = describe(proposal);
|
|
12610
|
+
return { proposalId: proposal.id, ...rest };
|
|
12611
|
+
}
|
|
12612
|
+
};
|
|
12613
|
+
const listTool = {
|
|
12614
|
+
name: "list_proposals",
|
|
12615
|
+
title: "List proposals",
|
|
12616
|
+
description: "Lists the pending proposals (suggested nodes and edges not yet on the canvas): id, title, rationale, who proposed it, its nodes and edges, the canvas nodes it builds on, any of those since removed (missing: it can no longer be accepted), and whether accepting is allowed. Call before accept_proposal or reject_proposal.",
|
|
12617
|
+
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
12618
|
+
annotations: { title: "List proposals", ...READ2 },
|
|
12619
|
+
handler: () => ({ proposals: proposals.getState().proposals.map(describe), readOnly: readOnlyReason() })
|
|
12620
|
+
};
|
|
12621
|
+
const acceptTool = {
|
|
12622
|
+
name: "accept_proposal",
|
|
12623
|
+
title: "Accept a proposal",
|
|
12624
|
+
description: "Adds a pending proposal to the canvas as one undo step, recorded as made by whoever proposed it, and drops it from the pending list. Refuses, changing nothing, when the canvas is read-only or a node the proposal builds on was removed. Returns the added node and edge ids and the undo step name.",
|
|
12625
|
+
inputSchema: proposalIdArg,
|
|
12626
|
+
annotations: { title: "Accept a proposal", ...WRITE },
|
|
12627
|
+
handler: (args) => {
|
|
12628
|
+
const reason = readOnlyReason();
|
|
12629
|
+
if (reason) throw new Error(reason);
|
|
12630
|
+
return proposals.accept(args.proposalId);
|
|
12631
|
+
}
|
|
12632
|
+
};
|
|
12633
|
+
const rejectTool = {
|
|
12634
|
+
name: "reject_proposal",
|
|
12635
|
+
title: "Reject a proposal",
|
|
12636
|
+
description: "Dismisses a pending proposal: its ghosts disappear and the canvas and its history are unchanged. Use it to withdraw a suggestion that no longer fits. Returns the dismissed proposal id and title.",
|
|
12637
|
+
inputSchema: proposalIdArg,
|
|
12638
|
+
annotations: { title: "Reject a proposal", ...WRITE },
|
|
12639
|
+
handler: (args) => {
|
|
12640
|
+
const proposal = proposals.reject(args.proposalId);
|
|
12641
|
+
return { proposalId: proposal.id, title: proposal.title, rejected: true };
|
|
12642
|
+
}
|
|
12643
|
+
};
|
|
12644
|
+
return {
|
|
12645
|
+
id: _nullishCoalesce(options.id, () => ( "canvas-proposals")),
|
|
12646
|
+
...options.namespace !== void 0 ? { namespace: options.namespace } : {},
|
|
12647
|
+
title: "Canvas proposals",
|
|
12648
|
+
description: "Suggest canvas additions as ghosts the user accepts or dismisses, and accept or reject pending suggestions.",
|
|
12649
|
+
skill: "pixerate-canvas",
|
|
12650
|
+
tools: [proposeTool, listTool, acceptTool, rejectTool]
|
|
12651
|
+
};
|
|
12652
|
+
}
|
|
12653
|
+
|
|
12654
|
+
|
|
12655
|
+
|
|
12656
|
+
|
|
12657
|
+
|
|
12202
12658
|
|
|
12203
12659
|
|
|
12204
12660
|
|
|
@@ -12720,4 +13176,4 @@ function createCanvasExplosionToolProvider(target, options = {}) {
|
|
|
12720
13176
|
|
|
12721
13177
|
|
|
12722
13178
|
|
|
12723
|
-
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 = _chunkLJZRHVZVcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkLJZRHVZVcjs.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_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 = _chunkT7QSEKDYcjs.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 = _chunkLJZRHVZVcjs.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 = _chunkT7QSEKDYcjs.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 = _chunkT7QSEKDYcjs.bracketGesture; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeSeed = _chunkHZ547SGQcjs.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 = _chunkT7QSEKDYcjs.checkGesture; exports.circleGesture = _chunkT7QSEKDYcjs.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 = _chunkLJZRHVZVcjs.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.createCanvasEditorDocument = createCanvasEditorDocument; exports.createCanvasEffectsController = createCanvasEffectsController; exports.createCanvasEffectsToolProvider = createCanvasEffectsToolProvider; exports.createCanvasExplosionStateController = createCanvasExplosionStateController; exports.createCanvasExplosionToolProvider = createCanvasExplosionToolProvider; exports.createCanvasGestureRecorder = createCanvasGestureRecorder; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasPlaybackLocator = createCanvasPlaybackLocator; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = _chunkEL4PSKFTcjs.createNodeLookup; exports.crossGesture = _chunkT7QSEKDYcjs.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 = _chunkLJZRHVZVcjs.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 = _chunkUTI5IITZcjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.gestureEdgePoint = _chunkT7QSEKDYcjs.gestureEdgePoint; exports.gestureRandom = _chunkT7QSEKDYcjs.gestureRandom; exports.gestureSeed = _chunkT7QSEKDYcjs.gestureSeed; exports.gestureUnion = _chunkT7QSEKDYcjs.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 = _chunkHZ547SGQcjs.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 = _chunkLJZRHVZVcjs.interpolateAnimationValue; exports.intersectPaths = _chunkGF2RBSDMcjs.intersectPaths; exports.intersectPolygons = _chunkGF2RBSDMcjs.intersectPolygons; exports.invertNodeUpdates = _chunkEL4PSKFTcjs.invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunkDWJJI6RTcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkLJZRHVZVcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunkHZ547SGQcjs.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 = _chunkHZ547SGQcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunkHZ547SGQcjs.loadCanvasBrushstrokeRenderer; exports.lockNodes = _chunkEL4PSKFTcjs.lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunkT7QSEKDYcjs.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 = _chunkUTI5IITZcjs.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 = _chunkLJZRHVZVcjs.normalizeKeyframes; exports.offsetPath = _chunkGF2RBSDMcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunkUTI5IITZcjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkGF2RBSDMcjs.outlineStroke; exports.overlaps = _chunkEL4PSKFTcjs.overlaps; exports.pageHidden = _chunkLJZRHVZVcjs.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 = _chunkUTI5IITZcjs.parseOklab; exports.parseSvgPath = _chunkNM3G4VQTcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkGF2RBSDMcjs.pathBoolean; exports.pathBooleanSelect = _chunkGF2RBSDMcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunkHZ547SGQcjs.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 = _chunkHZ547SGQcjs.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 = _chunkLJZRHVZVcjs.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.renderCanvasBrushSwatch = _chunkHZ547SGQcjs.renderCanvasBrushSwatch; exports.renderShapeBrushstroke = _chunkHZ547SGQcjs.renderShapeBrushstroke; exports.reorderNodes = _chunkEL4PSKFTcjs.reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; 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 = _chunkUTI5IITZcjs.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.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strikeGesture = _chunkT7QSEKDYcjs.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 = _chunkT7QSEKDYcjs.underlineGesture; exports.unionPolygons = _chunkGF2RBSDMcjs.unionPolygons; exports.unitePaths = _chunkGF2RBSDMcjs.unitePaths; exports.unlockNodes = _chunkEL4PSKFTcjs.unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunkHZ547SGQcjs.validateCanvasBrush; exports.validateCanvasBrushPaint = _chunkHZ547SGQcjs.validateCanvasBrushPaint; exports.windingNumber = _chunkGF2RBSDMcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = _chunkEL4PSKFTcjs.withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkLJZRHVZVcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkGF2RBSDMcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
|
|
13179
|
+
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 = _chunkLJZRHVZVcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkLJZRHVZVcjs.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 = _chunkT7QSEKDYcjs.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 = _chunkLJZRHVZVcjs.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 = _chunkT7QSEKDYcjs.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 = _chunkT7QSEKDYcjs.bracketGesture; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeSeed = _chunk5MFDD7SPcjs.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 = _chunkT7QSEKDYcjs.checkGesture; exports.circleGesture = _chunkT7QSEKDYcjs.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 = _chunkLJZRHVZVcjs.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.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = _chunkEL4PSKFTcjs.createNodeLookup; exports.crossGesture = _chunkT7QSEKDYcjs.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 = _chunkLJZRHVZVcjs.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 = _chunkUTI5IITZcjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.gestureEdgePoint = _chunkT7QSEKDYcjs.gestureEdgePoint; exports.gestureRandom = _chunkT7QSEKDYcjs.gestureRandom; exports.gestureSeed = _chunkT7QSEKDYcjs.gestureSeed; exports.gestureUnion = _chunkT7QSEKDYcjs.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 = _chunk5MFDD7SPcjs.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 = _chunkLJZRHVZVcjs.interpolateAnimationValue; exports.intersectPaths = _chunkGF2RBSDMcjs.intersectPaths; exports.intersectPolygons = _chunkGF2RBSDMcjs.intersectPolygons; exports.invertNodeUpdates = _chunkEL4PSKFTcjs.invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunkDWJJI6RTcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkLJZRHVZVcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunk5MFDD7SPcjs.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 = _chunk5MFDD7SPcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunk5MFDD7SPcjs.loadCanvasBrushstrokeRenderer; exports.lockNodes = _chunkEL4PSKFTcjs.lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunkT7QSEKDYcjs.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 = _chunkUTI5IITZcjs.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 = _chunkLJZRHVZVcjs.normalizeKeyframes; exports.offsetPath = _chunkGF2RBSDMcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunkUTI5IITZcjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkGF2RBSDMcjs.outlineStroke; exports.overlaps = _chunkEL4PSKFTcjs.overlaps; exports.pageHidden = _chunkLJZRHVZVcjs.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 = _chunkUTI5IITZcjs.parseOklab; exports.parseSvgPath = _chunkNM3G4VQTcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkGF2RBSDMcjs.pathBoolean; exports.pathBooleanSelect = _chunkGF2RBSDMcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunk5MFDD7SPcjs.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 = _chunk5MFDD7SPcjs.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 = _chunkLJZRHVZVcjs.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.renderCanvasBrushSwatch = _chunk5MFDD7SPcjs.renderCanvasBrushSwatch; exports.renderShapeBrushstroke = _chunk5MFDD7SPcjs.renderShapeBrushstroke; exports.reorderNodes = _chunkEL4PSKFTcjs.reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; 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 = _chunkUTI5IITZcjs.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.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strikeGesture = _chunkT7QSEKDYcjs.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 = _chunkT7QSEKDYcjs.underlineGesture; exports.unionPolygons = _chunkGF2RBSDMcjs.unionPolygons; exports.unitePaths = _chunkGF2RBSDMcjs.unitePaths; exports.unlockNodes = _chunkEL4PSKFTcjs.unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunk5MFDD7SPcjs.validateCanvasBrush; exports.validateCanvasBrushPaint = _chunk5MFDD7SPcjs.validateCanvasBrushPaint; exports.windingNumber = _chunkGF2RBSDMcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = _chunkEL4PSKFTcjs.withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkLJZRHVZVcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkGF2RBSDMcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
|