@pixerate/editor 0.244.0 → 0.245.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 +2 -2
- package/dist/animation-editor/index.js +1 -1
- package/dist/canvas/changeFeed.d.cts +71 -0
- package/dist/canvas/changeFeed.d.ts +71 -0
- package/dist/canvas/index.cjs +483 -27
- package/dist/canvas/index.d.cts +3 -0
- package/dist/canvas/index.d.ts +3 -0
- package/dist/canvas/index.js +482 -26
- 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-4I76OCVD.cjs → chunk-5DLCOQOQ.cjs} +16 -1
- package/dist/{chunk-WGN7AUKB.js → chunk-7YW7T5TJ.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-RNSANXPT.js → chunk-NS62CQ2B.js} +112 -14
- package/dist/{chunk-UZU6DIZA.cjs → chunk-NUTMINJZ.cjs} +45 -45
- 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-W7GRGGBH.cjs → chunk-W7L4HUT2.cjs} +8 -8
- package/dist/{chunk-FJ2MSI43.cjs → chunk-WKPXOGZZ.cjs} +124 -26
- 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/index.cjs +16 -10
- package/dist/index.js +11 -5
- 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 +2 -2
- package/dist/vector/index.js +1 -1
- 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
|
@@ -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 = {}) {
|
|
@@ -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 = _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.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 = _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;
|