@pixerate/editor 0.133.0 → 0.134.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.
Files changed (61) hide show
  1. package/dist/animation-editor/index.cjs +55 -55
  2. package/dist/animation-editor/index.d.cts +4 -4
  3. package/dist/animation-editor/index.d.ts +4 -4
  4. package/dist/animation-editor/index.js +2 -2
  5. package/dist/{bezier-DL2wPsFf.d.cts → bezier-J8i4uqSH.d.cts} +1 -1
  6. package/dist/{bezier-BAGdL89w.d.ts → bezier-lNEOp0Jx.d.ts} +1 -1
  7. package/dist/canvas/index.d.cts +7 -7
  8. package/dist/canvas/index.d.ts +7 -7
  9. package/dist/{chunk-VGZSIXX3.js → chunk-7RJ6P7MI.js} +2 -2
  10. package/dist/{chunk-AOCFL7L7.js → chunk-ESIWZMMK.js} +2 -2
  11. package/dist/{chunk-FOBB6AIO.js → chunk-HHTCDFZC.js} +97 -5
  12. package/dist/chunk-HHTCDFZC.js.map +1 -0
  13. package/dist/{chunk-2QKUD3E2.cjs → chunk-T6TV6HY6.cjs} +36 -36
  14. package/dist/{chunk-2QKUD3E2.cjs.map → chunk-T6TV6HY6.cjs.map} +1 -1
  15. package/dist/{chunk-65GNHOD4.cjs → chunk-YAFS2QFZ.cjs} +82 -82
  16. package/dist/{chunk-65GNHOD4.cjs.map → chunk-YAFS2QFZ.cjs.map} +1 -1
  17. package/dist/{chunk-F7GGEAO2.cjs → chunk-Z2H7KECK.cjs} +151 -59
  18. package/dist/chunk-Z2H7KECK.cjs.map +1 -0
  19. package/dist/effects/index.d.cts +4 -4
  20. package/dist/effects/index.d.ts +4 -4
  21. package/dist/{export-BICOEM9d.d.cts → export-BGdT02aL.d.cts} +3 -3
  22. package/dist/{export-zB4HITwP.d.ts → export-DMeG6E06.d.ts} +1 -1
  23. package/dist/{export-XnuX8FZ2.d.ts → export-Dng22YB8.d.ts} +3 -3
  24. package/dist/{export-CeFplzAW.d.cts → export-KzubBKo7.d.cts} +1 -1
  25. package/dist/{helpers-cssRNUzH.d.ts → helpers-Coa4e2j_.d.ts} +12 -0
  26. package/dist/{helpers-BuKdqUlM.d.cts → helpers-DHl28yLO.d.cts} +12 -0
  27. package/dist/image-editor/index.cjs +610 -610
  28. package/dist/image-editor/index.d.cts +8 -8
  29. package/dist/image-editor/index.d.ts +8 -8
  30. package/dist/image-editor/index.js +2 -2
  31. package/dist/{opentype-C3iyIFRx.d.cts → opentype-BWR7Qv8W.d.cts} +1 -1
  32. package/dist/{opentype-DG5Lkwul.d.ts → opentype-Dfcx6wFx.d.ts} +1 -1
  33. package/dist/paint-editor/index.cjs +7 -7
  34. package/dist/paint-editor/index.d.cts +5 -5
  35. package/dist/paint-editor/index.d.ts +5 -5
  36. package/dist/paint-editor/index.js +2 -2
  37. package/dist/{pathfinder-DKLt4UDG.d.ts → pathfinder-Celbi3e6.d.ts} +1 -1
  38. package/dist/{pathfinder-8vXik95z.d.cts → pathfinder-D8KQ6blQ.d.cts} +1 -1
  39. package/dist/{pool-C69pkWRz.d.ts → pool-8JZGWHvR.d.ts} +1 -1
  40. package/dist/{pool-VAWcYUbs.d.cts → pool-BfuxBKTd.d.cts} +1 -1
  41. package/dist/{svg-CEYpvsgH.d.ts → svg-CxxqG3_W.d.ts} +2 -2
  42. package/dist/{svg-BThlZmja.d.cts → svg-pwXWq6s2.d.cts} +2 -2
  43. package/dist/{tools-CRnZJXXr.d.cts → tools-3EBjR91b.d.cts} +1 -1
  44. package/dist/{tools-CVGqEpO8.d.ts → tools-y1M6O3UT.d.ts} +1 -1
  45. package/dist/vector/index.cjs +1292 -1035
  46. package/dist/vector/index.cjs.map +1 -1
  47. package/dist/vector/index.d.cts +183 -91
  48. package/dist/vector/index.d.ts +183 -91
  49. package/dist/vector/index.js +267 -10
  50. package/dist/vector/index.js.map +1 -1
  51. package/dist/video-editor/index.d.cts +4 -4
  52. package/dist/video-editor/index.d.ts +4 -4
  53. package/dist/{warp-mKylbLiF.d.ts → warp-C1gwu2G_.d.ts} +1 -1
  54. package/dist/{warp-ChcFDdlT.d.cts → warp-Ceqdz7kj.d.cts} +1 -1
  55. package/package.json +1 -1
  56. package/skills/pixerate-vector/SKILL.md +12 -53
  57. package/skills/pixerate-vector/references/pitfalls.md +62 -0
  58. package/dist/chunk-F7GGEAO2.cjs.map +0 -1
  59. package/dist/chunk-FOBB6AIO.js.map +0 -1
  60. /package/dist/{chunk-VGZSIXX3.js.map → chunk-7RJ6P7MI.js.map} +0 -0
  61. /package/dist/{chunk-AOCFL7L7.js.map → chunk-ESIWZMMK.js.map} +0 -0
@@ -3206,10 +3206,11 @@ var drawnCache = /* @__PURE__ */ new WeakMap();
3206
3206
  function vectorFrameDrawn(node) {
3207
3207
  let hit = drawnCache.get(node);
3208
3208
  if (hit) return hit;
3209
- const { frame, ...group } = node;
3209
+ const { frame, masterArt, ...group } = node;
3210
3210
  const rect = vectorFrameRectPath(frame);
3211
+ const below = _nullishCoalesce(masterArt, () => ( []));
3211
3212
  const fill = frame.fill !== void 0 && frame.fill !== null && frame.fill !== "none" ? [{ id: `${node.id}~frame-fill`, type: "path", fill: frame.fill, stroke: null, subpaths: rect }] : [];
3212
- hit = frame.clip === false ? { ...group, children: [...fill, ...node.children] } : { ...group, mask: { type: "clip" }, children: [{ id: `${node.id}~frame-clip`, type: "path", fill: "#000000", stroke: null, subpaths: rect }, ...fill, ...node.children] };
3213
+ hit = frame.clip === false ? { ...group, children: [...fill, ...below, ...node.children] } : { ...group, mask: { type: "clip" }, children: [{ id: `${node.id}~frame-clip`, type: "path", fill: "#000000", stroke: null, subpaths: rect }, ...fill, ...below, ...node.children] };
3213
3214
  drawnCache.set(node, hit);
3214
3215
  return hit;
3215
3216
  }
@@ -3254,6 +3255,8 @@ function sanitizeVectorFrame(value) {
3254
3255
  const out = { x: r.x, y: r.y, width: r.width, height: r.height };
3255
3256
  if (typeof r.fill === "string" || r.fill && typeof r.fill === "object") out.fill = r.fill;
3256
3257
  if (r.clip === false) out.clip = false;
3258
+ if (r.master === true) out.master = true;
3259
+ if (typeof r.masterId === "string" && r.masterId) out.masterId = r.masterId;
3257
3260
  return out;
3258
3261
  }
