@pixerate/editor 0.130.0 → 0.132.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 (72) 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-CigmusV_.d.ts → bezier-0IHDCvv_.d.ts} +1 -1
  6. package/dist/{bezier-CdoGygwG.d.cts → bezier-oCBfrGDG.d.cts} +1 -1
  7. package/dist/canvas/index.d.cts +7 -7
  8. package/dist/canvas/index.d.ts +7 -7
  9. package/dist/{chunk-PMHPXCJC.cjs → chunk-55UEZIU4.cjs} +119 -90
  10. package/dist/chunk-55UEZIU4.cjs.map +1 -0
  11. package/dist/{chunk-L5OTIYOO.js → chunk-ECVI5QRE.js} +2 -2
  12. package/dist/{chunk-ERYGCA72.js → chunk-G5FX56KX.js} +39 -10
  13. package/dist/{chunk-ERYGCA72.js.map → chunk-G5FX56KX.js.map} +1 -1
  14. package/dist/{chunk-PRYMC442.js → chunk-IEYXYMRQ.js} +255 -10
  15. package/dist/chunk-IEYXYMRQ.js.map +1 -0
  16. package/dist/{chunk-2PXRKMOH.cjs → chunk-OYPJGGF3.cjs} +36 -36
  17. package/dist/{chunk-2PXRKMOH.cjs.map → chunk-OYPJGGF3.cjs.map} +1 -1
  18. package/dist/{chunk-LXGOYRPE.cjs → chunk-YYJKIESX.cjs} +320 -75
  19. package/dist/chunk-YYJKIESX.cjs.map +1 -0
  20. package/dist/effects/index.d.cts +4 -4
  21. package/dist/effects/index.d.ts +4 -4
  22. package/dist/{export-B4r8b9Ft.d.ts → export-ByJvAvR7.d.ts} +26 -4
  23. package/dist/{export-5WDKJqTy.d.cts → export-CfAogLEr.d.cts} +1 -1
  24. package/dist/{export-CU_ARP3A.d.ts → export-Crl82sbE.d.ts} +1 -1
  25. package/dist/{export-CejjC2iI.d.cts → export-D-gkjBkB.d.cts} +26 -4
  26. package/dist/{helpers-X_rycLNJ.d.ts → helpers-BCd2-PAR.d.ts} +34 -1
  27. package/dist/{helpers-CzZu51eI.d.cts → helpers-CoIeXQnW.d.cts} +34 -1
  28. package/dist/image-editor/index.cjs +775 -723
  29. package/dist/image-editor/index.cjs.map +1 -1
  30. package/dist/image-editor/index.d.cts +8 -8
  31. package/dist/image-editor/index.d.ts +8 -8
  32. package/dist/image-editor/index.js +59 -7
  33. package/dist/image-editor/index.js.map +1 -1
  34. package/dist/index.cjs +11 -4
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.js +11 -4
  37. package/dist/index.js.map +1 -1
  38. package/dist/{opentype-DlRMYcCW.d.cts → opentype-BDahNRTe.d.cts} +1 -1
  39. package/dist/{opentype-CrHAsKh3.d.ts → opentype-BQFEvy-t.d.ts} +1 -1
  40. package/dist/paint-editor/index.cjs +7 -7
  41. package/dist/paint-editor/index.d.cts +5 -5
  42. package/dist/paint-editor/index.d.ts +5 -5
  43. package/dist/paint-editor/index.js +2 -2
  44. package/dist/{pathfinder-CKfKOVP4.d.cts → pathfinder-01ZgAwqV.d.cts} +1 -1
  45. package/dist/{pathfinder-Dlss70hL.d.ts → pathfinder-DaVdT8jq.d.ts} +1 -1
  46. package/dist/{pool-DDOo0xJH.d.ts → pool-D2A3WTt9.d.ts} +1 -1
  47. package/dist/{pool-DKic69LD.d.cts → pool-D6a45MoE.d.cts} +1 -1
  48. package/dist/{svg-BRaii3pI.d.cts → svg-CcDz7Zq2.d.cts} +2 -2
  49. package/dist/{svg-BYVZeVo0.d.ts → svg-DELNVerw.d.ts} +2 -2
  50. package/dist/{tools-CtheDLDr.d.cts → tools-BFvkFnRj.d.cts} +1 -1
  51. package/dist/{tools-D8bZ-7YG.d.ts → tools-D7ws-OKL.d.ts} +1 -1
  52. package/dist/vector/index.cjs +1136 -1014
  53. package/dist/vector/index.cjs.map +1 -1
  54. package/dist/vector/index.d.cts +63 -10
  55. package/dist/vector/index.d.ts +63 -10
  56. package/dist/vector/index.js +129 -7
  57. package/dist/vector/index.js.map +1 -1
  58. package/dist/video-editor/index.d.cts +4 -4
  59. package/dist/video-editor/index.d.ts +4 -4
  60. package/dist/{warp-CZVC8pB5.d.ts → warp-2N9wkOkL.d.ts} +1 -1
  61. package/dist/{warp-BFoYxy_s.d.cts → warp-DErXW5rz.d.cts} +1 -1
  62. package/package.json +2 -2
  63. package/skills/pixerate-image-editor/SKILL.md +6 -2
  64. package/skills/pixerate-image-editor/references/color-management.md +1 -1
  65. package/skills/pixerate-image-editor/references/photoshop-files.md +2 -2
  66. package/skills/pixerate-image-editor/references/retouching.md +9 -1
  67. package/skills/pixerate-vector/SKILL.md +17 -0
  68. package/skills/pixerate-vector/references/commands.md +19 -0
  69. package/dist/chunk-LXGOYRPE.cjs.map +0 -1
  70. package/dist/chunk-PMHPXCJC.cjs.map +0 -1
  71. package/dist/chunk-PRYMC442.js.map +0 -1
  72. /package/dist/{chunk-L5OTIYOO.js.map → chunk-ECVI5QRE.js.map} +0 -0
