@pixerate/editor 0.128.0 → 0.130.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/animation-editor/index.cjs +55 -55
- package/dist/animation-editor/index.d.cts +5 -5
- package/dist/animation-editor/index.d.ts +5 -5
- package/dist/animation-editor/index.js +2 -2
- package/dist/{bezier-CvgQiYRg.d.cts → bezier-CdoGygwG.d.cts} +1 -1
- package/dist/{bezier-DP4NnJp3.d.ts → bezier-CigmusV_.d.ts} +1 -1
- package/dist/canvas/index.d.cts +7 -7
- package/dist/canvas/index.d.ts +7 -7
- package/dist/{chunk-BEGEWQHD.cjs → chunk-2PXRKMOH.cjs} +36 -36
- package/dist/{chunk-BEGEWQHD.cjs.map → chunk-2PXRKMOH.cjs.map} +1 -1
- package/dist/{chunk-F7Q2NE2Y.js → chunk-ERYGCA72.js} +2 -2
- package/dist/{chunk-A6KHMKI4.js → chunk-L5OTIYOO.js} +2 -2
- package/dist/{chunk-ORE334I6.cjs → chunk-LXGOYRPE.cjs} +366 -68
- package/dist/chunk-LXGOYRPE.cjs.map +1 -0
- package/dist/{chunk-XLUYXUBD.cjs → chunk-PMHPXCJC.cjs} +82 -82
- package/dist/{chunk-XLUYXUBD.cjs.map → chunk-PMHPXCJC.cjs.map} +1 -1
- package/dist/{chunk-ROZFX4QI.js → chunk-PRYMC442.js} +302 -4
- package/dist/chunk-PRYMC442.js.map +1 -0
- package/dist/effects/index.d.cts +4 -4
- package/dist/effects/index.d.ts +4 -4
- package/dist/{export-Cbr9IqpJ.d.cts → export-5WDKJqTy.d.cts} +1 -1
- package/dist/{export-DHrFJ8r_.d.ts → export-B4r8b9Ft.d.ts} +11 -4
- package/dist/{export-ClPKUB-v.d.ts → export-CU_ARP3A.d.ts} +1 -1
- package/dist/{export-BkYQvV56.d.cts → export-CejjC2iI.d.cts} +11 -4
- package/dist/{helpers-C5aAd44p.d.cts → helpers-CzZu51eI.d.cts} +33 -2
- package/dist/{helpers-CPWcK504.d.ts → helpers-X_rycLNJ.d.ts} +33 -2
- package/dist/image-editor/index.cjs +672 -621
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +8 -8
- package/dist/image-editor/index.d.ts +8 -8
- package/dist/image-editor/index.js +65 -14
- package/dist/image-editor/index.js.map +1 -1
- package/dist/{opentype-sQrF3Ry1.d.ts → opentype-CrHAsKh3.d.ts} +2 -2
- package/dist/{opentype-BOewaGQx.d.cts → opentype-DlRMYcCW.d.cts} +2 -2
- package/dist/paint-editor/index.cjs +7 -7
- package/dist/paint-editor/index.d.cts +5 -5
- package/dist/paint-editor/index.d.ts +5 -5
- package/dist/paint-editor/index.js +2 -2
- package/dist/{pathfinder-CnkW7zLI.d.cts → pathfinder-CKfKOVP4.d.cts} +1 -1
- package/dist/{pathfinder-BwJx0_zM.d.ts → pathfinder-Dlss70hL.d.ts} +1 -1
- package/dist/{pool-CTrtciaN.d.ts → pool-DDOo0xJH.d.ts} +1 -1
- package/dist/{pool-C7GtrL34.d.cts → pool-DKic69LD.d.cts} +1 -1
- package/dist/{svg-C4LlFnEw.d.cts → svg-BRaii3pI.d.cts} +2 -2
- package/dist/{svg-CUzZa0EO.d.ts → svg-BYVZeVo0.d.ts} +2 -2
- package/dist/{tools-BpCmUNxb.d.cts → tools-CtheDLDr.d.cts} +1 -1
- package/dist/{tools-AugT22z3.d.ts → tools-D8bZ-7YG.d.ts} +1 -1
- package/dist/vector/index.cjs +884 -874
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.cts +53 -10
- package/dist/vector/index.d.ts +53 -10
- package/dist/vector/index.js +15 -5
- package/dist/vector/index.js.map +1 -1
- package/dist/video-editor/index.d.cts +4 -4
- package/dist/video-editor/index.d.ts +4 -4
- package/dist/{warp-D62N_5VK.d.cts → warp-BFoYxy_s.d.cts} +2 -2
- package/dist/{warp-CIsO617e.d.ts → warp-CZVC8pB5.d.ts} +2 -2
- package/package.json +1 -1
- package/skills/pixerate-image-editor/SKILL.md +1 -1
- package/skills/pixerate-image-editor/references/color-management.md +4 -3
- package/skills/pixerate-vector/SKILL.md +1 -1
- package/skills/pixerate-vector/references/commands.md +2 -0
- package/dist/chunk-ORE334I6.cjs.map +0 -1
- package/dist/chunk-ROZFX4QI.js.map +0 -1
- /package/dist/{chunk-F7Q2NE2Y.js.map → chunk-ERYGCA72.js.map} +0 -0
- /package/dist/{chunk-A6KHMKI4.js.map → chunk-L5OTIYOO.js.map} +0 -0
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
var _chunkBJTCSLF6cjs = require('./chunk-BJTCSLF6.cjs');
|
|
@@ -124,7 +125,7 @@ var VECTOR_TOOLS = [
|
|
|
124
125
|
];
|
|
125
126
|
var VECTOR_TRANSFORM_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w", "rotate"];
|
|
126
127
|
var VECTOR_PATHFINDER_OPERATIONS = ["divide", "trim", "merge", "crop", "outline", "minusBack"];
|
|
127
|
-
var VECTOR_EFFECT_TYPES = ["trim", "roundCorners", "puckerBloat", "twist", "zigzag", "wiggle", "offset", "merge", "repeater", "envelope", "contour", "blockShadow"];
|
|
128
|
+
var VECTOR_EFFECT_TYPES = ["trim", "roundCorners", "puckerBloat", "twist", "zigzag", "wiggle", "offset", "merge", "repeater", "envelope", "contour", "blockShadow", "extrude", "bevel"];
|
|
128
129
|
var VECTOR_MERGE_MODES = ["merge", "add", "subtract", "intersect", "exclude"];
|
|
129
130
|
var VECTOR_FILTER_TYPES = ["dropShadow", "innerShadow", "outerGlow", "innerGlow", "layerBlur", "feather"];
|
|
130
131
|
|
|
@@ -5550,6 +5551,227 @@ function vectorInstanceGroup(node, bake) {
|
|
|
5550
5551
|
}
|
|
5551
5552
|
var composeVectorMatrices = (a, b) => multiplyMatrices(a, b);
|
|
5552
5553
|
|
|
5554
|
+
// src/vector/extrude.ts
|
|
5555
|
+
function vectorPaintSolid(paint) {
|
|
5556
|
+
if (paint == null || paint === "none") return null;
|
|
5557
|
+
if (typeof paint === "string") return paint;
|
|
5558
|
+
const stops = paint.stops;
|
|
5559
|
+
if (_optionalChain([stops, 'optionalAccess', _143 => _143.length])) return stops.reduce((a, b) => Math.abs(b.offset - 0.5) < Math.abs(a.offset - 0.5) ? b : a).color;
|
|
5560
|
+
const colors = paint.colors;
|
|
5561
|
+
if (_optionalChain([colors, 'optionalAccess', _144 => _144.length])) return colors[0];
|
|
5562
|
+
const points = paint.points;
|
|
5563
|
+
return _nullishCoalesce(_optionalChain([points, 'optionalAccess', _145 => _145.find, 'call', _146 => _146((p) => typeof p.color === "string"), 'optionalAccess', _147 => _147.color]), () => ( null));
|
|
5564
|
+
}
|
|
5565
|
+
function shadeVectorColor(color2, amount) {
|
|
5566
|
+
const c = parseVectorColor(color2);
|
|
5567
|
+
if (!c) return color2;
|
|
5568
|
+
const a = Math.min(1, Math.max(-1, amount));
|
|
5569
|
+
const target = a >= 0 ? 1 : 0;
|
|
5570
|
+
const h = (v2) => Math.round(Math.min(1, Math.max(0, v2)) * 255).toString(16).padStart(2, "0");
|
|
5571
|
+
const m = [0, 1, 2].map((k) => c[k] + (target - c[k]) * Math.abs(a));
|
|
5572
|
+
return `#${h(m[0])}${h(m[1])}${h(m[2])}`;
|
|
5573
|
+
}
|
|
5574
|
+
function vectorPathRings(path, tolerance = 0.5) {
|
|
5575
|
+
const rings = [];
|
|
5576
|
+
for (const contour of _chunkBJTCSLF6cjs.pathToContours.call(void 0, path)) {
|
|
5577
|
+
const ring = _chunkBJTCSLF6cjs.flattenChain.call(void 0, _chunkBJTCSLF6cjs.closeContour.call(void 0, contour, true), Math.max(1e-3, tolerance));
|
|
5578
|
+
if (ring.length >= 2) rings.push(ring);
|
|
5579
|
+
}
|
|
5580
|
+
return rings;
|
|
5581
|
+
}
|
|
5582
|
+
function vectorExtrudeFaces(path, params) {
|
|
5583
|
+
const box = _chunkBJTCSLF6cjs.bezierPathBounds.call(void 0, path);
|
|
5584
|
+
if (!box || !path.length) return [];
|
|
5585
|
+
const perspective = params.mode === "perspective";
|
|
5586
|
+
const rad2 = params.angle * Math.PI / 180;
|
|
5587
|
+
const d = [Math.cos(rad2) * Math.max(0, params.depth), Math.sin(rad2) * Math.max(0, params.depth)];
|
|
5588
|
+
const vp = [(box.minX + box.maxX) / 2 + params.vanishingPoint.x, (box.minY + box.maxY) / 2 + params.vanishingPoint.y];
|
|
5589
|
+
const pull = Math.min(1, Math.max(0, params.toward / 100));
|
|
5590
|
+
const back = (p) => perspective ? [p[0] + (vp[0] - p[0]) * pull, p[1] + (vp[1] - p[1]) * pull] : [p[0] + d[0], p[1] + d[1]];
|
|
5591
|
+
if (perspective ? pull <= 0 : Math.hypot(d[0], d[1]) < 1e-9) return [];
|
|
5592
|
+
const lr = params.lightAngle * Math.PI / 180;
|
|
5593
|
+
const light = [Math.cos(lr), Math.sin(lr)];
|
|
5594
|
+
const strength = Math.min(1, Math.max(0, params.shading / 100));
|
|
5595
|
+
const u = perspective ? [0, 0] : [d[0] / Math.hypot(d[0], d[1]), d[1] / Math.hypot(d[0], d[1])];
|
|
5596
|
+
const centre = [(box.minX + box.maxX) / 2, (box.minY + box.maxY) / 2];
|
|
5597
|
+
const aim = Math.atan2(centre[1] - vp[1], centre[0] - vp[0]);
|
|
5598
|
+
const across = (p) => {
|
|
5599
|
+
if (!perspective) return -p[0] * u[1] + p[1] * u[0];
|
|
5600
|
+
let a = Math.atan2(p[1] - vp[1], p[0] - vp[0]) - aim;
|
|
5601
|
+
while (a > Math.PI) a -= 2 * Math.PI;
|
|
5602
|
+
while (a <= -Math.PI) a += 2 * Math.PI;
|
|
5603
|
+
return a;
|
|
5604
|
+
};
|
|
5605
|
+
const towardBack = (p, q, l) => {
|
|
5606
|
+
const lp = across(p);
|
|
5607
|
+
const lq = across(q);
|
|
5608
|
+
const t = Math.abs(lq - lp) < 1e-12 ? 0.5 : Math.min(1, Math.max(0, (l - lp) / (lq - lp)));
|
|
5609
|
+
const x = [p[0] + (q[0] - p[0]) * t, p[1] + (q[1] - p[1]) * t];
|
|
5610
|
+
return perspective ? -Math.hypot(vp[0] - x[0], vp[1] - x[1]) : x[0] * u[0] + x[1] * u[1];
|
|
5611
|
+
};
|
|
5612
|
+
const faces = [];
|
|
5613
|
+
for (const ring of vectorPathRings(path, 0.25)) {
|
|
5614
|
+
for (let i = 0; i < ring.length; i++) {
|
|
5615
|
+
const p = ring[i];
|
|
5616
|
+
const q = ring[(i + 1) % ring.length];
|
|
5617
|
+
const ex = q[0] - p[0];
|
|
5618
|
+
const ey = q[1] - p[1];
|
|
5619
|
+
const len2 = Math.hypot(ex, ey);
|
|
5620
|
+
if (len2 < 1e-9) continue;
|
|
5621
|
+
const pb = back(p);
|
|
5622
|
+
const qb = back(q);
|
|
5623
|
+
const mid = [(p[0] + q[0]) / 2, (p[1] + q[1]) / 2];
|
|
5624
|
+
const away = perspective ? [vp[0] - mid[0], vp[1] - mid[1]] : d;
|
|
5625
|
+
let n2 = [ey / len2, -ex / len2];
|
|
5626
|
+
if (n2[0] * away[0] + n2[1] * away[1] < 0) n2 = [-n2[0], -n2[1]];
|
|
5627
|
+
const shade = (n2[0] * light[0] + n2[1] * light[1]) * strength;
|
|
5628
|
+
const lp = across(p);
|
|
5629
|
+
const lq = across(q);
|
|
5630
|
+
faces.push({
|
|
5631
|
+
p,
|
|
5632
|
+
q,
|
|
5633
|
+
lo: Math.min(lp, lq),
|
|
5634
|
+
hi: Math.max(lp, lq),
|
|
5635
|
+
key: towardBack(p, q, (lp + lq) / 2),
|
|
5636
|
+
face: {
|
|
5637
|
+
shade,
|
|
5638
|
+
path: [{ type: "M", x: p[0], y: p[1] }, { type: "L", x: q[0], y: q[1] }, { type: "L", x: qb[0], y: qb[1] }, { type: "L", x: pb[0], y: pb[1] }, { type: "Z" }]
|
|
5639
|
+
}
|
|
5640
|
+
});
|
|
5641
|
+
}
|
|
5642
|
+
}
|
|
5643
|
+
faces.sort((a, b) => a.key - b.key);
|
|
5644
|
+
const n = faces.length;
|
|
5645
|
+
const after = faces.map(() => []);
|
|
5646
|
+
const before = new Array(n).fill(0);
|
|
5647
|
+
const eps = 1e-9;
|
|
5648
|
+
for (let i = 0; i < n; i++) {
|
|
5649
|
+
for (let j = i + 1; j < n; j++) {
|
|
5650
|
+
const lo = Math.max(faces[i].lo, faces[j].lo);
|
|
5651
|
+
const hi = Math.min(faces[i].hi, faces[j].hi);
|
|
5652
|
+
if (hi - lo <= eps * Math.max(1, Math.abs(hi))) continue;
|
|
5653
|
+
const l = (lo + hi) / 2;
|
|
5654
|
+
const di = towardBack(faces[i].p, faces[i].q, l);
|
|
5655
|
+
const dj = towardBack(faces[j].p, faces[j].q, l);
|
|
5656
|
+
if (Math.abs(di - dj) < 1e-9) continue;
|
|
5657
|
+
const [back0, front] = di < dj ? [i, j] : [j, i];
|
|
5658
|
+
after[back0].push(front);
|
|
5659
|
+
before[front]++;
|
|
5660
|
+
}
|
|
5661
|
+
}
|
|
5662
|
+
const order = [];
|
|
5663
|
+
const done = new Array(n).fill(false);
|
|
5664
|
+
let next = 0;
|
|
5665
|
+
while (order.length < n) {
|
|
5666
|
+
let pick = -1;
|
|
5667
|
+
for (let i = next; i < n; i++) {
|
|
5668
|
+
if (!done[i] && before[i] === 0) {
|
|
5669
|
+
pick = i;
|
|
5670
|
+
break;
|
|
5671
|
+
}
|
|
5672
|
+
}
|
|
5673
|
+
if (pick < 0) pick = done.indexOf(false);
|
|
5674
|
+
done[pick] = true;
|
|
5675
|
+
order.push(pick);
|
|
5676
|
+
for (const k of after[pick]) before[k]--;
|
|
5677
|
+
while (next < n && done[next]) next++;
|
|
5678
|
+
}
|
|
5679
|
+
return order.map((i) => faces[i].face);
|
|
5680
|
+
}
|
|
5681
|
+
|
|
5682
|
+
// src/vector/bevel.ts
|
|
5683
|
+
var MITER_LIMIT = 4;
|
|
5684
|
+
function crossing2(a, b, c, d) {
|
|
5685
|
+
const rx = b[0] - a[0];
|
|
5686
|
+
const ry = b[1] - a[1];
|
|
5687
|
+
const sx = d[0] - c[0];
|
|
5688
|
+
const sy = d[1] - c[1];
|
|
5689
|
+
const den = rx * sy - ry * sx;
|
|
5690
|
+
if (Math.abs(den) < 1e-12) return null;
|
|
5691
|
+
const t = ((c[0] - a[0]) * sy - (c[1] - a[1]) * sx) / den;
|
|
5692
|
+
const u = ((c[0] - a[0]) * ry - (c[1] - a[1]) * rx) / den;
|
|
5693
|
+
return t > 1e-9 && t <= 1 && u >= 0 && u <= 1 ? t : null;
|
|
5694
|
+
}
|
|
5695
|
+
function vectorBevelFaces(path, params, fillRule = "nonzero") {
|
|
5696
|
+
const width = Math.max(0, params.width);
|
|
5697
|
+
if (!path.length || width <= 0) return [];
|
|
5698
|
+
const rings = vectorPathRings(path, 0.25).filter((r) => r.length >= 3);
|
|
5699
|
+
const lr = params.lightAngle * Math.PI / 180;
|
|
5700
|
+
const light = [Math.cos(lr), Math.sin(lr)];
|
|
5701
|
+
const strength = Math.min(1, Math.max(0, params.shading / 100));
|
|
5702
|
+
const faces = [];
|
|
5703
|
+
for (const ring of rings) {
|
|
5704
|
+
const n = ring.length;
|
|
5705
|
+
let best = 0;
|
|
5706
|
+
let bestLen = -1;
|
|
5707
|
+
for (let i = 0; i < n; i++) {
|
|
5708
|
+
const q = ring[(i + 1) % n];
|
|
5709
|
+
const l = Math.hypot(q[0] - ring[i][0], q[1] - ring[i][1]);
|
|
5710
|
+
if (l > bestLen) [best, bestLen] = [i, l];
|
|
5711
|
+
}
|
|
5712
|
+
if (bestLen < 1e-9) continue;
|
|
5713
|
+
const bp = ring[best];
|
|
5714
|
+
const bq = ring[(best + 1) % n];
|
|
5715
|
+
const left2 = [-(bq[1] - bp[1]) / bestLen, (bq[0] - bp[0]) / bestLen];
|
|
5716
|
+
const probe = Math.min(bestLen / 4, 1e-3 * Math.max(1, bestLen));
|
|
5717
|
+
const sign = _chunkBJTCSLF6cjs.pointInRings.call(void 0, [(bp[0] + bq[0]) / 2 + left2[0] * probe, (bp[1] + bq[1]) / 2 + left2[1] * probe], rings, fillRule) ? 1 : -1;
|
|
5718
|
+
const normals = ring.map((p, i) => {
|
|
5719
|
+
const q = ring[(i + 1) % n];
|
|
5720
|
+
const l = Math.hypot(q[0] - p[0], q[1] - p[1]);
|
|
5721
|
+
return l < 1e-9 ? null : [-(q[1] - p[1]) / l * sign, (q[0] - p[0]) / l * sign];
|
|
5722
|
+
});
|
|
5723
|
+
const normalAt = (i, step) => {
|
|
5724
|
+
for (let k = 0; k < n; k++) {
|
|
5725
|
+
const v2 = normals[((i + step * k) % n + n) % n];
|
|
5726
|
+
if (v2) return v2;
|
|
5727
|
+
}
|
|
5728
|
+
return [0, 0];
|
|
5729
|
+
};
|
|
5730
|
+
const inset = ring.map((p, i) => {
|
|
5731
|
+
const a = normalAt(i - 1, -1);
|
|
5732
|
+
const b = normalAt(i, 1);
|
|
5733
|
+
let bx = a[0] + b[0];
|
|
5734
|
+
let by = a[1] + b[1];
|
|
5735
|
+
const bl = Math.hypot(bx, by);
|
|
5736
|
+
if (bl < 1e-9) [bx, by] = [b[0], b[1]];
|
|
5737
|
+
else [bx, by] = [bx / bl, by / bl];
|
|
5738
|
+
const cos = bx * b[0] + by * b[1];
|
|
5739
|
+
let len2 = width / Math.max(cos, 1 / MITER_LIMIT);
|
|
5740
|
+
const end = [p[0] + bx * len2, p[1] + by * len2];
|
|
5741
|
+
let t = 1;
|
|
5742
|
+
for (const other of rings) {
|
|
5743
|
+
const m = other.length;
|
|
5744
|
+
for (let j = 0; j < m; j++) {
|
|
5745
|
+
const c = other[j];
|
|
5746
|
+
const d = other[(j + 1) % m];
|
|
5747
|
+
if (c === p || d === p) continue;
|
|
5748
|
+
const hit = crossing2(p, end, c, d);
|
|
5749
|
+
if (hit !== null && hit < t) t = hit;
|
|
5750
|
+
}
|
|
5751
|
+
}
|
|
5752
|
+
if (t < 1) len2 *= t / 2;
|
|
5753
|
+
return [p[0] + bx * len2, p[1] + by * len2];
|
|
5754
|
+
});
|
|
5755
|
+
for (let i = 0; i < n; i++) {
|
|
5756
|
+
const nrm = normals[i];
|
|
5757
|
+
if (!nrm) continue;
|
|
5758
|
+
const j = (i + 1) % n;
|
|
5759
|
+
const shade = (-nrm[0] * light[0] - nrm[1] * light[1]) * strength;
|
|
5760
|
+
faces.push({
|
|
5761
|
+
shade,
|
|
5762
|
+
path: [
|
|
5763
|
+
{ type: "M", x: ring[i][0], y: ring[i][1] },
|
|
5764
|
+
{ type: "L", x: ring[j][0], y: ring[j][1] },
|
|
5765
|
+
{ type: "L", x: inset[j][0], y: inset[j][1] },
|
|
5766
|
+
{ type: "L", x: inset[i][0], y: inset[i][1] },
|
|
5767
|
+
{ type: "Z" }
|
|
5768
|
+
]
|
|
5769
|
+
});
|
|
5770
|
+
}
|
|
5771
|
+
}
|
|
5772
|
+
return faces;
|
|
5773
|
+
}
|
|
5774
|
+
|
|
5553
5775
|
// src/geom/warp.ts
|
|
5554
5776
|
var WARP_STYLES = [
|
|
5555
5777
|
"arc",
|
|
@@ -6269,7 +6491,9 @@ var VECTOR_EFFECT_DEFAULTS = {
|
|
|
6269
6491
|
},
|
|
6270
6492
|
envelope: { style: "arc", bend: 50, horizontal: 0, vertical: 0, orientation: "horizontal", rows: 2, columns: 2, mesh: null },
|
|
6271
6493
|
contour: { direction: "inside", steps: 4, offset: 6, join: "round", miterLimit: 4, fillColor: "#ffffff", strokeColor: null, acceleration: 0 },
|
|
6272
|
-
blockShadow: { angle: 45, distance: 20, color: "#1e293b", opacity: 100, endOpacity: 100 }
|
|
6494
|
+
blockShadow: { angle: 45, distance: 20, color: "#1e293b", opacity: 100, endOpacity: 100 },
|
|
6495
|
+
extrude: { mode: "parallel", angle: 45, depth: 30, vanishingPoint: { x: 0, y: -300 }, toward: 30, color: null, lightAngle: -135, shading: 60 },
|
|
6496
|
+
bevel: { width: 8, lightAngle: -135, shading: 60, color: null }
|
|
6273
6497
|
};
|
|
6274
6498
|
var VECTOR_EFFECT_LABELS = {
|
|
6275
6499
|
trim: "Trim Paths",
|
|
@@ -6283,7 +6507,9 @@ var VECTOR_EFFECT_LABELS = {
|
|
|
6283
6507
|
repeater: "Repeater",
|
|
6284
6508
|
envelope: "Envelope",
|
|
6285
6509
|
contour: "Contour",
|
|
6286
|
-
blockShadow: "Block Shadow"
|
|
6510
|
+
blockShadow: "Block Shadow",
|
|
6511
|
+
extrude: "Extrude",
|
|
6512
|
+
bevel: "Bevel"
|
|
6287
6513
|
};
|
|
6288
6514
|
var VECTOR_EFFECT_PARAM_SPECS = {
|
|
6289
6515
|
trim: [
|
|
@@ -6385,6 +6611,30 @@ var VECTOR_EFFECT_PARAM_SPECS = {
|
|
|
6385
6611
|
{ key: "opacity", label: "Opacity %", kind: "number", min: 0, max: 100, step: 1, slider: true },
|
|
6386
6612
|
{ key: "endOpacity", label: "End opacity %", kind: "number", min: 0, max: 100, step: 1, slider: true }
|
|
6387
6613
|
],
|
|
6614
|
+
extrude: [
|
|
6615
|
+
{
|
|
6616
|
+
key: "mode",
|
|
6617
|
+
label: "Mode",
|
|
6618
|
+
kind: "select",
|
|
6619
|
+
options: [
|
|
6620
|
+
{ value: "parallel", label: "Parallel" },
|
|
6621
|
+
{ value: "perspective", label: "Perspective" }
|
|
6622
|
+
]
|
|
6623
|
+
},
|
|
6624
|
+
{ key: "angle", label: "Angle \xB0", kind: "number", min: -360, max: 360, step: 1, slider: true },
|
|
6625
|
+
{ key: "depth", label: "Depth", kind: "number", min: 0, max: 2e3, step: 1, slider: true },
|
|
6626
|
+
{ key: "vanishingPoint", label: "Vanishing point", kind: "vec2", step: 1 },
|
|
6627
|
+
{ key: "toward", label: "Toward VP %", kind: "number", min: 0, max: 100, step: 1, slider: true },
|
|
6628
|
+
{ key: "color", label: "Colour", kind: "color" },
|
|
6629
|
+
{ key: "lightAngle", label: "Light \xB0", kind: "number", min: -360, max: 360, step: 1, slider: true },
|
|
6630
|
+
{ key: "shading", label: "Shading %", kind: "number", min: 0, max: 100, step: 1, slider: true }
|
|
6631
|
+
],
|
|
6632
|
+
bevel: [
|
|
6633
|
+
{ key: "width", label: "Width", kind: "number", min: 0, max: 500, step: 0.5, slider: true },
|
|
6634
|
+
{ key: "lightAngle", label: "Light \xB0", kind: "number", min: -360, max: 360, step: 1, slider: true },
|
|
6635
|
+
{ key: "shading", label: "Shading %", kind: "number", min: 0, max: 100, step: 1, slider: true },
|
|
6636
|
+
{ key: "color", label: "Colour", kind: "color" }
|
|
6637
|
+
],
|
|
6388
6638
|
repeater: [
|
|
6389
6639
|
{ key: "copies", label: "Copies", kind: "number", min: 0, max: 50, step: 0.1, slider: true },
|
|
6390
6640
|
{ key: "offset", label: "Offset", kind: "number", min: -10, max: 10, step: 0.1, slider: true },
|
|
@@ -6468,7 +6718,7 @@ function normalizeVectorEffectParams(type, params, base) {
|
|
|
6468
6718
|
if (!defaults) return null;
|
|
6469
6719
|
const out = { ...defaults, ..._nullishCoalesce(base, () => ( {})) };
|
|
6470
6720
|
for (const spec of VECTOR_EFFECT_PARAM_SPECS[type]) {
|
|
6471
|
-
const v2 = _optionalChain([params, 'optionalAccess',
|
|
6721
|
+
const v2 = _optionalChain([params, 'optionalAccess', _148 => _148[spec.key]]);
|
|
6472
6722
|
if (v2 === void 0) continue;
|
|
6473
6723
|
if (spec.kind === "number" && typeof v2 === "number" && Number.isFinite(v2)) out[spec.key] = Math.min(_nullishCoalesce(spec.max, () => ( Infinity)), Math.max(_nullishCoalesce(spec.min, () => ( -Infinity)), v2));
|
|
6474
6724
|
else if (spec.kind === "boolean" && typeof v2 === "boolean") out[spec.key] = v2;
|
|
@@ -6480,7 +6730,7 @@ function normalizeVectorEffectParams(type, params, base) {
|
|
|
6480
6730
|
const o = out;
|
|
6481
6731
|
o.rows = Math.round(o.rows);
|
|
6482
6732
|
o.columns = Math.round(o.columns);
|
|
6483
|
-
const given = _optionalChain([params, 'optionalAccess',
|
|
6733
|
+
const given = _optionalChain([params, 'optionalAccess', _149 => _149.mesh]);
|
|
6484
6734
|
let mesh = given !== void 0 ? isValidWarpMesh(given) ? cloneMesh(given) : null : o.mesh;
|
|
6485
6735
|
if (o.style !== "mesh") mesh = null;
|
|
6486
6736
|
if (mesh && given !== void 0) {
|
|
@@ -6497,10 +6747,10 @@ function createVectorEffect(type, id, params) {
|
|
|
6497
6747
|
}
|
|
6498
6748
|
var isEnabled = (e) => e.enabled !== false && !!VECTOR_EFFECT_DEFAULTS[e.type];
|
|
6499
6749
|
function activeVectorEffects(node) {
|
|
6500
|
-
return _nullishCoalesce(_optionalChain([node, 'access',
|
|
6750
|
+
return _nullishCoalesce(_optionalChain([node, 'access', _150 => _150.effects, 'optionalAccess', _151 => _151.filter, 'call', _152 => _152(isEnabled)]), () => ( []));
|
|
6501
6751
|
}
|
|
6502
6752
|
function hasOwnVectorAppearance(node) {
|
|
6503
|
-
return node.type === "text" || node.type === "instance" || node.type === "group" && !!node.liveBoolean || isVectorFrame(node) || isVectorSymmetryGroup(node) || !!_optionalChain([node, 'access',
|
|
6753
|
+
return node.type === "text" || node.type === "instance" || node.type === "group" && !!node.liveBoolean || isVectorFrame(node) || isVectorSymmetryGroup(node) || !!_optionalChain([node, 'access', _153 => _153.effects, 'optionalAccess', _154 => _154.some, 'call', _155 => _155(isEnabled)]);
|
|
6504
6754
|
}
|
|
6505
6755
|
var liveCache = /* @__PURE__ */ new WeakMap();
|
|
6506
6756
|
function hasVectorAppearance(node) {
|
|
@@ -6512,7 +6762,7 @@ function hasVectorAppearance(node) {
|
|
|
6512
6762
|
return v2;
|
|
6513
6763
|
}
|
|
6514
6764
|
function isVectorLiveBoolean(node) {
|
|
6515
|
-
return _optionalChain([node, 'optionalAccess',
|
|
6765
|
+
return _optionalChain([node, 'optionalAccess', _156 => _156.type]) === "group" && !!node.liveBoolean;
|
|
6516
6766
|
}
|
|
6517
6767
|
function vectorOperandOperation(group, child) {
|
|
6518
6768
|
return _nullishCoalesce(_nullishCoalesce(child.booleanOperation, () => ( group.liveBoolean)), () => ( "union"));
|
|
@@ -6629,7 +6879,7 @@ var compareOrder = (a, b) => {
|
|
|
6629
6879
|
for (let i = 0; i < n; i++) if (a[i] !== b[i]) return a[i] - b[i];
|
|
6630
6880
|
return a.length - b.length;
|
|
6631
6881
|
};
|
|
6632
|
-
var add3 = (a, b) => ({ x: a.x + (_nullishCoalesce(_optionalChain([b, 'optionalAccess',
|
|
6882
|
+
var add3 = (a, b) => ({ x: a.x + (_nullishCoalesce(_optionalChain([b, 'optionalAccess', _157 => _157.x]), () => ( 0))), y: a.y + (_nullishCoalesce(_optionalChain([b, 'optionalAccess', _158 => _158.y]), () => ( 0))) });
|
|
6633
6883
|
var mapPaths = (shapes, fn) => {
|
|
6634
6884
|
const out = fn(shapes.map((s) => s.path));
|
|
6635
6885
|
return shapes.map((s, i) => ({ ...s, path: _nullishCoalesce(out[i], () => ( [])) }));
|
|
@@ -6657,7 +6907,7 @@ function contourShapes(shapes, c) {
|
|
|
6657
6907
|
const power = 2 ** (Math.min(100, Math.max(-100, c.acceleration)) / 50);
|
|
6658
6908
|
for (let k = 1; k <= n; k++) {
|
|
6659
6909
|
const [path] = offsetPaths([s.path], (outside ? 1 : -1) * step * k, c.join, c.miterLimit, 1, 0);
|
|
6660
|
-
if (!_optionalChain([path, 'optionalAccess',
|
|
6910
|
+
if (!_optionalChain([path, 'optionalAccess', _159 => _159.length])) break;
|
|
6661
6911
|
const t = (k / n) ** power;
|
|
6662
6912
|
const source = { ...s.source, fill: _nullishCoalesce(blendPaint(s.source.fill, c.fillColor, t), () => ( null)), stroke: _nullishCoalesce(blendPaint(s.source.stroke, c.strokeColor, t), () => ( null)), fills: void 0, strokes: void 0 };
|
|
6663
6913
|
out.push({ source, path, opacity: s.opacity, order: [outside ? n - k : k, ...s.order] });
|
|
@@ -6701,6 +6951,43 @@ function blockShadowShapes(shapes, b) {
|
|
|
6701
6951
|
}
|
|
6702
6952
|
return [...shadows, ...shapes.map((s) => ({ ...s, order: [1, ...s.order] }))];
|
|
6703
6953
|
}
|
|
6954
|
+
function extrudeShapes(shapes, x) {
|
|
6955
|
+
const out = [];
|
|
6956
|
+
for (const s of shapes) {
|
|
6957
|
+
const base = _nullishCoalesce(_nullishCoalesce(x.color, () => ( vectorPaintSolid(s.source.fill))), () => ( "#808080"));
|
|
6958
|
+
vectorExtrudeFaces(s.path, x).forEach((f, k) => {
|
|
6959
|
+
const color2 = shadeVectorColor(base, f.shade);
|
|
6960
|
+
const source = { ...s.source, fill: color2, stroke: color2, strokeWidth: 0.5, strokeLinejoin: "round", strokeAlign: void 0, fills: void 0, strokes: void 0, fillRule: "nonzero", startArrow: void 0, endArrow: void 0, strokeDasharray: void 0, strokeWidthProfile: void 0, filters: void 0 };
|
|
6961
|
+
out.push({ source, path: f.path, opacity: s.opacity, order: [...s.order, 0, k] });
|
|
6962
|
+
});
|
|
6963
|
+
out.push({ ...s, order: [...s.order, 1] });
|
|
6964
|
+
}
|
|
6965
|
+
return out;
|
|
6966
|
+
}
|
|
6967
|
+
function bevelShapes(shapes, b) {
|
|
6968
|
+
const out = [];
|
|
6969
|
+
for (const s of shapes) {
|
|
6970
|
+
const fillRule = s.source.fillRule === "evenodd" ? "evenodd" : "nonzero";
|
|
6971
|
+
const faces = vectorBevelFaces(s.path, b, fillRule);
|
|
6972
|
+
if (!faces.length) {
|
|
6973
|
+
out.push(s);
|
|
6974
|
+
continue;
|
|
6975
|
+
}
|
|
6976
|
+
const base = _nullishCoalesce(_nullishCoalesce(b.color, () => ( vectorPaintSolid(s.source.fill))), () => ( "#808080"));
|
|
6977
|
+
const fillOnly = { ...s.source, stroke: null, strokes: void 0 };
|
|
6978
|
+
out.push({ ...s, source: fillOnly, order: [...s.order, 0] });
|
|
6979
|
+
faces.forEach((f, k) => {
|
|
6980
|
+
const color2 = shadeVectorColor(base, f.shade);
|
|
6981
|
+
const source = { ...s.source, fill: color2, stroke: color2, strokeWidth: 0.5, strokeLinejoin: "round", strokeAlign: void 0, fills: void 0, strokes: void 0, fillRule: "nonzero", startArrow: void 0, endArrow: void 0, strokeDasharray: void 0, strokeWidthProfile: void 0, filters: void 0 };
|
|
6982
|
+
out.push({ source, path: f.path, opacity: s.opacity, order: [...s.order, 1, k] });
|
|
6983
|
+
});
|
|
6984
|
+
const [middle] = offsetPaths([s.path], -b.width, "miter", 4, 1, 0);
|
|
6985
|
+
if (_optionalChain([middle, 'optionalAccess', _160 => _160.length])) out.push({ ...s, source: fillOnly, path: middle, order: [...s.order, 2] });
|
|
6986
|
+
const hasStroke = _optionalChain([s, 'access', _161 => _161.source, 'access', _162 => _162.strokes, 'optionalAccess', _163 => _163.length]) || s.source.stroke != null && s.source.stroke !== "none";
|
|
6987
|
+
if (hasStroke) out.push({ ...s, source: { ...s.source, fill: null, fills: void 0 }, order: [...s.order, 3] });
|
|
6988
|
+
}
|
|
6989
|
+
return out;
|
|
6990
|
+
}
|
|
6704
6991
|
function applyVectorEffects(shapes, effects) {
|
|
6705
6992
|
let list = shapes.slice();
|
|
6706
6993
|
for (const e of _nullishCoalesce(effects, () => ( []))) {
|
|
@@ -6747,6 +7034,12 @@ function applyVectorEffects(shapes, effects) {
|
|
|
6747
7034
|
case "blockShadow":
|
|
6748
7035
|
list = blockShadowShapes(list, e.params);
|
|
6749
7036
|
break;
|
|
7037
|
+
case "extrude":
|
|
7038
|
+
list = extrudeShapes(list, e.params);
|
|
7039
|
+
break;
|
|
7040
|
+
case "bevel":
|
|
7041
|
+
list = bevelShapes(list, e.params);
|
|
7042
|
+
break;
|
|
6750
7043
|
case "repeater": {
|
|
6751
7044
|
const r = e.params;
|
|
6752
7045
|
const copies = repeatPaths(
|
|
@@ -6823,10 +7116,10 @@ function vectorEffectInputBounds(node, effectId) {
|
|
|
6823
7116
|
return paths ? pathsBounds(paths) : null;
|
|
6824
7117
|
}
|
|
6825
7118
|
function vectorNodeEnvelope(node) {
|
|
6826
|
-
return _nullishCoalesce(_optionalChain([node, 'optionalAccess',
|
|
7119
|
+
return _nullishCoalesce(_optionalChain([node, 'optionalAccess', _164 => _164.effects, 'optionalAccess', _165 => _165.find, 'call', _166 => _166((e) => e.type === "envelope" && e.enabled !== false)]), () => ( null));
|
|
6827
7120
|
}
|
|
6828
7121
|
function vectorEnvelopeFrame(node, effectId) {
|
|
6829
|
-
const e = effectId ? _optionalChain([node, 'access',
|
|
7122
|
+
const e = effectId ? _optionalChain([node, 'access', _167 => _167.effects, 'optionalAccess', _168 => _168.find, 'call', _169 => _169((x) => x.id === effectId)]) : vectorNodeEnvelope(node);
|
|
6830
7123
|
if (!e || e.type !== "envelope") return null;
|
|
6831
7124
|
const bounds = vectorEffectInputBounds(node, e.id);
|
|
6832
7125
|
if (!bounds || !(bounds.width > 0 && bounds.height > 0)) return null;
|
|
@@ -6887,7 +7180,7 @@ function placement(node) {
|
|
|
6887
7180
|
...node.blendStep ? { blendStep: true } : {},
|
|
6888
7181
|
...node.booleanOperation ? { booleanOperation: node.booleanOperation } : {},
|
|
6889
7182
|
...node.blendMode ? { blendMode: node.blendMode } : {},
|
|
6890
|
-
..._optionalChain([node, 'access',
|
|
7183
|
+
..._optionalChain([node, 'access', _170 => _170.filters, 'optionalAccess', _171 => _171.length]) ? { filters: node.filters } : {}
|
|
6891
7184
|
};
|
|
6892
7185
|
}
|
|
6893
7186
|
function vectorAppearanceNodes(node) {
|
|
@@ -7009,7 +7302,7 @@ function vectorEnteredGroups(nodes, ids) {
|
|
|
7009
7302
|
// src/vector/connectors.ts
|
|
7010
7303
|
var SIDES = ["top", "right", "bottom", "left", "center"];
|
|
7011
7304
|
function isVectorConnector(node) {
|
|
7012
|
-
return _optionalChain([node, 'optionalAccess',
|
|
7305
|
+
return _optionalChain([node, 'optionalAccess', _172 => _172.type]) === "path" && !!node.connector;
|
|
7013
7306
|
}
|
|
7014
7307
|
function vectorConnectionSites(nodes, id) {
|
|
7015
7308
|
const node = findVectorNode(nodes, id);
|
|
@@ -7066,7 +7359,7 @@ function facingSite(sites, toward) {
|
|
|
7066
7359
|
}
|
|
7067
7360
|
function storedEnds(node, world) {
|
|
7068
7361
|
const sp = node.subpaths[0];
|
|
7069
|
-
if (!_optionalChain([sp, 'optionalAccess',
|
|
7362
|
+
if (!_optionalChain([sp, 'optionalAccess', _173 => _173.anchors, 'access', _174 => _174.length])) return null;
|
|
7070
7363
|
const a = sp.anchors[0];
|
|
7071
7364
|
const b = sp.anchors[sp.anchors.length - 1];
|
|
7072
7365
|
return [applyMatrix(world, a), applyMatrix(world, b)];
|
|
@@ -7173,8 +7466,8 @@ function routeVectorConnector(nodes, id) {
|
|
|
7173
7466
|
}));
|
|
7174
7467
|
return {
|
|
7175
7468
|
subpaths: [{ closed: false, anchors: local }],
|
|
7176
|
-
startSide: _nullishCoalesce(_optionalChain([s, 'optionalAccess',
|
|
7177
|
-
endSide: _nullishCoalesce(_optionalChain([e, 'optionalAccess',
|
|
7469
|
+
startSide: _nullishCoalesce(_optionalChain([s, 'optionalAccess', _175 => _175.side]), () => ( null)),
|
|
7470
|
+
endSide: _nullishCoalesce(_optionalChain([e, 'optionalAccess', _176 => _176.side]), () => ( null)),
|
|
7178
7471
|
dropped: { start: !!startGlue && !s, end: !!endGlue && !e }
|
|
7179
7472
|
};
|
|
7180
7473
|
}
|
|
@@ -7186,7 +7479,7 @@ function sameSubpaths(a, b) {
|
|
|
7186
7479
|
const o = b[i];
|
|
7187
7480
|
return sp.closed === o.closed && sp.anchors.length === o.anchors.length && sp.anchors.every((p, k) => {
|
|
7188
7481
|
const q = o.anchors[k];
|
|
7189
|
-
return samePoint(p, q) && samePoint(p.in, q.in) && samePoint(p.out, q.out) && (_nullishCoalesce(_optionalChain([p, 'access',
|
|
7482
|
+
return samePoint(p, q) && samePoint(p.in, q.in) && samePoint(p.out, q.out) && (_nullishCoalesce(_optionalChain([p, 'access', _177 => _177.corner, 'optionalAccess', _178 => _178.radius]), () => ( 0))) === (_nullishCoalesce(_optionalChain([q, 'access', _179 => _179.corner, 'optionalAccess', _180 => _180.radius]), () => ( 0)));
|
|
7190
7483
|
});
|
|
7191
7484
|
});
|
|
7192
7485
|
}
|
|
@@ -7465,7 +7758,7 @@ function applyVectorCornersAttribute(subpaths, value) {
|
|
|
7465
7758
|
for (const item of value.trim().split(/\s+/)) {
|
|
7466
7759
|
const m = /^(\d+)\.(\d+):([\d.eE+-]+)(?::([a-z]+))?$/.exec(item);
|
|
7467
7760
|
if (!m) continue;
|
|
7468
|
-
const a = _optionalChain([subpaths, 'access',
|
|
7761
|
+
const a = _optionalChain([subpaths, 'access', _181 => _181[+m[1]], 'optionalAccess', _182 => _182.anchors, 'access', _183 => _183[+m[2]]]);
|
|
7469
7762
|
const radius = parseFloat(m[3]);
|
|
7470
7763
|
if (!a || !(radius > 0)) continue;
|
|
7471
7764
|
const kind = VECTOR_CORNER_KINDS.includes(m[4]) ? m[4] : void 0;
|
|
@@ -7490,7 +7783,7 @@ function vectorPaintToSvg(paint, gradientId, options = {}) {
|
|
|
7490
7783
|
const area2 = bounds2 ? { x: bounds2.x - reach2, y: bounds2.y - reach2, width: bounds2.width + 2 * reach2, height: bounds2.height + 2 * reach2 } : null;
|
|
7491
7784
|
const key2 = `${gradientId}|${_nullishCoalesce(options.role, () => ( "fill"))}|${_nullishCoalesce(options.precision, () => ( 3))}|${area2 ? [area2.x, area2.y, area2.width, area2.height].join(",") : ""}`;
|
|
7492
7785
|
let byKey2 = paintCache.get(paint);
|
|
7493
|
-
const hit = _optionalChain([byKey2, 'optionalAccess',
|
|
7786
|
+
const hit = _optionalChain([byKey2, 'optionalAccess', _184 => _184.get, 'call', _185 => _185(key2)]);
|
|
7494
7787
|
if (hit) return { value: `url(#${gradientId})`, defs: hit };
|
|
7495
7788
|
const defs2 = vectorShadedSvgDefs(paint, gradientId, { bounds: bounds2, area: area2, precision: _nullishCoalesce(options.precision, () => ( 3)) });
|
|
7496
7789
|
if (!byKey2) paintCache.set(paint, byKey2 = /* @__PURE__ */ new Map());
|
|
@@ -7502,7 +7795,7 @@ function vectorPaintToSvg(paint, gradientId, options = {}) {
|
|
|
7502
7795
|
const precision = _nullishCoalesce(options.precision, () => ( 3));
|
|
7503
7796
|
const key = `${gradientId}|${role}|${precision}`;
|
|
7504
7797
|
const owner = _nullishCoalesce(options.node, () => ( paint));
|
|
7505
|
-
const cached = _optionalChain([paintCache, 'access',
|
|
7798
|
+
const cached = _optionalChain([paintCache, 'access', _186 => _186.get, 'call', _187 => _187(owner), 'optionalAccess', _188 => _188.get, 'call', _189 => _189(key)]);
|
|
7506
7799
|
if (cached && (!options.node || (role === "fill" ? options.node.fill : options.node.stroke) === paint)) return { value: `url(#${gradientId})`, defs: cached };
|
|
7507
7800
|
const node = options.node;
|
|
7508
7801
|
const bounds = node ? vectorPathLocalBounds(node) : null;
|
|
@@ -7556,7 +7849,7 @@ function vectorNodeLocalPaintBounds(node) {
|
|
|
7556
7849
|
}
|
|
7557
7850
|
var filterCache = /* @__PURE__ */ new WeakMap();
|
|
7558
7851
|
function vectorNodeFilterSvg(node, id) {
|
|
7559
|
-
if (!_optionalChain([node, 'access',
|
|
7852
|
+
if (!_optionalChain([node, 'access', _190 => _190.filters, 'optionalAccess', _191 => _191.length])) return null;
|
|
7560
7853
|
const hit = filterCache.get(node);
|
|
7561
7854
|
if (hit && hit.id === id) return hit.filter;
|
|
7562
7855
|
const active = activeVectorFilters(node);
|
|
@@ -7640,7 +7933,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7640
7933
|
if (node.type === "path" && node.connector) out2 += ` data-vector-connector="${escapeAttr2(JSON.stringify(node.connector))}"`;
|
|
7641
7934
|
const blend = vectorBlendModeCss(node.blendMode);
|
|
7642
7935
|
if (blend) out2 += ` style="mix-blend-mode:${blend}"`;
|
|
7643
|
-
if (_optionalChain([node, 'access',
|
|
7936
|
+
if (_optionalChain([node, 'access', _192 => _192.filters, 'optionalAccess', _193 => _193.length])) {
|
|
7644
7937
|
const filter = vectorNodeFilterSvg(node, `${prefix}filter-${node.id}`);
|
|
7645
7938
|
const data = ` data-vector-filters="${escapeAttr2(JSON.stringify(node.filters))}"`;
|
|
7646
7939
|
if (filter) {
|
|
@@ -7687,7 +7980,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7687
7980
|
let out2 = ` stroke="${escapeAttr2(strokeValue)}" stroke-width="${num3(width)}"`;
|
|
7688
7981
|
if (node.strokeLinecap && node.strokeLinecap !== "butt") out2 += ` stroke-linecap="${node.strokeLinecap}"`;
|
|
7689
7982
|
if (node.strokeLinejoin && node.strokeLinejoin !== "miter") out2 += ` stroke-linejoin="${node.strokeLinejoin}"`;
|
|
7690
|
-
if (_optionalChain([node, 'access',
|
|
7983
|
+
if (_optionalChain([node, 'access', _194 => _194.strokeDasharray, 'optionalAccess', _195 => _195.length])) out2 += ` stroke-dasharray="${node.strokeDasharray.map(num3).join(" ")}"`;
|
|
7691
7984
|
return out2;
|
|
7692
7985
|
};
|
|
7693
7986
|
const liveCorners = (node) => {
|
|
@@ -7730,7 +8023,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7730
8023
|
};
|
|
7731
8024
|
const emit2 = (node, depth) => {
|
|
7732
8025
|
if (node.visible === false && !options.includeHidden) return;
|
|
7733
|
-
const wrappers = _nullishCoalesce(_optionalChain([options, 'access',
|
|
8026
|
+
const wrappers = _nullishCoalesce(_optionalChain([options, 'access', _196 => _196.wrap, 'optionalAccess', _197 => _197[node.id]]), () => ( []));
|
|
7734
8027
|
wrappers.forEach((w2, i) => {
|
|
7735
8028
|
let attrs = w2.id !== void 0 ? ` id="${escapeAttr2(w2.id)}"` : "";
|
|
7736
8029
|
if (w2.transform) attrs += ` transform="${escapeAttr2(w2.transform)}"`;
|
|
@@ -7751,7 +8044,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7751
8044
|
};
|
|
7752
8045
|
const emitMaskGroup = (node, depth) => {
|
|
7753
8046
|
const [source, ...contents] = node.children;
|
|
7754
|
-
const body = _optionalChain([node, 'access',
|
|
8047
|
+
const body = _optionalChain([node, 'access', _198 => _198.effects, 'optionalAccess', _199 => _199.length]) && contents.length ? [{ id: `${node.id}~content`, type: "group", effects: node.effects, children: contents }] : contents;
|
|
7755
8048
|
const settings = { type: node.mask.type, ...node.mask.invert ? { invert: true } : {} };
|
|
7756
8049
|
lines.push(`${indent(depth)}<g${common(node)} data-vector-mask="${escapeAttr2(JSON.stringify(settings))}">`);
|
|
7757
8050
|
const mask = vectorMaskRenderData(node, `${prefix}mask-${node.id}`, `${prefix}mask-filter-${node.id}`, precision);
|
|
@@ -7768,7 +8061,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7768
8061
|
lines.push(`${indent(depth + 1)}<g data-vector-part="mask-source" display="none">`);
|
|
7769
8062
|
emitNode(source, depth + 2);
|
|
7770
8063
|
lines.push(`${indent(depth + 1)}</g>`);
|
|
7771
|
-
if (_optionalChain([mask, 'optionalAccess',
|
|
8064
|
+
if (_optionalChain([mask, 'optionalAccess', _200 => _200.clip])) {
|
|
7772
8065
|
defs.push(`<clipPath id="${escapeAttr2(mask.id)}">${mask.clip.map((c) => `<path d="${c.d}" clip-rule="${c.clipRule}"/>`).join("")}</clipPath>`);
|
|
7773
8066
|
ref = ` clip-path="url(#${escapeAttr2(mask.id)})"`;
|
|
7774
8067
|
}
|
|
@@ -7780,7 +8073,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7780
8073
|
};
|
|
7781
8074
|
const emitTextElement = (node, depth, attrs) => {
|
|
7782
8075
|
const geometry = vectorTextGeometryNode(node);
|
|
7783
|
-
const fields = { text: node.text, font: node.font, ..._optionalChain([node, 'access',
|
|
8076
|
+
const fields = { text: node.text, font: node.font, ..._optionalChain([node, 'access', _201 => _201.runs, 'optionalAccess', _202 => _202.length]) ? { runs: node.runs } : {}, ...node.paragraph ? { paragraph: node.paragraph } : {}, frame: node.frame, ..._optionalChain([node, 'access', _203 => _203.effects, 'optionalAccess', _204 => _204.length]) ? { effects: node.effects } : {} };
|
|
7784
8077
|
let data = ` data-vector-text="${escapeAttr2(JSON.stringify(fields))}"`;
|
|
7785
8078
|
if (hasVectorPaintStacks(node)) data += ` data-vector-fills="${escapeAttr2(JSON.stringify(vectorFills(node)))}" data-vector-strokes="${escapeAttr2(JSON.stringify(vectorStrokes(node)))}"`;
|
|
7786
8079
|
else {
|
|
@@ -7822,12 +8115,12 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7822
8115
|
};
|
|
7823
8116
|
const emitText = (node, depth) => {
|
|
7824
8117
|
const outlines = vectorTextPaths(node).outlines;
|
|
7825
|
-
const effects = !!_optionalChain([node, 'access',
|
|
8118
|
+
const effects = !!_optionalChain([node, 'access', _205 => _205.effects, 'optionalAccess', _206 => _206.some, 'call', _207 => _207((e) => e.enabled !== false)]);
|
|
7826
8119
|
if (!outlines || !effects && options.text !== "outlines") {
|
|
7827
8120
|
emitTextElement(node, depth, common(node));
|
|
7828
8121
|
return;
|
|
7829
8122
|
}
|
|
7830
|
-
lines.push(`${indent(depth)}<g${common(node)} data-vector-live="${escapeAttr2(JSON.stringify({ kind: "text", ..._optionalChain([node, 'access',
|
|
8123
|
+
lines.push(`${indent(depth)}<g${common(node)} data-vector-live="${escapeAttr2(JSON.stringify({ kind: "text", ..._optionalChain([node, 'access', _208 => _208.effects, 'optionalAccess', _209 => _209.length]) ? { effects: node.effects } : {} }))}">`);
|
|
7831
8124
|
lines.push(`${indent(depth + 1)}<g data-vector-part="appearance">`);
|
|
7832
8125
|
for (const shape of vectorAppearanceNodes(node)) emit2(shape, depth + 2);
|
|
7833
8126
|
lines.push(`${indent(depth + 1)}</g>`);
|
|
@@ -7841,7 +8134,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7841
8134
|
const symbolRef = (symbolId) => {
|
|
7842
8135
|
const hit = symbolIds.get(symbolId);
|
|
7843
8136
|
if (hit) return hit;
|
|
7844
|
-
const sym2 = _optionalChain([doc, 'access',
|
|
8137
|
+
const sym2 = _optionalChain([doc, 'access', _210 => _210.symbols, 'optionalAccess', _211 => _211.find, 'call', _212 => _212((x) => x.id === symbolId)]);
|
|
7845
8138
|
if (!sym2) return null;
|
|
7846
8139
|
const id = `${prefix}symbol-${symbolId}`;
|
|
7847
8140
|
symbolIds.set(symbolId, id);
|
|
@@ -7851,20 +8144,20 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7851
8144
|
};
|
|
7852
8145
|
const emitInstance = (node, depth) => {
|
|
7853
8146
|
const data = { symbolId: node.symbolId, ...node.scaleStrokes === false ? { scaleStrokes: false } : {}, ...node.overrides ? { overrides: node.overrides } : {} };
|
|
7854
|
-
const exact2 = !node.overrides && node.scaleStrokes !== false && !_optionalChain([node, 'access',
|
|
8147
|
+
const exact2 = !node.overrides && node.scaleStrokes !== false && !_optionalChain([node, 'access', _213 => _213.effects, 'optionalAccess', _214 => _214.length]) && !_optionalChain([node, 'access', _215 => _215.filters, 'optionalAccess', _216 => _216.length]);
|
|
7855
8148
|
const ref = symbolRef(node.symbolId);
|
|
7856
8149
|
if (exact2 && ref) {
|
|
7857
8150
|
lines.push(`${indent(depth)}<use${common(node)} href="#${escapeAttr2(ref)}" data-vector-instance="${escapeAttr2(JSON.stringify(data))}"/>`);
|
|
7858
8151
|
return;
|
|
7859
8152
|
}
|
|
7860
|
-
const full = { ...data, ...node.transform ? { transform: node.transform } : {}, ..._optionalChain([node, 'access',
|
|
8153
|
+
const full = { ...data, ...node.transform ? { transform: node.transform } : {}, ..._optionalChain([node, 'access', _217 => _217.effects, 'optionalAccess', _218 => _218.length]) ? { effects: node.effects } : {} };
|
|
7861
8154
|
lines.push(`${indent(depth)}<g data-vector-instance="${escapeAttr2(JSON.stringify(full))}">`);
|
|
7862
8155
|
emitNode(vectorInstanceDrawn(node), depth + 1);
|
|
7863
8156
|
lines.push(`${indent(depth)}</g>`);
|
|
7864
8157
|
};
|
|
7865
8158
|
const emitFrame = (node, depth) => {
|
|
7866
8159
|
const f = node.frame;
|
|
7867
|
-
const data = { ...f, ..._optionalChain([node, 'access',
|
|
8160
|
+
const data = { ...f, ..._optionalChain([node, 'access', _219 => _219.effects, 'optionalAccess', _220 => _220.length]) ? { effects: node.effects } : {} };
|
|
7868
8161
|
lines.push(`${indent(depth)}<g${common(node)} data-vector-frame="${escapeAttr2(JSON.stringify(data))}">`);
|
|
7869
8162
|
const rect = vectorFrameRectPath(f);
|
|
7870
8163
|
if (f.fill !== void 0 && f.fill !== null && f.fill !== "none") {
|
|
@@ -7903,7 +8196,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7903
8196
|
if (hasOwnVectorAppearance(node)) {
|
|
7904
8197
|
const live2 = {
|
|
7905
8198
|
kind: node.type,
|
|
7906
|
-
..._optionalChain([node, 'access',
|
|
8199
|
+
..._optionalChain([node, 'access', _221 => _221.effects, 'optionalAccess', _222 => _222.length]) ? { effects: node.effects } : {},
|
|
7907
8200
|
...node.type === "group" && node.liveBoolean ? { liveBoolean: node.liveBoolean } : {},
|
|
7908
8201
|
...node.type === "group" && node.symmetry ? { symmetry: node.symmetry } : {}
|
|
7909
8202
|
};
|
|
@@ -7954,7 +8247,7 @@ function vectorDocumentToSvg(doc, options = {}) {
|
|
|
7954
8247
|
data += ` data-vector-width-profile="${widthProfileToAttribute(profile)}"`;
|
|
7955
8248
|
if (node.strokeLinecap && node.strokeLinecap !== "butt") data += ` data-vector-stroke-linecap="${node.strokeLinecap}"`;
|
|
7956
8249
|
if (node.strokeLinejoin && node.strokeLinejoin !== "miter") data += ` data-vector-stroke-linejoin="${node.strokeLinejoin}"`;
|
|
7957
|
-
if (_optionalChain([node, 'access',
|
|
8250
|
+
if (_optionalChain([node, 'access', _223 => _223.strokeDasharray, 'optionalAccess', _224 => _224.length])) data += ` data-vector-stroke-dasharray="${node.strokeDasharray.map(num3).join(" ")}"`;
|
|
7958
8251
|
}
|
|
7959
8252
|
lines.push(`${indent(depth)}<g${common(node)}${data}>`);
|
|
7960
8253
|
lines.push(`${indent(depth + 1)}<path data-vector-part="fill" d="${d}"${fillAttrs}${live}/>`);
|
|
@@ -8122,7 +8415,7 @@ function attrOrStyle(el, name) {
|
|
|
8122
8415
|
return el.attrs[name];
|
|
8123
8416
|
}
|
|
8124
8417
|
function urlId(value) {
|
|
8125
|
-
return _nullishCoalesce(_optionalChain([/^url\(\s*['"]?#([^'")\s]+)['"]?\s*\)/, 'access',
|
|
8418
|
+
return _nullishCoalesce(_optionalChain([/^url\(\s*['"]?#([^'")\s]+)['"]?\s*\)/, 'access', _225 => _225.exec, 'call', _226 => _226((_nullishCoalesce(value, () => ( ""))).trim()), 'optionalAccess', _227 => _227[1]]), () => ( null));
|
|
8126
8419
|
}
|
|
8127
8420
|
function clipRulesAsFillRules(el) {
|
|
8128
8421
|
const attrs = { ...el.attrs };
|
|
@@ -8187,9 +8480,9 @@ function resolveGradient(id, raw) {
|
|
|
8187
8480
|
for (let el = first; el && !chain.includes(el) && chain.length < 32; ) {
|
|
8188
8481
|
chain.push(el);
|
|
8189
8482
|
const href = _nullishCoalesce(el.attrs.href, () => ( el.attrs["xlink:href"]));
|
|
8190
|
-
el = _optionalChain([href, 'optionalAccess',
|
|
8483
|
+
el = _optionalChain([href, 'optionalAccess', _228 => _228.startsWith, 'call', _229 => _229("#")]) ? raw.get(href.slice(1)) : void 0;
|
|
8191
8484
|
}
|
|
8192
|
-
const attr = (name) => _optionalChain([chain, 'access',
|
|
8485
|
+
const attr = (name) => _optionalChain([chain, 'access', _230 => _230.find, 'call', _231 => _231((el) => el.attrs[name] !== void 0), 'optionalAccess', _232 => _232.attrs, 'access', _233 => _233[name]]);
|
|
8193
8486
|
const stops = _nullishCoalesce(chain.map(readStops).find((s) => s.length), () => ( []));
|
|
8194
8487
|
if (!stops.length) return null;
|
|
8195
8488
|
const user = attr("gradientUnits") === "userSpaceOnUse";
|
|
@@ -8359,7 +8652,7 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8359
8652
|
const stackedPath = (g, _style, m, meta) => {
|
|
8360
8653
|
const fillEl = g.children.find((c) => c.name === "path" && c.attrs["data-vector-part"] === "fill");
|
|
8361
8654
|
const subpaths = fillEl ? shapeOf(fillEl) : null;
|
|
8362
|
-
if (!_optionalChain([subpaths, 'optionalAccess',
|
|
8655
|
+
if (!_optionalChain([subpaths, 'optionalAccess', _234 => _234.length])) return null;
|
|
8363
8656
|
const parse = (v2) => {
|
|
8364
8657
|
try {
|
|
8365
8658
|
return v2 ? JSON.parse(v2) : [];
|
|
@@ -8378,7 +8671,7 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8378
8671
|
const key = (n) => JSON.stringify([n.subpaths, _nullishCoalesce(n.transform, () => ( null)), _nullishCoalesce(n.opacity, () => ( 1)), n.visible !== false, _nullishCoalesce(n.filters, () => ( null)), _nullishCoalesce(n.blendMode, () => ( "normal")), _nullishCoalesce(n.fillRule, () => ( "nonzero")), _nullishCoalesce(n.booleanOperation, () => ( null))]);
|
|
8379
8672
|
for (const n of nodes2) {
|
|
8380
8673
|
const prev = out[out.length - 1];
|
|
8381
|
-
if (_optionalChain([prev, 'optionalAccess',
|
|
8674
|
+
if (_optionalChain([prev, 'optionalAccess', _235 => _235.type]) === "path" && n.type === "path" && key(prev) === key(n)) {
|
|
8382
8675
|
const fills = vectorFills(n);
|
|
8383
8676
|
const strokesBefore = vectorStrokes(prev);
|
|
8384
8677
|
if (!(fills.length && strokesBefore.length)) {
|
|
@@ -8396,7 +8689,7 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8396
8689
|
const part = (name) => g.children.find((c) => c.name === "path" && c.attrs["data-vector-part"] === name);
|
|
8397
8690
|
const fillEl = part("fill");
|
|
8398
8691
|
const subpaths = fillEl ? shapeOf(fillEl) : null;
|
|
8399
|
-
if (!fillEl || !_optionalChain([subpaths, 'optionalAccess',
|
|
8692
|
+
if (!fillEl || !_optionalChain([subpaths, 'optionalAccess', _236 => _236.length])) return null;
|
|
8400
8693
|
const a = g.attrs;
|
|
8401
8694
|
const fs = readStyle(fillEl, style);
|
|
8402
8695
|
const strokeEl = part("stroke");
|
|
@@ -8433,7 +8726,7 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8433
8726
|
...profile.length ? { strokeWidthProfile: profile } : {},
|
|
8434
8727
|
...keptCap ? { strokeLinecap: keptCap } : {},
|
|
8435
8728
|
...keptJoin ? { strokeLinejoin: keptJoin } : {},
|
|
8436
|
-
..._optionalChain([keptDash, 'optionalAccess',
|
|
8729
|
+
..._optionalChain([keptDash, 'optionalAccess', _237 => _237.length]) ? { strokeDasharray: keptDash } : {}
|
|
8437
8730
|
};
|
|
8438
8731
|
return placed(node, m);
|
|
8439
8732
|
};
|
|
@@ -8498,8 +8791,8 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8498
8791
|
} else {
|
|
8499
8792
|
const fill = json2(g.attrs["data-vector-fill"]);
|
|
8500
8793
|
const stroke = json2(g.attrs["data-vector-stroke"]);
|
|
8501
|
-
node.fill = fill == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call',
|
|
8502
|
-
node.stroke = stroke == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call',
|
|
8794
|
+
node.fill = fill == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call', _238 => _238([{ paint: fill }]), 'access', _239 => _239[0], 'optionalAccess', _240 => _240.paint]), () => ( null));
|
|
8795
|
+
node.stroke = stroke == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call', _241 => _241([{ paint: stroke }]), 'access', _242 => _242[0], 'optionalAccess', _243 => _243.paint]), () => ( null));
|
|
8503
8796
|
const settings = json2(g.attrs["data-vector-stroke-settings"]);
|
|
8504
8797
|
if (settings && typeof settings === "object") {
|
|
8505
8798
|
const strokes = sanitizeVectorStrokes([{ paint: _nullishCoalesce(node.stroke, () => ( "#000")), ...settings }]);
|
|
@@ -8535,8 +8828,8 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8535
8828
|
const anchor = attrOrStyle(el, "text-anchor");
|
|
8536
8829
|
const first0 = (v2) => _nullishCoalesce(numberList(v2)[0], () => ( 0));
|
|
8537
8830
|
const tspan = el.children.find((c) => c.name === "tspan");
|
|
8538
|
-
const x = el.attrs.x !== void 0 ? first0(el.attrs.x) : first0(_optionalChain([tspan, 'optionalAccess',
|
|
8539
|
-
const y = el.attrs.y !== void 0 ? first0(el.attrs.y) : first0(_optionalChain([tspan, 'optionalAccess',
|
|
8831
|
+
const x = el.attrs.x !== void 0 ? first0(el.attrs.x) : first0(_optionalChain([tspan, 'optionalAccess', _244 => _244.attrs, 'access', _245 => _245.x]));
|
|
8832
|
+
const y = el.attrs.y !== void 0 ? first0(el.attrs.y) : first0(_optionalChain([tspan, 'optionalAccess', _246 => _246.attrs, 'access', _247 => _247.y]));
|
|
8540
8833
|
const fillValue = _nullishCoalesce(attrOrStyle(el, "fill"), () => ( style.fill));
|
|
8541
8834
|
let node = {
|
|
8542
8835
|
id: idFor(el),
|
|
@@ -8567,12 +8860,12 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8567
8860
|
if (symbolOfElement.has(el)) return symbolOfElement.get(el);
|
|
8568
8861
|
symbolOfElement.set(el, null);
|
|
8569
8862
|
const own = json2(el.attrs["data-vector-symbol"]);
|
|
8570
|
-
let id = typeof _optionalChain([own, 'optionalAccess',
|
|
8863
|
+
let id = typeof _optionalChain([own, 'optionalAccess', _248 => _248.id]) === "string" && own.id ? own.id : _nullishCoalesce(el.attrs.id, () => ( createId()));
|
|
8571
8864
|
while (usedSymbolIds.has(id)) id = `${id}-${usedSymbolIds.size}`;
|
|
8572
8865
|
usedSymbolIds.add(id);
|
|
8573
8866
|
const style = readStyle(el, rootStyle);
|
|
8574
8867
|
const nodes2 = el.name === "symbol" ? visit2(el, style, IDENTITY_MATRIX) : visitOne({ ...el, attrs: { ...el.attrs, transform: "" } }, rootStyle, parseSvgTransform(el.attrs.transform));
|
|
8575
|
-
symbols.push({ id, name: typeof _optionalChain([own, 'optionalAccess',
|
|
8868
|
+
symbols.push({ id, name: typeof _optionalChain([own, 'optionalAccess', _249 => _249.name]) === "string" && own.name ? own.name : _nullishCoalesce(el.attrs.id, () => ( "Symbol")), nodes: nodes2 });
|
|
8576
8869
|
symbolOfElement.set(el, id);
|
|
8577
8870
|
return id;
|
|
8578
8871
|
};
|
|
@@ -8584,13 +8877,13 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8584
8877
|
if (!symbolId) return null;
|
|
8585
8878
|
const own = json2(el.attrs["data-vector-instance"]);
|
|
8586
8879
|
const place2 = multiplyMatrices(translateMatrix(length(el.attrs.x), length(el.attrs.y)), m);
|
|
8587
|
-
const node = { id: idFor(el), type: "instance", ...meta, symbolId, ..._optionalChain([own, 'optionalAccess',
|
|
8880
|
+
const node = { id: idFor(el), type: "instance", ...meta, symbolId, ..._optionalChain([own, 'optionalAccess', _250 => _250.scaleStrokes]) === false ? { scaleStrokes: false } : {}, ..._optionalChain([own, 'optionalAccess', _251 => _251.overrides]) ? { overrides: own.overrides } : {} };
|
|
8588
8881
|
return isIdentityMatrix(place2) ? node : { ...node, transform: place2 };
|
|
8589
8882
|
};
|
|
8590
8883
|
const ownInstance = (g, m, meta) => {
|
|
8591
8884
|
const raw = json2(g.attrs["data-vector-instance"]);
|
|
8592
8885
|
if (!raw || typeof raw.symbolId !== "string") return null;
|
|
8593
|
-
const sym2 = [...byId.values()].find((e) => e.name === "symbol" && _optionalChain([json2, 'call',
|
|
8886
|
+
const sym2 = [...byId.values()].find((e) => e.name === "symbol" && _optionalChain([json2, 'call', _252 => _252(e.attrs["data-vector-symbol"]), 'optionalAccess', _253 => _253.id]) === raw.symbolId);
|
|
8594
8887
|
const symbolId = sym2 ? symbolFor(sym2) : raw.symbolId;
|
|
8595
8888
|
if (!symbolId) return null;
|
|
8596
8889
|
const t = Array.isArray(raw.transform) && raw.transform.length === 6 && raw.transform.every(Number.isFinite) ? raw.transform : IDENTITY_MATRIX;
|
|
@@ -8598,7 +8891,7 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8598
8891
|
const drawn = g.children.find((c) => c.name === "g");
|
|
8599
8892
|
const effects = sanitizeVectorEffects(raw.effects);
|
|
8600
8893
|
const node = {
|
|
8601
|
-
id: _nullishCoalesce(_optionalChain([drawn, 'optionalAccess',
|
|
8894
|
+
id: _nullishCoalesce(_optionalChain([drawn, 'optionalAccess', _254 => _254.attrs, 'access', _255 => _255.id]), () => ( idFor(g))),
|
|
8602
8895
|
type: "instance",
|
|
8603
8896
|
...meta,
|
|
8604
8897
|
symbolId,
|
|
@@ -8655,12 +8948,12 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8655
8948
|
const masked = (el, nodes2, m) => {
|
|
8656
8949
|
let out = nodes2;
|
|
8657
8950
|
const clipEl = rawMasks.get(_nullishCoalesce(urlId(attrOrStyle(el, "clip-path")), () => ( "")));
|
|
8658
|
-
if (_optionalChain([clipEl, 'optionalAccess',
|
|
8951
|
+
if (_optionalChain([clipEl, 'optionalAccess', _256 => _256.name]) === "clipPath") {
|
|
8659
8952
|
const source = maskNode(clipEl, m, out, clipEl.attrs.clipPathUnits);
|
|
8660
8953
|
if (source) out = [{ id: idFor({ name: "g", attrs: {}, children: [] }), type: "group", name: "Clip Group", mask: { type: "clip" }, children: [source, ...out] }];
|
|
8661
8954
|
}
|
|
8662
8955
|
const maskEl = rawMasks.get(_nullishCoalesce(urlId(attrOrStyle(el, "mask")), () => ( "")));
|
|
8663
|
-
if (_optionalChain([maskEl, 'optionalAccess',
|
|
8956
|
+
if (_optionalChain([maskEl, 'optionalAccess', _257 => _257.name]) === "mask") {
|
|
8664
8957
|
const source = maskNode(maskEl, m, out, maskEl.attrs.maskContentUnits);
|
|
8665
8958
|
const type = attrOrStyle(maskEl, "mask-type") === "alpha" ? "alpha" : "luminance";
|
|
8666
8959
|
if (source) out = [{ id: idFor({ name: "g", attrs: {}, children: [] }), type: "group", name: "Opacity Mask", mask: { type }, children: [source, ...out] }];
|
|
@@ -8682,19 +8975,19 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8682
8975
|
let sourceEl = part("mask-source");
|
|
8683
8976
|
if (!sourceEl) {
|
|
8684
8977
|
const el = rawMasks.get(_nullishCoalesce(urlId(maskedEl.attrs.mask), () => ( "")));
|
|
8685
|
-
const invert2 = _optionalChain([el, 'optionalAccess',
|
|
8978
|
+
const invert2 = _optionalChain([el, 'optionalAccess', _258 => _258.children, 'access', _259 => _259.find, 'call', _260 => _260((c) => c.name === "g" && c.attrs["data-vector-part"] === "mask-invert")]);
|
|
8686
8979
|
sourceEl = _nullishCoalesce(invert2, () => ( el));
|
|
8687
8980
|
}
|
|
8688
8981
|
const source = sourceEl ? visit2(sourceEl, style, m)[0] : void 0;
|
|
8689
8982
|
let contents = visit2(maskedEl, style, m);
|
|
8690
8983
|
let effects;
|
|
8691
8984
|
const wrapper = contents.length === 1 && contents[0].type === "group" && contents[0].id === `${id}~content` ? contents[0] : null;
|
|
8692
|
-
if (_optionalChain([wrapper, 'optionalAccess',
|
|
8985
|
+
if (_optionalChain([wrapper, 'optionalAccess', _261 => _261.type]) === "group") {
|
|
8693
8986
|
effects = _nullishCoalesce(wrapper.effects, () => ( void 0));
|
|
8694
8987
|
contents = wrapper.children;
|
|
8695
8988
|
}
|
|
8696
8989
|
if (!source) return contents.length ? { id, type: "group", ...meta, children: contents } : null;
|
|
8697
|
-
return { id, type: "group", ...meta, mask, ..._optionalChain([effects, 'optionalAccess',
|
|
8990
|
+
return { id, type: "group", ...meta, mask, ..._optionalChain([effects, 'optionalAccess', _262 => _262.length]) ? { effects } : {}, children: [source, ...contents] };
|
|
8698
8991
|
};
|
|
8699
8992
|
const frameGroup = (g, style, m, meta) => {
|
|
8700
8993
|
const raw = parseJson(g.attrs["data-vector-frame"]);
|
|
@@ -8706,7 +8999,7 @@ function parseVectorSvg(svg, options = {}) {
|
|
|
8706
8999
|
const { rigid, residual } = decomposeRigid(m);
|
|
8707
9000
|
const r = _chunkBJTCSLF6cjs.bezierPathBounds.call(void 0, _chunkBJTCSLF6cjs.transformBezierPath.call(void 0, subpathsToBezier(vectorFrameRectPath(frame)), residual));
|
|
8708
9001
|
const back = invertMatrix(rigid);
|
|
8709
|
-
const effects = sanitizeVectorEffects(_optionalChain([raw, 'optionalAccess',
|
|
9002
|
+
const effects = sanitizeVectorEffects(_optionalChain([raw, 'optionalAccess', _263 => _263.effects]));
|
|
8710
9003
|
return {
|
|
8711
9004
|
id,
|
|
8712
9005
|
type: "group",
|
|
@@ -9170,13 +9463,13 @@ function hitTestVectorNode(node, p, tolerance = 0, parent = IDENTITY_MATRIX, opt
|
|
|
9170
9463
|
}
|
|
9171
9464
|
if (isVectorMaskGroup(node)) {
|
|
9172
9465
|
const m = multiplyMatrices(nodeMatrix(node), parent);
|
|
9173
|
-
const entered = !!_optionalChain([options, 'access',
|
|
9466
|
+
const entered = !!_optionalChain([options, 'access', _264 => _264.entered, 'optionalAccess', _265 => _265.has, 'call', _266 => _266(node.id)]);
|
|
9174
9467
|
if (!entered && isVectorMaskActive(node) && !vectorMaskContains(node, applyMatrix(invertMatrix(m), p), tolerance)) return false;
|
|
9175
9468
|
const shown = !entered && hasOwnVectorAppearance(node) ? expandVectorAppearance(node).children : node.children;
|
|
9176
9469
|
for (let i = shown.length - 1; i >= 1; i--) if (hitTestVectorNode(shown[i], p, tolerance, m, options)) return true;
|
|
9177
9470
|
return entered && hitTestVectorMaskSource(node, p, tolerance, m, options);
|
|
9178
9471
|
}
|
|
9179
|
-
if (!(node.type === "group" && (!hasOwnVectorAppearance(node) || _optionalChain([options, 'access',
|
|
9472
|
+
if (!(node.type === "group" && (!hasOwnVectorAppearance(node) || _optionalChain([options, 'access', _267 => _267.entered, 'optionalAccess', _268 => _268.has, 'call', _269 => _269(node.id)])))) node = expandVectorAppearance(node);
|
|
9180
9473
|
if (node.type === "group") {
|
|
9181
9474
|
const m = multiplyMatrices(nodeMatrix(node), parent);
|
|
9182
9475
|
return node.children.some((c) => hitTestVectorNode(c, p, tolerance, m, options));
|
|
@@ -9188,7 +9481,7 @@ function hitTestVectorNode(node, p, tolerance = 0, parent = IDENTITY_MATRIX, opt
|
|
|
9188
9481
|
function hitTestVectorMaskSource(group, p, tolerance, m, options) {
|
|
9189
9482
|
const source = group.children[0];
|
|
9190
9483
|
if (source.visible === false) return false;
|
|
9191
|
-
if (_optionalChain([group, 'access',
|
|
9484
|
+
if (_optionalChain([group, 'access', _270 => _270.mask, 'optionalAccess', _271 => _271.type]) !== "clip") return hitTestVectorNode(source, p, tolerance, m, options);
|
|
9192
9485
|
const paths = collectPathNodes(source).filter((n) => n.visible !== false);
|
|
9193
9486
|
const pt2 = [p.x, p.y];
|
|
9194
9487
|
return paths.some((n) => {
|
|
@@ -9237,24 +9530,24 @@ function mapAnchor(a, m) {
|
|
|
9237
9530
|
}
|
|
9238
9531
|
function bakeIntoGeometry(node, m) {
|
|
9239
9532
|
if (isIdentityMatrix(m)) return node;
|
|
9240
|
-
if (_optionalChain([node, 'access',
|
|
9533
|
+
if (_optionalChain([node, 'access', _272 => _272.effects, 'optionalAccess', _273 => _273.length])) node = { ...node, effects: transformVectorEffects(node.effects, m, node) };
|
|
9241
9534
|
if (isVectorFrame(node)) return bakeFrame(node, m);
|
|
9242
9535
|
if (node.type === "group") {
|
|
9243
9536
|
const group = node;
|
|
9244
9537
|
const children = group.children.map((c) => transformVectorNode(c, m));
|
|
9245
9538
|
const sym2 = group.symmetry ? { symmetry: transformVectorSymmetry(group.symmetry, m) } : {};
|
|
9246
|
-
const spine = _optionalChain([group, 'access',
|
|
9539
|
+
const spine = _optionalChain([group, 'access', _274 => _274.blend, 'optionalAccess', _275 => _275.spine]);
|
|
9247
9540
|
if (!spine) return { ...group, ...sym2, children };
|
|
9248
9541
|
const moved = { closed: spine.closed, anchors: spine.anchors.map((a) => mapAnchor(a, m)) };
|
|
9249
9542
|
return { ...group, children, blend: { ...group.blend, spine: moved } };
|
|
9250
9543
|
}
|
|
9251
9544
|
const path = node.type === "text" ? bakeVectorTextGeometry(node, m) : node;
|
|
9252
9545
|
const flips = m[0] * m[3] - m[1] * m[2] < 0;
|
|
9253
|
-
const mirrored = flips && _optionalChain([path, 'access',
|
|
9546
|
+
const mirrored = flips && _optionalChain([path, 'access', _276 => _276.strokeWidthProfile, 'optionalAccess', _277 => _277.length]);
|
|
9254
9547
|
const layer = (l) => ({
|
|
9255
9548
|
...l,
|
|
9256
9549
|
...isVectorGradient(l.paint) || isVectorShadedPaint(l.paint) ? { paint: transformVectorPaint(l.paint, m) } : {},
|
|
9257
|
-
...flips && _optionalChain([l, 'access',
|
|
9550
|
+
...flips && _optionalChain([l, 'access', _278 => _278.strokeWidthProfile, 'optionalAccess', _279 => _279.length]) ? { strokeWidthProfile: mirrorWidthProfile(l.strokeWidthProfile) } : {}
|
|
9258
9551
|
});
|
|
9259
9552
|
return {
|
|
9260
9553
|
...path,
|
|
@@ -9489,7 +9782,7 @@ function roundSubpaths(subpaths, precision = 3) {
|
|
|
9489
9782
|
|
|
9490
9783
|
// src/vector/symmetry.ts
|
|
9491
9784
|
function isVectorSymmetryGroup(node) {
|
|
9492
|
-
return _optionalChain([node, 'optionalAccess',
|
|
9785
|
+
return _optionalChain([node, 'optionalAccess', _280 => _280.type]) === "group" && !!node.symmetry && !node.blend && !node.liveBoolean && !node.mask && !node.frame;
|
|
9493
9786
|
}
|
|
9494
9787
|
var rad = (deg) => deg * Math.PI / 180;
|
|
9495
9788
|
var exact = (v2) => Math.abs(v2) < 1e-12 ? 0 : v2;
|
|
@@ -10036,5 +10329,10 @@ function transformVectorSymmetry(s, m) {
|
|
|
10036
10329
|
|
|
10037
10330
|
|
|
10038
10331
|
|
|
10039
|
-
exports.isVectorMeshGradient = isVectorMeshGradient; exports.isVectorFreeformGradient = isVectorFreeformGradient; exports.isVectorShadedPaint = isVectorShadedPaint; exports.vectorRgbaToCss = vectorRgbaToCss; exports.VECTOR_MESH_MAX = VECTOR_MESH_MAX; exports.createVectorMeshGradient = createVectorMeshGradient; exports.vectorMeshPointAt = vectorMeshPointAt; exports.vectorMeshColorAt = vectorMeshColorAt; exports.vectorMeshLines = vectorMeshLines; exports.vectorFreeformSpreadScale = vectorFreeformSpreadScale; exports.vectorFreeformLineSegments = vectorFreeformLineSegments; exports.vectorFreeformField = vectorFreeformField; exports.sampleVectorFreeform = sampleVectorFreeform; exports.autoVectorFreeformGradient = autoVectorFreeformGradient; exports.vectorShadedSvgDefs = vectorShadedSvgDefs; exports.mapVectorShadedPaint = mapVectorShadedPaint; exports.transformVectorShadedPaint = transformVectorShadedPaint; exports.sanitizeVectorShadedPaint = sanitizeVectorShadedPaint; exports.removeVectorFreeformPoint = removeVectorFreeformPoint; exports.nearestVectorShadingPoint = nearestVectorShadingPoint; exports.VECTOR_CORNER_KINDS = VECTOR_CORNER_KINDS; exports.VECTOR_GRADIENT_TYPES = VECTOR_GRADIENT_TYPES; exports.VECTOR_GRADIENT_SPREADS = VECTOR_GRADIENT_SPREADS; exports.VECTOR_GRADIENT_INTERPOLATIONS = VECTOR_GRADIENT_INTERPOLATIONS; exports.VECTOR_STROKE_GRADIENT_MODES = VECTOR_STROKE_GRADIENT_MODES; exports.VECTOR_ARROWHEADS = VECTOR_ARROWHEADS; exports.VECTOR_BLEND_MODES = VECTOR_BLEND_MODES; exports.VECTOR_HORIZONTAL_RESIZING = VECTOR_HORIZONTAL_RESIZING; exports.VECTOR_VERTICAL_RESIZING = VECTOR_VERTICAL_RESIZING; exports.VECTOR_CONNECTOR_SIDES = VECTOR_CONNECTOR_SIDES; exports.VECTOR_CONNECTOR_ROUTES = VECTOR_CONNECTOR_ROUTES; exports.VECTOR_BLEND_SPACINGS = VECTOR_BLEND_SPACINGS; exports.VECTOR_MASK_TYPES = VECTOR_MASK_TYPES; exports.VECTOR_SYMMETRY_MODES = VECTOR_SYMMETRY_MODES; exports.VECTOR_TEXT_ALIGNS = VECTOR_TEXT_ALIGNS; exports.VECTOR_PATH_TEXT_BASELINES = VECTOR_PATH_TEXT_BASELINES; exports.VECTOR_CONSTRAINT_KINDS = VECTOR_CONSTRAINT_KINDS; exports.VECTOR_TOOLS = VECTOR_TOOLS; exports.VECTOR_TRANSFORM_HANDLES = VECTOR_TRANSFORM_HANDLES; exports.VECTOR_PATHFINDER_OPERATIONS = VECTOR_PATHFINDER_OPERATIONS; exports.VECTOR_EFFECT_TYPES = VECTOR_EFFECT_TYPES; exports.VECTOR_MERGE_MODES = VECTOR_MERGE_MODES; exports.VECTOR_FILTER_TYPES = VECTOR_FILTER_TYPES; exports.isVectorGradient = isVectorGradient; exports.parseVectorColor = parseVectorColor; exports.VECTOR_GRADIENT_MIN_STOPS = VECTOR_GRADIENT_MIN_STOPS; exports.gradientMidpointRemap = gradientMidpointRemap; exports.sortedVectorGradientStops = sortedVectorGradientStops; exports.vectorGradientNeedsExpansion = vectorGradientNeedsExpansion; exports.vectorGradientRamp = vectorGradientRamp; exports.sampleVectorGradient = sampleVectorGradient; exports.expandVectorGradientStops = expandVectorGradientStops; exports.samplePlainStops = samplePlainStops; exports.reverseVectorGradient = reverseVectorGradient; exports.insertVectorGradientStop = insertVectorGradientStop; exports.moveVectorGradientStop = moveVectorGradientStop; exports.removeVectorGradientStop = removeVectorGradientStop; exports.vectorGradientMidpointPosition = vectorGradientMidpointPosition; exports.vectorGradientMidpointFromPosition = vectorGradientMidpointFromPosition; exports.spanVectorGradientStops = spanVectorGradientStops; exports.hasExplicitGradientGeometry = hasExplicitGradientGeometry; exports.vectorGradientPoints = vectorGradientPoints; exports.vectorBoxMatrix = vectorBoxMatrix; exports.vectorGradientUnitsMatrix = vectorGradientUnitsMatrix; exports.vectorGradientMatrix = vectorGradientMatrix; exports.vectorGradientFocalParam = vectorGradientFocalParam; exports.vectorGradientParam = vectorGradientParam; exports.applyVectorGradientSpread = applyVectorGradientSpread; exports.vectorGradientTAt = vectorGradientTAt; exports.sampleVectorGradientAt = sampleVectorGradientAt; exports.vectorGradientAspect = vectorGradientAspect; exports.explicitVectorGradient = explicitVectorGradient; exports.pinVectorGradient = pinVectorGradient; exports.transformVectorGradient = transformVectorGradient; exports.mapVectorGradient = mapVectorGradient; exports.mapVectorPaint = mapVectorPaint; exports.transformVectorPaint = transformVectorPaint; exports.isCentredVectorGradient = isCentredVectorGradient; exports.vectorGradientHandles = vectorGradientHandles; exports.moveVectorGradientHandle = moveVectorGradientHandle; exports.setVectorGradientVector = setVectorGradientVector; exports.VECTOR_GRADIENT_MAX_PERIODS = VECTOR_GRADIENT_MAX_PERIODS; exports.periodicVectorGradientStops = periodicVectorGradientStops; exports.expandVectorGradientSpread = expandVectorGradientSpread; exports.vectorGradientArea = vectorGradientArea; exports.patternAttrs = patternAttrs; exports.vectorGradientSvgDefs = vectorGradientSvgDefs; exports.sampleVectorPaintDefAt = sampleVectorPaintDefAt; exports.sanitizeVectorGradient = sanitizeVectorGradient; exports.convertVectorGradient = convertVectorGradient; exports.defaultVectorGradient = defaultVectorGradient; exports.applyVectorGradientPatch = applyVectorGradientPatch; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; exports.multiplyMatrices = multiplyMatrices; exports.translateMatrix = translateMatrix; exports.scaleMatrix = scaleMatrix; exports.rotateMatrix = rotateMatrix; exports.matrixAbout = matrixAbout; exports.skewMatrix = skewMatrix; exports.applyMatrix = applyMatrix; exports.isIdentityMatrix = isIdentityMatrix; exports.invertMatrix = invertMatrix; exports.applyMatrixLinear = applyMatrixLinear; exports.matrixRotation = matrixRotation; exports.decomposeRigid = decomposeRigid; exports.isVectorSymmetryGroup = isVectorSymmetryGroup; exports.vectorSymmetryMatrices = vectorSymmetryMatrices; exports.vectorSymmetryDrawn = vectorSymmetryDrawn; exports.vectorSymmetryAxes = vectorSymmetryAxes; exports.sanitizeVectorSymmetry = sanitizeVectorSymmetry; exports.VECTOR_SYMMETRY_MODE_LABELS = VECTOR_SYMMETRY_MODE_LABELS; exports.transformVectorSymmetry = transformVectorSymmetry; exports.vectorCornerAt = vectorCornerAt; exports.vectorCorners = vectorCorners; exports.cornerSetback = cornerSetback; exports.fitCornerRadius = fitCornerRadius; exports.cornerBisectorPoint = cornerBisectorPoint; exports.cornerRadiusChange = cornerRadiusChange; exports.hasVectorCorners = hasVectorCorners; exports.expandVectorCornersOf = expandVectorCornersOf; exports.expandVectorCorners = expandVectorCorners; exports.setAnchorCorner = setAnchorCorner; exports.nextVectorCornerKind = nextVectorCornerKind; exports.setSubpathCorners = setSubpathCorners; exports.VECTOR_WIDTH_PROFILE_MAX_POINTS = VECTOR_WIDTH_PROFILE_MAX_POINTS; exports.VECTOR_WIDTH_PROFILE_MAX_SCALE = VECTOR_WIDTH_PROFILE_MAX_SCALE; exports.VECTOR_WIDTH_SAME_T = VECTOR_WIDTH_SAME_T; exports.VECTOR_WIDTH_PRESETS = VECTOR_WIDTH_PRESETS; exports.VECTOR_WIDTH_PRESET_IDS = VECTOR_WIDTH_PRESET_IDS; exports.sanitizeWidthProfile = sanitizeWidthProfile; exports.isUniformWidthProfile = isUniformWidthProfile; exports.widthProfileAt = widthProfileAt; exports.widthProfileMaxScale = widthProfileMaxScale; exports.widthProfilePreset = widthProfilePreset; exports.widthProfilePresetId = widthProfilePresetId; exports.reverseWidthProfile = reverseWidthProfile; exports.mirrorWidthProfile = mirrorWidthProfile; exports.insertWidthPoint = insertWidthPoint; exports.setWidthPoint = setWidthPoint; exports.removeWidthPoints = removeWidthPoints; exports.taperWaveFactor = taperWaveFactor; exports.generateWidthProfile = generateWidthProfile; exports.VECTOR_PRESSURE_NOMINAL = VECTOR_PRESSURE_NOMINAL; exports.pressureWidthProfile = pressureWidthProfile; exports.dashIntervals = dashIntervals; exports.variableStrokeRings = variableStrokeRings; exports.variableStrokeOutline = variableStrokeOutline; exports.nearestStrokePosition = nearestStrokePosition; exports.strokePositionPoint = strokePositionPoint; exports.isClosedBezierShape = isClosedBezierShape; exports.effectiveStrokeAlign = effectiveStrokeAlign; exports.strokeWidthProfileOf = strokeWidthProfileOf; exports.hasStrokeExtras = hasStrokeExtras; exports.vectorStrokeLineArea = vectorStrokeLineArea; exports.arrowheadWeight = arrowheadWeight; exports.arrowheadInset = arrowheadInset; exports.arrowheadPath = arrowheadPath; exports.vectorStrokeParts = vectorStrokeParts; exports.vectorStrokeOutlinePath = vectorStrokeOutlinePath; exports.hitTestVectorStroke = hitTestVectorStroke; exports.vectorStrokeReach = vectorStrokeReach; exports.VECTOR_STROKE_SETTING_KEYS = VECTOR_STROKE_SETTING_KEYS; exports.VECTOR_BLEND_MODE_LABELS = VECTOR_BLEND_MODE_LABELS; exports.isVectorBlendMode = isVectorBlendMode; exports.vectorBlendModeCss = vectorBlendModeCss; exports.vectorBlendModeFromCss = vectorBlendModeFromCss; exports.isPlainVectorPaintLayer = isPlainVectorPaintLayer; exports.isDrawnVectorPaintLayer = isDrawnVectorPaintLayer; exports.vectorFills = vectorFills; exports.vectorStrokeSettings = vectorStrokeSettings; exports.vectorStrokes = vectorStrokes; exports.hasVectorPaintStacks = hasVectorPaintStacks; exports.withVectorFills = withVectorFills; exports.withVectorStrokes = withVectorStrokes; exports.normalizeVectorPaintStacks = normalizeVectorPaintStacks; exports.sanitizeVectorFills = sanitizeVectorFills; exports.sanitizeVectorStrokeSettings = sanitizeVectorStrokeSettings; exports.sanitizeVectorStrokes = sanitizeVectorStrokes; exports.vectorPaintLayerNodes = vectorPaintLayerNodes; exports.needsVectorPaintLayers = needsVectorPaintLayers; exports.vectorStrokeStackReach = vectorStrokeStackReach; exports.hitTestVectorPaintLayer = hitTestVectorPaintLayer; exports.hitTestVectorPaintStack = hitTestVectorPaintStack; exports.vectorStacksHaveGradient = vectorStacksHaveGradient; exports.newVectorStrokeLayer = newVectorStrokeLayer; exports.vectorTargetPaint = vectorTargetPaint; exports.withVectorTargetPaint = withVectorTargetPaint; exports.effectPathLength = effectPathLength; exports.effectPathVertexCount = effectPathVertexCount; exports.trimIntervals = trimIntervals; exports.trimPaths = trimPaths; exports.trimPathsIndividually = trimPathsIndividually; exports.puckerBloatPaths = puckerBloatPaths; exports.roundCornerPaths = roundCornerPaths; exports.offsetPaths = offsetPaths; exports.sweepPath = sweepPath; exports.twistPaths = twistPaths; exports.zigzagPaths = zigzagPaths; exports.wigglePaths = wigglePaths; exports.mergePaths = mergePaths; exports.vectorRepeaterCopies = vectorRepeaterCopies; exports.repeatPaths = repeatPaths; exports.pathsCenter = pathsCenter; exports.mapVectorPoints = mapVectorPoints; exports.mapVectorSubpaths = mapVectorSubpaths; exports.mapBezierPath = mapBezierPath; exports.isVectorFrame = isVectorFrame; exports.vectorFrameRectPath = vectorFrameRectPath; exports.vectorFrameDrawn = vectorFrameDrawn; exports.vectorFrameContains = vectorFrameContains; exports.vectorFrameChildMatrix = vectorFrameChildMatrix; exports.sanitizeVectorFrame = sanitizeVectorFrame; exports.sanitizeVectorResizing = sanitizeVectorResizing; exports.VECTOR_HORIZONTAL_RESIZING_LABELS = VECTOR_HORIZONTAL_RESIZING_LABELS; exports.VECTOR_VERTICAL_RESIZING_LABELS = VECTOR_VERTICAL_RESIZING_LABELS; exports.vectorBoundsInside = vectorBoundsInside; exports.vectorArtboards = vectorArtboards; exports.vectorFrameDocument = vectorFrameDocument; exports.getVectorFramePanel = getVectorFramePanel; exports.splitIntoFaces = splitIntoFaces; exports.knifePath = knifePath; exports.eraserRegion = eraserRegion; exports.eraseFromFill = eraseFromFill; exports.eraseFromOutline = eraseFromOutline; exports.polylineBounds = polylineBounds; exports.simplifyPolyline = simplifyPolyline; exports.VECTOR_FILTER_DEFAULTS = VECTOR_FILTER_DEFAULTS; exports.VECTOR_FILTER_LABELS = VECTOR_FILTER_LABELS; exports.VECTOR_FILTER_PARAM_SPECS = VECTOR_FILTER_PARAM_SPECS; exports.isVectorFilterType = isVectorFilterType; exports.normalizeVectorFilterParams = normalizeVectorFilterParams; exports.vectorFilterParamKeys = vectorFilterParamKeys; exports.createVectorFilter = createVectorFilter; exports.sanitizeVectorFilters = sanitizeVectorFilters; exports.activeVectorFilters = activeVectorFilters; exports.vectorFilterReach = vectorFilterReach; exports.vectorFilterSvg = vectorFilterSvg; exports.vectorFilterMarkup = vectorFilterMarkup; exports.VECTOR_FILTER_MENU = VECTOR_FILTER_MENU; exports.isVectorMaskType = isVectorMaskType; exports.sanitizeVectorMask = sanitizeVectorMask; exports.isVectorMaskGroup = isVectorMaskGroup; exports.isVectorMaskActive = isVectorMaskActive; exports.vectorMaskSource = vectorMaskSource; exports.vectorMaskContents = vectorMaskContents; exports.vectorMaskOwner = vectorMaskOwner; exports.vectorMaskSummary = vectorMaskSummary; exports.vectorMaskRegionShapes = vectorMaskRegionShapes; exports.vectorMaskRegion = vectorMaskRegion; exports.vectorMaskRegionPath = vectorMaskRegionPath; exports.vectorMaskContains = vectorMaskContains; exports.vectorMaskedShapes = vectorMaskedShapes; exports.vectorMaskedGeometry = vectorMaskedGeometry; exports.vectorMaskedLocalBounds = vectorMaskedLocalBounds; exports.vectorMaskContentBounds = vectorMaskContentBounds; exports.vectorMaskRenderData = vectorMaskRenderData; exports.DEFAULT_TEXT_STYLE = DEFAULT_TEXT_STYLE; exports.DEFAULT_AUTO_LEADING = DEFAULT_AUTO_LEADING; exports.fitRuns = fitRuns; exports.styleAt = styleAt; exports.restyleRange = restyleRange; exports.spliceRuns = spliceRuns; exports.paragraphRanges = paragraphRanges; exports.fitParagraphRuns = fitParagraphRuns; exports.fontOf = fontOf; exports.isTextSpace = isTextSpace; exports.layoutText = layoutText; exports.textIndexAt = textIndexAt; exports.caretAt = caretAt; exports.textDecorations = textDecorations; exports.textRectPath = textRectPath; exports.textFragmentOutline = textFragmentOutline; exports.cssFontFamily = cssFontFamily; exports.cssFont = cssFont; exports.createCanvasTextShaper = createCanvasTextShaper; exports.createOutlineTextShaper = createOutlineTextShaper; exports.createMetricTextShaper = createMetricTextShaper; exports.setVectorTextShaper = setVectorTextShaper; exports.getVectorTextShaper = getVectorTextShaper; exports.vectorTextShaperGeneration = vectorTextShaperGeneration; exports.vectorTextHasOutlines = vectorTextHasOutlines; exports.vectorTextFamilies = vectorTextFamilies; exports.DEFAULT_VECTOR_FONT = DEFAULT_VECTOR_FONT; exports.VECTOR_CHARACTER_STYLE_KEYS = VECTOR_CHARACTER_STYLE_KEYS; exports.VECTOR_PARAGRAPH_STYLE_KEYS = VECTOR_PARAGRAPH_STYLE_KEYS; exports.VectorTextError = VectorTextError; exports.fitVectorTextRuns = fitVectorTextRuns; exports.vectorTextRuns = vectorTextRuns; exports.vectorTextStyleAt = vectorTextStyleAt; exports.measureVectorPath = measureVectorPath; exports.vectorPathAt = vectorPathAt; exports.vectorPathTextPositions = vectorPathTextPositions; exports.layoutVectorText = layoutVectorText; exports.glyphBox = glyphBox; exports.vectorTextPaths = vectorTextPaths; exports.vectorTextPaintSource = vectorTextPaintSource; exports.vectorTextCaret = vectorTextCaret; exports.vectorTextIndexAt = vectorTextIndexAt; exports.vectorTextSelectionQuads = vectorTextSelectionQuads; exports.patchVectorCharacterStyle = patchVectorCharacterStyle; exports.patchVectorParagraphStyle = patchVectorParagraphStyle; exports.sanitizeVectorTextFrame = sanitizeVectorTextFrame; exports.normalizeVectorTextRuns = normalizeVectorTextRuns; exports.sanitizeVectorTextFields = sanitizeVectorTextFields; exports.vectorTextRange = vectorTextRange; exports.replaceVectorText = replaceVectorText; exports.styleVectorText = styleVectorText; exports.bakeVectorTextGeometry = bakeVectorTextGeometry; exports.vectorTextName = vectorTextName; exports.pathTextFrameFromBezier = pathTextFrameFromBezier; exports.vectorTextBoxOutline = vectorTextBoxOutline; exports.vectorTextSpans = vectorTextSpans; exports.vectorTextGeometryNode = vectorTextGeometryNode; exports.vectorTextSpanSvg = vectorTextSpanSvg; exports.VECTOR_SYMBOL_MAX_DEPTH = VECTOR_SYMBOL_MAX_DEPTH; exports.vectorSymbolsUsedIn = vectorSymbolsUsedIn; exports.vectorSymbolUses = vectorSymbolUses; exports.resolveVectorSymbols = resolveVectorSymbols; exports.stripVectorSymbolArt = stripVectorSymbolArt; exports.scaleVectorStrokeWidths = scaleVectorStrokeWidths; exports.tintVectorNode = tintVectorNode; exports.prefixVectorIds = prefixVectorIds; exports.vectorInstanceGroup = vectorInstanceGroup; exports.composeVectorMatrices = composeVectorMatrices; exports.WARP_STYLES = WARP_STYLES; exports.WARP_STYLE_LABELS = WARP_STYLE_LABELS; exports.warpPresetGrid = warpPresetGrid; exports.warpPresetMesh = warpPresetMesh; exports.warpMeshColumns = warpMeshColumns; exports.warpMeshRows = warpMeshRows; exports.isValidWarpMesh = isValidWarpMesh; exports.fitWarpMesh = fitWarpMesh; exports.identityWarpMesh = identityWarpMesh; exports.evalWarpMesh = evalWarpMesh; exports.splitWarpMeshU = splitWarpMeshU; exports.splitWarpMeshV = splitWarpMeshV; exports.removeWarpMeshSplitU = removeWarpMeshSplitU; exports.removeWarpMeshSplitV = removeWarpMeshSplitV; exports.mapWarpMeshPoints = mapWarpMeshPoints; exports.resizeWarpMesh = resizeWarpMesh; exports.warpMeshControlBounds = warpMeshControlBounds; exports.warpMeshParamAt = warpMeshParamAt; exports.dragWarpMeshPoint = dragWarpMeshPoint; exports.pullWarpMesh = pullWarpMesh; exports.warpMeshEditPoints = warpMeshEditPoints; exports.warpMeshGridCurves = warpMeshGridCurves; exports.vectorMeshFromOutline = vectorMeshFromOutline; exports.vectorMeshOutline = vectorMeshOutline; exports.VECTOR_EFFECT_DEFAULTS = VECTOR_EFFECT_DEFAULTS; exports.VECTOR_EFFECT_LABELS = VECTOR_EFFECT_LABELS; exports.VECTOR_EFFECT_PARAM_SPECS = VECTOR_EFFECT_PARAM_SPECS; exports.vectorEnvelopeMesh = vectorEnvelopeMesh; exports.vectorEnvelopeMap = vectorEnvelopeMap; exports.normalizeVectorEffectParams = normalizeVectorEffectParams; exports.createVectorEffect = createVectorEffect; exports.activeVectorEffects = activeVectorEffects; exports.hasOwnVectorAppearance = hasOwnVectorAppearance; exports.hasVectorAppearance = hasVectorAppearance; exports.isVectorLiveBoolean = isVectorLiveBoolean; exports.vectorOperandOperation = vectorOperandOperation; exports.vectorLiveBooleanSteps = vectorLiveBooleanSteps; exports.clearVectorLiveBooleanCache = clearVectorLiveBooleanCache; exports.foldVectorBooleanOperands = foldVectorBooleanOperands; exports.applyVectorEffects = applyVectorEffects; exports.vectorInstanceDrawn = vectorInstanceDrawn; exports.vectorChildAppearanceShapes = vectorChildAppearanceShapes; exports.vectorEffectInputPaths = vectorEffectInputPaths; exports.vectorEffectInputBounds = vectorEffectInputBounds; exports.vectorNodeEnvelope = vectorNodeEnvelope; exports.vectorEnvelopeFrame = vectorEnvelopeFrame; exports.vectorAppearanceShapes = vectorAppearanceShapes; exports.vectorAppearanceOutline = vectorAppearanceOutline; exports.vectorAppearanceNodes = vectorAppearanceNodes; exports.expandVectorAppearance = expandVectorAppearance; exports.expandVectorAppearances = expandVectorAppearances; exports.sanitizeVectorEffects = sanitizeVectorEffects; exports.transformVectorEffects = transformVectorEffects; exports.vectorEnteredGroups = vectorEnteredGroups; exports.isVectorConnector = isVectorConnector; exports.vectorConnectionSites = vectorConnectionSites; exports.nearestVectorConnectionSite = nearestVectorConnectionSite; exports.vectorConnectorWorldAnchors = vectorConnectorWorldAnchors; exports.routeVectorConnector = routeVectorConnector; exports.rerouteVectorConnectors = rerouteVectorConnectors; exports.sanitizeVectorConnector = sanitizeVectorConnector; exports.VECTOR_CONNECTOR_ROUTE_LABELS = VECTOR_CONNECTOR_ROUTE_LABELS; exports.VECTOR_CONNECTOR_SIDE_LABELS = VECTOR_CONNECTOR_SIDE_LABELS; exports.getVectorConnectorPanel = getVectorConnectorPanel; exports.vectorConnectorTargetAt = vectorConnectorTargetAt; exports.vectorStrokeGradientDefs = vectorStrokeGradientDefs; exports.vectorCornersAttribute = vectorCornersAttribute; exports.applyVectorCornersAttribute = applyVectorCornersAttribute; exports.vectorPathLocalBounds = vectorPathLocalBounds; exports.vectorPaintToSvg = vectorPaintToSvg; exports.vectorStrokeSvgParts = vectorStrokeSvgParts; exports.vectorNodeLocalPaintBounds = vectorNodeLocalPaintBounds; exports.vectorNodeFilterSvg = vectorNodeFilterSvg; exports.widthProfileToAttribute = widthProfileToAttribute; exports.widthProfileFromAttribute = widthProfileFromAttribute; exports.vectorDocumentToSvg = vectorDocumentToSvg; exports.parseSvgTransform = parseSvgTransform; exports.parseVectorSvg = parseVectorSvg; exports.VECTOR_SPATIAL_MIN = VECTOR_SPATIAL_MIN; exports.VectorRTree = VectorRTree; exports.vectorNodePaintBox = vectorNodePaintBox; exports.vectorSpatialIndex = vectorSpatialIndex; exports.vectorNodesNear = vectorNodesNear; exports.cloneAnchor = cloneAnchor; exports.cloneSubpath = cloneSubpath; exports.cloneVectorNode = cloneVectorNode; exports.cloneVectorDocument = cloneVectorDocument; exports.hasPaint = hasPaint; exports.subpathSegmentCount = subpathSegmentCount; exports.subpathSegment = subpathSegment; exports.subpathsToBezier = subpathsToBezier; exports.vectorNodeToBezier = vectorNodeToBezier; exports.vectorPathData = vectorPathData; exports.inferAnchorType = inferAnchorType; exports.bezierToSubpaths = bezierToSubpaths; exports.walkVectorNodes = walkVectorNodes; exports.findVectorNode = findVectorNode; exports.locateVectorNode = locateVectorNode; exports.collectPaintedNodes = collectPaintedNodes; exports.collectPathNodes = collectPathNodes; exports.nodeMatrix = nodeMatrix; exports.vectorPathWorldBezier = vectorPathWorldBezier; exports.vectorNodeBounds = vectorNodeBounds; exports.unionBounds = unionBounds; exports.boundsIntersect = boundsIntersect; exports.boundsFromPoints = boundsFromPoints; exports.hitTestVectorNode = hitTestVectorNode; exports.vectorStrokeOutline = vectorStrokeOutline; exports.hitTestVectorNodes = hitTestVectorNodes; exports.nearestSegment = nearestSegment; exports.transformVectorNode = transformVectorNode; exports.vectorNodeRotation = vectorNodeRotation; exports.vectorWorldMatrix = vectorWorldMatrix; exports.vectorParentMatrix = vectorParentMatrix; exports.translateAnchor = translateAnchor; exports.moveAnchorHandle = moveAnchorHandle; exports.convertAnchor = convertAnchor; exports.insertAnchor = insertAnchor; exports.removeAnchors = removeAnchors; exports.reverseSubpath = reverseSubpath; exports.KAPPA = KAPPA2; exports.rectSubpath = rectSubpath; exports.ellipseSubpath = ellipseSubpath; exports.polygonSubpath = polygonSubpath; exports.starSubpath = starSubpath; exports.lineSubpath = lineSubpath; exports.roundSubpaths = roundSubpaths;
|
|
10040
|
-
|
|
10332
|
+
|
|
10333
|
+
|
|
10334
|
+
|
|
10335
|
+
|
|
10336
|
+
|
|
10337
|
+
exports.isVectorMeshGradient = isVectorMeshGradient; exports.isVectorFreeformGradient = isVectorFreeformGradient; exports.isVectorShadedPaint = isVectorShadedPaint; exports.vectorRgbaToCss = vectorRgbaToCss; exports.VECTOR_MESH_MAX = VECTOR_MESH_MAX; exports.createVectorMeshGradient = createVectorMeshGradient; exports.vectorMeshPointAt = vectorMeshPointAt; exports.vectorMeshColorAt = vectorMeshColorAt; exports.vectorMeshLines = vectorMeshLines; exports.vectorFreeformSpreadScale = vectorFreeformSpreadScale; exports.vectorFreeformLineSegments = vectorFreeformLineSegments; exports.vectorFreeformField = vectorFreeformField; exports.sampleVectorFreeform = sampleVectorFreeform; exports.autoVectorFreeformGradient = autoVectorFreeformGradient; exports.vectorShadedSvgDefs = vectorShadedSvgDefs; exports.mapVectorShadedPaint = mapVectorShadedPaint; exports.transformVectorShadedPaint = transformVectorShadedPaint; exports.sanitizeVectorShadedPaint = sanitizeVectorShadedPaint; exports.removeVectorFreeformPoint = removeVectorFreeformPoint; exports.nearestVectorShadingPoint = nearestVectorShadingPoint; exports.VECTOR_CORNER_KINDS = VECTOR_CORNER_KINDS; exports.VECTOR_GRADIENT_TYPES = VECTOR_GRADIENT_TYPES; exports.VECTOR_GRADIENT_SPREADS = VECTOR_GRADIENT_SPREADS; exports.VECTOR_GRADIENT_INTERPOLATIONS = VECTOR_GRADIENT_INTERPOLATIONS; exports.VECTOR_STROKE_GRADIENT_MODES = VECTOR_STROKE_GRADIENT_MODES; exports.VECTOR_ARROWHEADS = VECTOR_ARROWHEADS; exports.VECTOR_BLEND_MODES = VECTOR_BLEND_MODES; exports.VECTOR_HORIZONTAL_RESIZING = VECTOR_HORIZONTAL_RESIZING; exports.VECTOR_VERTICAL_RESIZING = VECTOR_VERTICAL_RESIZING; exports.VECTOR_CONNECTOR_SIDES = VECTOR_CONNECTOR_SIDES; exports.VECTOR_CONNECTOR_ROUTES = VECTOR_CONNECTOR_ROUTES; exports.VECTOR_BLEND_SPACINGS = VECTOR_BLEND_SPACINGS; exports.VECTOR_MASK_TYPES = VECTOR_MASK_TYPES; exports.VECTOR_SYMMETRY_MODES = VECTOR_SYMMETRY_MODES; exports.VECTOR_TEXT_ALIGNS = VECTOR_TEXT_ALIGNS; exports.VECTOR_PATH_TEXT_BASELINES = VECTOR_PATH_TEXT_BASELINES; exports.VECTOR_CONSTRAINT_KINDS = VECTOR_CONSTRAINT_KINDS; exports.VECTOR_TOOLS = VECTOR_TOOLS; exports.VECTOR_TRANSFORM_HANDLES = VECTOR_TRANSFORM_HANDLES; exports.VECTOR_PATHFINDER_OPERATIONS = VECTOR_PATHFINDER_OPERATIONS; exports.VECTOR_EFFECT_TYPES = VECTOR_EFFECT_TYPES; exports.VECTOR_MERGE_MODES = VECTOR_MERGE_MODES; exports.VECTOR_FILTER_TYPES = VECTOR_FILTER_TYPES; exports.isVectorGradient = isVectorGradient; exports.parseVectorColor = parseVectorColor; exports.VECTOR_GRADIENT_MIN_STOPS = VECTOR_GRADIENT_MIN_STOPS; exports.gradientMidpointRemap = gradientMidpointRemap; exports.sortedVectorGradientStops = sortedVectorGradientStops; exports.vectorGradientNeedsExpansion = vectorGradientNeedsExpansion; exports.vectorGradientRamp = vectorGradientRamp; exports.sampleVectorGradient = sampleVectorGradient; exports.expandVectorGradientStops = expandVectorGradientStops; exports.samplePlainStops = samplePlainStops; exports.reverseVectorGradient = reverseVectorGradient; exports.insertVectorGradientStop = insertVectorGradientStop; exports.moveVectorGradientStop = moveVectorGradientStop; exports.removeVectorGradientStop = removeVectorGradientStop; exports.vectorGradientMidpointPosition = vectorGradientMidpointPosition; exports.vectorGradientMidpointFromPosition = vectorGradientMidpointFromPosition; exports.spanVectorGradientStops = spanVectorGradientStops; exports.hasExplicitGradientGeometry = hasExplicitGradientGeometry; exports.vectorGradientPoints = vectorGradientPoints; exports.vectorBoxMatrix = vectorBoxMatrix; exports.vectorGradientUnitsMatrix = vectorGradientUnitsMatrix; exports.vectorGradientMatrix = vectorGradientMatrix; exports.vectorGradientFocalParam = vectorGradientFocalParam; exports.vectorGradientParam = vectorGradientParam; exports.applyVectorGradientSpread = applyVectorGradientSpread; exports.vectorGradientTAt = vectorGradientTAt; exports.sampleVectorGradientAt = sampleVectorGradientAt; exports.vectorGradientAspect = vectorGradientAspect; exports.explicitVectorGradient = explicitVectorGradient; exports.pinVectorGradient = pinVectorGradient; exports.transformVectorGradient = transformVectorGradient; exports.mapVectorGradient = mapVectorGradient; exports.mapVectorPaint = mapVectorPaint; exports.transformVectorPaint = transformVectorPaint; exports.isCentredVectorGradient = isCentredVectorGradient; exports.vectorGradientHandles = vectorGradientHandles; exports.moveVectorGradientHandle = moveVectorGradientHandle; exports.setVectorGradientVector = setVectorGradientVector; exports.VECTOR_GRADIENT_MAX_PERIODS = VECTOR_GRADIENT_MAX_PERIODS; exports.periodicVectorGradientStops = periodicVectorGradientStops; exports.expandVectorGradientSpread = expandVectorGradientSpread; exports.vectorGradientArea = vectorGradientArea; exports.patternAttrs = patternAttrs; exports.vectorGradientSvgDefs = vectorGradientSvgDefs; exports.sampleVectorPaintDefAt = sampleVectorPaintDefAt; exports.sanitizeVectorGradient = sanitizeVectorGradient; exports.convertVectorGradient = convertVectorGradient; exports.defaultVectorGradient = defaultVectorGradient; exports.applyVectorGradientPatch = applyVectorGradientPatch; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; exports.multiplyMatrices = multiplyMatrices; exports.translateMatrix = translateMatrix; exports.scaleMatrix = scaleMatrix; exports.rotateMatrix = rotateMatrix; exports.matrixAbout = matrixAbout; exports.skewMatrix = skewMatrix; exports.applyMatrix = applyMatrix; exports.isIdentityMatrix = isIdentityMatrix; exports.invertMatrix = invertMatrix; exports.applyMatrixLinear = applyMatrixLinear; exports.matrixRotation = matrixRotation; exports.decomposeRigid = decomposeRigid; exports.isVectorSymmetryGroup = isVectorSymmetryGroup; exports.vectorSymmetryMatrices = vectorSymmetryMatrices; exports.vectorSymmetryDrawn = vectorSymmetryDrawn; exports.vectorSymmetryAxes = vectorSymmetryAxes; exports.sanitizeVectorSymmetry = sanitizeVectorSymmetry; exports.VECTOR_SYMMETRY_MODE_LABELS = VECTOR_SYMMETRY_MODE_LABELS; exports.transformVectorSymmetry = transformVectorSymmetry; exports.vectorCornerAt = vectorCornerAt; exports.vectorCorners = vectorCorners; exports.cornerSetback = cornerSetback; exports.fitCornerRadius = fitCornerRadius; exports.cornerBisectorPoint = cornerBisectorPoint; exports.cornerRadiusChange = cornerRadiusChange; exports.hasVectorCorners = hasVectorCorners; exports.expandVectorCornersOf = expandVectorCornersOf; exports.expandVectorCorners = expandVectorCorners; exports.setAnchorCorner = setAnchorCorner; exports.nextVectorCornerKind = nextVectorCornerKind; exports.setSubpathCorners = setSubpathCorners; exports.VECTOR_WIDTH_PROFILE_MAX_POINTS = VECTOR_WIDTH_PROFILE_MAX_POINTS; exports.VECTOR_WIDTH_PROFILE_MAX_SCALE = VECTOR_WIDTH_PROFILE_MAX_SCALE; exports.VECTOR_WIDTH_SAME_T = VECTOR_WIDTH_SAME_T; exports.VECTOR_WIDTH_PRESETS = VECTOR_WIDTH_PRESETS; exports.VECTOR_WIDTH_PRESET_IDS = VECTOR_WIDTH_PRESET_IDS; exports.sanitizeWidthProfile = sanitizeWidthProfile; exports.isUniformWidthProfile = isUniformWidthProfile; exports.widthProfileAt = widthProfileAt; exports.widthProfileMaxScale = widthProfileMaxScale; exports.widthProfilePreset = widthProfilePreset; exports.widthProfilePresetId = widthProfilePresetId; exports.reverseWidthProfile = reverseWidthProfile; exports.mirrorWidthProfile = mirrorWidthProfile; exports.insertWidthPoint = insertWidthPoint; exports.setWidthPoint = setWidthPoint; exports.removeWidthPoints = removeWidthPoints; exports.taperWaveFactor = taperWaveFactor; exports.generateWidthProfile = generateWidthProfile; exports.VECTOR_PRESSURE_NOMINAL = VECTOR_PRESSURE_NOMINAL; exports.pressureWidthProfile = pressureWidthProfile; exports.dashIntervals = dashIntervals; exports.variableStrokeRings = variableStrokeRings; exports.variableStrokeOutline = variableStrokeOutline; exports.nearestStrokePosition = nearestStrokePosition; exports.strokePositionPoint = strokePositionPoint; exports.isClosedBezierShape = isClosedBezierShape; exports.effectiveStrokeAlign = effectiveStrokeAlign; exports.strokeWidthProfileOf = strokeWidthProfileOf; exports.hasStrokeExtras = hasStrokeExtras; exports.vectorStrokeLineArea = vectorStrokeLineArea; exports.arrowheadWeight = arrowheadWeight; exports.arrowheadInset = arrowheadInset; exports.arrowheadPath = arrowheadPath; exports.vectorStrokeParts = vectorStrokeParts; exports.vectorStrokeOutlinePath = vectorStrokeOutlinePath; exports.hitTestVectorStroke = hitTestVectorStroke; exports.vectorStrokeReach = vectorStrokeReach; exports.VECTOR_STROKE_SETTING_KEYS = VECTOR_STROKE_SETTING_KEYS; exports.VECTOR_BLEND_MODE_LABELS = VECTOR_BLEND_MODE_LABELS; exports.isVectorBlendMode = isVectorBlendMode; exports.vectorBlendModeCss = vectorBlendModeCss; exports.vectorBlendModeFromCss = vectorBlendModeFromCss; exports.isPlainVectorPaintLayer = isPlainVectorPaintLayer; exports.isDrawnVectorPaintLayer = isDrawnVectorPaintLayer; exports.vectorFills = vectorFills; exports.vectorStrokeSettings = vectorStrokeSettings; exports.vectorStrokes = vectorStrokes; exports.hasVectorPaintStacks = hasVectorPaintStacks; exports.withVectorFills = withVectorFills; exports.withVectorStrokes = withVectorStrokes; exports.normalizeVectorPaintStacks = normalizeVectorPaintStacks; exports.sanitizeVectorFills = sanitizeVectorFills; exports.sanitizeVectorStrokeSettings = sanitizeVectorStrokeSettings; exports.sanitizeVectorStrokes = sanitizeVectorStrokes; exports.vectorPaintLayerNodes = vectorPaintLayerNodes; exports.needsVectorPaintLayers = needsVectorPaintLayers; exports.vectorStrokeStackReach = vectorStrokeStackReach; exports.hitTestVectorPaintLayer = hitTestVectorPaintLayer; exports.hitTestVectorPaintStack = hitTestVectorPaintStack; exports.vectorStacksHaveGradient = vectorStacksHaveGradient; exports.newVectorStrokeLayer = newVectorStrokeLayer; exports.vectorTargetPaint = vectorTargetPaint; exports.withVectorTargetPaint = withVectorTargetPaint; exports.effectPathLength = effectPathLength; exports.effectPathVertexCount = effectPathVertexCount; exports.trimIntervals = trimIntervals; exports.trimPaths = trimPaths; exports.trimPathsIndividually = trimPathsIndividually; exports.puckerBloatPaths = puckerBloatPaths; exports.roundCornerPaths = roundCornerPaths; exports.offsetPaths = offsetPaths; exports.sweepPath = sweepPath; exports.twistPaths = twistPaths; exports.zigzagPaths = zigzagPaths; exports.wigglePaths = wigglePaths; exports.mergePaths = mergePaths; exports.vectorRepeaterCopies = vectorRepeaterCopies; exports.repeatPaths = repeatPaths; exports.pathsCenter = pathsCenter; exports.mapVectorPoints = mapVectorPoints; exports.mapVectorSubpaths = mapVectorSubpaths; exports.mapBezierPath = mapBezierPath; exports.isVectorFrame = isVectorFrame; exports.vectorFrameRectPath = vectorFrameRectPath; exports.vectorFrameDrawn = vectorFrameDrawn; exports.vectorFrameContains = vectorFrameContains; exports.vectorFrameChildMatrix = vectorFrameChildMatrix; exports.sanitizeVectorFrame = sanitizeVectorFrame; exports.sanitizeVectorResizing = sanitizeVectorResizing; exports.VECTOR_HORIZONTAL_RESIZING_LABELS = VECTOR_HORIZONTAL_RESIZING_LABELS; exports.VECTOR_VERTICAL_RESIZING_LABELS = VECTOR_VERTICAL_RESIZING_LABELS; exports.vectorBoundsInside = vectorBoundsInside; exports.vectorArtboards = vectorArtboards; exports.vectorFrameDocument = vectorFrameDocument; exports.getVectorFramePanel = getVectorFramePanel; exports.splitIntoFaces = splitIntoFaces; exports.knifePath = knifePath; exports.eraserRegion = eraserRegion; exports.eraseFromFill = eraseFromFill; exports.eraseFromOutline = eraseFromOutline; exports.polylineBounds = polylineBounds; exports.simplifyPolyline = simplifyPolyline; exports.VECTOR_FILTER_DEFAULTS = VECTOR_FILTER_DEFAULTS; exports.VECTOR_FILTER_LABELS = VECTOR_FILTER_LABELS; exports.VECTOR_FILTER_PARAM_SPECS = VECTOR_FILTER_PARAM_SPECS; exports.isVectorFilterType = isVectorFilterType; exports.normalizeVectorFilterParams = normalizeVectorFilterParams; exports.vectorFilterParamKeys = vectorFilterParamKeys; exports.createVectorFilter = createVectorFilter; exports.sanitizeVectorFilters = sanitizeVectorFilters; exports.activeVectorFilters = activeVectorFilters; exports.vectorFilterReach = vectorFilterReach; exports.vectorFilterSvg = vectorFilterSvg; exports.vectorFilterMarkup = vectorFilterMarkup; exports.VECTOR_FILTER_MENU = VECTOR_FILTER_MENU; exports.isVectorMaskType = isVectorMaskType; exports.sanitizeVectorMask = sanitizeVectorMask; exports.isVectorMaskGroup = isVectorMaskGroup; exports.isVectorMaskActive = isVectorMaskActive; exports.vectorMaskSource = vectorMaskSource; exports.vectorMaskContents = vectorMaskContents; exports.vectorMaskOwner = vectorMaskOwner; exports.vectorMaskSummary = vectorMaskSummary; exports.vectorMaskRegionShapes = vectorMaskRegionShapes; exports.vectorMaskRegion = vectorMaskRegion; exports.vectorMaskRegionPath = vectorMaskRegionPath; exports.vectorMaskContains = vectorMaskContains; exports.vectorMaskedShapes = vectorMaskedShapes; exports.vectorMaskedGeometry = vectorMaskedGeometry; exports.vectorMaskedLocalBounds = vectorMaskedLocalBounds; exports.vectorMaskContentBounds = vectorMaskContentBounds; exports.vectorMaskRenderData = vectorMaskRenderData; exports.DEFAULT_TEXT_STYLE = DEFAULT_TEXT_STYLE; exports.DEFAULT_AUTO_LEADING = DEFAULT_AUTO_LEADING; exports.fitRuns = fitRuns; exports.styleAt = styleAt; exports.restyleRange = restyleRange; exports.spliceRuns = spliceRuns; exports.paragraphRanges = paragraphRanges; exports.fitParagraphRuns = fitParagraphRuns; exports.fontOf = fontOf; exports.isTextSpace = isTextSpace; exports.layoutText = layoutText; exports.textIndexAt = textIndexAt; exports.caretAt = caretAt; exports.textDecorations = textDecorations; exports.textRectPath = textRectPath; exports.textFragmentOutline = textFragmentOutline; exports.cssFontFamily = cssFontFamily; exports.cssFont = cssFont; exports.createCanvasTextShaper = createCanvasTextShaper; exports.createOutlineTextShaper = createOutlineTextShaper; exports.createMetricTextShaper = createMetricTextShaper; exports.setVectorTextShaper = setVectorTextShaper; exports.getVectorTextShaper = getVectorTextShaper; exports.vectorTextShaperGeneration = vectorTextShaperGeneration; exports.vectorTextHasOutlines = vectorTextHasOutlines; exports.vectorTextFamilies = vectorTextFamilies; exports.DEFAULT_VECTOR_FONT = DEFAULT_VECTOR_FONT; exports.VECTOR_CHARACTER_STYLE_KEYS = VECTOR_CHARACTER_STYLE_KEYS; exports.VECTOR_PARAGRAPH_STYLE_KEYS = VECTOR_PARAGRAPH_STYLE_KEYS; exports.VectorTextError = VectorTextError; exports.fitVectorTextRuns = fitVectorTextRuns; exports.vectorTextRuns = vectorTextRuns; exports.vectorTextStyleAt = vectorTextStyleAt; exports.measureVectorPath = measureVectorPath; exports.vectorPathAt = vectorPathAt; exports.vectorPathTextPositions = vectorPathTextPositions; exports.layoutVectorText = layoutVectorText; exports.glyphBox = glyphBox; exports.vectorTextPaths = vectorTextPaths; exports.vectorTextPaintSource = vectorTextPaintSource; exports.vectorTextCaret = vectorTextCaret; exports.vectorTextIndexAt = vectorTextIndexAt; exports.vectorTextSelectionQuads = vectorTextSelectionQuads; exports.patchVectorCharacterStyle = patchVectorCharacterStyle; exports.patchVectorParagraphStyle = patchVectorParagraphStyle; exports.sanitizeVectorTextFrame = sanitizeVectorTextFrame; exports.normalizeVectorTextRuns = normalizeVectorTextRuns; exports.sanitizeVectorTextFields = sanitizeVectorTextFields; exports.vectorTextRange = vectorTextRange; exports.replaceVectorText = replaceVectorText; exports.styleVectorText = styleVectorText; exports.bakeVectorTextGeometry = bakeVectorTextGeometry; exports.vectorTextName = vectorTextName; exports.pathTextFrameFromBezier = pathTextFrameFromBezier; exports.vectorTextBoxOutline = vectorTextBoxOutline; exports.vectorTextSpans = vectorTextSpans; exports.vectorTextGeometryNode = vectorTextGeometryNode; exports.vectorTextSpanSvg = vectorTextSpanSvg; exports.VECTOR_SYMBOL_MAX_DEPTH = VECTOR_SYMBOL_MAX_DEPTH; exports.vectorSymbolsUsedIn = vectorSymbolsUsedIn; exports.vectorSymbolUses = vectorSymbolUses; exports.resolveVectorSymbols = resolveVectorSymbols; exports.stripVectorSymbolArt = stripVectorSymbolArt; exports.scaleVectorStrokeWidths = scaleVectorStrokeWidths; exports.tintVectorNode = tintVectorNode; exports.prefixVectorIds = prefixVectorIds; exports.vectorInstanceGroup = vectorInstanceGroup; exports.composeVectorMatrices = composeVectorMatrices; exports.vectorPaintSolid = vectorPaintSolid; exports.shadeVectorColor = shadeVectorColor; exports.vectorPathRings = vectorPathRings; exports.vectorExtrudeFaces = vectorExtrudeFaces; exports.vectorBevelFaces = vectorBevelFaces; exports.WARP_STYLES = WARP_STYLES; exports.WARP_STYLE_LABELS = WARP_STYLE_LABELS; exports.warpPresetGrid = warpPresetGrid; exports.warpPresetMesh = warpPresetMesh; exports.warpMeshColumns = warpMeshColumns; exports.warpMeshRows = warpMeshRows; exports.isValidWarpMesh = isValidWarpMesh; exports.fitWarpMesh = fitWarpMesh; exports.identityWarpMesh = identityWarpMesh; exports.evalWarpMesh = evalWarpMesh; exports.splitWarpMeshU = splitWarpMeshU; exports.splitWarpMeshV = splitWarpMeshV; exports.removeWarpMeshSplitU = removeWarpMeshSplitU; exports.removeWarpMeshSplitV = removeWarpMeshSplitV; exports.mapWarpMeshPoints = mapWarpMeshPoints; exports.resizeWarpMesh = resizeWarpMesh; exports.warpMeshControlBounds = warpMeshControlBounds; exports.warpMeshParamAt = warpMeshParamAt; exports.dragWarpMeshPoint = dragWarpMeshPoint; exports.pullWarpMesh = pullWarpMesh; exports.warpMeshEditPoints = warpMeshEditPoints; exports.warpMeshGridCurves = warpMeshGridCurves; exports.vectorMeshFromOutline = vectorMeshFromOutline; exports.vectorMeshOutline = vectorMeshOutline; exports.VECTOR_EFFECT_DEFAULTS = VECTOR_EFFECT_DEFAULTS; exports.VECTOR_EFFECT_LABELS = VECTOR_EFFECT_LABELS; exports.VECTOR_EFFECT_PARAM_SPECS = VECTOR_EFFECT_PARAM_SPECS; exports.vectorEnvelopeMesh = vectorEnvelopeMesh; exports.vectorEnvelopeMap = vectorEnvelopeMap; exports.normalizeVectorEffectParams = normalizeVectorEffectParams; exports.createVectorEffect = createVectorEffect; exports.activeVectorEffects = activeVectorEffects; exports.hasOwnVectorAppearance = hasOwnVectorAppearance; exports.hasVectorAppearance = hasVectorAppearance; exports.isVectorLiveBoolean = isVectorLiveBoolean; exports.vectorOperandOperation = vectorOperandOperation; exports.vectorLiveBooleanSteps = vectorLiveBooleanSteps; exports.clearVectorLiveBooleanCache = clearVectorLiveBooleanCache; exports.foldVectorBooleanOperands = foldVectorBooleanOperands; exports.applyVectorEffects = applyVectorEffects; exports.vectorInstanceDrawn = vectorInstanceDrawn; exports.vectorChildAppearanceShapes = vectorChildAppearanceShapes; exports.vectorEffectInputPaths = vectorEffectInputPaths; exports.vectorEffectInputBounds = vectorEffectInputBounds; exports.vectorNodeEnvelope = vectorNodeEnvelope; exports.vectorEnvelopeFrame = vectorEnvelopeFrame; exports.vectorAppearanceShapes = vectorAppearanceShapes; exports.vectorAppearanceOutline = vectorAppearanceOutline; exports.vectorAppearanceNodes = vectorAppearanceNodes; exports.expandVectorAppearance = expandVectorAppearance; exports.expandVectorAppearances = expandVectorAppearances; exports.sanitizeVectorEffects = sanitizeVectorEffects; exports.transformVectorEffects = transformVectorEffects; exports.vectorEnteredGroups = vectorEnteredGroups; exports.isVectorConnector = isVectorConnector; exports.vectorConnectionSites = vectorConnectionSites; exports.nearestVectorConnectionSite = nearestVectorConnectionSite; exports.vectorConnectorWorldAnchors = vectorConnectorWorldAnchors; exports.routeVectorConnector = routeVectorConnector; exports.rerouteVectorConnectors = rerouteVectorConnectors; exports.sanitizeVectorConnector = sanitizeVectorConnector; exports.VECTOR_CONNECTOR_ROUTE_LABELS = VECTOR_CONNECTOR_ROUTE_LABELS; exports.VECTOR_CONNECTOR_SIDE_LABELS = VECTOR_CONNECTOR_SIDE_LABELS; exports.getVectorConnectorPanel = getVectorConnectorPanel; exports.vectorConnectorTargetAt = vectorConnectorTargetAt; exports.vectorStrokeGradientDefs = vectorStrokeGradientDefs; exports.vectorCornersAttribute = vectorCornersAttribute; exports.applyVectorCornersAttribute = applyVectorCornersAttribute; exports.vectorPathLocalBounds = vectorPathLocalBounds; exports.vectorPaintToSvg = vectorPaintToSvg; exports.vectorStrokeSvgParts = vectorStrokeSvgParts; exports.vectorNodeLocalPaintBounds = vectorNodeLocalPaintBounds; exports.vectorNodeFilterSvg = vectorNodeFilterSvg; exports.widthProfileToAttribute = widthProfileToAttribute; exports.widthProfileFromAttribute = widthProfileFromAttribute; exports.vectorDocumentToSvg = vectorDocumentToSvg; exports.parseSvgTransform = parseSvgTransform; exports.parseVectorSvg = parseVectorSvg; exports.VECTOR_SPATIAL_MIN = VECTOR_SPATIAL_MIN; exports.VectorRTree = VectorRTree; exports.vectorNodePaintBox = vectorNodePaintBox; exports.vectorSpatialIndex = vectorSpatialIndex; exports.vectorNodesNear = vectorNodesNear; exports.cloneAnchor = cloneAnchor; exports.cloneSubpath = cloneSubpath; exports.cloneVectorNode = cloneVectorNode; exports.cloneVectorDocument = cloneVectorDocument; exports.hasPaint = hasPaint; exports.subpathSegmentCount = subpathSegmentCount; exports.subpathSegment = subpathSegment; exports.subpathsToBezier = subpathsToBezier; exports.vectorNodeToBezier = vectorNodeToBezier; exports.vectorPathData = vectorPathData; exports.inferAnchorType = inferAnchorType; exports.bezierToSubpaths = bezierToSubpaths; exports.walkVectorNodes = walkVectorNodes; exports.findVectorNode = findVectorNode; exports.locateVectorNode = locateVectorNode; exports.collectPaintedNodes = collectPaintedNodes; exports.collectPathNodes = collectPathNodes; exports.nodeMatrix = nodeMatrix; exports.vectorPathWorldBezier = vectorPathWorldBezier; exports.vectorNodeBounds = vectorNodeBounds; exports.unionBounds = unionBounds; exports.boundsIntersect = boundsIntersect; exports.boundsFromPoints = boundsFromPoints; exports.hitTestVectorNode = hitTestVectorNode; exports.vectorStrokeOutline = vectorStrokeOutline; exports.hitTestVectorNodes = hitTestVectorNodes; exports.nearestSegment = nearestSegment; exports.transformVectorNode = transformVectorNode; exports.vectorNodeRotation = vectorNodeRotation; exports.vectorWorldMatrix = vectorWorldMatrix; exports.vectorParentMatrix = vectorParentMatrix; exports.translateAnchor = translateAnchor; exports.moveAnchorHandle = moveAnchorHandle; exports.convertAnchor = convertAnchor; exports.insertAnchor = insertAnchor; exports.removeAnchors = removeAnchors; exports.reverseSubpath = reverseSubpath; exports.KAPPA = KAPPA2; exports.rectSubpath = rectSubpath; exports.ellipseSubpath = ellipseSubpath; exports.polygonSubpath = polygonSubpath; exports.starSubpath = starSubpath; exports.lineSubpath = lineSubpath; exports.roundSubpaths = roundSubpaths;
|
|
10338
|
+
//# sourceMappingURL=chunk-LXGOYRPE.cjs.map
|