3259
3262
  function sanitizeVectorResizing(value) {
@@ -7532,10 +7535,88 @@ function vectorEnteredGroups(nodes, ids) {
7532
7535
  return out;
7533
7536
  }
7534
7537
 
7538
+ // src/vector/pages.ts
7539
+ function isVectorMasterPage(node) {
7540
+ return isVectorFrame(node) && !!node.frame.master;
7541
+ }
7542
+ function vectorPages(doc) {
7543
+ return doc.nodes.filter((n) => isVectorFrame(n) && !n.frame.master);
7544
+ }
7545
+ function vectorMasterPages(doc) {
7546
+ return doc.nodes.filter(isVectorMasterPage);
7547
+ }
7548
+ function fillTokens(node, page, pages) {
7549
+ const map = (s) => s.replace(/\{page\}/g, String(page)).replace(/\{pages\}/g, String(pages));
7550
+ if (!/\{pages?\}/.test(node.text)) return node;
7551
+ if (!_optionalChain([node, 'access', _184 => _184.runs, 'optionalAccess', _185 => _185.length])) return { ...node, text: map(node.text) };
7552
+ let at2 = 0;
7553
+ let text = "";
7554
+ const runs = [];
7555
+ for (const r of node.runs) {
7556
+ const part = map(node.text.slice(at2, at2 + r.length));
7557
+ at2 += r.length;
7558
+ text += part;
7559
+ runs.push({ ...r, length: part.length });
7560
+ }
7561
+ return { ...node, text: text + map(node.text.slice(at2)), runs };
7562
+ }
7563
+ function onPage(node, pageId, page, pages) {
7564
+ const id = `${pageId}~master~${node.id}`;
7565
+ if (node.type === "group") return { ...node, id, children: node.children.map((c) => onPage(c, pageId, page, pages)) };
7566
+ if (node.type === "text") return { ...fillTokens(node, page, pages), id, locked: true };
7567
+ return { ...node, id, locked: true };
7568
+ }
7569
+ var artCache = /* @__PURE__ */ new WeakMap();
7570
+ function vectorMasterArt(master, page, number, count) {
7571
+ const f = page.frame;
7572
+ const key = `${page.id}|${f.x}|${f.y}|${f.width}|${f.height}|${number}|${count}`;
7573
+ let byKey = artCache.get(master);
7574
+ const hit = _optionalChain([byKey, 'optionalAccess', _186 => _186.get, 'call', _187 => _187(key)]);
7575
+ if (hit) return hit;
7576
+ const art = master.children.filter((c) => c.visible !== false).map((c) => {
7577
+ const box = vectorNodeBounds(c);
7578
+ const m = box ? vectorFrameChildMatrix(c.resizing, box, master.frame, page.frame) : null;
7579
+ return onPage(m ? transformVectorNode(c, m) : c, page.id, number, count);
7580
+ });
7581
+ if (!byKey) artCache.set(master, byKey = /* @__PURE__ */ new Map());
7582
+ byKey.set(key, art);
7583
+ return art;
7584
+ }
7585
+ function resolveVectorMasterPages(doc) {
7586
+ const masters = new Map(vectorMasterPages(doc).map((m) => [m.id, m]));
7587
+ const pages = vectorPages(doc);
7588
+ const numbers = new Map(pages.map((p, i) => [p.id, i + 1]));
7589
+ let changed = false;
7590
+ const nodes = doc.nodes.map((n) => {
7591
+ if (!isVectorFrame(n)) return n;
7592
+ const master = !n.frame.master && n.frame.masterId ? masters.get(n.frame.masterId) : void 0;
7593
+ const art = master ? vectorMasterArt(master, n, _nullishCoalesce(numbers.get(n.id), () => ( 0)), pages.length) : void 0;
7594
+ if (art === n.masterArt || !art && !n.masterArt) return n;
7595
+ changed = true;
7596
+ if (!art) {
7597
+ const { masterArt: _m, ...rest } = n;
7598
+ return rest;
7599
+ }
7600
+ return { ...n, masterArt: art };
7601
+ });
7602
+ return changed ? { ...doc, nodes } : doc;
7603
+ }
7604
+ function stripVectorMasterArt(doc) {
7605
+ if (!doc.nodes.some((n) => n.type === "group" && n.masterArt)) return doc;
7606
+ return {
7607
+ ...doc,
7608
+ nodes: doc.nodes.map((n) => {
7609
+ if (n.type !== "group" || !n.masterArt) return n;
7610
+ const { masterArt: _m, ...rest } = n;
7611
+ return rest;
7612
+ })
7613
+ };
7614
+ }
7615
+
7535
7616
  // src/vector/connectors.ts
7536
7617
  var SIDES = ["top", "right", "bottom", "left", "center"];
7537
7618
  function isVectorConnector(node) {
7538
- return _optionalChain([node, 'optionalAccess', _184 => _184.type]) === "path" && !!node.connector;
7619
+ return _optionalChain([node, 'optionalAccess', _188 => _188.type]) === "path" && !!node.connector;
7539
7620
  }
7540
7621
  function vectorConnectionSites(nodes, id) {
7541
7622
  const node = findVectorNode(nodes, id);
@@ -7592,7 +7673,7 @@ function facingSite(sites, toward) {
7592
7673
  }
7593
7674
  function storedEnds(node, world) {
7594
7675
  const sp = node.subpaths[0];
7595
- if (!_optionalChain([sp, 'optionalAccess', _185 => _185.anchors, 'access', _186 => _186.length])) return null;
7676
+ if (!_optionalChain([sp, 'optionalAccess', _189 => _189.anchors, 'access', _190 => _190.length])) return null;
7596
7677
  const a = sp.anchors[0];
7597
7678
  const b = sp.anchors[sp.anchors.length - 1];
7598
7679
  return [applyMatrix(world, a), applyMatrix(world, b)];
@@ -7699,8 +7780,8 @@ function routeVectorConnector(nodes, id) {
7699
7780
  }));
7700
7781
  return {
7701
7782
  subpaths: [{ closed: false, anchors: local }],
7702
- startSide: _nullishCoalesce(_optionalChain([s, 'optionalAccess', _187 => _187.side]), () => ( null)),
7703
- endSide: _nullishCoalesce(_optionalChain([e, 'optionalAccess', _188 => _188.side]), () => ( null)),
7783
+ startSide: _nullishCoalesce(_optionalChain([s, 'optionalAccess', _191 => _191.side]), () => ( null)),
7784
+ endSide: _nullishCoalesce(_optionalChain([e, 'optionalAccess', _192 => _192.side]), () => ( null)),
7704
7785
  dropped: { start: !!startGlue && !s, end: !!endGlue && !e }
7705
7786
  };
7706
7787
  }
@@ -7712,7 +7793,7 @@ function sameSubpaths(a, b) {
7712
7793
  const o = b[i];
7713
7794
  return sp.closed === o.closed && sp.anchors.length === o.anchors.length && sp.anchors.every((p, k) => {
7714
7795
  const q = o.anchors[k];
7715
- return samePoint(p, q) && samePoint(p.in, q.in) && samePoint(p.out, q.out) && (_nullishCoalesce(_optionalChain([p, 'access', _189 => _189.corner, 'optionalAccess', _190 => _190.radius]), () => ( 0))) === (_nullishCoalesce(_optionalChain([q, 'access', _191 => _191.corner, 'optionalAccess', _192 => _192.radius]), () => ( 0)));
7796
+ return samePoint(p, q) && samePoint(p.in, q.in) && samePoint(p.out, q.out) && (_nullishCoalesce(_optionalChain([p, 'access', _193 => _193.corner, 'optionalAccess', _194 => _194.radius]), () => ( 0))) === (_nullishCoalesce(_optionalChain([q, 'access', _195 => _195.corner, 'optionalAccess', _196 => _196.radius]), () => ( 0)));
7716
7797
  });
7717
7798
  });