@@ -42,7 +42,7 @@ import {
42
42
  reverseMorphContour,
43
43
  subpathToMorphContour,
44
44
  turnMorphContour
45
- } from "../chunk-L5OTIYOO.js";
45
+ } from "../chunk-ECVI5QRE.js";
46
46
  import {
47
47
  DEFAULT_VECTOR_FONT,
48
48
  IDENTITY_MATRIX,
@@ -74,6 +74,9 @@ import {
74
74
  VECTOR_GRADIENT_TYPES,
75
75
  VECTOR_HORIZONTAL_RESIZING,
76
76
  VECTOR_HORIZONTAL_RESIZING_LABELS,
77
+ VECTOR_LENS_LABELS,
78
+ VECTOR_LENS_SPECS,
79
+ VECTOR_LENS_TYPES,
77
80
  VECTOR_MASK_TYPES,
78
81
  VECTOR_MERGE_MODES,
79
82
  VECTOR_MESH_MAX,
@@ -198,6 +201,7 @@ import {
198
201
  isVectorFrame,
199
202
  isVectorFreeformGradient,
200
203
  isVectorGradient,
204
+ isVectorLens,
201
205
  isVectorLiveBoolean,
202
206
  isVectorMaskActive,
203
207
  isVectorMaskGroup,
@@ -212,6 +216,7 @@ import {
212
216
  mapBezierPath,
213
217
  mapVectorGradient,
214
218
  mapVectorPaint,
219
+ mapVectorPaintColors,
215
220
  mapVectorPoints,
216
221
  mapVectorShadedPaint,
217
222
  mapVectorSubpaths,
@@ -265,6 +270,7 @@ import {
265
270
  replaceVectorText,
266
271
  rerouteVectorConnectors,
267
272
  resizeWarpMesh,
273
+ resolveVectorLenses,
268
274
  resolveVectorSymbols,
269
275
  reverseSubpath,
270
276
  reverseVectorGradient,
@@ -284,6 +290,7 @@ import {
284
290
  sanitizeVectorFilters,
285
291
  sanitizeVectorFrame,
286
292
  sanitizeVectorGradient,
293
+ sanitizeVectorLens,
287
294
  sanitizeVectorMask,
288
295
  sanitizeVectorResizing,
289
296
  sanitizeVectorShadedPaint,
@@ -309,6 +316,7 @@ import {
309
316
  splitWarpMeshU,
310
317
  splitWarpMeshV,
311
318
  starSubpath,
319
+ stripVectorLensViews,
312
320
  stripVectorSymbolArt,
313
321
  strokePositionPoint,
314
322
  strokeWidthProfileOf,
@@ -387,6 +395,8 @@ import {
387
395
  vectorGradientUnitsMatrix,
388
396
  vectorInstanceDrawn,
389
397
  vectorInstanceGroup,
398
+ vectorLensColorMap,
399
+ vectorLensDrawn,
390
400
  vectorLiveBooleanSteps,
391
401
  vectorMaskContains,
392
402
  vectorMaskContentBounds,
@@ -483,7 +493,7 @@ import {
483
493
  withVectorStrokes,
484
494
  withVectorTargetPaint,
485
495
  zigzagPaths
486
- } from "../chunk-PRYMC442.js";
496
+ } from "../chunk-IEYXYMRQ.js";
487
497
  import {
488
498
  bezierPathBounds,
489
499
  bezierPathToSvg,
@@ -2296,12 +2306,20 @@ function collapsedNode(node, box, prefix) {
2296
2306
  byPrefix.set(prefix, out);
2297
2307
  return out;
2298
2308
  }
2309
+ var lensResolved = /* @__PURE__ */ new WeakMap();
2310
+ function resolvedLensNodes(doc) {
2311
+ const hit = lensResolved.get(doc.nodes);
2312
+ if (hit) return hit;
2313
+ const nodes = resolveVectorLenses(doc).nodes;
2314
+ lensResolved.set(doc.nodes, nodes);
2315
+ return nodes;
2316
+ }
2299
2317
  function getVectorSceneRenderData(state, options = {}) {
2300
2318
  const defs = [];
2301
2319
  const filters = [];
2302
2320
  const prefix = options.idPrefix ?? "ve-";
2303
2321
  const v = state.viewport;
2304
- const all = state.document.nodes;
2322
+ const all = resolvedLensNodes(state.document);
2305
2323
  const stats = { nodes: all.length, culled: 0, collapsed: 0 };
2306
2324
  let nodes;
2307
2325
  const size = options.viewportSize;
@@ -3517,6 +3535,7 @@ ${offset}
3517
3535
  var pdfString = (s) => `(${s.replace(/[\\()]/g, (c) => `\\${c}`).replace(/[^\x20-\x7e]/g, "?")})`;
3518
3536
  function vectorDocumentToPdf(doc, options = {}) {
3519
3537
  const notes = /* @__PURE__ */ new Set();
3538
+ doc = resolveVectorLenses(doc);
3520
3539
  const scale = options.scale ?? 1;
3521
3540
  const compress = options.compress !== false;
3522
3541
  const frames = options.pages === "artboards" ? vectorArtboards(doc) : [];
@@ -3730,8 +3749,9 @@ function nodeGroup(node, notes) {
3730
3749
  const m = nodeMatrix(node);
3731
3750
  let items = [];
3732
3751
  const live = (node.effects ?? []).some((e) => e.enabled !== false && (e.type === "wiggle" || e.type === "envelope" || e.type === "contour" || e.type === "blockShadow" || e.type === "extrude" || e.type === "bevel"));
3733
- if (node.type === "text" || node.type === "instance" || live || isVectorMaskGroup(node) || isVectorFrame(node) || isVectorSymmetryGroup(node)) {
3752
+ if (node.type === "text" || node.type === "instance" || live || isVectorMaskGroup(node) || isVectorFrame(node) || isVectorSymmetryGroup(node) || isVectorLens(node)) {
3734
3753
  if (live) notes.push(`${label(node)}: wiggle, envelope, contour, block shadow, extrude and bevel effects have no Lottie equivalent (exported as drawn).`);
3754
+ if (isVectorLens(node)) notes.push(`${label(node)}: a lens exports as drawn (what it shows now, clipped by its outline).`);
3735
3755
  if (isVectorMaskGroup(node) && node.mask?.type !== "clip") notes.push(`${label(node)}: opacity masks are not exported (the contents are drawn whole).`);
3736
3756
  const drawn = isVectorFrame(node) ? vectorFrameDrawn(node) : node;
3737
3757
  const shapes = isVectorMaskGroup(drawn) && drawn.mask?.type === "clip" ? vectorAppearanceShapes({ ...drawn, transform: void 0 }) : null;
@@ -3785,6 +3805,7 @@ function vectorDocumentToLottie(doc, options = {}) {
3785
3805
  const fps = options.fps ?? 30;
3786
3806
  const op = Math.max(1, Math.round(options.frames ?? 1));
3787
3807
  const shapes = [];
3808
+ if (!options.nodes) doc = resolveVectorLenses(doc);
3788
3809
  for (const n2 of [...options.nodes ?? doc.nodes].reverse()) {
3789
3810
  const g = nodeGroup(n2, notes);
3790
3811
  if (g) shapes.push(g);
@@ -6982,7 +7003,7 @@ var VectorEditorController = class _VectorEditorController {
6982
7003
  out = { ...out, symbols: out.symbols.map((s) => s.id === edit.symbolId ? { ...s, nodes: out.nodes } : s) };
6983
7004
  }
6984
7005
  out = resolveVectorSymbols(out);
6985
- return rerouteVectorConnectors(this.solved(out));
7006
+ return resolveVectorLenses(rerouteVectorConnectors(this.solved(out)));
6986
7007
  }
6987
7008
  /**
6988
7009
  * `doc` with its constraints solved (geometry edited since the last solve moving least) and
@@ -7476,7 +7497,7 @@ var VectorEditorController = class _VectorEditorController {
7476
7497
  return vectorDocumentToSvg(this.storedDocument(), options);
7477
7498
  }
7478
7499
  toJSON() {
7479
- return cloneVectorDocument(stripVectorSymbolArt(this.storedDocument()));
7500
+ return cloneVectorDocument(stripVectorLensViews(stripVectorSymbolArt(this.storedDocument())));
7480
7501
  }
7481
7502
  /** Adds a node (ids are kept unless taken). Returns its id. */
7482
7503
  addNode(node, options = {}) {
@@ -10134,6 +10155,51 @@ var VectorEditorController = class _VectorEditorController {
10134
10155
  * (`{ nodeId, side? }`) or unglue it (`null`, the end staying where it is), and `route`,
10135
10156
  * `radius`, `gap` set how they run. Plain open paths given by id become connectors. One undo step.
10136
10157
  */
10158
+ /**
10159
+ * Makes closed paths lenses (CorelDRAW's Lens) or changes their lens: `lens` is merged over the
10160
+ * current settings (a different `type` starts from that type's defaults), and `null` makes
10161
+ * them plain paths again. One undo step. Returns each path's id and resulting lens.
10162
+ */
10163
+ setLens(lens, options = {}) {
10164
+ const ids = options.ids ?? this.selection;
10165
+ if (!ids.length) return { ok: false, message: "Select a closed path to make a lens first." };
10166
+ if (lens && lens.type !== void 0 && !VECTOR_LENS_TYPES.includes(lens.type)) return { ok: false, message: `Unknown lens "${lens.type}": use ${VECTOR_LENS_TYPES.join(", ")}.` };
10167
+ if (lens?.color !== void 0 && lens.color !== null && !parseVectorColor(lens.color)) return { ok: false, message: `"${lens.color}" is not a colour: use a CSS colour such as #ff0000.` };
10168
+ const next = /* @__PURE__ */ new Map();
10169
+ for (const id of ids) {
10170
+ const n2 = this.getNode(id);
10171
+ if (!n2) return { ok: false, message: `There is no node "${id}".` };
10172
+ if (n2.locked) return { ok: false, message: `"${id}" is locked; unlock it first.` };
10173
+ if (lens === null) {
10174
+ if (n2.type === "path" && n2.lens) next.set(id, null);
10175
+ continue;
10176
+ }
10177
+ if (n2.type !== "path" || !n2.subpaths.some((sp) => sp.closed) || isVectorConnector(n2)) return { ok: false, message: `"${id}" is not a closed path: only closed paths can be lenses.` };
10178
+ const type = lens.type ?? n2.lens?.type;
10179
+ if (!type) return { ok: false, message: `"${id}" is not a lens yet: pass a type (${VECTOR_LENS_TYPES.join(", ")}).` };
10180
+ const spec = VECTOR_LENS_SPECS[type];
10181
+ if (lens.amount !== void 0 && !(Number.isFinite(lens.amount) && lens.amount >= spec.min && lens.amount <= spec.max)) return { ok: false, message: `amount for a ${type} lens must be from ${spec.min} to ${spec.max} (${spec.unit}).` };
10182
+ const base = n2.lens && n2.lens.type === type ? n2.lens : { type };
10183
+ next.set(id, sanitizeVectorLens({ ...base, ...lens, type }));
10184
+ }
10185
+ if (!next.size) return { ok: true, lenses: [] };
10186
+ this.change(
10187
+ lens === null ? "Remove Lens" : "Lens",
10188
+ () => {
10189
+ this.setDoc(
10190
+ mapTree(this.doc.nodes, (n2) => {
10191
+ if (!next.has(n2.id) || n2.type !== "path") return n2;
10192
+ const l = next.get(n2.id);
10193
+ if (l) return { ...n2, lens: l };
10194
+ const { lens: _l, lensView: _v, ...rest } = n2;
10195
+ return rest;
10196
+ })
10197
+ );
10198
+ },
10199
+ options.merge
10200
+ );
10201
+ return { ok: true, lenses: [...next].map(([id, l]) => ({ id, lens: l })) };
10202
+ }
10137
10203
  setConnector(patch, options = {}) {
10138
10204
  const ids = options.ids ?? this.selection;
10139
10205
  if (!ids.length) return { ok: false, message: "Select a connector first." };
@@ -14091,7 +14157,8 @@ function createVectorCommands(controller, options = {}) {
14091
14157
  ...isVectorFrame(n2) ? { frameRect: n2.frame } : {},
14092
14158
  ...n2.resizing ? { resizing: n2.resizing } : {},
14093
14159
  ...n2.type === "path" && n2.connector ? { connector: n2.connector } : {},
14094
- ...n2.type === "group" && n2.symmetry ? { symmetry: n2.symmetry } : {}
14160
+ ...n2.type === "group" && n2.symmetry ? { symmetry: n2.symmetry } : {},
14161
+ ...n2.type === "path" && n2.lens ? { lens: n2.lens } : {}
14095
14162
  });
14096
14163
  if (n2.type === "group") visit(n2.children, depth + 1);
14097
14164
  }
@@ -15055,6 +15122,50 @@ function createVectorCommands(controller, options = {}) {
15055
15122
  }
15056
15123
  }
15057
15124
  ];
15125
+ const LENS_AMOUNTS = VECTOR_LENS_TYPES.map((t) => `${t} ${VECTOR_LENS_SPECS[t].min}\u2026${VECTOR_LENS_SPECS[t].max} ${VECTOR_LENS_SPECS[t].unit} (default ${VECTOR_LENS_SPECS[t].amount})`).join("; ");
15126
+ const lensCommands = () => [
15127
+ {
15128
+ ...base,
15129
+ id: `${prefix}setLens`,
15130
+ label: "Lens\u2026",
15131
+ keywords: ["lens", "magnify", "fisheye", "fish eye", "invert", "brighten", "grayscale", "heat map", "wireframe", "transparency", "tint", "loupe"],
15132
+ description: "Makes closed paths (`ids`, default the selection) lenses, or changes their lens: inside its outline, what is drawn below shows changed (magnify, fisheye, brighten, invert, tintedGrayscale, colorAdd, colorLimit, heatMap, wireframe, or the lens's own fill see-through for transparency). The lens follows every edit below it; its bounds stay its own shape. Pass type to make or switch a lens (missing values take that type's defaults); omit it to change amount or color of existing lenses. One undo step. Returns { lenses: [{ id, lens }] }.",
15133
+ params: {
15134
+ type: "object",
15135
+ properties: {
15136
+ ids: { ...IDS, description: "Closed paths to make or change (default: the selection)." },
15137
+ type: { type: "string", enum: [...VECTOR_LENS_TYPES], description: "What the lens does. Required for a path that is not a lens yet." },
15138
+ amount: { type: "number", description: `Strength, by type: ${LENS_AMOUNTS}.` },
15139
+ color: { type: ["string", "null"], description: "CSS colour for tintedGrayscale, colorAdd, colorLimit and wireframe (default per type; ignored by the others)." }
15140
+ },
15141
+ additionalProperties: false
15142
+ },
15143
+ undoable: true,
15144
+ enabled: enabledFor,
15145
+ run: (_ctx, params) => {
15146
+ const { ids: list2, ...patch } = params ?? {};
15147
+ if (!Object.keys(patch).length) fail("Pass at least one of type, amount, color.");
15148
+ const r = controller.setLens(patch, list2 ? { ids: list2 } : {});
15149
+ check(r);
15150
+ return { lenses: r.lenses ?? [] };
15151
+ }
15152
+ },
15153
+ {
15154
+ ...base,
15155
+ id: `${prefix}removeLens`,
15156
+ label: "Remove Lens",
15157
+ keywords: ["lens", "remove", "plain"],
15158
+ description: "Makes lenses (`ids`, default the selection) plain paths again; ids that are not lenses are skipped. One undo step. Returns { ids } of the paths that stopped being lenses.",
15159
+ params: { type: "object", properties: { ids: { ...IDS, description: "Lens ids (default: the selection)." } }, additionalProperties: false },
15160
+ undoable: true,
15161
+ enabled: enabledFor,
15162
+ run: (_ctx, params) => {
15163
+ const r = controller.setLens(null, params?.ids ? { ids: params.ids } : {});
15164
+ check(r);
15165
+ return { ids: (r.lenses ?? []).map((l) => l.id) };
15166
+ }
15167
+ }
15168
+ ];
15058
15169
  const pdfCommands = () => [
15059
15170
  {
15060
15171
  ...base,
@@ -15891,6 +16002,7 @@ function createVectorCommands(controller, options = {}) {
15891
16002
  ...lottieCommands(),
15892
16003
  ...pdfCommands(),
15893
16004
  ...symmetryCommands(),
16005
+ ...lensCommands(),
15894
16006
  {
15895
16007
  ...base,
15896
16008
  id: `${prefix}setCorners`,
@@ -16922,6 +17034,9 @@ export {
16922
17034
  VECTOR_HORIZONTAL_RESIZING,
16923
17035
  VECTOR_HORIZONTAL_RESIZING_LABELS,
16924
17036
  VECTOR_INK_MAX_CORNERS,
17037
+ VECTOR_LENS_LABELS,
17038
+ VECTOR_LENS_SPECS,
17039
+ VECTOR_LENS_TYPES,
16925
17040
  VECTOR_MASK_TYPES,
16926
17041
  VECTOR_MASK_TYPE_LABELS,
16927
17042
  VECTOR_MASK_TYPE_OPTIONS,
@@ -17128,6 +17243,7 @@ export {
17128
17243
  isVectorFrame,
17129
17244
  isVectorFreeformGradient,
17130
17245
  isVectorGradient,
17246
+ isVectorLens,
17131
17247
  isVectorLiveBoolean,
17132
17248
  isVectorMaskActive,
17133
17249
  isVectorMaskGroup,
@@ -17147,6 +17263,7 @@ export {
17147
17263
  mapVectorGradient,
17148
17264
  mapWarpMeshPoints as mapVectorMeshPoints,
17149
17265
  mapVectorPaint,
17266
+ mapVectorPaintColors,
17150
17267
  mapVectorPoints,
17151
17268
  mapVectorShadedPaint,
17152
17269
  mapVectorSubpaths,
@@ -17217,6 +17334,7 @@ export {
17217
17334
  resampleGradientStops,
17218
17335
  resizeWarpMesh as resizeVectorMesh,
17219
17336
  resolveVectorBlendOptions,
17337
+ resolveVectorLenses,
17220
17338
  resolveVectorSymbols,
17221
17339
  reverseMorphContour,
17222
17340
  reverseSubpath,
@@ -17238,6 +17356,7 @@ export {
17238
17356
  sanitizeVectorFilters,
17239
17357
  sanitizeVectorFrame,
17240
17358
  sanitizeVectorGradient,
17359
+ sanitizeVectorLens,
17241
17360
  sanitizeVectorMask,
17242
17361
  sanitizeVectorResizing,
17243
17362
  sanitizeVectorShadedPaint,
@@ -17267,6 +17386,7 @@ export {
17267
17386
  splitWarpMeshU as splitVectorMeshU,
17268
17387
  splitWarpMeshV as splitVectorMeshV,
17269
17388
  starSubpath,
17389
+ stripVectorLensViews,
17270
17390
  stripVectorSymbolArt,
17271
17391
  strokePositionPoint,
17272
17392
  strokeWidthProfileOf,
@@ -17383,6 +17503,8 @@ export {
17383
17503
  vectorInkShapeName,
17384
17504
  vectorInstanceDrawn,
17385
17505
  vectorInstanceGroup,
17506
+ vectorLensColorMap,
17507
+ vectorLensDrawn,
17386
17508
  vectorLiveBooleanSteps,
17387
17509
  vectorMaskContains,
17388
17510
  vectorMaskContentBounds,