@pixerate/editor 0.145.0 → 0.147.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/README.md +4 -2
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/agent/index.cjs +36 -34
- package/dist/agent/index.js +7 -5
- package/dist/animation/index.cjs +5 -3
- package/dist/animation/index.js +4 -2
- package/dist/animation-editor/index.cjs +62 -60
- package/dist/animation-editor/index.js +6 -4
- package/dist/canvas/index.cjs +36 -34
- package/dist/canvas/index.js +19 -17
- package/dist/chart/index.cjs +88 -86
- package/dist/chart/index.js +7 -5
- package/dist/{chunk-WBJ6BG4R.js → chunk-2AQL4JHM.js} +6 -6
- package/dist/{chunk-HLMF3E53.cjs → chunk-2WDZI6QD.cjs} +15 -15
- package/dist/{chunk-ZNHB5RG6.js → chunk-37RLSNQ3.js} +2 -2
- package/dist/{chunk-5WOY52O6.cjs → chunk-4YQKRHMI.cjs} +8 -8
- package/dist/chunk-6ONMQ6WF.js +113 -0
- package/dist/{chunk-L434J57V.cjs → chunk-6QTON3VW.cjs} +16 -16
- package/dist/chunk-AA34BA7G.js +1913 -0
- package/dist/{chunk-QX25HWFL.js → chunk-AY65VQSU.js} +1 -1
- package/dist/{chunk-ONZJD2OD.cjs → chunk-BROJYMWU.cjs} +57 -153
- package/dist/{chunk-YM75DN54.js → chunk-DSZCDNTM.js} +1 -1
- package/dist/{chunk-PUR6BZFA.cjs → chunk-DVLMW3GB.cjs} +53 -53
- package/dist/{chunk-ALUWD3FG.js → chunk-EIUTJPEL.js} +1 -1
- package/dist/{chunk-X65C4DWV.js → chunk-EQ4SF4X4.js} +1 -1
- package/dist/{chunk-77SG47WT.js → chunk-FLOGD3QB.js} +1 -1
- package/dist/chunk-HRLT5BYO.js +133 -0
- package/dist/{chunk-AJSW5GMP.js → chunk-HVQVHUTV.js} +19 -115
- package/dist/{chunk-UR37VCIR.cjs → chunk-I4AHLP7F.cjs} +16 -35
- package/dist/chunk-IPJ3TEYR.cjs +113 -0
- package/dist/chunk-KC7HB5GF.cjs +133 -0
- package/dist/chunk-KY3FYKP3.js +52 -0
- package/dist/chunk-LEUZ4FRC.cjs +52 -0
- package/dist/{chunk-H6FX45CP.cjs → chunk-LIXLD433.cjs} +37 -37
- package/dist/{chunk-6GAYGQDC.js → chunk-O5ML2I6O.js} +3 -3
- package/dist/{chunk-KI2VBONS.js → chunk-OET45HIR.js} +2 -2
- package/dist/{chunk-XNZWATSB.cjs → chunk-QCEQIRJQ.cjs} +85 -85
- package/dist/{chunk-HRI3ZMDM.cjs → chunk-RHXW4TA5.cjs} +3 -3
- package/dist/{chunk-UUTTJK77.cjs → chunk-SUF6WRXR.cjs} +2 -2
- package/dist/{chunk-RN767PO6.js → chunk-SUVZJ2CP.js} +15 -34
- package/dist/{chunk-FLUTRPLY.cjs → chunk-TLMRGLQQ.cjs} +16 -16
- package/dist/{chunk-DAS7M4RY.js → chunk-UILRJQFD.js} +2 -2
- package/dist/chunk-UKCJ43YL.cjs +1913 -0
- package/dist/{chunk-XQ33O5BC.cjs → chunk-X35BV5YT.cjs} +44 -44
- package/dist/{chunk-6HMEHNWW.cjs → chunk-XTU6QO2W.cjs} +26 -26
- package/dist/{chunk-VM6JYWXQ.js → chunk-ZQUANEK4.js} +2 -2
- package/dist/cms/index.cjs +5 -3
- package/dist/cms/index.js +18 -16
- package/dist/color/contrast.d.cts +14 -0
- package/dist/color/contrast.d.ts +14 -0
- package/dist/color/convert.d.cts +30 -0
- package/dist/color/convert.d.ts +30 -0
- package/dist/color/dual.d.cts +98 -0
- package/dist/color/dual.d.ts +98 -0
- package/dist/color/format.d.cts +12 -0
- package/dist/color/format.d.ts +12 -0
- package/dist/color/gamut.d.cts +12 -0
- package/dist/color/gamut.d.ts +12 -0
- package/dist/color/harmony.d.cts +22 -0
- package/dist/color/harmony.d.ts +22 -0
- package/dist/color/index.cjs +115 -0
- package/dist/color/index.d.cts +18 -0
- package/dist/color/index.d.ts +18 -0
- package/dist/color/index.js +115 -0
- package/dist/color/mix.d.cts +11 -0
- package/dist/color/mix.d.ts +11 -0
- package/dist/color/named.d.cts +5 -0
- package/dist/color/named.d.ts +5 -0
- package/dist/color/parse.d.cts +11 -0
- package/dist/color/parse.d.ts +11 -0
- package/dist/color/picker.d.cts +52 -0
- package/dist/color/picker.d.ts +52 -0
- package/dist/color/recent.d.cts +8 -0
- package/dist/color/recent.d.ts +8 -0
- package/dist/color/tools.d.cts +15 -0
- package/dist/color/tools.d.ts +15 -0
- package/dist/color/types.d.cts +41 -0
- package/dist/color/types.d.ts +41 -0
- package/dist/color/vision.d.cts +36 -0
- package/dist/color/vision.d.ts +36 -0
- package/dist/diagram/editorDocument.d.cts +12 -0
- package/dist/diagram/editorDocument.d.ts +12 -0
- package/dist/diagram/index.cjs +35 -1
- package/dist/diagram/index.d.cts +1 -0
- package/dist/diagram/index.d.ts +1 -0
- package/dist/diagram/index.js +34 -0
- package/dist/export/index.cjs +6 -4
- package/dist/export/index.js +5 -3
- package/dist/extensions/index.cjs +10 -8
- package/dist/extensions/index.js +9 -7
- package/dist/gradient/controller.d.cts +109 -0
- package/dist/gradient/controller.d.ts +109 -0
- package/dist/gradient/editor.d.cts +38 -0
- package/dist/gradient/editor.d.ts +38 -0
- package/dist/gradient/index.cjs +1549 -0
- package/dist/gradient/index.d.cts +5 -0
- package/dist/gradient/index.d.ts +5 -0
- package/dist/gradient/index.js +1549 -0
- package/dist/gradient/model.d.cts +94 -0
- package/dist/gradient/model.d.ts +94 -0
- package/dist/gradient/tools.d.cts +11 -0
- package/dist/gradient/tools.d.ts +11 -0
- package/dist/gradient/types.d.cts +44 -0
- package/dist/gradient/types.d.ts +44 -0
- package/dist/image-editor/index.cjs +649 -647
- package/dist/image-editor/index.js +6 -4
- package/dist/index.cjs +19 -17
- package/dist/index.js +16 -14
- package/dist/paint-editor/color.d.cts +3 -13
- package/dist/paint-editor/color.d.ts +3 -13
- package/dist/paint-editor/index.cjs +23 -68
- package/dist/paint-editor/index.js +15 -60
- package/dist/persistence/documentStore.d.cts +51 -0
- package/dist/persistence/documentStore.d.ts +51 -0
- package/dist/persistence/documentTools.d.cts +35 -0
- package/dist/persistence/documentTools.d.ts +35 -0
- package/dist/persistence/editorAutosave.d.cts +33 -0
- package/dist/persistence/editorAutosave.d.ts +33 -0
- package/dist/persistence/editorDocument.d.cts +118 -0
- package/dist/persistence/editorDocument.d.ts +118 -0
- package/dist/persistence/index.cjs +294 -1
- package/dist/persistence/index.d.cts +4 -0
- package/dist/persistence/index.d.ts +4 -0
- package/dist/persistence/index.js +293 -0
- package/dist/vector/index.cjs +950 -948
- package/dist/vector/index.js +5 -3
- package/dist/video-editor/index.cjs +5 -3
- package/dist/video-editor/index.js +4 -2
- package/package.json +21 -1
- package/skills/README.md +1 -0
- package/skills/pixerate-agent-tools/SKILL.md +21 -0
- package/skills/pixerate-color/SKILL.md +69 -0
- package/skills/pixerate-diagram/SKILL.md +13 -0
- package/dist/chunk-45VRG4RB.js +0 -65
- package/dist/chunk-5FXOR7F2.cjs +0 -65
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkLIXLD433cjs = require('../chunk-LIXLD433.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
@@ -31,7 +31,7 @@ var _chunkEBDZWIOPcjs = require('../chunk-EBDZWIOP.cjs');
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _chunkRHXW4TA5cjs = require('../chunk-RHXW4TA5.cjs');
|
|
35
35
|
require('../chunk-BXMIBMVG.cjs');
|
|
36
36
|
require('../chunk-CVFAAZXE.cjs');
|
|
37
37
|
|
|
@@ -68,7 +68,7 @@ var _chunkFJ2MSI43cjs = require('../chunk-FJ2MSI43.cjs');
|
|
|
68
68
|
var _chunk7B5GTJXBcjs = require('../chunk-7B5GTJXB.cjs');
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
var
|
|
71
|
+
var _chunkSUF6WRXRcjs = require('../chunk-SUF6WRXR.cjs');
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
|
|
@@ -80,12 +80,14 @@ var _chunkUUTTJK77cjs = require('../chunk-UUTTJK77.cjs');
|
|
|
80
80
|
var _chunkDWJJI6RTcjs = require('../chunk-DWJJI6RT.cjs');
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
var
|
|
83
|
+
var _chunkLEUZ4FRCcjs = require('../chunk-LEUZ4FRC.cjs');
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
var _chunkA6QWKBJPcjs = require('../chunk-A6QWKBJP.cjs');
|
|
89
|
+
require('../chunk-UKCJ43YL.cjs');
|
|
90
|
+
require('../chunk-IPJ3TEYR.cjs');
|
|
89
91
|
|
|
90
92
|
// src/animation-editor/types.ts
|
|
91
93
|
var MOTION_TRIGGERS = ["click", "hover", "press", "scroll"];
|
|
@@ -589,7 +591,7 @@ function smoothMotionTimes(points, start, duration, pacing = "even") {
|
|
|
589
591
|
function motionTextLayout(nodes, id) {
|
|
590
592
|
const group = _optionalChain([nodes, 'access', _5 => _5.get, 'call', _6 => _6(id), 'optionalAccess', _7 => _7.node]);
|
|
591
593
|
if (!group || group.type !== "group") return null;
|
|
592
|
-
const letters =
|
|
594
|
+
const letters = _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, group).map((p) => ({ id: p.id, b: _optionalChain([nodes, 'access', _8 => _8.get, 'call', _9 => _9(p.id), 'optionalAccess', _10 => _10.bounds]) })).filter((l) => !!l.b && l.b.width + l.b.height > 0);
|
|
593
595
|
if (!letters.length) return null;
|
|
594
596
|
const lines = [];
|
|
595
597
|
for (const l of [...letters].sort((a, c) => a.b.y + a.b.height / 2 - (c.b.y + c.b.height / 2))) {
|
|
@@ -674,21 +676,21 @@ function indexMotionNodes(nodes) {
|
|
|
674
676
|
const out = /* @__PURE__ */ new Map();
|
|
675
677
|
const walk = (list, parentWorld, ancestors) => {
|
|
676
678
|
for (const node of list) {
|
|
677
|
-
const local =
|
|
678
|
-
const bounds =
|
|
679
|
+
const local = _chunkRHXW4TA5cjs.vectorNodeBounds.call(void 0, node);
|
|
680
|
+
const bounds = _chunkRHXW4TA5cjs.vectorNodeBounds.call(void 0, node, parentWorld);
|
|
679
681
|
const center = local ? { x: local.x + local.width / 2, y: local.y + local.height / 2 } : { x: 0, y: 0 };
|
|
680
682
|
if (!out.has(node.id)) out.set(node.id, { node, ancestors, parentWorld, center, bounds, box: local });
|
|
681
|
-
if (node.type === "group") walk(node.children,
|
|
683
|
+
if (node.type === "group") walk(node.children, _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.nodeMatrix.call(void 0, node), parentWorld), [...ancestors, node.id]);
|
|
682
684
|
}
|
|
683
685
|
};
|
|
684
|
-
walk(nodes,
|
|
686
|
+
walk(nodes, _chunkRHXW4TA5cjs.IDENTITY_MATRIX, []);
|
|
685
687
|
indexCache.set(nodes, out);
|
|
686
688
|
return out;
|
|
687
689
|
}
|
|
688
690
|
var solid = (paint) => typeof paint === "string" && paint !== "none" ? paint : void 0;
|
|
689
691
|
function firstPaint(node, key) {
|
|
690
692
|
if (node.type === "path") return solid(node[key]);
|
|
691
|
-
for (const p of
|
|
693
|
+
for (const p of _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node)) {
|
|
692
694
|
const s = solid(p[key]);
|
|
693
695
|
if (s) return s;
|
|
694
696
|
}
|
|
@@ -696,7 +698,7 @@ function firstPaint(node, key) {
|
|
|
696
698
|
}
|
|
697
699
|
function strokeReach(node) {
|
|
698
700
|
let reach = 0;
|
|
699
|
-
for (const p of node.type === "path" ? [node] :
|
|
701
|
+
for (const p of node.type === "path" ? [node] : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node)) {
|
|
700
702
|
if (p.stroke == null || p.stroke === "none") continue;
|
|
701
703
|
const width = _nullishCoalesce(p.strokeWidth, () => ( 1));
|
|
702
704
|
reach = Math.max(reach, p.strokeAlign === "outside" ? width : p.strokeAlign === "inside" ? 0 : width / 2);
|
|
@@ -766,7 +768,7 @@ function motionRestValue(entry, property, artwork) {
|
|
|
766
768
|
case "stroke":
|
|
767
769
|
return _nullishCoalesce((node && firstPaint(node, property)), () => ( "transparent"));
|
|
768
770
|
case "strokeWidth": {
|
|
769
|
-
const path = _optionalChain([node, 'optionalAccess', _13 => _13.type]) === "path" ? node : node ?
|
|
771
|
+
const path = _optionalChain([node, 'optionalAccess', _13 => _13.type]) === "path" ? node : node ? _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node)[0] : void 0;
|
|
770
772
|
return _nullishCoalesce(_optionalChain([path, 'optionalAccess', _14 => _14.strokeWidth]), () => ( 1));
|
|
771
773
|
}
|
|
772
774
|
case "shape":
|
|
@@ -790,7 +792,7 @@ function interpolateMotionValue(from, to, u) {
|
|
|
790
792
|
if (u <= 0) return from;
|
|
791
793
|
if (u >= 1) return to;
|
|
792
794
|
if (typeof from === "string" && typeof to === "string") {
|
|
793
|
-
const mixed =
|
|
795
|
+
const mixed = _chunkLEUZ4FRCcjs.mixColorsOklab.call(void 0, from, to, u);
|
|
794
796
|
if (mixed !== null) return mixed;
|
|
795
797
|
}
|
|
796
798
|
return u < 1 ? from : to;
|
|
@@ -877,12 +879,12 @@ function resolveMotionCamera(camera, scene) {
|
|
|
877
879
|
const r = camera;
|
|
878
880
|
return { x: r.x, y: r.y, width: r.width, height: r.height };
|
|
879
881
|
}
|
|
880
|
-
function motionPathLength(node, parentWorld =
|
|
882
|
+
function motionPathLength(node, parentWorld = _chunkRHXW4TA5cjs.IDENTITY_MATRIX) {
|
|
881
883
|
let longest = 0;
|
|
882
|
-
const paths = node.type === "path" ? [node] :
|
|
884
|
+
const paths = node.type === "path" ? [node] : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node);
|
|
883
885
|
for (const p of paths) {
|
|
884
886
|
try {
|
|
885
|
-
longest = Math.max(longest, _chunkGF2RBSDMcjs.bezierPathLength.call(void 0,
|
|
887
|
+
longest = Math.max(longest, _chunkGF2RBSDMcjs.bezierPathLength.call(void 0, _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, p, parentWorld, { effects: false })));
|
|
886
888
|
} catch (e2) {
|
|
887
889
|
}
|
|
888
890
|
}
|
|
@@ -1135,12 +1137,12 @@ function compileMotionScene(scene) {
|
|
|
1135
1137
|
const order2 = _nullishCoalesce(o.order, () => ( "together"));
|
|
1136
1138
|
const pace = _nullishCoalesce(o.pace, () => ( "time"));
|
|
1137
1139
|
if (order2 === "together" && pace === "time") return null;
|
|
1138
|
-
const paths = entry.node.type === "path" ? [entry.node] :
|
|
1140
|
+
const paths = entry.node.type === "path" ? [entry.node] : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, entry.node);
|
|
1139
1141
|
let list = paths.map((p) => {
|
|
1140
1142
|
const at = nodes.get(p.id);
|
|
1141
1143
|
let first = { x: 0, y: 0 };
|
|
1142
1144
|
try {
|
|
1143
|
-
const m =
|
|
1145
|
+
const m = _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, p, _nullishCoalesce(_optionalChain([at, 'optionalAccess', _41 => _41.parentWorld]), () => ( _chunkRHXW4TA5cjs.IDENTITY_MATRIX)), { effects: false })[0];
|
|
1144
1146
|
if (m && m.type === "M") first = { x: m.x, y: m.y };
|
|
1145
1147
|
} catch (e3) {
|
|
1146
1148
|
}
|
|
@@ -1252,17 +1254,17 @@ function compileMotionScene(scene) {
|
|
|
1252
1254
|
let dx = _nullishCoalesce(_optionalChain([command3, 'access', _44 => _44.by, 'optionalAccess', _45 => _45.x]), () => ( 0));
|
|
1253
1255
|
let dy = _nullishCoalesce(_optionalChain([command3, 'access', _46 => _46.by, 'optionalAccess', _47 => _47.y]), () => ( 0));
|
|
1254
1256
|
if (command3.to) {
|
|
1255
|
-
const inv =
|
|
1256
|
-
const target =
|
|
1257
|
+
const inv = _chunkRHXW4TA5cjs.invertMatrix.call(void 0, entry.parentWorld);
|
|
1258
|
+
const target = _chunkRHXW4TA5cjs.applyMatrix.call(void 0, inv, command3.to);
|
|
1257
1259
|
dx = target.x - (entry.center.x + num2("x"));
|
|
1258
1260
|
dy = target.y - (entry.center.y + num2("y"));
|
|
1259
1261
|
}
|
|
1260
1262
|
if (_optionalChain([command3, 'access', _48 => _48.via, 'optionalAccess', _49 => _49.length])) {
|
|
1261
|
-
const inv =
|
|
1263
|
+
const inv = _chunkRHXW4TA5cjs.invertMatrix.call(void 0, entry.parentWorld);
|
|
1262
1264
|
const x0 = num2("x");
|
|
1263
1265
|
const y0 = num2("y");
|
|
1264
1266
|
const add = command3.blend === "add";
|
|
1265
|
-
const offsets = [{ x: 0, y: 0 }, ...command3.via.map((p) =>
|
|
1267
|
+
const offsets = [{ x: 0, y: 0 }, ...command3.via.map((p) => _chunkRHXW4TA5cjs.applyMatrix.call(void 0, inv, p)).map((p) => ({ x: p.x - entry.center.x - x0, y: p.y - entry.center.y - y0 })), { x: dx, y: dy }];
|
|
1266
1268
|
const times = _optionalChain([command3, 'access', _50 => _50.times, 'optionalAccess', _51 => _51.length]) === command3.via.length ? [start, ...command3.times.map((f) => start + f * (end - start)), end] : smoothMotionTimes(offsets, start, end - start, _nullishCoalesce(command3.pacing, () => ( "even")));
|
|
1267
1269
|
for (const axis of ["x", "y"]) {
|
|
1268
1270
|
const base = add ? 0 : axis === "x" ? x0 : y0;
|
|
@@ -1405,13 +1407,13 @@ function morphBetween(a, b) {
|
|
|
1405
1407
|
let inner = morphCache.get(a);
|
|
1406
1408
|
if (!inner) morphCache.set(a, inner = /* @__PURE__ */ new WeakMap());
|
|
1407
1409
|
let morph = inner.get(b);
|
|
1408
|
-
if (!morph) inner.set(b, morph =
|
|
1410
|
+
if (!morph) inner.set(b, morph = _chunkLIXLD433cjs.createVectorMorph.call(void 0, a, b, { id: a.id }));
|
|
1409
1411
|
return morph;
|
|
1410
1412
|
}
|
|
1411
1413
|
function shapeIn(entry, shape) {
|
|
1412
1414
|
if (shape === entry) return entry.node;
|
|
1413
|
-
const m =
|
|
1414
|
-
return { ...shape.node, ...
|
|
1415
|
+
const m = _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.nodeMatrix.call(void 0, shape.node), shape.parentWorld), _chunkRHXW4TA5cjs.invertMatrix.call(void 0, entry.parentWorld));
|
|
1416
|
+
return { ...shape.node, ..._chunkRHXW4TA5cjs.isIdentityMatrix.call(void 0, m) ? { transform: void 0 } : { transform: m } };
|
|
1415
1417
|
}
|
|
1416
1418
|
function shapeAt(entry, timeline, nodes, time) {
|
|
1417
1419
|
const track = timeline.tracks.get(motionTrackKey(entry.node.id, "shape"));
|
|
@@ -1431,7 +1433,7 @@ function shapeAt(entry, timeline, nodes, time) {
|
|
|
1431
1433
|
function motionFollowRoute(entry, path) {
|
|
1432
1434
|
if (!path || path.node.type !== "path") return null;
|
|
1433
1435
|
try {
|
|
1434
|
-
return _chunkGF2RBSDMcjs.transformBezierPath.call(void 0,
|
|
1436
|
+
return _chunkGF2RBSDMcjs.transformBezierPath.call(void 0, _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, path.node, path.parentWorld, { effects: false }), _chunkRHXW4TA5cjs.invertMatrix.call(void 0, entry.parentWorld));
|
|
1435
1437
|
} catch (e4) {
|
|
1436
1438
|
return null;
|
|
1437
1439
|
}
|
|
@@ -1465,9 +1467,9 @@ function motionNodeOffset(entry, timeline, time, nodes = indexMotionNodes([entry
|
|
|
1465
1467
|
const scaleX = read("scaleX", 1);
|
|
1466
1468
|
const scaleY = read("scaleY", 1);
|
|
1467
1469
|
const c = entry.center;
|
|
1468
|
-
let matrix =
|
|
1470
|
+
let matrix = _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.scaleMatrix.call(void 0, scaleX, scaleY, c), _chunkRHXW4TA5cjs.rotateMatrix.call(void 0, rotation, c)), _chunkRHXW4TA5cjs.translateMatrix.call(void 0, dx, dy));
|
|
1469
1471
|
const along = follow ? followAt(entry, timeline, nodes, time) : null;
|
|
1470
|
-
if (along) matrix =
|
|
1472
|
+
if (along) matrix = _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, matrix, _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.translateMatrix.call(void 0, -c.x, -c.y), _chunkRHXW4TA5cjs.rotateMatrix.call(void 0, along.angle)), _chunkRHXW4TA5cjs.translateMatrix.call(void 0, along.x, along.y)));
|
|
1471
1473
|
return { matrix, dx, dy, rotation, scaleX, scaleY, follow: along };
|
|
1472
1474
|
}
|
|
1473
1475
|
function motionNodeClips(id, timeline, time) {
|
|
@@ -1534,7 +1536,7 @@ function motionFrameAt(scene, time, options = {}) {
|
|
|
1534
1536
|
const start = Math.min(1, Math.max(0, typeof drawStart === "number" ? drawStart : 0));
|
|
1535
1537
|
const end = Math.min(1, Math.max(0, typeof drawEnd === "number" ? drawEnd : 1));
|
|
1536
1538
|
if (start > 0 || end < 1) {
|
|
1537
|
-
const trim =
|
|
1539
|
+
const trim = _chunkRHXW4TA5cjs.createVectorEffect.call(void 0, "trim", MOTION_DRAW_EFFECT_ID, { start: tidy(start * 100), end: tidy(end * 100) });
|
|
1538
1540
|
p = { ...p, effects: [trim, ...(_nullishCoalesce(p.effects, () => ( []))).filter((e) => e.id !== MOTION_DRAW_EFFECT_ID)] };
|
|
1539
1541
|
}
|
|
1540
1542
|
}
|
|
@@ -1548,8 +1550,8 @@ function motionFrameAt(scene, time, options = {}) {
|
|
|
1548
1550
|
if (o >= 1) delete out.opacity;
|
|
1549
1551
|
}
|
|
1550
1552
|
const offset = options.offsets === false ? null : motionNodeOffset(entry, timeline, time, nodes);
|
|
1551
|
-
if (offset && !
|
|
1552
|
-
const m =
|
|
1553
|
+
if (offset && !_chunkRHXW4TA5cjs.isIdentityMatrix.call(void 0, offset.matrix)) {
|
|
1554
|
+
const m = _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _chunkRHXW4TA5cjs.nodeMatrix.call(void 0, out), offset.matrix).map(tidy);
|
|
1553
1555
|
out = { ...out, transform: m };
|
|
1554
1556
|
}
|
|
1555
1557
|
return out;
|
|
@@ -1569,7 +1571,7 @@ function motionFrameToSvg(scene, time, options = {}) {
|
|
|
1569
1571
|
const wrap = { ...options.wrap };
|
|
1570
1572
|
for (const [id, clips] of Object.entries(frame.clips))
|
|
1571
1573
|
wrap[id] = [..._nullishCoalesce(wrap[id], () => ( [])), ...clips.map((clip, i) => ({ clip: { id: `${prefix}reveal-${id}-${i}`, shape: clip.shape, attrs: motionClipAttrs(clip) } }))];
|
|
1572
|
-
return withViewBox(
|
|
1574
|
+
return withViewBox(_chunkRHXW4TA5cjs.vectorDocumentToSvg.call(void 0, frame.document, { ...options, wrap }), frame.camera);
|
|
1573
1575
|
}
|
|
1574
1576
|
function withViewBox(svg, box) {
|
|
1575
1577
|
const f = (n) => String(Math.round(n * 1e3) / 1e3);
|
|
@@ -1752,8 +1754,8 @@ function visibleAt(timeline, id, time, node) {
|
|
|
1752
1754
|
if (Array.isArray(rect) && (rect[2] <= 1e-4 || rect[3] <= 1e-4)) return false;
|
|
1753
1755
|
const circle = clip("clipCircle");
|
|
1754
1756
|
if (Array.isArray(circle) && circle[2] <= 1e-4) return false;
|
|
1755
|
-
const hasFill = node.type === "path" ? !!node.fill && node.fill !== "none" :
|
|
1756
|
-
const drawn = num2("drawEnd", 1) > 0.01 && (node.type === "path" ||
|
|
1757
|
+
const hasFill = node.type === "path" ? !!node.fill && node.fill !== "none" : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node).some((p) => p.fill && p.fill !== "none");
|
|
1758
|
+
const drawn = num2("drawEnd", 1) > 0.01 && (node.type === "path" || _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node).length === 0 || _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node).some((p) => {
|
|
1757
1759
|
const v = trackValue(timeline.tracks.get(motionTrackKey(p.id, "drawEnd")), time);
|
|
1758
1760
|
return typeof v !== "number" || v > 0.01;
|
|
1759
1761
|
}));
|
|
@@ -1839,7 +1841,7 @@ function checkMotionScene(scene) {
|
|
|
1839
1841
|
}
|
|
1840
1842
|
for (const id of targets) {
|
|
1841
1843
|
const node = nodes.get(id).node;
|
|
1842
|
-
const paths = node.type === "path" ? [node] :
|
|
1844
|
+
const paths = node.type === "path" ? [node] : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node);
|
|
1843
1845
|
if (paths.some((p) => p[key] !== void 0 && p[key] !== null && typeof p[key] !== "string"))
|
|
1844
1846
|
issues.push(_chunkEBDZWIOPcjs.motionIssue.call(void 0, "paint-not-color", `"${id}" has a gradient ${key}; it switches to ${color} at the end instead of blending.`, { ...where, ids: [id] }));
|
|
1845
1847
|
}
|
|
@@ -1852,7 +1854,7 @@ function checkMotionScene(scene) {
|
|
|
1852
1854
|
else
|
|
1853
1855
|
for (const id of targets) {
|
|
1854
1856
|
const node = nodes.get(id).node;
|
|
1855
|
-
const paths = node.type === "path" ? [node] :
|
|
1857
|
+
const paths = node.type === "path" ? [node] : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node);
|
|
1856
1858
|
if (paths.some((p) => typeof p[key] !== "string"))
|
|
1857
1859
|
issues.push(_chunkEBDZWIOPcjs.motionIssue.call(void 0, "paint-not-color", `"${id}" has a gradient or no ${key}, so a colour pulse cannot tint it; give it a solid ${key} or pulse the ${key === "fill" ? "stroke" : "fill"}.`, { ...where, ids: [id] }));
|
|
1858
1860
|
}
|
|
@@ -2297,7 +2299,7 @@ function motionNodePose(scene, id, time) {
|
|
|
2297
2299
|
if (!entry) throw new Error(`There is no element ${_chunkEBDZWIOPcjs.namedWithSuggestion.call(void 0, id, [...indexMotionNodes(scene.artwork.nodes).keys()])} in the artwork.`);
|
|
2298
2300
|
const timeline = compileMotionScene(scene);
|
|
2299
2301
|
const drawn = indexMotionNodes(motionFrameAt(scene, time).document.nodes).get(id);
|
|
2300
|
-
const centre =
|
|
2302
|
+
const centre = _chunkRHXW4TA5cjs.applyMatrix.call(void 0, entry.parentWorld, { x: entry.center.x + motionPropertyValue(timeline, id, "x", time), y: entry.center.y + motionPropertyValue(timeline, id, "y", time) });
|
|
2301
2303
|
const paint = (property) => _nullishCoalesce(trackValue(timeline.tracks.get(motionTrackKey(id, property)), time), () => ( motionRestValue(entry, property, scene.artwork)));
|
|
2302
2304
|
const fill = paint("fill");
|
|
2303
2305
|
const stroke = paint("stroke");
|
|
@@ -2644,7 +2646,7 @@ function toFlairSvgMotion(scene, options = {}) {
|
|
|
2644
2646
|
raw: (t) => transformAt(t, true)
|
|
2645
2647
|
});
|
|
2646
2648
|
}
|
|
2647
|
-
const paths = node.type === "path" ? [node] :
|
|
2649
|
+
const paths = node.type === "path" ? [node] : _chunkRHXW4TA5cjs.collectPathNodes.call(void 0, node);
|
|
2648
2650
|
for (const path of paths) {
|
|
2649
2651
|
if (pathsSeen.has(path.id)) continue;
|
|
2650
2652
|
pathsSeen.add(path.id);
|
|
@@ -2666,7 +2668,7 @@ function toFlairSvgMotion(scene, options = {}) {
|
|
|
2666
2668
|
if (shapeSegments.length) {
|
|
2667
2669
|
if (node.type !== "path") notes.push(`"${id}" is a group: its morph or effect animation is not exported (Flair tweens one path's "d").`);
|
|
2668
2670
|
else {
|
|
2669
|
-
const inverse =
|
|
2671
|
+
const inverse = _chunkRHXW4TA5cjs.invertMatrix.call(void 0, _chunkRHXW4TA5cjs.nodeMatrix.call(void 0, node));
|
|
2670
2672
|
channels.push({
|
|
2671
2673
|
id,
|
|
2672
2674
|
kind: "attr",
|
|
@@ -2675,9 +2677,9 @@ function toFlairSvgMotion(scene, options = {}) {
|
|
|
2675
2677
|
exact: () => false,
|
|
2676
2678
|
value: (t) => {
|
|
2677
2679
|
const frame = motionFrameAt(scene, t, { draw: false, offsets: false });
|
|
2678
|
-
const now =
|
|
2680
|
+
const now = _chunkRHXW4TA5cjs.expandVectorAppearance.call(void 0, _optionalChain([indexMotionNodes, 'call', _114 => _114(frame.document.nodes), 'access', _115 => _115.get, 'call', _116 => _116(id), 'optionalAccess', _117 => _117.node]));
|
|
2679
2681
|
if (!now || now.type !== "path") return "";
|
|
2680
|
-
const bezier = _chunkGF2RBSDMcjs.transformBezierPath.call(void 0,
|
|
2682
|
+
const bezier = _chunkGF2RBSDMcjs.transformBezierPath.call(void 0, _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, now, _chunkRHXW4TA5cjs.IDENTITY_MATRIX, { effects: false }), inverse);
|
|
2681
2683
|
return _chunkGF2RBSDMcjs.bezierPathToSvg.call(void 0, bezier, { precision: Math.min(precision, 2) });
|
|
2682
2684
|
}
|
|
2683
2685
|
});
|
|
@@ -2784,7 +2786,7 @@ function toFlairSvgMotion(scene, options = {}) {
|
|
|
2784
2786
|
}
|
|
2785
2787
|
if (scene.motionBlur) notes.push("Motion blur is drawn on the stage only; Flair plays the scene sharp.");
|
|
2786
2788
|
if (trigger && (_nullishCoalesce(scene.loop, () => ( "none"))) !== "none") notes.push(`The scene plays on ${trigger}, so its loop does not apply in Flair.`);
|
|
2787
|
-
let svg =
|
|
2789
|
+
let svg = _chunkRHXW4TA5cjs.vectorDocumentToSvg.call(void 0, { ...scene.artwork, nodes: _chunkRHXW4TA5cjs.expandVectorAppearances.call(void 0, scene.artwork.nodes) }, { pretty: false, precision, wrap });
|
|
2788
2790
|
if (routes.length) svg = svg.replace(/^(<svg[^>]*>)/, `$1<defs>${routes.join("")}</defs>`);
|
|
2789
2791
|
let motion = { svg, animate };
|
|
2790
2792
|
if (_optionalChain([scene, 'access', _120 => _120.controls, 'optionalAccess', _121 => _121.length])) {
|
|
@@ -2868,14 +2870,14 @@ function easingOf(ease, fallback) {
|
|
|
2868
2870
|
return fallback;
|
|
2869
2871
|
}
|
|
2870
2872
|
function poseOf(value, entry) {
|
|
2871
|
-
const t =
|
|
2872
|
-
const o =
|
|
2873
|
+
const t = _chunkRHXW4TA5cjs.parseSvgTransform.call(void 0, String(value));
|
|
2874
|
+
const o = _chunkRHXW4TA5cjs.multiplyMatrices.call(void 0, _nullishCoalesce(_chunkRHXW4TA5cjs.invertMatrix.call(void 0, _chunkRHXW4TA5cjs.nodeMatrix.call(void 0, entry.node)), () => ( [1, 0, 0, 1, 0, 0])), t);
|
|
2873
2875
|
const sx = Math.hypot(o[0], o[1]);
|
|
2874
2876
|
if (!(sx > 1e-9)) return null;
|
|
2875
2877
|
const sy = (o[0] * o[3] - o[1] * o[2]) / sx;
|
|
2876
2878
|
if (Math.abs(o[2] + o[1] / sx * sy) > 1e-6 || Math.abs(o[3] - o[0] / sx * sy) > 1e-6) return null;
|
|
2877
2879
|
const c = entry.center;
|
|
2878
|
-
const moved =
|
|
2880
|
+
const moved = _chunkRHXW4TA5cjs.applyMatrix.call(void 0, o, c);
|
|
2879
2881
|
return { dx: moved.x - c.x, dy: moved.y - c.y, rotation: Math.atan2(o[1], o[0]) * 180 / Math.PI, sx, sy };
|
|
2880
2882
|
}
|
|
2881
2883
|
var near = (a, b, eps = 1e-6) => Math.abs(a - b) < eps;
|
|
@@ -2960,7 +2962,7 @@ function fromFlairSvgMotion(input, options = {}) {
|
|
|
2960
2962
|
const notes = [];
|
|
2961
2963
|
if (!input || typeof input.svg !== "string") throw new Error('Give a Flair SvgMotion: { svg: "<svg \u2026>", animate: [ \u2026 ] }.');
|
|
2962
2964
|
const { motion, controls } = resolvePlaceholders(input, notes);
|
|
2963
|
-
const artwork =
|
|
2965
|
+
const artwork = _chunkRHXW4TA5cjs.parseVectorSvg.call(void 0, motion.svg);
|
|
2964
2966
|
const nodes = indexMotionNodes(artwork.nodes);
|
|
2965
2967
|
const byStep = /* @__PURE__ */ new Map();
|
|
2966
2968
|
for (const anim of _nullishCoalesce(motion.animate, () => ( []))) {
|
|
@@ -3207,9 +3209,9 @@ function toLottie(scene, options = {}) {
|
|
|
3207
3209
|
const items = [];
|
|
3208
3210
|
const shapeSegments = [...timeline.tracks.entries()].filter(([k]) => k.startsWith(`${path.id}\0`) && (k.endsWith("\0shape") || k.includes("\0effect:"))).flatMap(([, v]) => v);
|
|
3209
3211
|
const geometryAt = (t) => {
|
|
3210
|
-
if (!shapeSegments.length) return
|
|
3212
|
+
if (!shapeSegments.length) return _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, path);
|
|
3211
3213
|
const now = _optionalChain([indexMotionNodes, 'call', _130 => _130(motionFrameAt(scene, t, { draw: false, offsets: false }).document.nodes), 'access', _131 => _131.get, 'call', _132 => _132(path.id), 'optionalAccess', _133 => _133.node]);
|
|
3212
|
-
return now && now.type === "path" ?
|
|
3214
|
+
return now && now.type === "path" ? _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, _chunkRHXW4TA5cjs.expandVectorAppearances.call(void 0, [now])[0]) : _chunkRHXW4TA5cjs.vectorPathWorldBezier.call(void 0, path);
|
|
3213
3215
|
};
|
|
3214
3216
|
const rest = lottieContours(_chunkGF2RBSDMcjs.toBezierPath.call(void 0, geometryAt(0)), round3);
|
|
3215
3217
|
rest.forEach((contour, n) => {
|
|
@@ -3282,13 +3284,13 @@ function toLottie(scene, options = {}) {
|
|
|
3282
3284
|
const innerTr = STATIC_TR();
|
|
3283
3285
|
if (node.type === "path") inner = [...pathShapes(node)];
|
|
3284
3286
|
else if (node.type === "text" || node.type === "instance") {
|
|
3285
|
-
const drawn =
|
|
3287
|
+
const drawn = _chunkRHXW4TA5cjs.expandVectorAppearance.call(void 0, node);
|
|
3286
3288
|
inner = drawn.type === "path" ? [...pathShapes(drawn)] : drawn.children.filter((c) => c.type === "path").reverse().flatMap((c) => [...pathShapes(c)]);
|
|
3287
|
-
notes.push(`"${node.id}": text is exported as its outlines${
|
|
3289
|
+
notes.push(`"${node.id}": text is exported as its outlines${_chunkRHXW4TA5cjs.vectorTextHasOutlines.call(void 0, ) ? "" : " (glyph boxes: set an outline text shaper for real glyphs)"}.`);
|
|
3288
3290
|
} else {
|
|
3289
3291
|
inner = shown(node.children).reverse().map(nodeGroup);
|
|
3290
|
-
const m =
|
|
3291
|
-
if (m !==
|
|
3292
|
+
const m = _chunkRHXW4TA5cjs.nodeMatrix.call(void 0, node);
|
|
3293
|
+
if (m !== _chunkRHXW4TA5cjs.IDENTITY_MATRIX) {
|
|
3292
3294
|
const parts = staticParts(m);
|
|
3293
3295
|
if (!parts) notes.push(`"${node.id}": its transform skews, which is not exported; it is drawn without the skew.`);
|
|
3294
3296
|
else {
|
|
@@ -3301,7 +3303,7 @@ function toLottie(scene, options = {}) {
|
|
|
3301
3303
|
const body = { ty: "gr", nm: `${node.id} (own)`, it: [...inner, innerTr] };
|
|
3302
3304
|
return { ty: "gr", nm: _nullishCoalesce(node.name, () => ( node.id)), it: [body, poseTransform(entry)] };
|
|
3303
3305
|
};
|
|
3304
|
-
const artwork = { ...scene.artwork, nodes:
|
|
3306
|
+
const artwork = { ...scene.artwork, nodes: _chunkRHXW4TA5cjs.expandVectorAppearances.call(void 0, scene.artwork.nodes) };
|
|
3305
3307
|
const content = shown(artwork.nodes).reverse().map(nodeGroup);
|
|
3306
3308
|
if (artwork.background && rgba(artwork.background))
|
|
3307
3309
|
content.push({ ty: "gr", nm: "Background", it: [{ ty: "rc", nm: "Background", p: { a: 0, k: [artwork.width / 2, artwork.height / 2] }, s: { a: 0, k: [artwork.width, artwork.height] }, r: { a: 0, k: 0 } }, { ty: "fl", c: { a: 0, k: rgba(artwork.background).map(round3) }, o: { a: 0, k: 100 }, r: 1 }, STATIC_TR()] });
|
|
@@ -3400,11 +3402,11 @@ function preset(prst, w, h) {
|
|
|
3400
3402
|
const poly = (pts) => [{ closed: true, anchors: pts.map(([x, y]) => ({ x, y })) }];
|
|
3401
3403
|
switch (prst) {
|
|
3402
3404
|
case "rect":
|
|
3403
|
-
return [
|
|
3405
|
+
return [_chunkRHXW4TA5cjs.rectSubpath.call(void 0, { x: 0, y: 0, width: w, height: h })];
|
|
3404
3406
|
case "roundRect":
|
|
3405
|
-
return [
|
|
3407
|
+
return [_chunkRHXW4TA5cjs.rectSubpath.call(void 0, { x: 0, y: 0, width: w, height: h }, Math.min(w, h) * 0.16667)];
|
|
3406
3408
|
case "ellipse":
|
|
3407
|
-
return [
|
|
3409
|
+
return [_chunkRHXW4TA5cjs.ellipseSubpath.call(void 0, { x: 0, y: 0, width: w, height: h })];
|
|
3408
3410
|
case "triangle":
|
|
3409
3411
|
return poly([[w / 2, 0], [w, h], [0, h]]);
|
|
3410
3412
|
case "rtTriangle":
|
|
@@ -3512,7 +3514,7 @@ function shapes(ctx, tree, map) {
|
|
|
3512
3514
|
let subpaths = cust ? custom(cust, w, h) : prst ? preset(prst, w, h) : null;
|
|
3513
3515
|
if (!subpaths) {
|
|
3514
3516
|
if (prst) ctx.notes.push(`"${name}" is a ${prst}, drawn as its bounding rectangle.`);
|
|
3515
|
-
subpaths = [
|
|
3517
|
+
subpaths = [_chunkRHXW4TA5cjs.rectSubpath.call(void 0, { x: 0, y: 0, width: w, height: h })];
|
|
3516
3518
|
}
|
|
3517
3519
|
const style = kid(el, "style");
|
|
3518
3520
|
const fill = kid(spPr, "noFill") ? null : _nullishCoalesce(colour(ctx, kid(spPr, "solidFill")), () => ( (el.localName === "cxnSp" ? null : colour(ctx, kid(style, "fillRef")))));
|
|
@@ -3750,7 +3752,7 @@ function nextMotionEffectInstance(scene) {
|
|
|
3750
3752
|
walk(scene.artwork.nodes);
|
|
3751
3753
|
for (let i = 1; ; i++) if (!used.has(`fx${i}`)) return `fx${i}`;
|
|
3752
3754
|
}
|
|
3753
|
-
var motionArtworkSvg = (artwork) =>
|
|
3755
|
+
var motionArtworkSvg = (artwork) => _chunkRHXW4TA5cjs.vectorDocumentToSvg.call(void 0, artwork);
|
|
3754
3756
|
var tag = (commands, source) => commands.map((c) => c.type === "wait" ? c : { ...c, source });
|
|
3755
3757
|
function motionCommandsFromEffect(artwork, motion, source) {
|
|
3756
3758
|
const imported = fromFlairSvgMotion({ svg: motionArtworkSvg(artwork), animate: [..._nullishCoalesce(motion.animate, () => ( []))] });
|
|
@@ -3839,7 +3841,7 @@ var AnimationEditorController = (_class = class {
|
|
|
3839
3841
|
this.readOnly = _nullishCoalesce(options.readOnly, () => ( false));
|
|
3840
3842
|
this.onChange = options.onChange;
|
|
3841
3843
|
if (options.effects) this.effects.set(options.effects);
|
|
3842
|
-
this.player = new (0,
|
|
3844
|
+
this.player = new (0, _chunkSUF6WRXRcjs.AnimationPlayer)({ clock: options.clock, duration: () => compileMotionScene(this.scene).duration, loop: _nullishCoalesce(this.scene.loop, () => ( "none")) });
|
|
3843
3845
|
this.state = this.computeState();
|
|
3844
3846
|
this.connect();
|
|
3845
3847
|
}
|
|
@@ -5077,7 +5079,7 @@ function createAnimationEditorToolProvider(controller, options = {}) {
|
|
|
5077
5079
|
handler: ({ svg }) => {
|
|
5078
5080
|
let artwork;
|
|
5079
5081
|
try {
|
|
5080
|
-
artwork =
|
|
5082
|
+
artwork = _chunkRHXW4TA5cjs.parseVectorSvg.call(void 0, svg);
|
|
5081
5083
|
} catch (error) {
|
|
5082
5084
|
throw new Error(`The SVG could not be read: ${error.message}. Nothing was changed.`);
|
|
5083
5085
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createVectorMorph
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-UILRJQFD.js";
|
|
4
4
|
import {
|
|
5
5
|
MOTION_ISSUE_CODES,
|
|
6
6
|
motionIssue,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
vectorNodeBounds,
|
|
32
32
|
vectorPathWorldBezier,
|
|
33
33
|
vectorTextHasOutlines
|
|
34
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-FLOGD3QB.js";
|
|
35
35
|
import "../chunk-ORDXMBD4.js";
|
|
36
36
|
import "../chunk-M6DNZNVY.js";
|
|
37
37
|
import {
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
} from "../chunk-DS4WGCLJ.js";
|
|
69
69
|
import {
|
|
70
70
|
AnimationPlayer
|
|
71
|
-
} from "../chunk-
|
|
71
|
+
} from "../chunk-AY65VQSU.js";
|
|
72
72
|
import {
|
|
73
73
|
ANIMATION_EASING_LABELS,
|
|
74
74
|
ANIMATION_EASING_PRESETS,
|
|
@@ -80,12 +80,14 @@ import {
|
|
|
80
80
|
} from "../chunk-5UJHB3BW.js";
|
|
81
81
|
import {
|
|
82
82
|
mixColorsOklab
|
|
83
|
-
} from "../chunk-
|
|
83
|
+
} from "../chunk-KY3FYKP3.js";
|
|
84
84
|
import {
|
|
85
85
|
hexToRgba,
|
|
86
86
|
normalizeTokenColor,
|
|
87
87
|
rgbaToHex
|
|
88
88
|
} from "../chunk-2WPNAGHI.js";
|
|
89
|
+
import "../chunk-AA34BA7G.js";
|
|
90
|
+
import "../chunk-6ONMQ6WF.js";
|
|
89
91
|
|
|
90
92
|
// src/animation-editor/types.ts
|
|
91
93
|
var MOTION_TRIGGERS = ["click", "hover", "press", "scroll"];
|