7718
7799
  }
@@ -7991,7 +8072,7 @@ function applyVectorCornersAttribute(subpaths, value) {
7991
8072
  for (const item of value.trim().split(/\s+/)) {
7992
8073
  const m = /^(\d+)\.(\d+):([\d.eE+-]+)(?::([a-z]+))?$/.exec(item);
7993
8074
  if (!m) continue;
7994
- const a = _optionalChain([subpaths, 'access', _193 => _193[+m[1]], 'optionalAccess', _194 => _194.anchors, 'access', _195 => _195[+m[2]]]);
8075
+ const a = _optionalChain([subpaths, 'access', _197 => _197[+m[1]], 'optionalAccess', _198 => _198.anchors, 'access', _199 => _199[+m[2]]]);
7995
8076
  const radius = parseFloat(m[3]);
7996
8077
  if (!a || !(radius > 0)) continue;
7997
8078
  const kind = VECTOR_CORNER_KINDS.includes(m[4]) ? m[4] : void 0;
@@ -8016,7 +8097,7 @@ function vectorPaintToSvg(paint, gradientId, options = {}) {
8016
8097
  const area2 = bounds2 ? { x: bounds2.x - reach2, y: bounds2.y - reach2, width: bounds2.width + 2 * reach2, height: bounds2.height + 2 * reach2 } : null;
8017
8098
  const key2 = `${gradientId}|${_nullishCoalesce(options.role, () => ( "fill"))}|${_nullishCoalesce(options.precision, () => ( 3))}|${area2 ? [area2.x, area2.y, area2.width, area2.height].join(",") : ""}`;
8018
8099
  let byKey2 = paintCache.get(paint);
8019
- const hit = _optionalChain([byKey2, 'optionalAccess', _196 => _196.get, 'call', _197 => _197(key2)]);
8100
+ const hit = _optionalChain([byKey2, 'optionalAccess', _200 => _200.get, 'call', _201 => _201(key2)]);
8020
8101
  if (hit) return { value: `url(#${gradientId})`, defs: hit };
8021
8102
  const defs2 = vectorShadedSvgDefs(paint, gradientId, { bounds: bounds2, area: area2, precision: _nullishCoalesce(options.precision, () => ( 3)) });
8022
8103
  if (!byKey2) paintCache.set(paint, byKey2 = /* @__PURE__ */ new Map());
@@ -8028,7 +8109,7 @@ function vectorPaintToSvg(paint, gradientId, options = {}) {
8028
8109
  const precision = _nullishCoalesce(options.precision, () => ( 3));
8029
8110
  const key = `${gradientId}|${role}|${precision}`;
8030
8111
  const owner = _nullishCoalesce(options.node, () => ( paint));
8031
- const cached = _optionalChain([paintCache, 'access', _198 => _198.get, 'call', _199 => _199(owner), 'optionalAccess', _200 => _200.get, 'call', _201 => _201(key)]);
8112
+ const cached = _optionalChain([paintCache, 'access', _202 => _202.get, 'call', _203 => _203(owner), 'optionalAccess', _204 => _204.get, 'call', _205 => _205(key)]);
8032
8113
  if (cached && (!options.node || (role === "fill" ? options.node.fill : options.node.stroke) === paint)) return { value: `url(#${gradientId})`, defs: cached };
8033
8114
  const node = options.node;
8034
8115
  const bounds = node ? vectorPathLocalBounds(node) : null;
@@ -8082,7 +8163,7 @@ function vectorNodeLocalPaintBounds(node) {
8082
8163
  }
8083
8164
  var filterCache = /* @__PURE__ */ new WeakMap();
8084
8165
  function vectorNodeFilterSvg(node, id) {
8085
- if (!_optionalChain([node, 'access', _202 => _202.filters, 'optionalAccess', _203 => _203.length])) return null;
8166
+ if (!_optionalChain([node, 'access', _206 => _206.filters, 'optionalAccess', _207 => _207.length])) return null;
8086
8167
  const hit = filterCache.get(node);
8087
8168
  if (hit && hit.id === id) return hit.filter;
8088
8169
  const active = activeVectorFilters(node);
@@ -8145,7 +8226,7 @@ function blendFromAttribute(value, m) {
8145
8226
  return out;
8146
8227
  }
8147
8228
  function vectorDocumentToSvg(doc, options = {}) {
8148
- doc = resolveVectorLenses(resolveVectorSymbols(doc));
8229
+ doc = resolveVectorLenses(resolveVectorMasterPages(resolveVectorSymbols(doc)));
8149
8230
  const precision = _nullishCoalesce(options.precision, () => ( 3));
8150
8231
  const prefix = _nullishCoalesce(options.idPrefix, () => ( "vg-"));
8151
8232
  const pretty = options.pretty !== false;
@@ -8167,7 +8248,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8167
8248
  if (node.type === "path" && node.lens) out2 += ` data-vector-lens="${escapeAttr2(JSON.stringify(node.lens))}"`;
8168
8249
  const blend = vectorBlendModeCss(node.blendMode);
8169
8250
  if (blend) out2 += ` style="mix-blend-mode:${blend}"`;
8170
- if (_optionalChain([node, 'access', _204 => _204.filters, 'optionalAccess', _205 => _205.length])) {
8251
+ if (_optionalChain([node, 'access', _208 => _208.filters, 'optionalAccess', _209 => _209.length])) {
8171
8252
  const filter = vectorNodeFilterSvg(node, `${prefix}filter-${node.id}`);
8172
8253
  const data = ` data-vector-filters="${escapeAttr2(JSON.stringify(node.filters))}"`;
8173
8254
  if (filter) {
@@ -8214,7 +8295,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8214
8295
  let out2 = ` stroke="${escapeAttr2(strokeValue)}" stroke-width="${num3(width)}"`;
8215
8296
  if (node.strokeLinecap && node.strokeLinecap !== "butt") out2 += ` stroke-linecap="${node.strokeLinecap}"`;
8216
8297
  if (node.strokeLinejoin && node.strokeLinejoin !== "miter") out2 += ` stroke-linejoin="${node.strokeLinejoin}"`;
8217
- if (_optionalChain([node, 'access', _206 => _206.strokeDasharray, 'optionalAccess', _207 => _207.length])) out2 += ` stroke-dasharray="${node.strokeDasharray.map(num3).join(" ")}"`;
8298
+ if (_optionalChain([node, 'access', _210 => _210.strokeDasharray, 'optionalAccess', _211 => _211.length])) out2 += ` stroke-dasharray="${node.strokeDasharray.map(num3).join(" ")}"`;
8218
8299
  return out2;
8219
8300
  };
8220
8301
  const liveCorners = (node) => {
@@ -8257,7 +8338,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8257
8338
  };
8258
8339
  const emit2 = (node, depth) => {
8259
8340
  if (node.visible === false && !options.includeHidden) return;
8260
- const wrappers = _nullishCoalesce(_optionalChain([options, 'access', _208 => _208.wrap, 'optionalAccess', _209 => _209[node.id]]), () => ( []));
8341
+ const wrappers = _nullishCoalesce(_optionalChain([options, 'access', _212 => _212.wrap, 'optionalAccess', _213 => _213[node.id]]), () => ( []));
8261
8342
  wrappers.forEach((w2, i) => {
8262
8343
  let attrs = w2.id !== void 0 ? ` id="${escapeAttr2(w2.id)}"` : "";
8263
8344
  if (w2.transform) attrs += ` transform="${escapeAttr2(w2.transform)}"`;
@@ -8278,7 +8359,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8278
8359
  };
8279
8360
  const emitMaskGroup = (node, depth) => {
8280
8361
  const [source, ...contents] = node.children;
8281
- const body = _optionalChain([node, 'access', _210 => _210.effects, 'optionalAccess', _211 => _211.length]) && contents.length ? [{ id: `${node.id}~content`, type: "group", effects: node.effects, children: contents }] : contents;
8362
+ const body = _optionalChain([node, 'access', _214 => _214.effects, 'optionalAccess', _215 => _215.length]) && contents.length ? [{ id: `${node.id}~content`, type: "group", effects: node.effects, children: contents }] : contents;
8282
8363
  const settings = { type: node.mask.type, ...node.mask.invert ? { invert: true } : {} };
8283
8364
  lines.push(`${indent(depth)}<g${common(node)} data-vector-mask="${escapeAttr2(JSON.stringify(settings))}">`);
8284
8365
  const mask = vectorMaskRenderData(node, `${prefix}mask-${node.id}`, `${prefix}mask-filter-${node.id}`, precision);
@@ -8295,7 +8376,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8295
8376
  lines.push(`${indent(depth + 1)}<g data-vector-part="mask-source" display="none">`);
8296
8377
  emitNode(source, depth + 2);
8297
8378
  lines.push(`${indent(depth + 1)}</g>`);
8298
- if (_optionalChain([mask, 'optionalAccess', _212 => _212.clip])) {
8379
+ if (_optionalChain([mask, 'optionalAccess', _216 => _216.clip])) {
8299
8380
  defs.push(`<clipPath id="${escapeAttr2(mask.id)}">${mask.clip.map((c) => `<path d="${c.d}" clip-rule="${c.clipRule}"/>`).join("")}</clipPath>`);
8300
8381
  ref = ` clip-path="url(#${escapeAttr2(mask.id)})"`;
8301
8382
  }
@@ -8307,7 +8388,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8307
8388
  };
8308
8389
  const emitTextElement = (node, depth, attrs) => {
8309
8390
  const geometry = vectorTextGeometryNode(node);
8310
- const fields = { text: node.text, font: node.font, ..._optionalChain([node, 'access', _213 => _213.runs, 'optionalAccess', _214 => _214.length]) ? { runs: node.runs } : {}, ...node.paragraph ? { paragraph: node.paragraph } : {}, frame: node.frame, ..._optionalChain([node, 'access', _215 => _215.effects, 'optionalAccess', _216 => _216.length]) ? { effects: node.effects } : {} };
8391
+ const fields = { text: node.text, font: node.font, ..._optionalChain([node, 'access', _217 => _217.runs, 'optionalAccess', _218 => _218.length]) ? { runs: node.runs } : {}, ...node.paragraph ? { paragraph: node.paragraph } : {}, frame: node.frame, ..._optionalChain([node, 'access', _219 => _219.effects, 'optionalAccess', _220 => _220.length]) ? { effects: node.effects } : {} };
8311
8392
  let data = ` data-vector-text="${escapeAttr2(JSON.stringify(fields))}"`;
8312
8393
  if (hasVectorPaintStacks(node)) data += ` data-vector-fills="${escapeAttr2(JSON.stringify(vectorFills(node)))}" data-vector-strokes="${escapeAttr2(JSON.stringify(vectorStrokes(node)))}"`;
8313
8394
  else {
@@ -8349,12 +8430,12 @@ function vectorDocumentToSvg(doc, options = {}) {
8349
8430
  };
8350
8431
  const emitText = (node, depth) => {
8351
8432
  const outlines = vectorTextPaths(node).outlines;
8352
- const effects = !!_optionalChain([node, 'access', _217 => _217.effects, 'optionalAccess', _218 => _218.some, 'call', _219 => _219((e) => e.enabled !== false)]);
8433
+ const effects = !!_optionalChain([node, 'access', _221 => _221.effects, 'optionalAccess', _222 => _222.some, 'call', _223 => _223((e) => e.enabled !== false)]);
8353
8434
  if (!outlines || !effects && options.text !== "outlines") {
8354
8435
  emitTextElement(node, depth, common(node));
8355
8436
  return;
8356
8437
  }
8357
- lines.push(`${indent(depth)}<g${common(node)} data-vector-live="${escapeAttr2(JSON.stringify({ kind: "text", ..._optionalChain([node, 'access', _220 => _220.effects, 'optionalAccess', _221 => _221.length]) ? { effects: node.effects } : {} }))}">`);
8438
+ lines.push(`${indent(depth)}<g${common(node)} data-vector-live="${escapeAttr2(JSON.stringify({ kind: "text", ..._optionalChain([node, 'access', _224 => _224.effects, 'optionalAccess', _225 => _225.length]) ? { effects: node.effects } : {} }))}">`);
8358
8439
  lines.push(`${indent(depth + 1)}<g data-vector-part="appearance">`);
8359
8440
  for (const shape of vectorAppearanceNodes(node)) emit2(shape, depth + 2);
8360
8441
  lines.push(`${indent(depth + 1)}</g>`);
@@ -8368,7 +8449,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8368
8449
  const symbolRef = (symbolId) => {
8369
8450
  const hit = symbolIds.get(symbolId);
8370
8451
  if (hit) return hit;
8371
- const sym2 = _optionalChain([doc, 'access', _222 => _222.symbols, 'optionalAccess', _223 => _223.find, 'call', _224 => _224((x) => x.id === symbolId)]);
8452
+ const sym2 = _optionalChain([doc, 'access', _226 => _226.symbols, 'optionalAccess', _227 => _227.find, 'call', _228 => _228((x) => x.id === symbolId)]);
8372
8453
  if (!sym2) return null;
8373
8454
  const id = `${prefix}symbol-${symbolId}`;
8374
8455
  symbolIds.set(symbolId, id);
@@ -8378,20 +8459,20 @@ function vectorDocumentToSvg(doc, options = {}) {
8378
8459
  };
8379
8460
  const emitInstance = (node, depth) => {
8380
8461
  const data = { symbolId: node.symbolId, ...node.scaleStrokes === false ? { scaleStrokes: false } : {}, ...node.overrides ? { overrides: node.overrides } : {} };
8381
- const exact2 = !node.overrides && node.scaleStrokes !== false && !_optionalChain([node, 'access', _225 => _225.effects, 'optionalAccess', _226 => _226.length]) && !_optionalChain([node, 'access', _227 => _227.filters, 'optionalAccess', _228 => _228.length]);
8462
+ const exact2 = !node.overrides && node.scaleStrokes !== false && !_optionalChain([node, 'access', _229 => _229.effects, 'optionalAccess', _230 => _230.length]) && !_optionalChain([node, 'access', _231 => _231.filters, 'optionalAccess', _232 => _232.length]);
8382
8463
  const ref = symbolRef(node.symbolId);
8383
8464
  if (exact2 && ref) {
8384
8465
  lines.push(`${indent(depth)}<use${common(node)} href="#${escapeAttr2(ref)}" data-vector-instance="${escapeAttr2(JSON.stringify(data))}"/>`);
8385
8466
  return;
8386
8467
  }
8387
- const full = { ...data, ...node.transform ? { transform: node.transform } : {}, ..._optionalChain([node, 'access', _229 => _229.effects, 'optionalAccess', _230 => _230.length]) ? { effects: node.effects } : {} };
8468
+ const full = { ...data, ...node.transform ? { transform: node.transform } : {}, ..._optionalChain([node, 'access', _233 => _233.effects, 'optionalAccess', _234 => _234.length]) ? { effects: node.effects } : {} };
8388
8469
  lines.push(`${indent(depth)}<g data-vector-instance="${escapeAttr2(JSON.stringify(full))}">`);
8389
8470
  emitNode(vectorInstanceDrawn(node), depth + 1);
8390
8471
  lines.push(`${indent(depth)}</g>`);
8391
8472
  };
8392
8473
  const emitFrame = (node, depth) => {
8393
8474
  const f = node.frame;
8394
- const data = { ...f, ..._optionalChain([node, 'access', _231 => _231.effects, 'optionalAccess', _232 => _232.length]) ? { effects: node.effects } : {} };
8475
+ const data = { ...f, ..._optionalChain([node, 'access', _235 => _235.effects, 'optionalAccess', _236 => _236.length]) ? { effects: node.effects } : {} };
8395
8476
  lines.push(`${indent(depth)}<g${common(node)} data-vector-frame="${escapeAttr2(JSON.stringify(data))}">`);
8396
8477
  const rect = vectorFrameRectPath(f);
8397
8478
  if (f.fill !== void 0 && f.fill !== null && f.fill !== "none") {
@@ -8406,6 +8487,11 @@ function vectorDocumentToSvg(doc, options = {}) {
8406
8487
  ref = ` clip-path="url(#${escapeAttr2(id)})"`;
8407
8488
  }
8408
8489
  lines.push(`${indent(depth + 1)}<g data-vector-part="frame-contents"${ref}>`);
8490
+ if (_optionalChain([node, 'access', _237 => _237.masterArt, 'optionalAccess', _238 => _238.length])) {
8491
+ lines.push(`${indent(depth + 2)}<g data-vector-part="frame-master">`);
8492
+ for (const child of node.masterArt) emit2(child, depth + 3);
8493
+ lines.push(`${indent(depth + 2)}</g>`);
8494
+ }
8409
8495
  for (const child of node.children) emit2(child, depth + 2);
8410
8496
  lines.push(`${indent(depth + 1)}</g>`);
8411
8497
  lines.push(`${indent(depth)}</g>`);
@@ -8430,7 +8516,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8430
8516
  if (hasOwnVectorAppearance(node)) {
8431
8517
  const live2 = {
8432
8518
  kind: node.type,
8433
- ..._optionalChain([node, 'access', _233 => _233.effects, 'optionalAccess', _234 => _234.length]) ? { effects: node.effects } : {},
8519
+ ..._optionalChain([node, 'access', _239 => _239.effects, 'optionalAccess', _240 => _240.length]) ? { effects: node.effects } : {},
8434
8520
  ...node.type === "group" && node.liveBoolean ? { liveBoolean: node.liveBoolean } : {},
8435
8521
  ...node.type === "group" && node.symmetry ? { symmetry: node.symmetry } : {}
8436
8522
  };
@@ -8481,7 +8567,7 @@ function vectorDocumentToSvg(doc, options = {}) {
8481
8567
  data += ` data-vector-width-profile="${widthProfileToAttribute(profile)}"`;
8482
8568
  if (node.strokeLinecap && node.strokeLinecap !== "butt") data += ` data-vector-stroke-linecap="${node.strokeLinecap}"`;
8483
8569
  if (node.strokeLinejoin && node.strokeLinejoin !== "miter") data += ` data-vector-stroke-linejoin="${node.strokeLinejoin}"`;
8484
- if (_optionalChain([node, 'access', _235 => _235.strokeDasharray, 'optionalAccess', _236 => _236.length])) data += ` data-vector-stroke-dasharray="${node.strokeDasharray.map(num3).join(" ")}"`;
8570
+ if (_optionalChain([node, 'access', _241 => _241.strokeDasharray, 'optionalAccess', _242 => _242.length])) data += ` data-vector-stroke-dasharray="${node.strokeDasharray.map(num3).join(" ")}"`;
8485
8571
  }
8486
8572
  lines.push(`${indent(depth)}<g${common(node)}${data}>`);
8487
8573
  lines.push(`${indent(depth + 1)}<path data-vector-part="fill" d="${d}"${fillAttrs}${live}/>`);
@@ -8649,7 +8735,7 @@ function attrOrStyle(el, name) {
8649
8735
  return el.attrs[name];
8650
8736
  }
8651
8737
  function urlId(value) {
8652
- return _nullishCoalesce(_optionalChain([/^url\(\s*['"]?#([^'")\s]+)['"]?\s*\)/, 'access', _237 => _237.exec, 'call', _238 => _238((_nullishCoalesce(value, () => ( ""))).trim()), 'optionalAccess', _239 => _239[1]]), () => ( null));
8738
+ return _nullishCoalesce(_optionalChain([/^url\(\s*['"]?#([^'")\s]+)['"]?\s*\)/, 'access', _243 => _243.exec, 'call', _244 => _244((_nullishCoalesce(value, () => ( ""))).trim()), 'optionalAccess', _245 => _245[1]]), () => ( null));
8653
8739
  }
8654
8740
  function clipRulesAsFillRules(el) {
8655
8741
  const attrs = { ...el.attrs };
@@ -8714,9 +8800,9 @@ function resolveGradient(id, raw) {
8714
8800
  for (let el = first; el && !chain.includes(el) && chain.length < 32; ) {
8715
8801
  chain.push(el);
8716
8802
  const href = _nullishCoalesce(el.attrs.href, () => ( el.attrs["xlink:href"]));
8717
- el = _optionalChain([href, 'optionalAccess', _240 => _240.startsWith, 'call', _241 => _241("#")]) ? raw.get(href.slice(1)) : void 0;
8803
+ el = _optionalChain([href, 'optionalAccess', _246 => _246.startsWith, 'call', _247 => _247("#")]) ? raw.get(href.slice(1)) : void 0;
8718
8804
  }
8719
- const attr = (name) => _optionalChain([chain, 'access', _242 => _242.find, 'call', _243 => _243((el) => el.attrs[name] !== void 0), 'optionalAccess', _244 => _244.attrs, 'access', _245 => _245[name]]);
8805
+ const attr = (name) => _optionalChain([chain, 'access', _248 => _248.find, 'call', _249 => _249((el) => el.attrs[name] !== void 0), 'optionalAccess', _250 => _250.attrs, 'access', _251 => _251[name]]);
8720
8806
  const stops = _nullishCoalesce(chain.map(readStops).find((s) => s.length), () => ( []));
8721
8807
  if (!stops.length) return null;
8722
8808
  const user = attr("gradientUnits") === "userSpaceOnUse";
@@ -8886,7 +8972,7 @@ function parseVectorSvg(svg, options = {}) {
8886
8972
  const stackedPath = (g, _style, m, meta) => {
8887
8973
  const fillEl = g.children.find((c) => c.name === "path" && c.attrs["data-vector-part"] === "fill");
8888
8974
  const subpaths = fillEl ? shapeOf(fillEl) : null;
8889
- if (!_optionalChain([subpaths, 'optionalAccess', _246 => _246.length])) return null;
8975
+ if (!_optionalChain([subpaths, 'optionalAccess', _252 => _252.length])) return null;
8890
8976
  const parse = (v2) => {
8891
8977
  try {
8892
8978
  return v2 ? JSON.parse(v2) : [];
@@ -8905,7 +8991,7 @@ function parseVectorSvg(svg, options = {}) {
8905
8991
  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))]);
8906
8992
  for (const n of nodes2) {
8907
8993
  const prev = out[out.length - 1];
8908
- if (_optionalChain([prev, 'optionalAccess', _247 => _247.type]) === "path" && n.type === "path" && key(prev) === key(n)) {
8994
+ if (_optionalChain([prev, 'optionalAccess', _253 => _253.type]) === "path" && n.type === "path" && key(prev) === key(n)) {
8909
8995
  const fills = vectorFills(n);
8910
8996
  const strokesBefore = vectorStrokes(prev);
8911
8997
  if (!(fills.length && strokesBefore.length)) {
@@ -8923,7 +9009,7 @@ function parseVectorSvg(svg, options = {}) {
8923
9009
  const part = (name) => g.children.find((c) => c.name === "path" && c.attrs["data-vector-part"] === name);
8924
9010
  const fillEl = part("fill");
8925
9011
  const subpaths = fillEl ? shapeOf(fillEl) : null;
8926
- if (!fillEl || !_optionalChain([subpaths, 'optionalAccess', _248 => _248.length])) return null;
9012
+ if (!fillEl || !_optionalChain([subpaths, 'optionalAccess', _254 => _254.length])) return null;
8927
9013
  const a = g.attrs;
8928
9014
  const fs = readStyle(fillEl, style);
8929
9015
  const strokeEl = part("stroke");
@@ -8960,7 +9046,7 @@ function parseVectorSvg(svg, options = {}) {
8960
9046
  ...profile.length ? { strokeWidthProfile: profile } : {},
8961
9047
  ...keptCap ? { strokeLinecap: keptCap } : {},
8962
9048
  ...keptJoin ? { strokeLinejoin: keptJoin } : {},
8963
- ..._optionalChain([keptDash, 'optionalAccess', _249 => _249.length]) ? { strokeDasharray: keptDash } : {}
9049
+ ..._optionalChain([keptDash, 'optionalAccess', _255 => _255.length]) ? { strokeDasharray: keptDash } : {}
8964
9050
  };
8965
9051
  return placed(node, m);
8966
9052
  };
@@ -9025,8 +9111,8 @@ function parseVectorSvg(svg, options = {}) {
9025
9111
  } else {
9026
9112
  const fill = json2(g.attrs["data-vector-fill"]);
9027
9113
  const stroke = json2(g.attrs["data-vector-stroke"]);
9028
- node.fill = fill == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call', _250 => _250([{ paint: fill }]), 'access', _251 => _251[0], 'optionalAccess', _252 => _252.paint]), () => ( null));
9029
- node.stroke = stroke == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call', _253 => _253([{ paint: stroke }]), 'access', _254 => _254[0], 'optionalAccess', _255 => _255.paint]), () => ( null));
9114
+ node.fill = fill == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call', _256 => _256([{ paint: fill }]), 'access', _257 => _257[0], 'optionalAccess', _258 => _258.paint]), () => ( null));
9115
+ node.stroke = stroke == null ? null : _nullishCoalesce(_optionalChain([sanitizeVectorFills, 'call', _259 => _259([{ paint: stroke }]), 'access', _260 => _260[0], 'optionalAccess', _261 => _261.paint]), () => ( null));
9030
9116
  const settings = json2(g.attrs["data-vector-stroke-settings"]);
9031
9117
  if (settings && typeof settings === "object") {
9032
9118
  const strokes = sanitizeVectorStrokes([{ paint: _nullishCoalesce(node.stroke, () => ( "#000")), ...settings }]);
@@ -9062,8 +9148,8 @@ function parseVectorSvg(svg, options = {}) {
9062
9148
  const anchor = attrOrStyle(el, "text-anchor");
9063
9149
  const first0 = (v2) => _nullishCoalesce(numberList(v2)[0], () => ( 0));
9064
9150
  const tspan = el.children.find((c) => c.name === "tspan");
9065
- const x = el.attrs.x !== void 0 ? first0(el.attrs.x) : first0(_optionalChain([tspan, 'optionalAccess', _256 => _256.attrs, 'access', _257 => _257.x]));
9066
- const y = el.attrs.y !== void 0 ? first0(el.attrs.y) : first0(_optionalChain([tspan, 'optionalAccess', _258 => _258.attrs, 'access', _259 => _259.y]));
9151
+ const x = el.attrs.x !== void 0 ? first0(el.attrs.x) : first0(_optionalChain([tspan, 'optionalAccess', _262 => _262.attrs, 'access', _263 => _263.x]));
9152
+ const y = el.attrs.y !== void 0 ? first0(el.attrs.y) : first0(_optionalChain([tspan, 'optionalAccess', _264 => _264.attrs, 'access', _265 => _265.y]));
9067
9153
  const fillValue = _nullishCoalesce(attrOrStyle(el, "fill"), () => ( style.fill));
9068
9154
  let node = {
9069
9155
  id: idFor(el),
@@ -9094,12 +9180,12 @@ function parseVectorSvg(svg, options = {}) {
9094
9180
  if (symbolOfElement.has(el)) return symbolOfElement.get(el);
9095
9181
  symbolOfElement.set(el, null);
9096
9182
  const own = json2(el.attrs["data-vector-symbol"]);
9097
- let id = typeof _optionalChain([own, 'optionalAccess', _260 => _260.id]) === "string" && own.id ? own.id : _nullishCoalesce(el.attrs.id, () => ( createId()));
9183
+ let id = typeof _optionalChain([own, 'optionalAccess', _266 => _266.id]) === "string" && own.id ? own.id : _nullishCoalesce(el.attrs.id, () => ( createId()));
9098
9184
  while (usedSymbolIds.has(id)) id = `${id}-${usedSymbolIds.size}`;
9099
9185
  usedSymbolIds.add(id);
9100
9186
  const style = readStyle(el, rootStyle);
9101
9187
  const nodes2 = el.name === "symbol" ? visit2(el, style, IDENTITY_MATRIX) : visitOne({ ...el, attrs: { ...el.attrs, transform: "" } }, rootStyle, parseSvgTransform(el.attrs.transform));
9102
- symbols.push({ id, name: typeof _optionalChain([own, 'optionalAccess', _261 => _261.name]) === "string" && own.name ? own.name : _nullishCoalesce(el.attrs.id, () => ( "Symbol")), nodes: nodes2 });
9188
+ symbols.push({ id, name: typeof _optionalChain([own, 'optionalAccess', _267 => _267.name]) === "string" && own.name ? own.name : _nullishCoalesce(el.attrs.id, () => ( "Symbol")), nodes: nodes2 });
9103
9189
  symbolOfElement.set(el, id);
9104
9190
  return id;
9105
9191
  };
@@ -9111,13 +9197,13 @@ function parseVectorSvg(svg, options = {}) {
9111
9197
  if (!symbolId) return null;
9112
9198
  const own = json2(el.attrs["data-vector-instance"]);
9113
9199
  const place2 = multiplyMatrices(translateMatrix(length(el.attrs.x), length(el.attrs.y)), m);
9114
- const node = { id: idFor(el), type: "instance", ...meta, symbolId, ..._optionalChain([own, 'optionalAccess', _262 => _262.scaleStrokes]) === false ? { scaleStrokes: false } : {}, ..._optionalChain([own, 'optionalAccess', _263 => _263.overrides]) ? { overrides: own.overrides } : {} };
9200
+ const node = { id: idFor(el), type: "instance", ...meta, symbolId, ..._optionalChain([own, 'optionalAccess', _268 => _268.scaleStrokes]) === false ? { scaleStrokes: false } : {}, ..._optionalChain([own, 'optionalAccess', _269 => _269.overrides]) ? { overrides: own.overrides } : {} };
9115
9201
  return isIdentityMatrix(place2) ? node : { ...node, transform: place2 };
9116
9202
  };
9117
9203
  const ownInstance = (g, m, meta) => {
9118
9204
  const raw = json2(g.attrs["data-vector-instance"]);
9119
9205
  if (!raw || typeof raw.symbolId !== "string") return null;
9120
- const sym2 = [...byId.values()].find((e) => e.name === "symbol" && _optionalChain([json2, 'call', _264 => _264(e.attrs["data-vector-symbol"]), 'optionalAccess', _265 => _265.id]) === raw.symbolId);
9206
+ const sym2 = [...byId.values()].find((e) => e.name === "symbol" && _optionalChain([json2, 'call', _270 => _270(e.attrs["data-vector-symbol"]), 'optionalAccess', _271 => _271.id]) === raw.symbolId);
9121
9207
  const symbolId = sym2 ? symbolFor(sym2) : raw.symbolId;
9122
9208
  if (!symbolId) return null;
9123
9209
  const t = Array.isArray(raw.transform) && raw.transform.length === 6 && raw.transform.every(Number.isFinite) ? raw.transform : IDENTITY_MATRIX;
@@ -9125,7 +9211,7 @@ function parseVectorSvg(svg, options = {}) {
9125
9211
  const drawn = g.children.find((c) => c.name === "g");
9126
9212
  const effects = sanitizeVectorEffects(raw.effects);
9127
9213
  const node = {
9128
- id: _nullishCoalesce(_optionalChain([drawn, 'optionalAccess', _266 => _266.attrs, 'access', _267 => _267.id]), () => ( idFor(g))),
9214
+ id: _nullishCoalesce(_optionalChain([drawn, 'optionalAccess', _272 => _272.attrs, 'access', _273 => _273.id]), () => ( idFor(g))),
9129
9215
  type: "instance",
9130
9216
  ...meta,
9131
9217
  symbolId,
@@ -9182,12 +9268,12 @@ function parseVectorSvg(svg, options = {}) {
9182
9268
  const masked = (el, nodes2, m) => {
9183
9269
  let out = nodes2;
9184
9270
  const clipEl = rawMasks.get(_nullishCoalesce(urlId(attrOrStyle(el, "clip-path")), () => ( "")));
9185
- if (_optionalChain([clipEl, 'optionalAccess', _268 => _268.name]) === "clipPath") {
9271
+ if (_optionalChain([clipEl, 'optionalAccess', _274 => _274.name]) === "clipPath") {
9186
9272
  const source = maskNode(clipEl, m, out, clipEl.attrs.clipPathUnits);
9187
9273
  if (source) out = [{ id: idFor({ name: "g", attrs: {}, children: [] }), type: "group", name: "Clip Group", mask: { type: "clip" }, children: [source, ...out] }];
9188
9274
  }
9189
9275
  const maskEl = rawMasks.get(_nullishCoalesce(urlId(attrOrStyle(el, "mask")), () => ( "")));
9190
- if (_optionalChain([maskEl, 'optionalAccess', _269 => _269.name]) === "mask") {
9276
+ if (_optionalChain([maskEl, 'optionalAccess', _275 => _275.name]) === "mask") {
9191
9277
  const source = maskNode(maskEl, m, out, maskEl.attrs.maskContentUnits);
9192
9278
  const type = attrOrStyle(maskEl, "mask-type") === "alpha" ? "alpha" : "luminance";
9193
9279
  if (source) out = [{ id: idFor({ name: "g", attrs: {}, children: [] }), type: "group", name: "Opacity Mask", mask: { type }, children: [source, ...out] }];
@@ -9209,31 +9295,31 @@ function parseVectorSvg(svg, options = {}) {
9209
9295
  let sourceEl = part("mask-source");
9210
9296
  if (!sourceEl) {
9211
9297
  const el = rawMasks.get(_nullishCoalesce(urlId(maskedEl.attrs.mask), () => ( "")));
9212
- const invert2 = _optionalChain([el, 'optionalAccess', _270 => _270.children, 'access', _271 => _271.find, 'call', _272 => _272((c) => c.name === "g" && c.attrs["data-vector-part"] === "mask-invert")]);
9298
+ const invert2 = _optionalChain([el, 'optionalAccess', _276 => _276.children, 'access', _277 => _277.find, 'call', _278 => _278((c) => c.name === "g" && c.attrs["data-vector-part"] === "mask-invert")]);
9213
9299
  sourceEl = _nullishCoalesce(invert2, () => ( el));
9214
9300
  }
9215
9301
  const source = sourceEl ? visit2(sourceEl, style, m)[0] : void 0;
9216
9302
  let contents = visit2(maskedEl, style, m);
9217
9303
  let effects;
9218
9304
  const wrapper = contents.length === 1 && contents[0].type === "group" && contents[0].id === `${id}~content` ? contents[0] : null;
9219
- if (_optionalChain([wrapper, 'optionalAccess', _273 => _273.type]) === "group") {
9305
+ if (_optionalChain([wrapper, 'optionalAccess', _279 => _279.type]) === "group") {
9220
9306
  effects = _nullishCoalesce(wrapper.effects, () => ( void 0));
9221
9307
  contents = wrapper.children;
9222
9308
  }
9223
9309
  if (!source) return contents.length ? { id, type: "group", ...meta, children: contents } : null;
9224
- return { id, type: "group", ...meta, mask, ..._optionalChain([effects, 'optionalAccess', _274 => _274.length]) ? { effects } : {}, children: [source, ...contents] };
9310
+ return { id, type: "group", ...meta, mask, ..._optionalChain([effects, 'optionalAccess', _280 => _280.length]) ? { effects } : {}, children: [source, ...contents] };
9225
9311
  };
9226
9312
  const frameGroup = (g, style, m, meta) => {
9227
9313
  const raw = parseJson(g.attrs["data-vector-frame"]);
9228
9314
  const frame = sanitizeVectorFrame(raw);
9229
9315
  const contentsEl = g.children.find((c) => c.name === "g" && c.attrs["data-vector-part"] === "frame-contents");
9230
- const children = contentsEl ? visit2(contentsEl, style, m) : [];
9316
+ const children = contentsEl ? visit2({ ...contentsEl, children: contentsEl.children.filter((c) => c.attrs["data-vector-part"] !== "frame-master") }, style, m) : [];
9231
9317
  const id = idFor(g);
9232
9318
  if (!frame) return children.length ? { id, type: "group", ...meta, children } : null;
9233
9319
  const { rigid, residual } = decomposeRigid(m);
9234
9320
  const r = _chunkBJTCSLF6cjs.bezierPathBounds.call(void 0, _chunkBJTCSLF6cjs.transformBezierPath.call(void 0, subpathsToBezier(vectorFrameRectPath(frame)), residual));
9235
9321
  const back = invertMatrix(rigid);
9236
- const effects = sanitizeVectorEffects(_optionalChain([raw, 'optionalAccess', _275 => _275.effects]));
9322
+ const effects = sanitizeVectorEffects(_optionalChain([raw, 'optionalAccess', _281 => _281.effects]));
9237
9323
  return {
9238
9324
  id,
9239
9325
  type: "group",
@@ -9699,13 +9785,13 @@ function hitTestVectorNode(node, p, tolerance = 0, parent = IDENTITY_MATRIX, opt
9699
9785
  }
9700
9786
  if (isVectorMaskGroup(node)) {
9701
9787
  const m = multiplyMatrices(nodeMatrix(node), parent);
9702
- const entered = !!_optionalChain([options, 'access', _276 => _276.entered, 'optionalAccess', _277 => _277.has, 'call', _278 => _278(node.id)]);
9788
+ const entered = !!_optionalChain([options, 'access', _282 => _282.entered, 'optionalAccess', _283 => _283.has, 'call', _284 => _284(node.id)]);
9703
9789
  if (!entered && isVectorMaskActive(node) && !vectorMaskContains(node, applyMatrix(invertMatrix(m), p), tolerance)) return false;
9704
9790
  const shown = !entered && hasOwnVectorAppearance(node) ? expandVectorAppearance(node).children : node.children;
9705
9791
  for (let i = shown.length - 1; i >= 1; i--) if (hitTestVectorNode(shown[i], p, tolerance, m, options)) return true;
9706
9792
  return entered && hitTestVectorMaskSource(node, p, tolerance, m, options);
9707
9793
  }
9708
- if (!(node.type === "group" && (!hasOwnVectorAppearance(node) || _optionalChain([options, 'access', _279 => _279.entered, 'optionalAccess', _280 => _280.has, 'call', _281 => _281(node.id)])))) node = expandVectorAppearance(node);
9794
+ if (!(node.type === "group" && (!hasOwnVectorAppearance(node) || _optionalChain([options, 'access', _285 => _285.entered, 'optionalAccess', _286 => _286.has, 'call', _287 => _287(node.id)])))) node = expandVectorAppearance(node);
9709
9795
  if (node.type === "group") {
9710
9796
  const m = multiplyMatrices(nodeMatrix(node), parent);
9711
9797
  return node.children.some((c) => hitTestVectorNode(c, p, tolerance, m, options));
@@ -9717,7 +9803,7 @@ function hitTestVectorNode(node, p, tolerance = 0, parent = IDENTITY_MATRIX, opt
9717
9803
  function hitTestVectorMaskSource(group, p, tolerance, m, options) {
9718
9804
  const source = group.children[0];
9719
9805
  if (source.visible === false) return false;
9720
- if (_optionalChain([group, 'access', _282 => _282.mask, 'optionalAccess', _283 => _283.type]) !== "clip") return hitTestVectorNode(source, p, tolerance, m, options);
9806
+ if (_optionalChain([group, 'access', _288 => _288.mask, 'optionalAccess', _289 => _289.type]) !== "clip") return hitTestVectorNode(source, p, tolerance, m, options);
9721
9807
  const paths = collectPathNodes(source).filter((n) => n.visible !== false);
9722
9808
  const pt2 = [p.x, p.y];
9723
9809
  return paths.some((n) => {
@@ -9766,24 +9852,24 @@ function mapAnchor(a, m) {
9766
9852
  }
9767
9853
  function bakeIntoGeometry(node, m) {
9768
9854
  if (isIdentityMatrix(m)) return node;
9769
- if (_optionalChain([node, 'access', _284 => _284.effects, 'optionalAccess', _285 => _285.length])) node = { ...node, effects: transformVectorEffects(node.effects, m, node) };
9855
+ if (_optionalChain([node, 'access', _290 => _290.effects, 'optionalAccess', _291 => _291.length])) node = { ...node, effects: transformVectorEffects(node.effects, m, node) };
9770
9856
  if (isVectorFrame(node)) return bakeFrame(node, m);
9771
9857
  if (node.type === "group") {
9772
9858
  const group = node;
9773
9859
  const children = group.children.map((c) => transformVectorNode(c, m));
9774
9860
  const sym2 = group.symmetry ? { symmetry: transformVectorSymmetry(group.symmetry, m) } : {};
9775
- const spine = _optionalChain([group, 'access', _286 => _286.blend, 'optionalAccess', _287 => _287.spine]);
9861
+ const spine = _optionalChain([group, 'access', _292 => _292.blend, 'optionalAccess', _293 => _293.spine]);
9776
9862
  if (!spine) return { ...group, ...sym2, children };
9777
9863
  const moved = { closed: spine.closed, anchors: spine.anchors.map((a) => mapAnchor(a, m)) };
9778
9864
  return { ...group, children, blend: { ...group.blend, spine: moved } };
9779
9865
  }
9780
9866
  const path = node.type === "text" ? bakeVectorTextGeometry(node, m) : node;
9781
9867
  const flips = m[0] * m[3] - m[1] * m[2] < 0;
9782
- const mirrored = flips && _optionalChain([path, 'access', _288 => _288.strokeWidthProfile, 'optionalAccess', _289 => _289.length]);
9868
+ const mirrored = flips && _optionalChain([path, 'access', _294 => _294.strokeWidthProfile, 'optionalAccess', _295 => _295.length]);
9783
9869
  const layer = (l) => ({
9784
9870
  ...l,
9785
9871
  ...isVectorGradient(l.paint) || isVectorShadedPaint(l.paint) ? { paint: transformVectorPaint(l.paint, m) } : {},
9786
- ...flips && _optionalChain([l, 'access', _290 => _290.strokeWidthProfile, 'optionalAccess', _291 => _291.length]) ? { strokeWidthProfile: mirrorWidthProfile(l.strokeWidthProfile) } : {}
9872
+ ...flips && _optionalChain([l, 'access', _296 => _296.strokeWidthProfile, 'optionalAccess', _297 => _297.length]) ? { strokeWidthProfile: mirrorWidthProfile(l.strokeWidthProfile) } : {}
9787
9873
  });
9788
9874
  return {
9789
9875
  ...path,
@@ -10018,7 +10104,7 @@ function roundSubpaths(subpaths, precision = 3) {
10018
10104
 
10019
10105
  // src/vector/symmetry.ts
10020
10106
  function isVectorSymmetryGroup(node) {
10021
- return _optionalChain([node, 'optionalAccess', _292 => _292.type]) === "group" && !!node.symmetry && !node.blend && !node.liveBoolean && !node.mask && !node.frame;
10107
+ return _optionalChain([node, 'optionalAccess', _298 => _298.type]) === "group" && !!node.symmetry && !node.blend && !node.liveBoolean && !node.mask && !node.frame;
10022
10108
  }
10023
10109
  var rad = (deg) => deg * Math.PI / 180;
10024
10110
  var exact = (v2) => Math.abs(v2) < 1e-12 ? 0 : v2;
@@ -10581,5 +10667,11 @@ function transformVectorSymmetry(s, m) {
10581
10667
 
10582
10668
 
10583
10669
 
10584
- 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_LENS_TYPES = VECTOR_LENS_TYPES; 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_PERSPECTIVE_PLANES = VECTOR_PERSPECTIVE_PLANES; 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.isVectorLens = isVectorLens; exports.VECTOR_LENS_LABELS = VECTOR_LENS_LABELS; exports.VECTOR_LENS_SPECS = VECTOR_LENS_SPECS; exports.sanitizeVectorLens = sanitizeVectorLens; exports.vectorLensColorMap = vectorLensColorMap; exports.mapVectorPaintColors = mapVectorPaintColors; exports.vectorLensDrawn = vectorLensDrawn; exports.resolveVectorLenses = resolveVectorLenses; exports.stripVectorLensViews = stripVectorLensViews; 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;
10585
- //# sourceMappingURL=chunk-F7GGEAO2.cjs.map
10670
+
10671
+
10672
+
10673
+
10674
+
10675
+
10676
+ 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_LENS_TYPES = VECTOR_LENS_TYPES; 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_PERSPECTIVE_PLANES = VECTOR_PERSPECTIVE_PLANES; 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.isVectorLens = isVectorLens; exports.VECTOR_LENS_LABELS = VECTOR_LENS_LABELS; exports.VECTOR_LENS_SPECS = VECTOR_LENS_SPECS; exports.sanitizeVectorLens = sanitizeVectorLens; exports.vectorLensColorMap = vectorLensColorMap; exports.mapVectorPaintColors = mapVectorPaintColors; exports.vectorLensDrawn = vectorLensDrawn; exports.resolveVectorLenses = resolveVectorLenses; exports.stripVectorLensViews = stripVectorLensViews; 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.isVectorMasterPage = isVectorMasterPage; exports.vectorPages = vectorPages; exports.vectorMasterPages = vectorMasterPages; exports.vectorMasterArt = vectorMasterArt; exports.resolveVectorMasterPages = resolveVectorMasterPages; exports.stripVectorMasterArt = stripVectorMasterArt; 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;
10677
+ //# sourceMappingURL=chunk-Z2H7KECK.cjs.map