@pixerate/editor 0.119.0 → 0.121.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 (74) hide show
  1. package/dist/animation-editor/index.cjs +54 -54
  2. package/dist/animation-editor/index.d.cts +3 -3
  3. package/dist/animation-editor/index.d.ts +3 -3
  4. package/dist/animation-editor/index.js +2 -2
  5. package/dist/{chunk-UMVW2Q66.js → chunk-4I54JSJ6.js} +2 -2
  6. package/dist/{chunk-N3467VD6.js → chunk-7QN76ESJ.js} +1 -179
  7. package/dist/chunk-7QN76ESJ.js.map +1 -0
  8. package/dist/{chunk-EJVDBITD.cjs → chunk-DCLJNVZS.cjs} +2 -180
  9. package/dist/chunk-DCLJNVZS.cjs.map +1 -0
  10. package/dist/{chunk-KGNUFO4T.cjs → chunk-DFLJHLKA.cjs} +36 -36
  11. package/dist/{chunk-KGNUFO4T.cjs.map → chunk-DFLJHLKA.cjs.map} +1 -1
  12. package/dist/{chunk-KZLQY4CD.js → chunk-E6N5KLMA.js} +12 -10
  13. package/dist/{chunk-KZLQY4CD.js.map → chunk-E6N5KLMA.js.map} +1 -1
  14. package/dist/{chunk-4S2AXNQF.cjs → chunk-GLOOH65Y.cjs} +236 -234
  15. package/dist/chunk-GLOOH65Y.cjs.map +1 -0
  16. package/dist/chunk-GX332W2C.js +181 -0
  17. package/dist/chunk-GX332W2C.js.map +1 -0
  18. package/dist/{chunk-TS5IEUW6.cjs → chunk-K7V27T72.cjs} +178 -3
  19. package/dist/chunk-K7V27T72.cjs.map +1 -0
  20. package/dist/{chunk-WMRIG4XQ.cjs → chunk-LL3RAN55.cjs} +17 -17
  21. package/dist/{chunk-WMRIG4XQ.cjs.map → chunk-LL3RAN55.cjs.map} +1 -1
  22. package/dist/chunk-MUUXNRU4.cjs +181 -0
  23. package/dist/chunk-MUUXNRU4.cjs.map +1 -0
  24. package/dist/{chunk-LI3KTY7K.cjs → chunk-VYW7JBTM.cjs} +72 -5
  25. package/dist/chunk-VYW7JBTM.cjs.map +1 -0
  26. package/dist/{chunk-TDQDMBUR.js → chunk-WAI6ATHC.js} +2 -2
  27. package/dist/{chunk-CSHEI3YT.js → chunk-WORWH5K5.js} +71 -4
  28. package/dist/chunk-WORWH5K5.js.map +1 -0
  29. package/dist/{chunk-YHW26LS2.js → chunk-ZZPGTNXJ.js} +177 -2
  30. package/dist/chunk-ZZPGTNXJ.js.map +1 -0
  31. package/dist/{export-Ds8Ccw0K.d.ts → export-D2D8hb_u.d.ts} +1 -1
  32. package/dist/{export-B_jO2PrH.d.cts → export-fP2hZYjm.d.cts} +1 -1
  33. package/dist/image-editor/index.cjs +789 -769
  34. package/dist/image-editor/index.cjs.map +1 -1
  35. package/dist/image-editor/index.d.cts +4 -4
  36. package/dist/image-editor/index.d.ts +4 -4
  37. package/dist/image-editor/index.js +32 -12
  38. package/dist/image-editor/index.js.map +1 -1
  39. package/dist/paint/index.cjs +22 -2
  40. package/dist/paint/index.cjs.map +1 -1
  41. package/dist/paint/index.d.cts +159 -1
  42. package/dist/paint/index.d.ts +159 -1
  43. package/dist/paint/index.js +21 -1
  44. package/dist/paint-editor/index.cjs +96 -95
  45. package/dist/paint-editor/index.cjs.map +1 -1
  46. package/dist/paint-editor/index.d.cts +2 -2
  47. package/dist/paint-editor/index.d.ts +2 -2
  48. package/dist/paint-editor/index.js +13 -12
  49. package/dist/paint-editor/index.js.map +1 -1
  50. package/dist/raster/index.cjs +5 -4
  51. package/dist/raster/index.cjs.map +1 -1
  52. package/dist/raster/index.js +11 -10
  53. package/dist/{svg-hK0WQc7-.d.cts → svg-S9zzvqaZ.d.cts} +1 -1
  54. package/dist/{svg-CTxrB5xO.d.ts → svg-leZpRsJB.d.ts} +1 -1
  55. package/dist/{types-TrSSh_RB.d.ts → types-BgwxFWvn.d.ts} +23 -9
  56. package/dist/{types-Dq-8qgoo.d.cts → types-DdRTDnza.d.cts} +23 -9
  57. package/dist/vector/index.cjs +887 -883
  58. package/dist/vector/index.cjs.map +1 -1
  59. package/dist/vector/index.d.cts +12 -5
  60. package/dist/vector/index.d.ts +12 -5
  61. package/dist/vector/index.js +14 -10
  62. package/dist/vector/index.js.map +1 -1
  63. package/package.json +1 -1
  64. package/skills/pixerate-vector/SKILL.md +1 -1
  65. package/skills/pixerate-vector/references/commands.md +1 -0
  66. package/dist/chunk-4S2AXNQF.cjs.map +0 -1
  67. package/dist/chunk-CSHEI3YT.js.map +0 -1
  68. package/dist/chunk-EJVDBITD.cjs.map +0 -1
  69. package/dist/chunk-LI3KTY7K.cjs.map +0 -1
  70. package/dist/chunk-N3467VD6.js.map +0 -1
  71. package/dist/chunk-TS5IEUW6.cjs.map +0 -1
  72. package/dist/chunk-YHW26LS2.js.map +0 -1
  73. /package/dist/{chunk-UMVW2Q66.js.map → chunk-4I54JSJ6.js.map} +0 -0
  74. /package/dist/{chunk-TDQDMBUR.js.map → chunk-WAI6ATHC.js.map} +0 -0
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- var _chunkWMRIG4XQcjs = require('./chunk-WMRIG4XQ.cjs');
37
+ var _chunkLL3RAN55cjs = require('./chunk-LL3RAN55.cjs');
38
38
 
39
39
 
40
40
 
@@ -44,13 +44,13 @@ var _chunkWMRIG4XQcjs = require('./chunk-WMRIG4XQ.cjs');
44
44
 
45
45
 
46
46
 
47
+ var _chunkMUUXNRU4cjs = require('./chunk-MUUXNRU4.cjs');
47
48
 
48
49
 
49
50
 
50
51
 
51
52
 
52
53
 
53
- var _chunkEJVDBITDcjs = require('./chunk-EJVDBITD.cjs');
54
54
 
55
55
 
56
56
 
@@ -65,13 +65,15 @@ var _chunkEJVDBITDcjs = require('./chunk-EJVDBITD.cjs');
65
65
 
66
66
 
67
67
 
68
+ var _chunk7ISPWEJAcjs = require('./chunk-7ISPWEJA.cjs');
68
69
 
69
70
 
70
71
 
71
72
 
72
73
 
73
74
 
74
- var _chunk7ISPWEJAcjs = require('./chunk-7ISPWEJA.cjs');
75
+
76
+ var _chunkDCLJNVZScjs = require('./chunk-DCLJNVZS.cjs');
75
77
 
76
78
 
77
79
 
@@ -118,7 +120,7 @@ var _chunk643B2HKCcjs = require('./chunk-643B2HKC.cjs');
118
120
 
119
121
 
120
122
 
121
- var _chunkLI3KTY7Kcjs = require('./chunk-LI3KTY7K.cjs');
123
+ var _chunkVYW7JBTMcjs = require('./chunk-VYW7JBTM.cjs');
122
124
 
123
125
 
124
126
 
@@ -1137,7 +1139,7 @@ function smoothCoverage(m, w, h, r) {
1137
1139
  return src;
1138
1140
  }
1139
1141
  function featherCoverage(m, w, h, radius) {
1140
- const out = _chunkWMRIG4XQcjs.gaussianBlur.call(void 0, m, w, h, Number.isFinite(radius) ? Math.max(0, radius) : 0, "zero");
1142
+ const out = _chunkLL3RAN55cjs.gaussianBlur.call(void 0, m, w, h, Number.isFinite(radius) ? Math.max(0, radius) : 0, "zero");
1141
1143
  for (let i = 0; i < out.length; i++) if (Math.abs(out[i]) < 1e-7) out[i] = 0;
1142
1144
  return out;
1143
1145
  }
@@ -1285,7 +1287,7 @@ function layerMaskCoverage(mask) {
1285
1287
  let v = new Float32Array(sel.data.length);
1286
1288
  for (let i = 0; i < v.length; i++) v[i] = sel.data[i] / 255;
1287
1289
  const feather = _nullishCoalesce(mask.feather, () => ( 0));
1288
- if (feather > 0) v = _chunkWMRIG4XQcjs.gaussianBlur.call(void 0, v, mask.width, mask.height, feather, "clamp");
1290
+ if (feather > 0) v = _chunkLL3RAN55cjs.gaussianBlur.call(void 0, v, mask.width, mask.height, feather, "clamp");
1289
1291
  const density = _nullishCoalesce(mask.density, () => ( 1));
1290
1292
  if (density !== 1) for (let i = 0; i < v.length; i++) v[i] = 1 - density * (1 - v[i]);
1291
1293
  return v;
@@ -1528,7 +1530,7 @@ function normalizeAdjustmentLayers(raw) {
1528
1530
  return out;
1529
1531
  }
1530
1532
  function curveLutFromLevels(points) {
1531
- return _chunkWMRIG4XQcjs.curveLut.call(void 0, points.map((p) => ({ input: p.input / 255, output: p.output / 255 })));
1533
+ return _chunkLL3RAN55cjs.curveLut.call(void 0, points.map((p) => ({ input: p.input / 255, output: p.output / 255 })));
1532
1534
  }
1533
1535
  var toUnitLevels = (c) => ({
1534
1536
  inBlack: c.inBlack / 255,
@@ -2282,7 +2284,7 @@ function newLayerId(prefix = "layer") {
2282
2284
  return `${prefix}_${Date.now().toString(36)}_${(++idCounter).toString(36)}`;
2283
2285
  }
2284
2286
  function pixelLayers(layers) {
2285
- return _chunkWMRIG4XQcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
2287
+ return _chunkLL3RAN55cjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
2286
2288
  }
2287
2289
  function developFilter(layer) {
2288
2290
  return _optionalChain([layer, 'access', _10 => _10.filters, 'optionalAccess', _11 => _11.find, 'call', _12 => _12((f) => f.kind === "develop")]);
@@ -2313,10 +2315,10 @@ function isRenderedLayer(layer) {
2313
2315
  return layer.type === "smart" || layer.type === "shape" || layer.type === "type";
2314
2316
  }
2315
2317
  function shapeLayers(layers) {
2316
- return _chunkWMRIG4XQcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "shape");
2318
+ return _chunkLL3RAN55cjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "shape");
2317
2319
  }
2318
2320
  function smartObjectLayers(layers) {
2319
- return _chunkWMRIG4XQcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart");
2321
+ return _chunkLL3RAN55cjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart");
2320
2322
  }
2321
2323
 
2322
2324
  // src/image-editor/layers/compositor.ts
@@ -2422,13 +2424,13 @@ var PHOTO_PROFILE = {
2422
2424
  return v;
2423
2425
  }
2424
2426
  };
2425
- var LayerCompositor = class extends _chunkWMRIG4XQcjs.RasterCompositor {
2427
+ var LayerCompositor = class extends _chunkLL3RAN55cjs.RasterCompositor {
2426
2428
  constructor(options = {}) {
2427
2429
  super(PHOTO_PROFILE, options);
2428
2430
  }
2429
2431
  };
2430
2432
  function compositeDeep(layers, rect, sources, depth) {
2431
- const deep = new (0, _chunkWMRIG4XQcjs.DeepCompositor)(new LayerCompositor(), PHOTO_PROFILE, {
2433
+ const deep = new (0, _chunkLL3RAN55cjs.DeepCompositor)(new LayerCompositor(), PHOTO_PROFILE, {
2432
2434
  applyFilterRunDeep: (run, acc, _r, masks) => applyAdjustmentLayersFloat(acc, run.map(adjustmentNodeAsLayer), masks)
2433
2435
  }, depth);
2434
2436
  return deep.composite(layers, rect, sources);
@@ -2974,47 +2976,47 @@ var fail = (message) => {
2974
2976
  throw new LayerOperationError(message);
2975
2977
  };
2976
2978
  function requireLayer(layers, id) {
2977
- const loc = _chunkWMRIG4XQcjs.findLayer.call(void 0, layers, id);
2979
+ const loc = _chunkLL3RAN55cjs.findLayer.call(void 0, layers, id);
2978
2980
  if (!loc) {
2979
- const ids = _chunkWMRIG4XQcjs.flattenLayers.call(void 0, layers).map((l) => l.id);
2981
+ const ids = _chunkLL3RAN55cjs.flattenLayers.call(void 0, layers).map((l) => l.id);
2980
2982
  fail(`Unknown layer "${id}". ${ids.length ? `Layers: ${ids.join(", ")}.` : "The document has no layers."} Call list_layers for ids.`);
2981
2983
  }
2982
2984
  return loc;
2983
2985
  }
2984
2986
  function requireUnlocked(layer, what, action) {
2985
- if (_chunkWMRIG4XQcjs.isLayerLocked.call(void 0, layer, "all")) fail(`Layer "${layer.name || layer.id}" is locked (all); unlock it before you ${action}.`);
2986
- if (what !== "all" && _chunkWMRIG4XQcjs.isLayerLocked.call(void 0, layer, what)) fail(`Layer "${layer.name || layer.id}" has its ${what} locked; unlock it before you ${action}.`);
2987
+ if (_chunkLL3RAN55cjs.isLayerLocked.call(void 0, layer, "all")) fail(`Layer "${layer.name || layer.id}" is locked (all); unlock it before you ${action}.`);
2988
+ if (what !== "all" && _chunkLL3RAN55cjs.isLayerLocked.call(void 0, layer, what)) fail(`Layer "${layer.name || layer.id}" has its ${what} locked; unlock it before you ${action}.`);
2987
2989
  }
2988
2990
  function placeLayer(layers, layer, placement = {}, defaultIndex) {
2989
2991
  const given = [placement.aboveId, placement.belowId, placement.parentId].filter((v) => v !== void 0).length;
2990
2992
  if (given > 1) fail("Give only one of aboveId, belowId and parentId.");
2991
2993
  if (placement.aboveId || placement.belowId) {
2992
2994
  const ref = requireLayer(layers, _nullishCoalesce(placement.aboveId, () => ( placement.belowId)));
2993
- return _chunkWMRIG4XQcjs.insertLayer.call(void 0, layers, layer, _nullishCoalesce(_optionalChain([ref, 'access', _21 => _21.parent, 'optionalAccess', _22 => _22.id]), () => ( null)), ref.index + (placement.aboveId ? 1 : 0));
2995
+ return _chunkLL3RAN55cjs.insertLayer.call(void 0, layers, layer, _nullishCoalesce(_optionalChain([ref, 'access', _21 => _21.parent, 'optionalAccess', _22 => _22.id]), () => ( null)), ref.index + (placement.aboveId ? 1 : 0));
2994
2996
  }
2995
2997
  if (placement.parentId) {
2996
2998
  const ref = requireLayer(layers, placement.parentId);
2997
2999
  if (ref.layer.type !== "group") fail(`Layer "${placement.parentId}" is not a group; parentId must be a group id.`);
2998
- return _chunkWMRIG4XQcjs.insertLayer.call(void 0, layers, layer, ref.layer.id, placement.index);
3000
+ return _chunkLL3RAN55cjs.insertLayer.call(void 0, layers, layer, ref.layer.id, placement.index);
2999
3001
  }
3000
- return _chunkWMRIG4XQcjs.insertLayer.call(void 0, layers, layer, null, _nullishCoalesce(placement.index, () => ( defaultIndex)));
3002
+ return _chunkLL3RAN55cjs.insertLayer.call(void 0, layers, layer, null, _nullishCoalesce(placement.index, () => ( defaultIndex)));
3001
3003
  }
3002
3004
  function removeLayer(layers, id) {
3003
3005
  const loc = requireLayer(layers, id);
3004
3006
  requireUnlocked(loc.layer, "all", "delete it");
3005
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => null);
3007
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => null);
3006
3008
  }
3007
3009
  function moveLayer(layers, id, placement) {
3008
3010
  const loc = requireLayer(layers, id);
3009
3011
  requireUnlocked(loc.layer, "all", "move it");
3010
3012
  const target = _nullishCoalesce(_nullishCoalesce(placement.aboveId, () => ( placement.belowId)), () => ( placement.parentId));
3011
3013
  if (target === id) fail("A layer cannot be placed relative to itself.");
3012
- if (target && loc.layer.type === "group" && _chunkWMRIG4XQcjs.flattenLayers.call(void 0, loc.layer.children).some((l) => l.id === target)) {
3014
+ if (target && loc.layer.type === "group" && _chunkLL3RAN55cjs.flattenLayers.call(void 0, loc.layer.children).some((l) => l.id === target)) {
3013
3015
  fail(`Group "${id}" cannot be moved into its own child "${target}".`);
3014
3016
  }
3015
3017
  if (target) requireLayer(layers, target);
3016
3018
  if (!target && placement.index === void 0) fail("Give aboveId, belowId, parentId or index.");
3017
- const without = _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => null);
3019
+ const without = _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => null);
3018
3020
  return placeLayer(without, loc.layer, placement);
3019
3021
  }
3020
3022
  function withNewIds(layer) {
@@ -3033,7 +3035,7 @@ function duplicateLayer(layers, id, name) {
3033
3035
  const copy = withNewIds(loc.layer);
3034
3036
  copy.name = _nullishCoalesce(name, () => ( `${loc.layer.name || "Layer"} copy`));
3035
3037
  delete copy.locks;
3036
- return { layers: _chunkWMRIG4XQcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _25 => _25.parent, 'optionalAccess', _26 => _26.id]), () => ( null)), loc.index + 1), id: copy.id };
3038
+ return { layers: _chunkLL3RAN55cjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _25 => _25.parent, 'optionalAccess', _26 => _26.id]), () => ( null)), loc.index + 1), id: copy.id };
3037
3039
  }
3038
3040
  function setLayerProperties(layers, id, props) {
3039
3041
  const loc = requireLayer(layers, id);
@@ -3080,7 +3082,7 @@ function setLayerProperties(layers, id, props) {
3080
3082
  if (props.collapsed) g.collapsed = true;
3081
3083
  else delete g.collapsed;
3082
3084
  }
3083
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next);
3085
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next);
3084
3086
  }
3085
3087
  function groupLayers(layers, ids, name = "Group") {
3086
3088
  if (!ids.length) fail("Give at least one layer id to group.");
@@ -3109,17 +3111,17 @@ function groupLayers(layers, ids, name = "Group") {
3109
3111
  group.children[0] = c;
3110
3112
  }
3111
3113
  let out = layers;
3112
- for (const l of ordered) out = _chunkWMRIG4XQcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
3113
- return { layers: _chunkWMRIG4XQcjs.insertLayer.call(void 0, out, group, parent, top - below), id: group.id };
3114
+ for (const l of ordered) out = _chunkLL3RAN55cjs.mapLayer.call(void 0, out, l.layer.id, () => null);
3115
+ return { layers: _chunkLL3RAN55cjs.insertLayer.call(void 0, out, group, parent, top - below), id: group.id };
3114
3116
  }
3115
3117
  function ungroupLayer(layers, id) {
3116
3118
  const loc = requireLayer(layers, id);
3117
3119
  if (loc.layer.type !== "group") fail(`Layer "${id}" is not a group.`);
3118
3120
  requireUnlocked(loc.layer, "all", "ungroup it");
3119
3121
  const group = loc.layer;
3120
- let out = _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => null);
3122
+ let out = _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => null);
3121
3123
  group.children.forEach((c, i) => {
3122
- out = _chunkWMRIG4XQcjs.insertLayer.call(void 0, out, c, _nullishCoalesce(_optionalChain([loc, 'access', _35 => _35.parent, 'optionalAccess', _36 => _36.id]), () => ( null)), loc.index + i);
3124
+ out = _chunkLL3RAN55cjs.insertLayer.call(void 0, out, c, _nullishCoalesce(_optionalChain([loc, 'access', _35 => _35.parent, 'optionalAccess', _36 => _36.id]), () => ( null)), loc.index + i);
3123
3125
  });
3124
3126
  return { layers: out, ids: group.children.map((c) => c.id) };
3125
3127
  }
@@ -3134,12 +3136,12 @@ function offsetLayer(layers, id, offset) {
3134
3136
  if (mask && mask.linked === false && !mask.source) {
3135
3137
  next.mask = { ...mask, surface: _chunk7ISPWEJAcjs.translateSurface.call(void 0, mask.surface, layer.offset.x - next.offset.x, layer.offset.y - next.offset.y) };
3136
3138
  }
3137
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next);
3139
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next);
3138
3140
  }
3139
3141
  function setLayerMask(layers, id, mask) {
3140
3142
  const loc = requireLayer(layers, id);
3141
3143
  requireUnlocked(loc.layer, "all", "change its mask");
3142
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, (l) => {
3144
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, (l) => {
3143
3145
  const next = { ...l };
3144
3146
  if (mask) next.mask = mask;
3145
3147
  else delete next.mask;
@@ -3178,7 +3180,7 @@ function requirePixelLayer(layers, id) {
3178
3180
  function addLayerFilter(layers, id, filter) {
3179
3181
  const layer = requirePixelLayer(layers, id);
3180
3182
  if (_optionalChain([layer, 'access', _37 => _37.filters, 'optionalAccess', _38 => _38.some, 'call', _39 => _39((f) => f.kind === filter.kind)])) fail(`Layer "${id}" already has a ${filter.kind} filter; change it with update_layer_filter.`);
3181
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters: [..._nullishCoalesce(layer.filters, () => ( [])), filter] }));
3183
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters: [..._nullishCoalesce(layer.filters, () => ( [])), filter] }));
3182
3184
  }
3183
3185
  function updateLayerFilter(layers, id, filterId, changes) {
3184
3186
  const layer = requirePixelLayer(layers, id);
@@ -3189,7 +3191,7 @@ function updateLayerFilter(layers, id, filterId, changes) {
3189
3191
  const merged2 = normalizeFilter({ ...current, ...changes, kind: current.kind }, current.id);
3190
3192
  const filters = [...layer.filters];
3191
3193
  filters[i] = merged2;
3192
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters }));
3194
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters }));
3193
3195
  }
3194
3196
  function removeLayerFilter(layers, id, filterId) {
3195
3197
  const layer = requirePixelLayer(layers, id);
@@ -3198,7 +3200,7 @@ function removeLayerFilter(layers, id, filterId) {
3198
3200
  const next = { ...layer };
3199
3201
  if (filters.length) next.filters = filters;
3200
3202
  else delete next.filters;
3201
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next);
3203
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next);
3202
3204
  }
3203
3205
  function requireEffectLayer(layers, id, action) {
3204
3206
  const layer = requireLayer(layers, id).layer;
@@ -3213,7 +3215,7 @@ function guard(fn) {
3213
3215
  try {
3214
3216
  return fn();
3215
3217
  } catch (e) {
3216
- if (e instanceof _chunkWMRIG4XQcjs.LayerEffectError) fail(e.message);
3218
+ if (e instanceof _chunkLL3RAN55cjs.LayerEffectError) fail(e.message);
3217
3219
  throw e;
3218
3220
  }
3219
3221
  }
@@ -3221,20 +3223,20 @@ function setLayerEffects(layers, id, effects) {
3221
3223
  const layer = requireEffectLayer(layers, id, "change its effects");
3222
3224
  const next = { ...layer };
3223
3225
  if (effects && (effects.items.length || effects.psd || effects.scale !== void 0 || !effects.enabled)) {
3224
- guard(() => _chunkWMRIG4XQcjs.validateLayerEffects.call(void 0, effects));
3226
+ guard(() => _chunkLL3RAN55cjs.validateLayerEffects.call(void 0, effects));
3225
3227
  next.effects = effects;
3226
3228
  } else delete next.effects;
3227
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next);
3229
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next);
3228
3230
  }
3229
3231
  function addLayerEffect(layers, id, kind, params = {}, index) {
3230
- if (!_chunkWMRIG4XQcjs.isLayerEffectKind.call(void 0, kind)) fail(`Unknown effect kind "${String(kind)}". Kinds: ${_chunkWMRIG4XQcjs.LAYER_EFFECT_KINDS.join(", ")}.`);
3232
+ if (!_chunkLL3RAN55cjs.isLayerEffectKind.call(void 0, kind)) fail(`Unknown effect kind "${String(kind)}". Kinds: ${_chunkLL3RAN55cjs.LAYER_EFFECT_KINDS.join(", ")}.`);
3231
3233
  const layer = requireEffectLayer(layers, id, "add effects");
3232
3234
  const current = layerEffectsOf(layer);
3233
3235
  const ids = new Set(current.items.map((e) => e.id));
3234
- let effectId = _chunkWMRIG4XQcjs.newEffectId.call(void 0, );
3235
- while (ids.has(effectId)) effectId = _chunkWMRIG4XQcjs.newEffectId.call(void 0, );
3236
+ let effectId = _chunkLL3RAN55cjs.newEffectId.call(void 0, );
3237
+ while (ids.has(effectId)) effectId = _chunkLL3RAN55cjs.newEffectId.call(void 0, );
3236
3238
  const { id: _ignored, kind: _kind, ...rest } = params;
3237
- const effect = guard(() => _chunkWMRIG4XQcjs.mergeLayerEffect.call(void 0, _chunkWMRIG4XQcjs.defaultLayerEffect.call(void 0, kind, effectId), rest));
3239
+ const effect = guard(() => _chunkLL3RAN55cjs.mergeLayerEffect.call(void 0, _chunkLL3RAN55cjs.defaultLayerEffect.call(void 0, kind, effectId), rest));
3238
3240
  const items = [...current.items];
3239
3241
  const at = index === void 0 ? items.length : Math.max(0, Math.min(items.length, Math.floor(index)));
3240
3242
  items.splice(at, 0, effect);
@@ -3251,7 +3253,7 @@ function updateLayerEffect(layers, id, effectId, changes) {
3251
3253
  const i = requireEffect(layer, effectId);
3252
3254
  const current = layer.effects;
3253
3255
  const items = [...current.items];
3254
- items[i] = guard(() => _chunkWMRIG4XQcjs.mergeLayerEffect.call(void 0, items[i], changes));
3256
+ items[i] = guard(() => _chunkLL3RAN55cjs.mergeLayerEffect.call(void 0, items[i], changes));
3255
3257
  return setLayerEffects(layers, id, { ...current, items });
3256
3258
  }
3257
3259
  function removeLayerEffect(layers, id, effectId) {
@@ -3286,7 +3288,7 @@ function unionRect(a, b) {
3286
3288
  }
3287
3289
 
3288
3290
  // src/image-editor/layers/shape.ts
3289
- var SHAPE_RENDER_MARGIN = _chunkWMRIG4XQcjs.MAX_EFFECT_REACH;
3291
+ var SHAPE_RENDER_MARGIN = _chunkLL3RAN55cjs.MAX_EFFECT_REACH;
3290
3292
  var DEFAULT_MITER_LIMIT = 100;
3291
3293
  var fail2 = (message) => {
3292
3294
  throw new LayerOperationError(message);
@@ -3326,7 +3328,7 @@ function mapAnchor(a, f) {
3326
3328
  return out;
3327
3329
  }
3328
3330
  function mapSubpaths(subpaths, f) {
3329
- return _chunkLI3KTY7Kcjs.expandVectorCorners.call(void 0, subpaths).map((sp) => ({ closed: sp.closed, anchors: sp.anchors.map((a) => mapAnchor(a, f)) }));
3331
+ return _chunkVYW7JBTMcjs.expandVectorCorners.call(void 0, subpaths).map((sp) => ({ closed: sp.closed, anchors: sp.anchors.map((a) => mapAnchor(a, f)) }));
3330
3332
  }
3331
3333
  function liveShapeSubpaths(live) {
3332
3334
  let out;
@@ -3334,19 +3336,19 @@ function liveShapeSubpaths(live) {
3334
3336
  case "rect": {
3335
3337
  const x = Math.min(live.x, live.x + live.width);
3336
3338
  const y = Math.min(live.y, live.y + live.height);
3337
- const sp = _chunkLI3KTY7Kcjs.rectSubpath.call(void 0, { x, y, width: Math.abs(live.width), height: Math.abs(live.height) });
3339
+ const sp = _chunkVYW7JBTMcjs.rectSubpath.call(void 0, { x, y, width: Math.abs(live.width), height: Math.abs(live.height) });
3338
3340
  const r = _nullishCoalesce(live.radii, () => ( [0, 0, 0, 0]));
3339
- out = [{ closed: true, anchors: sp.anchors.map((a, i) => r[i] > 0 ? _chunkLI3KTY7Kcjs.setAnchorCorner.call(void 0, a, r[i]) : a) }];
3341
+ out = [{ closed: true, anchors: sp.anchors.map((a, i) => r[i] > 0 ? _chunkVYW7JBTMcjs.setAnchorCorner.call(void 0, a, r[i]) : a) }];
3340
3342
  break;
3341
3343
  }
3342
3344
  case "ellipse":
3343
- out = [_chunkLI3KTY7Kcjs.ellipseSubpath.call(void 0, normBox(live))];
3345
+ out = [_chunkVYW7JBTMcjs.ellipseSubpath.call(void 0, normBox(live))];
3344
3346
  break;
3345
3347
  case "polygon":
3346
- out = [_chunkLI3KTY7Kcjs.polygonSubpath.call(void 0, normBox(live), live.sides)];
3348
+ out = [_chunkVYW7JBTMcjs.polygonSubpath.call(void 0, normBox(live), live.sides)];
3347
3349
  break;
3348
3350
  case "star":
3349
- out = [_chunkLI3KTY7Kcjs.starSubpath.call(void 0, normBox(live), live.points, Math.max(0, Math.min(1, live.innerRatio)))];
3351
+ out = [_chunkVYW7JBTMcjs.starSubpath.call(void 0, normBox(live), live.points, Math.max(0, Math.min(1, live.innerRatio)))];
3350
3352
  break;
3351
3353
  case "line": {
3352
3354
  const a = { x: live.x1, y: live.y1 };
@@ -3369,7 +3371,7 @@ function liveShapeSubpaths(live) {
3369
3371
  }
3370
3372
  }
3371
3373
  const m = live.transform;
3372
- return m && !_chunkLI3KTY7Kcjs.isIdentityMatrix.call(void 0, m) ? mapSubpaths(out, (p) => _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, p)) : out;
3374
+ return m && !_chunkVYW7JBTMcjs.isIdentityMatrix.call(void 0, m) ? mapSubpaths(out, (p) => _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, p)) : out;
3373
3375
  }
3374
3376
  function normBox(b) {
3375
3377
  return { x: Math.min(b.x, b.x + b.width), y: Math.min(b.y, b.y + b.height), width: Math.abs(b.width), height: Math.abs(b.height) };
@@ -3381,7 +3383,7 @@ var pathCache = /* @__PURE__ */ new WeakMap();
3381
3383
  function componentPath(c) {
3382
3384
  let p = pathCache.get(c.subpaths);
3383
3385
  if (!p) {
3384
- p = _chunkLI3KTY7Kcjs.subpathsToBezier.call(void 0, c.subpaths);
3386
+ p = _chunkVYW7JBTMcjs.subpathsToBezier.call(void 0, c.subpaths);
3385
3387
  pathCache.set(c.subpaths, p);
3386
3388
  }
3387
3389
  return p;
@@ -3502,11 +3504,11 @@ function fillCoverage(geo, rect, rule, inverted = false) {
3502
3504
  function paintContext(env) {
3503
3505
  const tiles = /* @__PURE__ */ new Map();
3504
3506
  return {
3505
- light: _chunkWMRIG4XQcjs.DEFAULT_GLOBAL_LIGHT,
3507
+ light: _chunkLL3RAN55cjs.DEFAULT_GLOBAL_LIGHT,
3506
3508
  pattern: (id) => {
3507
3509
  if (tiles.has(id)) return tiles.get(id);
3508
- const p = _nullishCoalesce(_optionalChain([env, 'access', _44 => _44.pattern, 'optionalCall', _45 => _45(id)]), () => ( _chunkWMRIG4XQcjs.builtinPattern.call(void 0, id)));
3509
- const t = p && p.width > 0 && p.height > 0 && p.data.length >= p.width * p.height * 4 ? new (0, _chunkWMRIG4XQcjs.PatternTile)(p) : null;
3510
+ const p = _nullishCoalesce(_optionalChain([env, 'access', _44 => _44.pattern, 'optionalCall', _45 => _45(id)]), () => ( _chunkLL3RAN55cjs.builtinPattern.call(void 0, id)));
3511
+ const t = p && p.width > 0 && p.height > 0 && p.data.length >= p.width * p.height * 4 ? new (0, _chunkLL3RAN55cjs.PatternTile)(p) : null;
3510
3512
  tiles.set(id, t);
3511
3513
  return t;
3512
3514
  }
@@ -3537,9 +3539,9 @@ function renderShapeRect(layer, rect, env, ctx = paintContext(env)) {
3537
3539
  if (!fCov && !sCov) return null;
3538
3540
  const canvas = { x: 0, y: 0, width: env.width, height: env.height };
3539
3541
  const anchor = { x: geo.frame.x, y: geo.frame.y };
3540
- const fc = fCov ? _chunkWMRIG4XQcjs.effectFillColors.call(void 0, layer.fill, rect, geo.frame, canvas, anchor, ctx) : null;
3542
+ const fc = fCov ? _chunkLL3RAN55cjs.effectFillColors.call(void 0, layer.fill, rect, geo.frame, canvas, anchor, ctx) : null;
3541
3543
  const fo = _nullishCoalesce(_optionalChain([layer, 'access', _46 => _46.fill, 'optionalAccess', _47 => _47.opacity]), () => ( 1));
3542
- const sc = sCov ? _chunkWMRIG4XQcjs.effectFillColors.call(void 0, layer.stroke.paint, rect, geo.frame, canvas, anchor, ctx) : null;
3544
+ const sc = sCov ? _chunkLL3RAN55cjs.effectFillColors.call(void 0, layer.stroke.paint, rect, geo.frame, canvas, anchor, ctx) : null;
3543
3545
  const so = _nullishCoalesce(_optionalChain([layer, 'access', _48 => _48.stroke, 'optionalAccess', _49 => _49.paint, 'access', _50 => _50.opacity]), () => ( 1));
3544
3546
  const out = new Uint8ClampedArray(n * 4);
3545
3547
  let any = false;
@@ -3632,9 +3634,9 @@ function normalizeShapePaint(v, path = "paint") {
3632
3634
  offset: _nullishCoalesce(g.offset, () => ( { x: 0, y: 0 }))
3633
3635
  };
3634
3636
  try {
3635
- _chunkWMRIG4XQcjs.validateEffectGradient.call(void 0, gradient, `${path}.gradient`);
3637
+ _chunkLL3RAN55cjs.validateEffectGradient.call(void 0, gradient, `${path}.gradient`);
3636
3638
  } catch (e) {
3637
- if (e instanceof _chunkWMRIG4XQcjs.LayerEffectError) fail2(e.message);
3639
+ if (e instanceof _chunkLL3RAN55cjs.LayerEffectError) fail2(e.message);
3638
3640
  throw e;
3639
3641
  }
3640
3642
  if (gradient.stops.length < 1) fail2(`${path}.gradient.stops needs at least one { position, color }.`);
@@ -3704,7 +3706,7 @@ function matrixArg(v, path) {
3704
3706
  if (!Array.isArray(v) || v.length !== 6 || !v.every(isNum)) fail2(`${path} must be six numbers [a, b, c, d, e, f].`);
3705
3707
  const m = v;
3706
3708
  if (Math.abs(m[0] * m[3] - m[1] * m[2]) < 1e-12) fail2(`${path} is singular.`);
3707
- return _chunkLI3KTY7Kcjs.isIdentityMatrix.call(void 0, m) ? void 0 : [...m];
3709
+ return _chunkVYW7JBTMcjs.isIdentityMatrix.call(void 0, m) ? void 0 : [...m];
3708
3710
  }
3709
3711
  function normalizeLiveShape(v, path = "shape") {
3710
3712
  if (!v || typeof v !== "object") return fail2(`${path} must be an object with kind ${LIVE_SHAPE_KINDS.join(", ")}.`);
@@ -3765,7 +3767,7 @@ function normalizeSubpaths(v, path = "subpaths") {
3765
3767
  if (typeof v === "string") {
3766
3768
  let subs;
3767
3769
  try {
3768
- subs = _chunkLI3KTY7Kcjs.bezierToSubpaths.call(void 0, v);
3770
+ subs = _chunkVYW7JBTMcjs.bezierToSubpaths.call(void 0, v);
3769
3771
  } catch (e5) {
3770
3772
  return fail2(`${path}: could not read the SVG path data.`);
3771
3773
  }
@@ -3846,20 +3848,20 @@ function updateShapeLayer(layers, id, change, env, action = "edit it") {
3846
3848
  if (!("annotation" in patch)) delete next.annotation;
3847
3849
  if (!next.components.length) fail2("A shape needs at least one component; delete the layer instead.");
3848
3850
  const rendered = rerenderShape(next, env);
3849
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
3851
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
3850
3852
  }
3851
3853
  function transformShapeComponents(components, f, affine) {
3852
3854
  return components.map((c) => {
3853
3855
  if (affine && c.live) {
3854
- const live = { ...c.live, transform: _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, _nullishCoalesce(c.live.transform, () => ( _chunkLI3KTY7Kcjs.IDENTITY_MATRIX)), affine) };
3855
- if (_chunkLI3KTY7Kcjs.isIdentityMatrix.call(void 0, live.transform)) delete live.transform;
3856
+ const live = { ...c.live, transform: _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, _nullishCoalesce(c.live.transform, () => ( _chunkVYW7JBTMcjs.IDENTITY_MATRIX)), affine) };
3857
+ if (_chunkVYW7JBTMcjs.isIdentityMatrix.call(void 0, live.transform)) delete live.transform;
3856
3858
  return { op: c.op, subpaths: liveShapeSubpaths(live), live };
3857
3859
  }
3858
3860
  return { op: c.op, subpaths: mapSubpaths(c.subpaths, f) };
3859
3861
  });
3860
3862
  }
3861
3863
  function offsetShape(layer, dx, dy, env) {
3862
- const m = _chunkLI3KTY7Kcjs.translateMatrix.call(void 0, dx, dy);
3864
+ const m = _chunkVYW7JBTMcjs.translateMatrix.call(void 0, dx, dy);
3863
3865
  const next = { ...layer, components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), m) };
3864
3866
  delete next.annotation;
3865
3867
  return rerenderShape(next, env);
@@ -3867,7 +3869,7 @@ function offsetShape(layer, dx, dy, env) {
3867
3869
  function mergeShapeComponents(components, fillRule = "nonzero") {
3868
3870
  if (components.length < 2) return [...components];
3869
3871
  const path = shapeOutline(components, fillRule);
3870
- const subpaths = _chunkLI3KTY7Kcjs.bezierToSubpaths.call(void 0, path);
3872
+ const subpaths = _chunkVYW7JBTMcjs.bezierToSubpaths.call(void 0, path);
3871
3873
  if (!subpaths.length) fail2("The components combine to nothing (the operations remove every area), so there is nothing to merge into.");
3872
3874
  return [{ op: "combine", subpaths }];
3873
3875
  }
@@ -3877,14 +3879,14 @@ function shapeAsPixelLayer(layer) {
3877
3879
  }
3878
3880
  function annotationPaint(color, opacity) {
3879
3881
  const c = parseCssColor(color);
3880
- if (!c || !_chunkWMRIG4XQcjs.parseEffectColor.call(void 0, c.hex)) return void 0;
3882
+ if (!c || !_chunkLL3RAN55cjs.parseEffectColor.call(void 0, c.hex)) return void 0;
3881
3883
  const a = c.alpha * opacity;
3882
3884
  return a !== 1 ? { type: "color", color: c.hex, opacity: a } : { type: "color", color: c.hex };
3883
3885
  }
3884
3886
  function shapeFromAnnotation(a) {
3885
3887
  const opacity = _nullishCoalesce(a.opacity, () => ( 1));
3886
3888
  const lineWidth = "strokeWidth" in a && a.strokeWidth > 0 ? a.strokeWidth : 1;
3887
- const rotation = a.rotation ? _chunkLI3KTY7Kcjs.rotateMatrix.call(void 0, a.rotation, { x: a.x, y: a.y }) : void 0;
3889
+ const rotation = a.rotation ? _chunkVYW7JBTMcjs.rotateMatrix.call(void 0, a.rotation, { x: a.x, y: a.y }) : void 0;
3888
3890
  const t = rotation ? { transform: rotation } : {};
3889
3891
  const live = (l) => liveComponent(l);
3890
3892
  switch (a.type) {
@@ -3927,7 +3929,7 @@ function shapeFromAnnotation(a) {
3927
3929
  case "pen": {
3928
3930
  const paint = annotationPaint(a.strokeColor, opacity);
3929
3931
  if (!paint) return null;
3930
- const pts = rotation ? a.points.map((p) => _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, rotation, p)) : a.points;
3932
+ const pts = rotation ? a.points.map((p) => _chunkVYW7JBTMcjs.applyMatrix.call(void 0, rotation, p)) : a.points;
3931
3933
  const subpaths = pts.length > 1 ? [{ closed: false, anchors: pts.map((p) => ({ x: p.x, y: p.y })) }] : [];
3932
3934
  return {
3933
3935
  components: [{ op: "combine", subpaths }],
@@ -3958,9 +3960,9 @@ function annotationOfShape(layer) {
3958
3960
  var fail3 = (message) => {
3959
3961
  throw new LayerOperationError(message);
3960
3962
  };
3961
- var TEXT_RENDER_MARGIN = _chunkWMRIG4XQcjs.MAX_EFFECT_REACH;
3963
+ var TEXT_RENDER_MARGIN = _chunkLL3RAN55cjs.MAX_EFFECT_REACH;
3962
3964
  function textMatrix(layer) {
3963
- return _nullishCoalesce(layer.transform, () => ( _chunkLI3KTY7Kcjs.IDENTITY_MATRIX));
3965
+ return _nullishCoalesce(layer.transform, () => ( _chunkVYW7JBTMcjs.IDENTITY_MATRIX));
3964
3966
  }
3965
3967
  function rectCorners(r) {
3966
3968
  return [
@@ -3971,7 +3973,7 @@ function rectCorners(r) {
3971
3973
  ];
3972
3974
  }
3973
3975
  function docRect(r, m) {
3974
- const pts = rectCorners(r).map((p) => _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, p));
3976
+ const pts = rectCorners(r).map((p) => _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, p));
3975
3977
  const x0 = Math.floor(Math.min(...pts.map((p) => p.x)));
3976
3978
  const y0 = Math.floor(Math.min(...pts.map((p) => p.y)));
3977
3979
  const x1 = Math.ceil(Math.max(...pts.map((p) => p.x)));
@@ -4004,14 +4006,14 @@ function inkBounds(layout) {
4004
4006
  }
4005
4007
  function textOutlines(layer, shaper) {
4006
4008
  if (!shaper.outline) fail3(`The text shaper "${shaper.id}" cannot give glyph outlines; plug in an outline shaper (createOutlineTextShaper) to convert text to shapes.`);
4007
- const layout = _chunkLI3KTY7Kcjs.layoutText.call(void 0, layer, shaper);
4009
+ const layout = _chunkVYW7JBTMcjs.layoutText.call(void 0, layer, shaper);
4008
4010
  const m = textMatrix(layer);
4009
4011
  const out = [];
4010
4012
  for (const l of layout.lines) {
4011
4013
  for (const f of l.fragments) {
4012
- let path = _chunkLI3KTY7Kcjs.textFragmentOutline.call(void 0, shaper, layer.text, f);
4013
- for (const r of _chunkLI3KTY7Kcjs.textDecorations.call(void 0, f, l)) path = [...path, ..._chunkLI3KTY7Kcjs.textRectPath.call(void 0, r)];
4014
- out.push({ fragment: f, path: _chunkLI3KTY7Kcjs.isIdentityMatrix.call(void 0, m) ? path : _chunkXGD3FSNCcjs.transformBezierPath.call(void 0, path, m) });
4014
+ let path = _chunkVYW7JBTMcjs.textFragmentOutline.call(void 0, shaper, layer.text, f);
4015
+ for (const r of _chunkVYW7JBTMcjs.textDecorations.call(void 0, f, l)) path = [...path, ..._chunkVYW7JBTMcjs.textRectPath.call(void 0, r)];
4016
+ out.push({ fragment: f, path: _chunkVYW7JBTMcjs.isIdentityMatrix.call(void 0, m) ? path : _chunkXGD3FSNCcjs.transformBezierPath.call(void 0, path, m) });
4015
4017
  }
4016
4018
  }
4017
4019
  return out;
@@ -4067,7 +4069,7 @@ function renderOnCanvas(layer, shaper, region, env) {
4067
4069
  const canvas = env.createCanvas(region.width, region.height);
4068
4070
  const ctx = canvas.getContext("2d");
4069
4071
  if (!ctx || typeof ctx.getImageData !== "function") return null;
4070
- const layout = _chunkLI3KTY7Kcjs.layoutText.call(void 0, layer, shaper);
4072
+ const layout = _chunkVYW7JBTMcjs.layoutText.call(void 0, layer, shaper);
4071
4073
  const m = textMatrix(layer);
4072
4074
  ctx.setTransform(1, 0, 0, 1, 0, 0);
4073
4075
  ctx.clearRect(0, 0, region.width, region.height);
@@ -4079,8 +4081,8 @@ function renderOnCanvas(layer, shaper, region, env) {
4079
4081
  ctx.globalAlpha = _nullishCoalesce(f.style.opacity, () => ( 1));
4080
4082
  const s = layer.text.slice(f.start, f.end);
4081
4083
  if (!f.spaced) shaper.draw(ctx, s, f.font, f.x, f.y);
4082
- else for (let k = 0; k < s.length; k++) if (!_chunkLI3KTY7Kcjs.isTextSpace.call(void 0, s[k])) shaper.draw(ctx, s[k], f.font, f.x + f.carets[k], f.y);
4083
- for (const d of _chunkLI3KTY7Kcjs.textDecorations.call(void 0, f, l)) ctx.fillRect(d.x, d.y, d.width, d.height);
4084
+ else for (let k = 0; k < s.length; k++) if (!_chunkVYW7JBTMcjs.isTextSpace.call(void 0, s[k])) shaper.draw(ctx, s[k], f.font, f.x + f.carets[k], f.y);
4085
+ for (const d of _chunkVYW7JBTMcjs.textDecorations.call(void 0, f, l)) ctx.fillRect(d.x, d.y, d.width, d.height);
4084
4086
  }
4085
4087
  }
4086
4088
  ctx.globalAlpha = 1;
@@ -4091,7 +4093,7 @@ function renderOnCanvas(layer, shaper, region, env) {
4091
4093
  function renderText(layer, env) {
4092
4094
  const shaper = env.shaper;
4093
4095
  if (!shaper || !shaper.outline && !shaper.draw) return null;
4094
- const layout = _chunkLI3KTY7Kcjs.layoutText.call(void 0, layer, shaper);
4096
+ const layout = _chunkVYW7JBTMcjs.layoutText.call(void 0, layer, shaper);
4095
4097
  const ink = inkBounds(layout);
4096
4098
  const clip = { x: -TEXT_RENDER_MARGIN, y: -TEXT_RENDER_MARGIN, width: env.width + 2 * TEXT_RENDER_MARGIN, height: env.height + 2 * TEXT_RENDER_MARGIN };
4097
4099
  const region = ink ? intersect2(docRect(ink, textMatrix(layer)), clip) : null;
@@ -4186,7 +4188,7 @@ function patchParagraphStyle(base, patch, path = "paragraph") {
4186
4188
  continue;
4187
4189
  }
4188
4190
  const value = k === "autoLeading" ? num(v, `${path}.${k}`, 0.1, 10) : num(v, `${path}.${k}`, -1e4, 1e4);
4189
- if (k === "autoLeading" && value === _chunkLI3KTY7Kcjs.DEFAULT_AUTO_LEADING || k !== "autoLeading" && value === 0) delete o[k];
4191
+ if (k === "autoLeading" && value === _chunkVYW7JBTMcjs.DEFAULT_AUTO_LEADING || k !== "autoLeading" && value === 0) delete o[k];
4190
4192
  else o[k] = value;
4191
4193
  } else fail3(`${path}.${k} is not a paragraph style field; use ${PARAGRAPH_STYLE_FIELDS.join(", ")}.`);
4192
4194
  }
@@ -4223,14 +4225,14 @@ function createTypeLayer(init, env, id = newLayerId(), lenient = false) {
4223
4225
  opacity: 1,
4224
4226
  blend: "normal",
4225
4227
  text: text3,
4226
- runs: _chunkLI3KTY7Kcjs.fitRuns.call(void 0, init.runs, text3.length, _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE),
4227
- paragraphs: _chunkLI3KTY7Kcjs.fitParagraphRuns.call(void 0, _nullishCoalesce(init.paragraphs, () => ( [{ length: text3.length, style: {} }])), text3),
4228
+ runs: _chunkVYW7JBTMcjs.fitRuns.call(void 0, init.runs, text3.length, _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE),
4229
+ paragraphs: _chunkVYW7JBTMcjs.fitParagraphRuns.call(void 0, _nullishCoalesce(init.paragraphs, () => ( [{ length: text3.length, style: {} }])), text3),
4228
4230
  frame: init.frame,
4229
4231
  surface: _chunk7ISPWEJAcjs.emptySurface.call(void 0, 4),
4230
4232
  offset: { x: 0, y: 0 }
4231
4233
  };
4232
- if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([init, 'access', _62 => _62.runs, 'access', _63 => _63[0], 'optionalAccess', _64 => _64.style]), () => ( _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE)) }];
4233
- if (init.transform && !_chunkLI3KTY7Kcjs.isIdentityMatrix.call(void 0, init.transform)) layer.transform = init.transform;
4234
+ if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([init, 'access', _62 => _62.runs, 'access', _63 => _63[0], 'optionalAccess', _64 => _64.style]), () => ( _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE)) }];
4235
+ if (init.transform && !_chunkVYW7JBTMcjs.isIdentityMatrix.call(void 0, init.transform)) layer.transform = init.transform;
4234
4236
  if (lenient && !renderText(layer, env)) return { ...layer, rendering: "stored" };
4235
4237
  return rerenderText(layer, env);
4236
4238
  }
@@ -4240,24 +4242,24 @@ function updateTypeLayer(layers, id, change, env, action = "edit it") {
4240
4242
  const patch = change(current);
4241
4243
  const next = { ...current, ...patch };
4242
4244
  if (!("annotation" in patch)) delete next.annotation;
4243
- if ("text" in patch || "runs" in patch) next.runs = _chunkLI3KTY7Kcjs.fitRuns.call(void 0, next.runs, next.text.length, _nullishCoalesce(_optionalChain([current, 'access', _65 => _65.runs, 'access', _66 => _66[0], 'optionalAccess', _67 => _67.style]), () => ( _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE)));
4244
- if (!next.runs.length) next.runs = [{ length: 0, style: _chunkLI3KTY7Kcjs.styleAt.call(void 0, current.runs, 0, _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE) }];
4245
- if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkLI3KTY7Kcjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
4245
+ if ("text" in patch || "runs" in patch) next.runs = _chunkVYW7JBTMcjs.fitRuns.call(void 0, next.runs, next.text.length, _nullishCoalesce(_optionalChain([current, 'access', _65 => _65.runs, 'access', _66 => _66[0], 'optionalAccess', _67 => _67.style]), () => ( _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE)));
4246
+ if (!next.runs.length) next.runs = [{ length: 0, style: _chunkVYW7JBTMcjs.styleAt.call(void 0, current.runs, 0, _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE) }];
4247
+ if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkVYW7JBTMcjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
4246
4248
  const rendered = rerenderText(next, env);
4247
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
4249
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
4248
4250
  }
4249
4251
  function replaceTextRange(layer, start, end, insert) {
4250
4252
  const text3 = layer.text.slice(0, start) + insert + layer.text.slice(end);
4251
- const style = _chunkLI3KTY7Kcjs.styleAt.call(void 0, layer.runs, start > 0 && start === layer.text.length ? start - 1 : start, _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE);
4252
- const runs = _chunkLI3KTY7Kcjs.spliceRuns.call(void 0, layer.runs, start, end, insert.length, style);
4253
- const pstyle = _chunkLI3KTY7Kcjs.styleAt.call(void 0, layer.paragraphs, start, {});
4254
- const paragraphs = _chunkLI3KTY7Kcjs.spliceRuns.call(void 0, layer.paragraphs, start, end, insert.length, pstyle);
4255
- return { text: text3, runs, paragraphs: _chunkLI3KTY7Kcjs.fitParagraphRuns.call(void 0, paragraphs, text3) };
4253
+ const style = _chunkVYW7JBTMcjs.styleAt.call(void 0, layer.runs, start > 0 && start === layer.text.length ? start - 1 : start, _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE);
4254
+ const runs = _chunkVYW7JBTMcjs.spliceRuns.call(void 0, layer.runs, start, end, insert.length, style);
4255
+ const pstyle = _chunkVYW7JBTMcjs.styleAt.call(void 0, layer.paragraphs, start, {});
4256
+ const paragraphs = _chunkVYW7JBTMcjs.spliceRuns.call(void 0, layer.paragraphs, start, end, insert.length, pstyle);
4257
+ return { text: text3, runs, paragraphs: _chunkVYW7JBTMcjs.fitParagraphRuns.call(void 0, paragraphs, text3) };
4256
4258
  }
4257
4259
  function transformTypeLayer(layer, m) {
4258
- const t = _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, textMatrix(layer), m);
4260
+ const t = _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, textMatrix(layer), m);
4259
4261
  const next = { ...layer };
4260
- if (_chunkLI3KTY7Kcjs.isIdentityMatrix.call(void 0, t)) delete next.transform;
4262
+ if (_chunkVYW7JBTMcjs.isIdentityMatrix.call(void 0, t)) delete next.transform;
4261
4263
  else next.transform = t;
4262
4264
  delete next.annotation;
4263
4265
  return next;
@@ -4265,7 +4267,7 @@ function transformTypeLayer(layer, m) {
4265
4267
  function typeFrame(layer, shaper) {
4266
4268
  if (layer.frame.kind === "box") return { x: 0, y: 0, width: layer.frame.width, height: layer.frame.height };
4267
4269
  if (!shaper) return fail3("Type layers need a text shaper to be measured; none is set here.");
4268
- const b = _chunkLI3KTY7Kcjs.layoutText.call(void 0, layer, shaper).bounds;
4270
+ const b = _chunkVYW7JBTMcjs.layoutText.call(void 0, layer, shaper).bounds;
4269
4271
  return { x: b.x, y: b.y, width: Math.max(b.width, 1), height: Math.max(b.height, 1) };
4270
4272
  }
4271
4273
  function typeAsPixelLayer(layer) {
@@ -4273,7 +4275,7 @@ function typeAsPixelLayer(layer) {
4273
4275
  return { ...rest, type: "pixel", surface: layer.surface, offset: { x: 0, y: 0 } };
4274
4276
  }
4275
4277
  function toTextSpace(layer, p) {
4276
- return _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, _chunkLI3KTY7Kcjs.invertMatrix.call(void 0, textMatrix(layer)), p);
4278
+ return _chunkVYW7JBTMcjs.applyMatrix.call(void 0, _chunkVYW7JBTMcjs.invertMatrix.call(void 0, textMatrix(layer)), p);
4277
4279
  }
4278
4280
  function typeFromAnnotation(a) {
4279
4281
  if (a.type !== "text") return null;
@@ -4287,7 +4289,7 @@ function typeFromAnnotation(a) {
4287
4289
  if (op !== 1) style.opacity = op;
4288
4290
  const text3 = t.text.replace(/\r?\n|\r/g, " ");
4289
4291
  const translate = [1, 0, 0, 1, t.x, t.y];
4290
- const transform = t.rotation ? _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, translate, _chunkLI3KTY7Kcjs.rotateMatrix.call(void 0, t.rotation, { x: t.x, y: t.y })) : translate;
4292
+ const transform = t.rotation ? _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, translate, _chunkVYW7JBTMcjs.rotateMatrix.call(void 0, t.rotation, { x: t.x, y: t.y })) : translate;
4291
4293
  return { text: text3, runs: [{ length: text3.length, style }], frame: { kind: "point", origin: "top" }, transform };
4292
4294
  }
4293
4295
  function annotationOfType(layer) {
@@ -4617,34 +4619,34 @@ function isTransformAnchor(value) {
4617
4619
  return typeof value === "string" && value in ANCHOR_FRACTION;
4618
4620
  }
4619
4621
  function identityTransform(box2) {
4620
- return { box: { ...box2 }, corners: _chunkEJVDBITDcjs.boxQuad.call(void 0, box2) };
4622
+ return { box: { ...box2 }, corners: _chunkMUUXNRU4cjs.boxQuad.call(void 0, box2) };
4621
4623
  }
4622
4624
  function cornersFromMatrix(box2, m) {
4623
- const q2 = _chunkEJVDBITDcjs.boxQuad.call(void 0, box2);
4624
- return [_chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[0]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[1]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[2]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[3])];
4625
+ const q2 = _chunkMUUXNRU4cjs.boxQuad.call(void 0, box2);
4626
+ return [_chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[0]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[1]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[2]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[3])];
4625
4627
  }
4626
4628
  function matrixFromCorners(box2, corners, eps = 1e-6) {
4627
4629
  const [tl, tr, br, bl] = corners;
4628
4630
  const size = 1 + Math.max(box2.width, box2.height);
4629
4631
  if (Math.abs(tl.x + br.x - tr.x - bl.x) > eps * size || Math.abs(tl.y + br.y - tr.y - bl.y) > eps * size) return null;
4630
- const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, box2, corners);
4631
- return h ? _chunkEJVDBITDcjs.affineFromHomography.call(void 0, h, 1e-9) : null;
4632
+ const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, box2, corners);
4633
+ return h ? _chunkMUUXNRU4cjs.affineFromHomography.call(void 0, h, 1e-9) : null;
4632
4634
  }
4633
4635
  function transformHomography(geometry) {
4634
- const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4636
+ const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4635
4637
  if (!h) return null;
4636
- return _chunkEJVDBITDcjs.homographyKeepsQuad.call(void 0, h, _chunkEJVDBITDcjs.boxQuad.call(void 0, geometry.box)) ? h : null;
4638
+ return _chunkMUUXNRU4cjs.homographyKeepsQuad.call(void 0, h, _chunkMUUXNRU4cjs.boxQuad.call(void 0, geometry.box)) ? h : null;
4637
4639
  }
4638
4640
  function hasWarp(geometry) {
4639
4641
  const w = geometry.warp;
4640
4642
  if (!w) return false;
4641
- const id = _chunkLI3KTY7Kcjs.identityWarpMesh.call(void 0, geometry.box, w.us.length - 1, w.vs.length - 1);
4643
+ const id = _chunkVYW7JBTMcjs.identityWarpMesh.call(void 0, geometry.box, w.us.length - 1, w.vs.length - 1);
4642
4644
  if (id.points.length !== w.points.length || id.us.some((u, i) => Math.abs(u - w.us[i]) > 1e-12) || id.vs.some((v, i) => Math.abs(v - w.vs[i]) > 1e-12)) return true;
4643
4645
  return w.points.some((p, i) => Math.abs(p.x - id.points[i].x) > 1e-6 || Math.abs(p.y - id.points[i].y) > 1e-6);
4644
4646
  }
4645
4647
  function isIdentityTransform(geometry) {
4646
4648
  if (hasWarp(geometry)) return false;
4647
- const q2 = _chunkEJVDBITDcjs.boxQuad.call(void 0, geometry.box);
4649
+ const q2 = _chunkMUUXNRU4cjs.boxQuad.call(void 0, geometry.box);
4648
4650
  return geometry.corners.every((c, i) => Math.abs(c.x - q2[i].x) < 1e-6 && Math.abs(c.y - q2[i].y) < 1e-6);
4649
4651
  }
4650
4652
  function transformMap(geometry) {
@@ -4652,8 +4654,8 @@ function transformMap(geometry) {
4652
4654
  if (!h) return null;
4653
4655
  const { box: box2 } = geometry;
4654
4656
  const warp = hasWarp(geometry) ? geometry.warp : null;
4655
- if (!warp) return (p) => _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p);
4656
- return (p) => _chunkEJVDBITDcjs.applyHomography.call(void 0, h, _chunkLI3KTY7Kcjs.evalWarpMesh.call(void 0, warp, (p.x - box2.x) / box2.width, (p.y - box2.y) / box2.height));
4657
+ if (!warp) return (p) => _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p);
4658
+ return (p) => _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, _chunkVYW7JBTMcjs.evalWarpMesh.call(void 0, warp, (p.x - box2.x) / box2.width, (p.y - box2.y) / box2.height));
4657
4659
  }
4658
4660
  function transformedPoint(geometry, fx, fy) {
4659
4661
  const f = transformMap(geometry);
@@ -4662,9 +4664,9 @@ function transformedPoint(geometry, fx, fy) {
4662
4664
  }
4663
4665
  function anchorPoint(geometry, anchor) {
4664
4666
  const [fx, fy] = ANCHOR_FRACTION[anchor];
4665
- const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4667
+ const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4666
4668
  const p = { x: geometry.box.x + fx * geometry.box.width, y: geometry.box.y + fy * geometry.box.height };
4667
- return _nullishCoalesce((h && _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p)), () => ( p));
4669
+ return _nullishCoalesce((h && _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p)), () => ( p));
4668
4670
  }
4669
4671
  function transformedBox(geometry) {
4670
4672
  const f = transformMap(geometry);
@@ -4697,16 +4699,16 @@ function matrixFromParams(box2, params) {
4697
4699
  const tx = Math.tan((_nullishCoalesce(params.skewX, () => ( 0))) * Math.PI / 180);
4698
4700
  const ty = Math.tan((_nullishCoalesce(params.skewY, () => ( 0))) * Math.PI / 180);
4699
4701
  const ref = referencePoint(box2, params.reference);
4700
- const linear = _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, [1, ty, tx, 1, 0, 0], [sx, 0, 0, sy, 0, 0]), _chunkLI3KTY7Kcjs.rotateMatrix.call(void 0, _nullishCoalesce(params.rotate, () => ( 0))));
4701
- return _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, _chunkLI3KTY7Kcjs.matrixAbout.call(void 0, linear, ref), _chunkLI3KTY7Kcjs.translateMatrix.call(void 0, _nullishCoalesce(params.dx, () => ( 0)), _nullishCoalesce(params.dy, () => ( 0))));
4702
+ const linear = _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, [1, ty, tx, 1, 0, 0], [sx, 0, 0, sy, 0, 0]), _chunkVYW7JBTMcjs.rotateMatrix.call(void 0, _nullishCoalesce(params.rotate, () => ( 0))));
4703
+ return _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, _chunkVYW7JBTMcjs.matrixAbout.call(void 0, linear, ref), _chunkVYW7JBTMcjs.translateMatrix.call(void 0, _nullishCoalesce(params.dx, () => ( 0)), _nullishCoalesce(params.dy, () => ( 0))));
4702
4704
  }
4703
4705
  function describeTransform(geometry, reference = "center") {
4704
4706
  const m = hasWarp(geometry) ? null : matrixFromCorners(geometry.box, geometry.corners);
4705
4707
  const ref = referencePoint(geometry.box, reference);
4706
4708
  const bounds = transformedBox(geometry);
4707
4709
  if (!m) {
4708
- const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4709
- const at2 = _nullishCoalesce((h && _chunkEJVDBITDcjs.applyHomography.call(void 0, h, ref)), () => ( ref));
4710
+ const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4711
+ const at2 = _nullishCoalesce((h && _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, ref)), () => ( ref));
4710
4712
  return { affine: false, scaleX: 100, scaleY: 100, rotate: 0, skewX: 0, x: at2.x, y: at2.y, bounds, corners: geometry.corners };
4711
4713
  }
4712
4714
  const [a, b, c, d] = m;
@@ -4715,7 +4717,7 @@ function describeTransform(geometry, reference = "center") {
4715
4717
  const shear = sxAbs ? (a * c + b * d) / sxAbs : 0;
4716
4718
  const sy = sxAbs ? (a * d - b * c) / sxAbs : 0;
4717
4719
  const skew = sxAbs ? Math.atan(shear / sxAbs) * 180 / Math.PI : 0;
4718
- const at = _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, ref);
4720
+ const at = _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, ref);
4719
4721
  const clean = (v) => Math.abs(v) < 1e-9 ? 0 : v;
4720
4722
  return {
4721
4723
  affine: true,
@@ -4733,35 +4735,35 @@ function applyParams(geometry, params) {
4733
4735
  const ref = params.reference && typeof params.reference === "object" ? params.reference : anchorPoint(geometry, _nullishCoalesce(params.reference, () => ( "center")));
4734
4736
  const m = matrixFromParams({ x: ref.x, y: ref.y, width: 0, height: 0 }, { ...params, reference: ref });
4735
4737
  const c = geometry.corners;
4736
- return [_chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, c[0]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, c[1]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, c[2]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, c[3])];
4738
+ return [_chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, c[0]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, c[1]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, c[2]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, c[3])];
4737
4739
  }
4738
4740
  function flipCorners(geometry, axis) {
4739
4741
  const c = anchorPoint(geometry, "center");
4740
4742
  const m = axis === "horizontal" ? [-1, 0, 0, 1, 2 * c.x, 0] : [1, 0, 0, -1, 0, 2 * c.y];
4741
4743
  const q2 = geometry.corners;
4742
- return [_chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[0]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[1]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[2]), _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, m, q2[3])];
4744
+ return [_chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[0]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[1]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[2]), _chunkVYW7JBTMcjs.applyMatrix.call(void 0, m, q2[3])];
4743
4745
  }
4744
4746
  function boxPointOf(geometry, p) {
4745
4747
  const m = matrixFromCorners(geometry.box, geometry.corners);
4746
- if (m) return _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, _chunkLI3KTY7Kcjs.invertMatrix.call(void 0, m), p);
4748
+ if (m) return _chunkVYW7JBTMcjs.applyMatrix.call(void 0, _chunkVYW7JBTMcjs.invertMatrix.call(void 0, m), p);
4747
4749
  return null;
4748
4750
  }
4749
4751
  function presetWarp(box2, preset) {
4750
- return _chunkLI3KTY7Kcjs.warpPresetMesh.call(void 0, preset, box2);
4752
+ return _chunkVYW7JBTMcjs.warpPresetMesh.call(void 0, preset, box2);
4751
4753
  }
4752
4754
  function isValidWarp(mesh) {
4753
- return _chunkLI3KTY7Kcjs.isValidWarpMesh.call(void 0, mesh);
4755
+ return _chunkVYW7JBTMcjs.isValidWarpMesh.call(void 0, mesh);
4754
4756
  }
4755
4757
  function geometryHomography(geometry) {
4756
4758
  const m = matrixFromCorners(geometry.box, geometry.corners);
4757
- return m ? _chunkEJVDBITDcjs.homographyFromAffine.call(void 0, m) : transformHomography(geometry);
4759
+ return m ? _chunkMUUXNRU4cjs.homographyFromAffine.call(void 0, m) : transformHomography(geometry);
4758
4760
  }
4759
4761
 
4760
4762
  // src/image-editor/layers/smart.ts
4761
4763
  var fail4 = (message) => {
4762
4764
  throw new LayerOperationError(message);
4763
4765
  };
4764
- var SMART_RENDER_MARGIN = _chunkWMRIG4XQcjs.MAX_EFFECT_REACH;
4766
+ var SMART_RENDER_MARGIN = _chunkLL3RAN55cjs.MAX_EFFECT_REACH;
4765
4767
  function newContentsId() {
4766
4768
  return newLayerId("so");
4767
4769
  }
@@ -4772,7 +4774,7 @@ function placementGeometry(layer) {
4772
4774
  return { box: contentsBox(layer.contents), corners: layer.placement.corners, warp: _nullishCoalesce(layer.placement.warp, () => ( null)) };
4773
4775
  }
4774
4776
  function placementAt(contents, x, y) {
4775
- return { corners: _chunkEJVDBITDcjs.boxQuad.call(void 0, { x, y, width: contents.width, height: contents.height }) };
4777
+ return { corners: _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x, y, width: contents.width, height: contents.height }) };
4776
4778
  }
4777
4779
  function isContentsDecoded(contents) {
4778
4780
  return contents.kind === "raster" ? Boolean(contents.raster) : Boolean(contents.document);
@@ -4827,7 +4829,7 @@ function placementKey(p, canvas) {
4827
4829
  function integerMove(layer) {
4828
4830
  const g = placementGeometry(layer);
4829
4831
  if (hasWarp(g)) return null;
4830
- const q2 = _chunkEJVDBITDcjs.boxQuad.call(void 0, g.box);
4832
+ const q2 = _chunkMUUXNRU4cjs.boxQuad.call(void 0, g.box);
4831
4833
  const dx = g.corners[0].x - q2[0].x;
4832
4834
  const dy = g.corners[0].y - q2[0].y;
4833
4835
  if (Math.abs(dx - Math.round(dx)) > 1e-9 || Math.abs(dy - Math.round(dy)) > 1e-9) return null;
@@ -4868,7 +4870,7 @@ function placeContents(layer, canvas, options = {}) {
4868
4870
  k = step;
4869
4871
  let r = _optionalChain([options, 'access', _84 => _84.reduced, 'optionalAccess', _85 => _85.get, 'call', _86 => _86(k)]);
4870
4872
  if (!r) {
4871
- r = _chunkWMRIG4XQcjs.reduceSurface.call(void 0, src, k);
4873
+ r = _chunkLL3RAN55cjs.reduceSurface.call(void 0, src, k);
4872
4874
  _optionalChain([options, 'access', _87 => _87.reduced, 'optionalAccess', _88 => _88.set, 'call', _89 => _89(k, r)]);
4873
4875
  }
4874
4876
  source = r;
@@ -4878,15 +4880,15 @@ function placeContents(layer, canvas, options = {}) {
4878
4880
  if (hasWarp(g)) {
4879
4881
  const f = transformMap(g);
4880
4882
  if (!f) fail4("The placement folds the contents over itself or through the horizon; keep the corners a convex quad.");
4881
- out = _chunkWMRIG4XQcjs.warpSurface.call(void 0, source, (p) => f({ x: p.x * k, y: p.y * k }), { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4883
+ out = _chunkLL3RAN55cjs.warpSurface.call(void 0, source, (p) => f({ x: p.x * k, y: p.y * k }), { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4882
4884
  } else {
4883
4885
  const h = transformHomography(g);
4884
4886
  if (!h) fail4("The placement folds the contents over itself or through the horizon; keep the corners a convex quad.");
4885
- const hk = _chunkEJVDBITDcjs.multiplyHomographies.call(void 0, [k, 0, 0, 0, k, 0, 0, 0, 1], h);
4886
- out = _chunkWMRIG4XQcjs.transformSurface.call(void 0, source, hk, { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4887
+ const hk = _chunkMUUXNRU4cjs.multiplyHomographies.call(void 0, [k, 0, 0, 0, k, 0, 0, 0, 1], h);
4888
+ out = _chunkLL3RAN55cjs.transformSurface.call(void 0, source, hk, { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4887
4889
  }
4888
4890
  } catch (e) {
4889
- if (e instanceof _chunkWMRIG4XQcjs.TransformTooLargeError) fail4(e.message);
4891
+ if (e instanceof _chunkLL3RAN55cjs.TransformTooLargeError) fail4(e.message);
4890
4892
  throw e;
4891
4893
  }
4892
4894
  }
@@ -4918,7 +4920,7 @@ function filterMaskCoverage(mask, canvas) {
4918
4920
  }
4919
4921
  const feather = _nullishCoalesce(mask.feather, () => ( 0));
4920
4922
  if (all && !(feather > 0)) return null;
4921
- if (feather > 0) v = _chunkWMRIG4XQcjs.gaussianBlur.call(void 0, v, W, H, feather, "clamp");
4923
+ if (feather > 0) v = _chunkLL3RAN55cjs.gaussianBlur.call(void 0, v, W, H, feather, "clamp");
4922
4924
  const density = _nullishCoalesce(mask.density, () => ( 1));
4923
4925
  if (density !== 1) for (let i = 0; i < v.length; i++) v[i] = 1 - density * (1 - v[i]);
4924
4926
  return v;
@@ -4940,7 +4942,7 @@ function applySmartFilters(placed, stack, canvas) {
4940
4942
  if (f.opacity >= 1) acc = out;
4941
4943
  else lerpInto(acc, out, f.opacity, null);
4942
4944
  } else {
4943
- _chunkWMRIG4XQcjs.blendTile.call(void 0, acc, out, f.blend, f.opacity, null);
4945
+ _chunkLL3RAN55cjs.blendTile.call(void 0, acc, out, f.blend, f.opacity, null);
4944
4946
  }
4945
4947
  }
4946
4948
  entry = { key, base, filtered: acc };
@@ -4983,11 +4985,11 @@ function normalizePlacement(raw, contents) {
4983
4985
  }
4984
4986
  const out = { corners: c.map((p) => ({ x: p.x, y: p.y })) };
4985
4987
  if (raw.warp) {
4986
- if (!_chunkLI3KTY7Kcjs.isValidWarpMesh.call(void 0, raw.warp)) fail4("warp must be a mesh with us and vs (knots from 0 to 1, increasing) and (3\xB7columns + 1) \xD7 (3\xB7rows + 1) finite points in contents pixels.");
4988
+ if (!_chunkVYW7JBTMcjs.isValidWarpMesh.call(void 0, raw.warp)) fail4("warp must be a mesh with us and vs (knots from 0 to 1, increasing) and (3\xB7columns + 1) \xD7 (3\xB7rows + 1) finite points in contents pixels.");
4987
4989
  out.warp = { us: [...raw.warp.us], vs: [...raw.warp.vs], points: raw.warp.points.map((p) => ({ x: p.x, y: p.y })) };
4988
4990
  }
4989
4991
  if (raw.interpolation !== void 0) {
4990
- if (!_chunkWMRIG4XQcjs.isInterpolation.call(void 0, raw.interpolation)) fail4(`Unknown interpolation "${String(raw.interpolation)}"; use nearest, bilinear or bicubic.`);
4992
+ if (!_chunkLL3RAN55cjs.isInterpolation.call(void 0, raw.interpolation)) fail4(`Unknown interpolation "${String(raw.interpolation)}"; use nearest, bilinear or bicubic.`);
4991
4993
  if (raw.interpolation !== "bicubic") out.interpolation = raw.interpolation;
4992
4994
  }
4993
4995
  const g = { box: { x: 0, y: 0, width: contents.width, height: contents.height }, corners: out.corners, warp: _nullishCoalesce(out.warp, () => ( null)) };
@@ -5004,10 +5006,10 @@ function followMask(mask, before, after) {
5004
5006
  const h0 = placementHomography(before);
5005
5007
  const h1 = placementHomography(after);
5006
5008
  if (!h0 || !h1) return mask;
5007
- const inv = _chunkEJVDBITDcjs.invertHomography.call(void 0, h0);
5009
+ const inv = _chunkMUUXNRU4cjs.invertHomography.call(void 0, h0);
5008
5010
  if (!inv) return mask;
5009
- const delta = _chunkEJVDBITDcjs.multiplyHomographies.call(void 0, inv, h1);
5010
- const surface = _chunkWMRIG4XQcjs.transformSurface.call(void 0, mask.surface, delta, { interpolation: "bilinear" });
5011
+ const delta = _chunkMUUXNRU4cjs.multiplyHomographies.call(void 0, inv, h1);
5012
+ const surface = _chunkLL3RAN55cjs.transformSurface.call(void 0, mask.surface, delta, { interpolation: "bilinear" });
5011
5013
  return { ...mask, surface };
5012
5014
  }
5013
5015
  function setSmartPlacement(layers, id, placement, canvas) {
@@ -5028,7 +5030,7 @@ function setSmartPlacement(layers, id, placement, canvas) {
5028
5030
  next.smartFilters = { ...next.smartFilters, mask: m };
5029
5031
  }
5030
5032
  next = rerender(next, canvas, "be transformed");
5031
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, masksMoved };
5033
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next, masksMoved };
5032
5034
  }
5033
5035
  function offsetSmartObject(layers, id, dx, dy, canvas) {
5034
5036
  const layer = requireSmartObject(layers, id);
@@ -5050,7 +5052,7 @@ function offsetSmartObject(layers, id, dx, dy, canvas) {
5050
5052
  } else {
5051
5053
  next = rerender(next, canvas, "move");
5052
5054
  }
5053
- return _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next);
5055
+ return _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next);
5054
5056
  }
5055
5057
  function translateLayer(layer, dx, dy) {
5056
5058
  if (!dx && !dy) return layer;
@@ -5086,7 +5088,7 @@ function translateLayer(layer, dx, dy) {
5086
5088
  case "shape": {
5087
5089
  const next = {
5088
5090
  ...layer,
5089
- components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), _chunkLI3KTY7Kcjs.translateMatrix.call(void 0, dx, dy)),
5091
+ components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), _chunkVYW7JBTMcjs.translateMatrix.call(void 0, dx, dy)),
5090
5092
  surface: _chunk7ISPWEJAcjs.translateSurface.call(void 0, layer.surface, dx, dy),
5091
5093
  mask: moveMask(layer.mask)
5092
5094
  };
@@ -5095,7 +5097,7 @@ function translateLayer(layer, dx, dy) {
5095
5097
  return next;
5096
5098
  }
5097
5099
  case "type": {
5098
- const next = { ...transformTypeLayer(layer, _chunkLI3KTY7Kcjs.translateMatrix.call(void 0, dx, dy)), surface: _chunk7ISPWEJAcjs.translateSurface.call(void 0, layer.surface, dx, dy), mask: moveMask(layer.mask) };
5100
+ const next = { ...transformTypeLayer(layer, _chunkVYW7JBTMcjs.translateMatrix.call(void 0, dx, dy)), surface: _chunk7ISPWEJAcjs.translateSurface.call(void 0, layer.surface, dx, dy), mask: moveMask(layer.mask) };
5099
5101
  if (!next.mask) delete next.mask;
5100
5102
  return next;
5101
5103
  }
@@ -5118,7 +5120,7 @@ function layerExtent(layer, surfaceOf, canvas) {
5118
5120
  } else {
5119
5121
  b = full;
5120
5122
  }
5121
- const m = _chunkWMRIG4XQcjs.effectsMargin.call(void 0, layer.effects);
5123
+ const m = _chunkLL3RAN55cjs.effectsMargin.call(void 0, layer.effects);
5122
5124
  if (b && m > 0) b = { x: b.x - Math.ceil(m), y: b.y - Math.ceil(m), width: b.width + 2 * Math.ceil(m), height: b.height + 2 * Math.ceil(m) };
5123
5125
  return b;
5124
5126
  }
@@ -5187,7 +5189,7 @@ function convertToSmartObject(layers, ids, canvas, options) {
5187
5189
  delete resolved.source;
5188
5190
  layer = resolved;
5189
5191
  }
5190
- if (_chunkWMRIG4XQcjs.flattenLayers.call(void 0, [layer]).some((x) => x.type === "pixel" && x.source === "document")) fail4(`Layer "${layer.name || layer.id}" holds the document image inside a group; convert the Background on its own.`);
5192
+ if (_chunkLL3RAN55cjs.flattenLayers.call(void 0, [layer]).some((x) => x.type === "pixel" && x.source === "document")) fail4(`Layer "${layer.name || layer.id}" holds the document image inside a group; convert the Background on its own.`);
5191
5193
  return translateLayer(layer, -b.x, -b.y);
5192
5194
  });
5193
5195
  if (nested[0].clipped) {
@@ -5214,8 +5216,8 @@ function convertToSmartObject(layers, ids, canvas, options) {
5214
5216
  smart = { ...smart, surface: renderSmartObject(smart, canvas) };
5215
5217
  const below = ordered.filter((l) => l.index < top.index).length;
5216
5218
  let out = layers;
5217
- for (const l of ordered) out = _chunkWMRIG4XQcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
5218
- return { layers: _chunkWMRIG4XQcjs.insertLayer.call(void 0, out, smart, parent, top.index - below), layer: smart };
5219
+ for (const l of ordered) out = _chunkLL3RAN55cjs.mapLayer.call(void 0, out, l.layer.id, () => null);
5220
+ return { layers: _chunkLL3RAN55cjs.insertLayer.call(void 0, out, smart, parent, top.index - below), layer: smart };
5219
5221
  }
5220
5222
  function rasterizeSmartObject(layers, id) {
5221
5223
  const layer = requireSmartObject(layers, id);
@@ -5235,7 +5237,7 @@ function rasterizeSmartObject(layers, id) {
5235
5237
  if (layer.locks) out.locks = layer.locks;
5236
5238
  if (layer.effects) out.effects = layer.effects;
5237
5239
  if (layer.fillOpacity !== void 0) out.fillOpacity = layer.fillOpacity;
5238
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => out), layer: out };
5240
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => out), layer: out };
5239
5241
  }
5240
5242
  function copySmartObject(layers, id, linked, name) {
5241
5243
  const loc = requireLayer(layers, id);
@@ -5245,19 +5247,19 @@ function copySmartObject(layers, id, linked, name) {
5245
5247
  delete copy.psd;
5246
5248
  if (!linked) copy.contents = { ...layer.contents, id: newContentsId() };
5247
5249
  if (copy.smartFilters) copy.smartFilters = { ...copy.smartFilters, filters: copy.smartFilters.filters.map((f) => ({ ...f, id: newLayerId("flt") })) };
5248
- return { layers: _chunkWMRIG4XQcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _114 => _114.parent, 'optionalAccess', _115 => _115.id]), () => ( null)), loc.index + 1), layer: copy };
5250
+ return { layers: _chunkLL3RAN55cjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _114 => _114.parent, 'optionalAccess', _115 => _115.id]), () => ( null)), loc.index + 1), layer: copy };
5249
5251
  }
5250
5252
  function instancesOf(layers, contentsId) {
5251
- return _chunkWMRIG4XQcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart" && l.contents.id === contentsId).map((l) => l.id);
5253
+ return _chunkLL3RAN55cjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart" && l.contents.id === contentsId).map((l) => l.id);
5252
5254
  }
5253
5255
  function replaceContents(layers, contentsId, contents, canvas) {
5254
5256
  const ids = instancesOf(layers, contentsId);
5255
5257
  if (!ids.length) fail4(`No smart object uses contents "${contentsId}".`);
5256
- for (const id of ids) requireUnlocked(_chunkWMRIG4XQcjs.findLayer.call(void 0, layers, id).layer, "all", "replace its contents");
5258
+ for (const id of ids) requireUnlocked(_chunkLL3RAN55cjs.findLayer.call(void 0, layers, id).layer, "all", "replace its contents");
5257
5259
  const next = { ...contents, id: contentsId };
5258
5260
  let out = layers;
5259
5261
  for (const id of ids) {
5260
- out = _chunkWMRIG4XQcjs.mapLayer.call(void 0, out, id, (l) => {
5262
+ out = _chunkLL3RAN55cjs.mapLayer.call(void 0, out, id, (l) => {
5261
5263
  const layer = l;
5262
5264
  return rerender({ ...layer, contents: next, placement: refitPlacement(layer, next) }, canvas, "take the new contents");
5263
5265
  });
@@ -5274,14 +5276,14 @@ function refitPlacement(layer, contents) {
5274
5276
  const h = transformHomography(g);
5275
5277
  if (!h) return placementAt(contents, 0, 0);
5276
5278
  const shift = [1, 0, (W0 - W1) / 2, 0, 1, (H0 - H1) / 2, 0, 0, 1];
5277
- const hn = _chunkEJVDBITDcjs.multiplyHomographies.call(void 0, shift, h);
5278
- const pts = _chunkEJVDBITDcjs.boxQuad.call(void 0, { x: 0, y: 0, width: W1, height: H1 }).map((p) => {
5279
+ const hn = _chunkMUUXNRU4cjs.multiplyHomographies.call(void 0, shift, h);
5280
+ const pts = _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x: 0, y: 0, width: W1, height: H1 }).map((p) => {
5279
5281
  const w = hn[6] * p.x + hn[7] * p.y + hn[8];
5280
5282
  return { x: (hn[0] * p.x + hn[1] * p.y + hn[2]) / w, y: (hn[3] * p.x + hn[4] * p.y + hn[5]) / w };
5281
5283
  });
5282
5284
  const out = { corners: pts };
5283
5285
  if (layer.placement.interpolation) out.interpolation = layer.placement.interpolation;
5284
- if (layer.placement.warp) out.warp = _chunkLI3KTY7Kcjs.mapWarpMeshPoints.call(void 0, layer.placement.warp, (p) => ({ x: p.x * W1 / W0, y: p.y * H1 / H0 }));
5286
+ if (layer.placement.warp) out.warp = _chunkVYW7JBTMcjs.mapWarpMeshPoints.call(void 0, layer.placement.warp, (p) => ({ x: p.x * W1 / W0, y: p.y * H1 / H0 }));
5285
5287
  return out;
5286
5288
  }
5287
5289
  function normalizeSmartFilter(raw, id = newLayerId("flt")) {
@@ -5320,7 +5322,7 @@ function addSmartFilter(layers, id, filter, canvas, index) {
5320
5322
  const at = index === void 0 ? filters.length : Math.max(0, Math.min(filters.length, Math.floor(index)));
5321
5323
  filters.splice(at, 0, filter);
5322
5324
  const next = withStack(layer, { ...stack, filters }, canvas);
5323
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter };
5325
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter };
5324
5326
  }
5325
5327
  function updateSmartFilter(layers, id, filterId, changes, canvas) {
5326
5328
  const layer = editableSmart(layers, id);
@@ -5342,7 +5344,7 @@ function updateSmartFilter(layers, id, filterId, changes, canvas) {
5342
5344
  const filters = [...layer.smartFilters.filters];
5343
5345
  filters[i] = merged2;
5344
5346
  const next = withStack(layer, { ...layer.smartFilters, filters }, canvas);
5345
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter: merged2 };
5347
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter: merged2 };
5346
5348
  }
5347
5349
  function removeSmartFilter(layers, id, filterId, canvas) {
5348
5350
  const layer = editableSmart(layers, id);
@@ -5350,7 +5352,7 @@ function removeSmartFilter(layers, id, filterId, canvas) {
5350
5352
  const stack = layer.smartFilters;
5351
5353
  const filters = stack.filters.filter((f) => f.id !== filterId);
5352
5354
  const next = withStack(layer, filters.length ? { ...stack, filters } : stack.enabled ? void 0 : { enabled: false, filters }, canvas);
5353
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5355
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5354
5356
  }
5355
5357
  function moveSmartFilter(layers, id, filterId, index, canvas) {
5356
5358
  const layer = editableSmart(layers, id);
@@ -5361,12 +5363,12 @@ function moveSmartFilter(layers, id, filterId, index, canvas) {
5361
5363
  const [f] = filters.splice(i, 1);
5362
5364
  filters.splice(index, 0, f);
5363
5365
  const next = withStack(layer, { ...layer.smartFilters, filters }, canvas);
5364
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5366
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5365
5367
  }
5366
5368
  function setSmartFiltersEnabled(layers, id, enabled, canvas) {
5367
5369
  const layer = editableSmart(layers, id);
5368
5370
  const next = withStack(layer, { ...stackOf(layer), enabled: Boolean(enabled) }, canvas);
5369
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5371
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5370
5372
  }
5371
5373
  function setSmartFilterMask(layers, id, mask, canvas) {
5372
5374
  const layer = editableSmart(layers, id);
@@ -5375,7 +5377,7 @@ function setSmartFilterMask(layers, id, mask, canvas) {
5375
5377
  if (mask) stack.mask = mask;
5376
5378
  else delete stack.mask;
5377
5379
  const next = withStack(layer, stack, canvas);
5378
- return { layers: _chunkWMRIG4XQcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5380
+ return { layers: _chunkLL3RAN55cjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5379
5381
  }
5380
5382
  function withFilterMaskSurface(layer, surface, canvas) {
5381
5383
  const stack = stackOf(layer);
@@ -5389,7 +5391,7 @@ function placementBounds(layer) {
5389
5391
  // src/image-editor/layers/serialize.ts
5390
5392
  var LAYERED_SCHEMA_VERSION = 3;
5391
5393
  function serializePatterns(patterns) {
5392
- return patterns.map((p) => ({ id: p.id, name: p.name, png: _chunkEJVDBITDcjs.pngDataUrl.call(void 0, p.width, p.height, p.data) }));
5394
+ return patterns.map((p) => ({ id: p.id, name: p.name, png: _chunkDCLJNVZScjs.pngDataUrl.call(void 0, p.width, p.height, p.data) }));
5393
5395
  }
5394
5396
  function deserializePatterns(raw, problems = []) {
5395
5397
  if (!Array.isArray(raw)) return [];
@@ -5412,7 +5414,7 @@ function encodeSurface(surface) {
5412
5414
  let out = null;
5413
5415
  if (b) {
5414
5416
  const data = _chunk7ISPWEJAcjs.readRegion.call(void 0, surface, b);
5415
- out = { url: _chunkEJVDBITDcjs.pngDataUrl.call(void 0, b.width, b.height, data, surface.channels), x: b.x, y: b.y };
5417
+ out = { url: _chunkDCLJNVZScjs.pngDataUrl.call(void 0, b.width, b.height, data, surface.channels), x: b.x, y: b.y };
5416
5418
  }
5417
5419
  encodedCache.set(surface, out);
5418
5420
  return out;
@@ -5429,7 +5431,7 @@ function encodeDeepSurface(surface) {
5429
5431
  const view = new DataView(bytes.buffer);
5430
5432
  if (samples instanceof Uint16Array) for (let i = 0; i < samples.length; i++) view.setUint16(2 * i, samples[i], true);
5431
5433
  else for (let i = 0; i < samples.length; i++) view.setFloat32(4 * i, samples[i], true);
5432
- out = { depth, x: b.x, y: b.y, width: b.width, height: b.height, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, _chunk643B2HKCcjs.deflate.call(void 0, bytes)) };
5434
+ out = { depth, x: b.x, y: b.y, width: b.width, height: b.height, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, _chunk643B2HKCcjs.deflate.call(void 0, bytes)) };
5433
5435
  }
5434
5436
  deepCache.set(surface, out);
5435
5437
  return out;
@@ -5441,7 +5443,7 @@ function decodeDeepSurface(surface, raw, problems, label) {
5441
5443
  if (d.depth !== 16 && d.depth !== 32 || !(d.width > 0 && d.height > 0) || !Number.isInteger(d.x) || !Number.isInteger(d.y) || typeof d.data !== "string") throw new Error("malformed");
5442
5444
  const n = d.width * d.height * surface.channels;
5443
5445
  const size = d.depth === 16 ? 2 : 4;
5444
- const bytes = _chunk643B2HKCcjs.inflate.call(void 0, _chunkEJVDBITDcjs.base64ToBytes.call(void 0, d.data), { maxOutput: n * size });
5446
+ const bytes = _chunk643B2HKCcjs.inflate.call(void 0, _chunkDCLJNVZScjs.base64ToBytes.call(void 0, d.data), { maxOutput: n * size });
5445
5447
  if (bytes.length !== n * size) throw new Error("wrong length");
5446
5448
  const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
5447
5449
  const samples = d.depth === 16 ? new Uint16Array(n) : new Float32Array(n);
@@ -5470,7 +5472,7 @@ function baseFields(layer, ctx) {
5470
5472
  function serializeEffects(effects) {
5471
5473
  const out = { enabled: effects.enabled, items: JSON.parse(JSON.stringify(effects.items)) };
5472
5474
  if (effects.scale !== void 0 && effects.scale !== 1) out.scale = effects.scale;
5473
- if (effects.psd) out.psd = { key: effects.psd.key, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, effects.psd.data) };
5475
+ if (effects.psd) out.psd = { key: effects.psd.key, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, effects.psd.data) };
5474
5476
  return out;
5475
5477
  }
5476
5478
  function deserializeEffects(raw) {
@@ -5480,12 +5482,12 @@ function deserializeEffects(raw) {
5480
5482
  const p = r.psd;
5481
5483
  if (p && typeof p.key === "string" && typeof p.data === "string") {
5482
5484
  try {
5483
- psd = { key: p.key, data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, p.data) };
5485
+ psd = { key: p.key, data: _chunkDCLJNVZScjs.base64ToBytes.call(void 0, p.data) };
5484
5486
  } catch (e7) {
5485
5487
  psd = void 0;
5486
5488
  }
5487
5489
  }
5488
- return _chunkWMRIG4XQcjs.normalizeLayerEffects.call(void 0, { ...r, psd });
5490
+ return _chunkLL3RAN55cjs.normalizeLayerEffects.call(void 0, { ...r, psd });
5489
5491
  }
5490
5492
  function serializeMask(mask, hint, ctx) {
5491
5493
  const out = { defaultValue: mask.defaultValue };
@@ -5568,8 +5570,8 @@ function serializeType(layer, base, ctx) {
5568
5570
  if (layer.annotation) out.annotation = JSON.parse(JSON.stringify(layer.annotation));
5569
5571
  if (_optionalChain([layer, 'access', _123 => _123.psd, 'optionalAccess', _124 => _124.tySh]) || _optionalChain([layer, 'access', _125 => _125.psd, 'optionalAccess', _126 => _126.blocks, 'optionalAccess', _127 => _127.length])) {
5570
5572
  out.psd = {};
5571
- if (layer.psd.tySh) out.psd.tySh = _chunkEJVDBITDcjs.bytesToBase64.call(void 0, layer.psd.tySh);
5572
- if (_optionalChain([layer, 'access', _128 => _128.psd, 'access', _129 => _129.blocks, 'optionalAccess', _130 => _130.length])) out.psd.blocks = layer.psd.blocks.map((b) => ({ key: b.key, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, b.data) }));
5573
+ if (layer.psd.tySh) out.psd.tySh = _chunkDCLJNVZScjs.bytesToBase64.call(void 0, layer.psd.tySh);
5574
+ if (_optionalChain([layer, 'access', _128 => _128.psd, 'access', _129 => _129.blocks, 'optionalAccess', _130 => _130.length])) out.psd.blocks = layer.psd.blocks.map((b) => ({ key: b.key, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, b.data) }));
5573
5575
  if (layer.psd.signature) out.psd.signature = layer.psd.signature;
5574
5576
  }
5575
5577
  return out;
@@ -5580,7 +5582,7 @@ function readType(r, base, ctx) {
5580
5582
  const text3 = normalizeText(_nullishCoalesce(r.text, () => ( "")));
5581
5583
  const runs = (Array.isArray(r.runs) ? r.runs : []).map((run, i) => ({
5582
5584
  length: Math.max(0, Math.floor(num2(_optionalChain([run, 'optionalAccess', _131 => _131.length]), 0, 1e9, 0))),
5583
- style: patchTextStyle(_chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE, _optionalChain([run, 'optionalAccess', _132 => _132.style]) && typeof run.style === "object" ? run.style : {}, `runs[${i}].style`)
5585
+ style: patchTextStyle(_chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE, _optionalChain([run, 'optionalAccess', _132 => _132.style]) && typeof run.style === "object" ? run.style : {}, `runs[${i}].style`)
5584
5586
  }));
5585
5587
  const paragraphs = (Array.isArray(r.paragraphs) ? r.paragraphs : []).map((p, i) => ({
5586
5588
  length: Math.max(0, Math.floor(num2(_optionalChain([p, 'optionalAccess', _133 => _133.length]), 0, 1e9, 0))),
@@ -5593,13 +5595,13 @@ function readType(r, base, ctx) {
5593
5595
  ...base,
5594
5596
  type: "type",
5595
5597
  text: text3,
5596
- runs: _chunkLI3KTY7Kcjs.fitRuns.call(void 0, runs, text3.length, _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE),
5597
- paragraphs: _chunkLI3KTY7Kcjs.fitParagraphRuns.call(void 0, paragraphs.length ? paragraphs : [{ length: text3.length, style: {} }], text3),
5598
+ runs: _chunkVYW7JBTMcjs.fitRuns.call(void 0, runs, text3.length, _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE),
5599
+ paragraphs: _chunkVYW7JBTMcjs.fitParagraphRuns.call(void 0, paragraphs.length ? paragraphs : [{ length: text3.length, style: {} }], text3),
5598
5600
  frame,
5599
5601
  surface: _chunk7ISPWEJAcjs.emptySurface.call(void 0, 4),
5600
5602
  offset: { x: 0, y: 0 }
5601
5603
  };
5602
- if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([runs, 'access', _137 => _137[0], 'optionalAccess', _138 => _138.style]), () => ( _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE)) }];
5604
+ if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([runs, 'access', _137 => _137[0], 'optionalAccess', _138 => _138.style]), () => ( _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE)) }];
5603
5605
  if (m) layer.transform = m;
5604
5606
  if (r.antiAlias === false) layer.antiAlias = false;
5605
5607
  if (typeof r.fillOpacity === "number" && r.fillOpacity !== 1) layer.fillOpacity = num2(r.fillOpacity, 0, 1, 1);
@@ -5607,8 +5609,8 @@ function readType(r, base, ctx) {
5607
5609
  if (r.annotation && typeof r.annotation === "object" && r.annotation.type === "text") layer.annotation = JSON.parse(JSON.stringify({ ...r.annotation, id: _nullishCoalesce(r.annotation.id, () => ( base.id)) }));
5608
5610
  if (r.psd && typeof r.psd === "object") {
5609
5611
  const psd = {};
5610
- if (typeof r.psd.tySh === "string") psd.tySh = _chunkEJVDBITDcjs.base64ToBytes.call(void 0, r.psd.tySh);
5611
- if (Array.isArray(r.psd.blocks)) psd.blocks = r.psd.blocks.filter((b) => b && typeof b.key === "string" && typeof b.data === "string").map((b) => ({ key: b.key, data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, b.data) }));
5612
+ if (typeof r.psd.tySh === "string") psd.tySh = _chunkDCLJNVZScjs.base64ToBytes.call(void 0, r.psd.tySh);
5613
+ if (Array.isArray(r.psd.blocks)) psd.blocks = r.psd.blocks.filter((b) => b && typeof b.key === "string" && typeof b.data === "string").map((b) => ({ key: b.key, data: _chunkDCLJNVZScjs.base64ToBytes.call(void 0, b.data) }));
5612
5614
  if (typeof r.psd.signature === "string") psd.signature = r.psd.signature;
5613
5615
  if (psd.tySh || _optionalChain([psd, 'access', _139 => _139.blocks, 'optionalAccess', _140 => _140.length])) layer.psd = psd;
5614
5616
  }
@@ -5636,7 +5638,7 @@ function serializeShape(layer, base) {
5636
5638
  if (layer.inverted) out.inverted = true;
5637
5639
  if (layer.fillOpacity !== void 0 && layer.fillOpacity !== 1) out.fillOpacity = layer.fillOpacity;
5638
5640
  if (layer.annotation) out.annotation = JSON.parse(JSON.stringify(layer.annotation));
5639
- if (_optionalChain([layer, 'access', _145 => _145.psd, 'optionalAccess', _146 => _146.blocks, 'optionalAccess', _147 => _147.length])) out.psd = { blocks: layer.psd.blocks.map((b) => ({ key: b.key, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, b.data) })), ...layer.psd.signature ? { signature: layer.psd.signature } : {} };
5641
+ if (_optionalChain([layer, 'access', _145 => _145.psd, 'optionalAccess', _146 => _146.blocks, 'optionalAccess', _147 => _147.length])) out.psd = { blocks: layer.psd.blocks.map((b) => ({ key: b.key, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, b.data) })), ...layer.psd.signature ? { signature: layer.psd.signature } : {} };
5640
5642
  return out;
5641
5643
  }
5642
5644
  function readShape(r, base, ctx) {
@@ -5668,7 +5670,7 @@ function readShape(r, base, ctx) {
5668
5670
  if (typeof r.fillOpacity === "number" && r.fillOpacity !== 1) out.fillOpacity = num2(r.fillOpacity, 0, 1, 1);
5669
5671
  if (a && shapeFromAnnotation(a)) out.annotation = a;
5670
5672
  if (r.psd && Array.isArray(r.psd.blocks)) {
5671
- const blocks = r.psd.blocks.filter((b) => b && typeof b.key === "string" && typeof b.data === "string").map((b) => ({ key: b.key, data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, b.data) }));
5673
+ const blocks = r.psd.blocks.filter((b) => b && typeof b.key === "string" && typeof b.data === "string").map((b) => ({ key: b.key, data: _chunkDCLJNVZScjs.base64ToBytes.call(void 0, b.data) }));
5672
5674
  if (blocks.length) out.psd = { blocks };
5673
5675
  if (out.psd && typeof r.psd.signature === "string") out.psd.signature = r.psd.signature;
5674
5676
  }
@@ -5681,7 +5683,7 @@ function readShape(r, base, ctx) {
5681
5683
  function serializeSmartFilters(stack, layerId, ctx) {
5682
5684
  const out = {
5683
5685
  enabled: stack.enabled,
5684
- filters: stack.filters.map((f) => f.kind === "psd" ? { ...f, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, f.data) } : JSON.parse(JSON.stringify(f)))
5686
+ filters: stack.filters.map((f) => f.kind === "psd" ? { ...f, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, f.data) } : JSON.parse(JSON.stringify(f)))
5685
5687
  };
5686
5688
  if (stack.mask) out.mask = serializeMask(stack.mask, `${layerId}-filter-mask`, ctx);
5687
5689
  return out;
@@ -5707,7 +5709,7 @@ function serializeSmartObject(layer, base, ctx) {
5707
5709
  }
5708
5710
  if (layer.fillOpacity !== void 0 && layer.fillOpacity !== 1) out.fillOpacity = layer.fillOpacity;
5709
5711
  if (layer.psd) {
5710
- out.psd = { key: layer.psd.key, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, layer.psd.data) };
5712
+ out.psd = { key: layer.psd.key, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, layer.psd.data) };
5711
5713
  if (layer.psd.placed) out.psd.placed = layer.psd.placed;
5712
5714
  }
5713
5715
  return out;
@@ -5719,7 +5721,7 @@ function serializeContents(c, ctx) {
5719
5721
  if (enc) {
5720
5722
  if (enc.x !== 0 || enc.y !== 0) {
5721
5723
  const data = _chunk7ISPWEJAcjs.readRegion.call(void 0, c.raster, { x: 0, y: 0, width: c.width, height: c.height });
5722
- out.asset = ctx.addAsset(_chunkEJVDBITDcjs.pngDataUrl.call(void 0, c.width, c.height, data, 4), `contents-${c.id}`);
5724
+ out.asset = ctx.addAsset(_chunkDCLJNVZScjs.pngDataUrl.call(void 0, c.width, c.height, data, 4), `contents-${c.id}`);
5723
5725
  } else out.asset = ctx.addAsset(enc.url, `contents-${c.id}`);
5724
5726
  }
5725
5727
  }
@@ -5728,7 +5730,7 @@ function serializeContents(c, ctx) {
5728
5730
  if (c.document.globalLight) out.globalLight = { ...c.document.globalLight };
5729
5731
  if (_optionalChain([c, 'access', _152 => _152.document, 'access', _153 => _153.patterns, 'optionalAccess', _154 => _154.length])) out.patterns = serializePatterns(c.document.patterns);
5730
5732
  }
5731
- if (c.file) out.file = { type: c.file.type, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, c.file.bytes) };
5733
+ if (c.file) out.file = { type: c.file.type, data: _chunkDCLJNVZScjs.bytesToBase64.call(void 0, c.file.bytes) };
5732
5734
  if (c.linked) out.linked = { path: c.linked.path };
5733
5735
  return out;
5734
5736
  }
@@ -5764,7 +5766,7 @@ async function serializeLayersExternal(layers, store) {
5764
5766
  for (const [id, url] of Object.entries(inline.assets)) {
5765
5767
  let ref = refs.get(url);
5766
5768
  if (!ref) {
5767
- const parsed = _chunkEJVDBITDcjs.parseDataUrl.call(void 0, url);
5769
+ const parsed = _chunkDCLJNVZScjs.parseDataUrl.call(void 0, url);
5768
5770
  const png = decodePngHeader(parsed.bytes);
5769
5771
  ref = await store.put(new Blob([parsed.bytes], { type: "image/png" }), { id, width: png.width, height: png.height });
5770
5772
  if (typeof ref !== "string" || !ref) throw new Error(`The asset store returned no reference for "${id}".`);
@@ -5792,7 +5794,7 @@ async function resolveExternalAssets(assets, store, problems) {
5792
5794
  try {
5793
5795
  const blob = await store.get(ref);
5794
5796
  const bytes = new Uint8Array(await blob.arrayBuffer());
5795
- out[id] = `data:image/png;base64,${_chunkEJVDBITDcjs.bytesToBase64.call(void 0, bytes)}`;
5797
+ out[id] = `data:image/png;base64,${_chunkDCLJNVZScjs.bytesToBase64.call(void 0, bytes)}`;
5796
5798
  } catch (err) {
5797
5799
  problems.push(`Asset "${id}" (${ref}) could not be fetched: ${err.message}`);
5798
5800
  }
@@ -5800,9 +5802,9 @@ async function resolveExternalAssets(assets, store, problems) {
5800
5802
  return out;
5801
5803
  }
5802
5804
  function decodePngDataUrl(url, channels) {
5803
- const parsed = _chunkEJVDBITDcjs.parseDataUrl.call(void 0, url);
5805
+ const parsed = _chunkDCLJNVZScjs.parseDataUrl.call(void 0, url);
5804
5806
  if (!parsed) throw new Error("Asset is not a data URL.");
5805
- const png = _chunkEJVDBITDcjs.decodePng.call(void 0, parsed.bytes, { keepGray: channels === 1 });
5807
+ const png = _chunkDCLJNVZScjs.decodePng.call(void 0, parsed.bytes, { keepGray: channels === 1 });
5806
5808
  if (png.channels === channels) return png;
5807
5809
  if (channels === 1) {
5808
5810
  const out2 = new Uint8ClampedArray(png.width * png.height);
@@ -5977,7 +5979,7 @@ function readContents(id, ctx) {
5977
5979
  const c = { id, name: typeof raw.name === "string" ? raw.name : "Contents", width, height, kind: raw.kind === "document" ? "document" : "raster" };
5978
5980
  if (raw.file && typeof raw.file.type === "string" && typeof raw.file.data === "string") {
5979
5981
  try {
5980
- c.file = { type: raw.file.type, bytes: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, raw.file.data) };
5982
+ c.file = { type: raw.file.type, bytes: _chunkDCLJNVZScjs.base64ToBytes.call(void 0, raw.file.data) };
5981
5983
  } catch (e9) {
5982
5984
  ctx.problems.push(`Smart object contents "${c.name}": the embedded file could not be read`);
5983
5985
  }
@@ -6012,7 +6014,7 @@ function readSmartFilters(raw, ctx, what) {
6012
6014
  const opacity = num2(f.opacity, 0, 1, 1);
6013
6015
  if (f.kind === "psd") {
6014
6016
  try {
6015
- filters.push({ id: typeof f.id === "string" ? f.id : newLayerId("flt"), kind: "psd", enabled: f.enabled !== false, name: typeof f.name === "string" ? f.name : "Filter", data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, String(_nullishCoalesce(f.data, () => ( "")))), blend, opacity });
6017
+ filters.push({ id: typeof f.id === "string" ? f.id : newLayerId("flt"), kind: "psd", enabled: f.enabled !== false, name: typeof f.name === "string" ? f.name : "Filter", data: _chunkDCLJNVZScjs.base64ToBytes.call(void 0, String(_nullishCoalesce(f.data, () => ( "")))), blend, opacity });
6016
6018
  } catch (e10) {
6017
6019
  ctx.problems.push(`${what}: a Photoshop smart filter could not be read`);
6018
6020
  }
@@ -6037,8 +6039,8 @@ function readSmartObject(r, base, ctx) {
6037
6039
  let placement;
6038
6040
  try {
6039
6041
  const raw = { corners: p.corners };
6040
- if (p.warp && _chunkLI3KTY7Kcjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6041
- if (_chunkWMRIG4XQcjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6042
+ if (p.warp && _chunkVYW7JBTMcjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6043
+ if (_chunkLL3RAN55cjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6042
6044
  placement = normalizePlacement(raw, contents);
6043
6045
  } catch (e) {
6044
6046
  ctx.problems.push(`${what}: its placement is invalid (${e instanceof Error ? e.message : String(e)}); it was placed at the top left`);
@@ -6050,7 +6052,7 @@ function readSmartObject(r, base, ctx) {
6050
6052
  if (typeof r.fillOpacity === "number" && r.fillOpacity !== 1) layer.fillOpacity = num2(r.fillOpacity, 0, 1, 1);
6051
6053
  if (r.psd && typeof r.psd.key === "string" && typeof r.psd.data === "string") {
6052
6054
  try {
6053
- layer.psd = { key: r.psd.key, data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, r.psd.data) };
6055
+ layer.psd = { key: r.psd.key, data: _chunkDCLJNVZScjs.base64ToBytes.call(void 0, r.psd.data) };
6054
6056
  if (typeof r.psd.placed === "string") layer.psd.placed = r.psd.placed;
6055
6057
  } catch (e11) {
6056
6058
  }
@@ -7020,7 +7022,7 @@ function vectorBlockForComponents(components, inverted, width, height, flags = 0
7020
7022
  const fr = (p) => ({ x: p.x / w, y: p.y / h });
7021
7023
  const subpaths = [];
7022
7024
  components.forEach((c, ci) => {
7023
- _chunkLI3KTY7Kcjs.expandVectorCorners.call(void 0, c.subpaths).forEach((sp, si) => {
7025
+ _chunkVYW7JBTMcjs.expandVectorCorners.call(void 0, c.subpaths).forEach((sp, si) => {
7024
7026
  if (!sp.anchors.length) return;
7025
7027
  subpaths.push({
7026
7028
  closed: sp.closed,
@@ -7742,7 +7744,7 @@ function merged(levels) {
7742
7744
  function charStyle(d, fonts, notes) {
7743
7745
  const n = (k) => eNum(eGet(d, k));
7744
7746
  const flag = (k) => eBool(eGet(d, k));
7745
- const s = { ..._chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE };
7747
+ const s = { ..._chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE };
7746
7748
  const fi = n("Font");
7747
7749
  const ps = fi !== void 0 ? fonts[fi] : void 0;
7748
7750
  if (ps) {
@@ -7825,7 +7827,7 @@ function typeFromTySh(data, notes) {
7825
7827
  }
7826
7828
  const edText = _nullishCoalesce(eStr(ePath(_nullishCoalesce(engine, () => ( void 0)), ["EngineDict", "Editor", "Text"])), () => ( ""));
7827
7829
  const text3 = (_nullishCoalesce(txt, () => ( edText.replace(/\r$/, "")))).replace(/\r\n?/g, "\n");
7828
- let runs = [{ length: text3.length, style: { ..._chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE } }];
7830
+ let runs = [{ length: text3.length, style: { ..._chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE } }];
7829
7831
  let paragraphs = [{ length: text3.length, style: {} }];
7830
7832
  let frame = { kind: "point" };
7831
7833
  let transform = t.transform;
@@ -7881,14 +7883,14 @@ function typeFromTySh(data, notes) {
7881
7883
  const b = eArray(ePath(shape, ["Cookie", "Photoshop", "BoxBounds"])).map((v) => _nullishCoalesce(eNum(v), () => ( 0)));
7882
7884
  if (b.length === 4 && b[2] > b[0] && b[3] > b[1]) {
7883
7885
  frame = { kind: "box", width: b[2] - b[0], height: b[3] - b[1] };
7884
- transform = _chunkLI3KTY7Kcjs.multiplyMatrices.call(void 0, [1, 0, 0, 1, b[0], b[1]], t.transform);
7886
+ transform = _chunkVYW7JBTMcjs.multiplyMatrices.call(void 0, [1, 0, 0, 1, b[0], b[1]], t.transform);
7885
7887
  }
7886
7888
  }
7887
7889
  }
7888
7890
  return {
7889
7891
  text: text3,
7890
- runs: _chunkLI3KTY7Kcjs.fitRuns.call(void 0, runs, text3.length, _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE),
7891
- paragraphs: _chunkLI3KTY7Kcjs.fitParagraphRuns.call(void 0, paragraphs, text3),
7892
+ runs: _chunkVYW7JBTMcjs.fitRuns.call(void 0, runs, text3.length, _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE),
7893
+ paragraphs: _chunkVYW7JBTMcjs.fitParagraphRuns.call(void 0, paragraphs, text3),
7892
7894
  frame,
7893
7895
  transform,
7894
7896
  antiAlias,
@@ -7962,7 +7964,7 @@ function buildEngineData(layer, template) {
7962
7964
  fonts.push(ps);
7963
7965
  return fonts.length - 1;
7964
7966
  };
7965
- const runs = _chunkLI3KTY7Kcjs.fitRuns.call(void 0, layer.runs, layer.text.length, _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE);
7967
+ const runs = _chunkVYW7JBTMcjs.fitRuns.call(void 0, layer.runs, layer.text.length, _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE);
7966
7968
  const sruns = [];
7967
7969
  const slens = [];
7968
7970
  runs.forEach((r, i) => {
@@ -7970,10 +7972,10 @@ function buildEngineData(layer, template) {
7970
7972
  slens.push(E.int(r.length + (i === runs.length - 1 ? 1 : 0)));
7971
7973
  });
7972
7974
  if (!runs.length) {
7973
- sruns.push(E.dict([["StyleSheet", E.dict([["StyleSheetData", styleSheetData(_chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE, fontIndex(postScriptFor(_chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE)))]])]]));
7975
+ sruns.push(E.dict([["StyleSheet", E.dict([["StyleSheetData", styleSheetData(_chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE, fontIndex(postScriptFor(_chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE)))]])]]));
7974
7976
  slens.push(E.int(1));
7975
7977
  }
7976
- const paras = _chunkLI3KTY7Kcjs.fitParagraphRuns.call(void 0, layer.paragraphs, layer.text);
7978
+ const paras = _chunkVYW7JBTMcjs.fitParagraphRuns.call(void 0, layer.paragraphs, layer.text);
7977
7979
  const pruns = [];
7978
7980
  const plens = [];
7979
7981
  paras.forEach((p, i) => {
@@ -8029,7 +8031,7 @@ function buildEngineData(layer, template) {
8029
8031
  eSet(e, key, rd);
8030
8032
  }
8031
8033
  eSet(rd, "FontSet", fontSet);
8032
- if (!eGet(rd, "StyleSheetSet")) eSet(rd, "StyleSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["StyleSheetData", styleSheetData(_nullishCoalesce(_optionalChain([runs, 'access', _203 => _203[0], 'optionalAccess', _204 => _204.style]), () => ( _chunkLI3KTY7Kcjs.DEFAULT_TEXT_STYLE)), 0)]])]));
8034
+ if (!eGet(rd, "StyleSheetSet")) eSet(rd, "StyleSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["StyleSheetData", styleSheetData(_nullishCoalesce(_optionalChain([runs, 'access', _203 => _203[0], 'optionalAccess', _204 => _204.style]), () => ( _chunkVYW7JBTMcjs.DEFAULT_TEXT_STYLE)), 0)]])]));
8033
8035
  if (!eGet(rd, "ParagraphSheetSet")) eSet(rd, "ParagraphSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["DefaultStyleSheet", E.int(0)], ["Properties", paragraphProperties({})]])]));
8034
8036
  if (!eGet(rd, "TheNormalStyleSheet")) eSet(rd, "TheNormalStyleSheet", E.int(0));
8035
8037
  if (!eGet(rd, "TheNormalParagraphSheet")) eSet(rd, "TheNormalParagraphSheet", E.int(0));
@@ -8040,13 +8042,13 @@ function inkBounds2(layer) {
8040
8042
  if (layer.frame.kind === "box") return [0, 0, layer.frame.width, layer.frame.height];
8041
8043
  const b = _chunk7ISPWEJAcjs.contentBounds.call(void 0, layer.surface);
8042
8044
  if (!b) return [0, 0, 0, 0];
8043
- const inv = _chunkLI3KTY7Kcjs.invertMatrix.call(void 0, textMatrix(layer));
8045
+ const inv = _chunkVYW7JBTMcjs.invertMatrix.call(void 0, textMatrix(layer));
8044
8046
  const pts = [
8045
8047
  { x: b.x, y: b.y },
8046
8048
  { x: b.x + b.width, y: b.y },
8047
8049
  { x: b.x + b.width, y: b.y + b.height },
8048
8050
  { x: b.x, y: b.y + b.height }
8049
- ].map((p) => _chunkLI3KTY7Kcjs.applyMatrix.call(void 0, inv, p));
8051
+ ].map((p) => _chunkVYW7JBTMcjs.applyMatrix.call(void 0, inv, p));
8050
8052
  return [Math.min(...pts.map((p) => p.x)), Math.min(...pts.map((p) => p.y)), Math.max(...pts.map((p) => p.x)), Math.max(...pts.map((p) => p.y))];
8051
8053
  }
8052
8054
  function tyShForLayer(layer) {
@@ -8513,7 +8515,7 @@ function filterMaskItem(placed, mask, area) {
8513
8515
  var warpStyleOf = (name) => {
8514
8516
  if (!name.startsWith("warp")) return null;
8515
8517
  const s = _optionalChain([name, 'access', _218 => _218[4], 'optionalAccess', _219 => _219.toLowerCase, 'call', _220 => _220()]) + name.slice(5);
8516
- return _chunkLI3KTY7Kcjs.WARP_STYLES.includes(s) ? s : null;
8518
+ return _chunkVYW7JBTMcjs.WARP_STYLES.includes(s) ? s : null;
8517
8519
  };
8518
8520
  function warpFromDescriptor(w, contents) {
8519
8521
  const full = { x: 0, y: 0, width: contents.width, height: contents.height };
@@ -8543,7 +8545,7 @@ function warpFromDescriptor(w, contents) {
8543
8545
  } else {
8544
8546
  const style = warpStyleOf(styleName);
8545
8547
  if (!style) return void 0;
8546
- mesh = _chunkLI3KTY7Kcjs.warpPresetMesh.call(void 0,
8548
+ mesh = _chunkVYW7JBTMcjs.warpPresetMesh.call(void 0,
8547
8549
  {
8548
8550
  style,
8549
8551
  bend: _nullishCoalesce(descNumber(w, "warpValue"), () => ( 0)),
@@ -8558,7 +8560,7 @@ function warpFromDescriptor(w, contents) {
8558
8560
  const same = Math.abs(bounds.x) < 1e-6 && Math.abs(bounds.y) < 1e-6 && Math.abs(bounds.width - contents.width) < 1e-6 && Math.abs(bounds.height - contents.height) < 1e-6;
8559
8561
  if (!same) {
8560
8562
  const m = mesh;
8561
- mesh = _chunkLI3KTY7Kcjs.fitWarpMesh.call(void 0, (s, t) => _chunkLI3KTY7Kcjs.evalWarpMesh.call(void 0, m, (s * contents.width - bounds.x) / bounds.width, (t * contents.height - bounds.y) / bounds.height), [0, 1], [0, 1]);
8563
+ mesh = _chunkVYW7JBTMcjs.fitWarpMesh.call(void 0, (s, t) => _chunkVYW7JBTMcjs.evalWarpMesh.call(void 0, m, (s * contents.width - bounds.x) / bounds.width, (t * contents.height - bounds.y) / bounds.height), [0, 1], [0, 1]);
8562
8564
  }
8563
8565
  return { mesh, frame };
8564
8566
  }
@@ -8607,14 +8609,14 @@ var toQuad = (p) => [
8607
8609
  function cornersFromQuad(quad, frame, contents) {
8608
8610
  if (quad.length !== 8 || !quad.every(Number.isFinite)) return null;
8609
8611
  const q2 = toQuad(quad);
8610
- const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, frame, q2);
8612
+ const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, frame, q2);
8611
8613
  if (!h) return null;
8612
- const out = _chunkEJVDBITDcjs.boxQuad.call(void 0, { x: 0, y: 0, width: contents.width, height: contents.height }).map((p) => _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p));
8614
+ const out = _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x: 0, y: 0, width: contents.width, height: contents.height }).map((p) => _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p));
8613
8615
  return out.every(Boolean) ? out : null;
8614
8616
  }
8615
8617
  function quadFromCorners(corners, frame, contents) {
8616
- const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, { x: 0, y: 0, width: contents.width, height: contents.height }, corners);
8617
- const pts = _chunkEJVDBITDcjs.boxQuad.call(void 0, frame).map((p) => _nullishCoalesce((h ? _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p) : p), () => ( p)));
8618
+ const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, { x: 0, y: 0, width: contents.width, height: contents.height }, corners);
8619
+ const pts = _chunkMUUXNRU4cjs.boxQuad.call(void 0, frame).map((p) => _nullishCoalesce((h ? _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p) : p), () => ( p)));
8618
8620
  return pts.flatMap((p) => [p.x, p.y]);
8619
8621
  }
8620
8622
  var PLACED_KEYS = ["SoLd", "SoLE", "PlLd"];
@@ -9871,7 +9873,7 @@ function recordEffects(ctx, rec, name, notes, group) {
9871
9873
  }
9872
9874
  for (const e of parsed.effects.items) {
9873
9875
  for (const id of patternIds(e)) {
9874
- if (ctx.patterns.has(id) || _chunkWMRIG4XQcjs.builtinPattern.call(void 0, id)) continue;
9876
+ if (ctx.patterns.has(id) || _chunkLL3RAN55cjs.builtinPattern.call(void 0, id)) continue;
9875
9877
  ctx.warn.add("A pattern effect uses a pattern the file does not contain, and paints nothing", name);
9876
9878
  notes.push(`pattern "${id}" is not in the file`);
9877
9879
  }
@@ -10081,7 +10083,7 @@ function contentsFor(ctx, placed, name, notes) {
10081
10083
  document: { layers: nested.layers, globalLight: nested.globalLight, patterns: nested.patterns.length ? nested.patterns : void 0 }
10082
10084
  };
10083
10085
  } else if (t.ext === "png") {
10084
- const png = _chunkEJVDBITDcjs.decodePng.call(void 0, file.bytes);
10086
+ const png = _chunkDCLJNVZScjs.decodePng.call(void 0, file.bytes);
10085
10087
  out = { ...base, kind: "raster", width: png.width, height: png.height, raster: _chunk7ISPWEJAcjs.surfaceFromPixels.call(void 0, png, 4, 0, 0) };
10086
10088
  } else {
10087
10089
  const size = _nullishCoalesce(placed.size, () => ( { width: 0, height: 0 }));
@@ -10123,7 +10125,7 @@ function importSmart(ctx, rec, name, notes, props) {
10123
10125
  if (placement && (size.width !== contents.width || size.height !== contents.height)) {
10124
10126
  const kx = contents.width / size.width;
10125
10127
  const ky = contents.height / size.height;
10126
- if (placement.warp) placement = { ...placement, warp: _chunkLI3KTY7Kcjs.mapWarpMeshPoints.call(void 0, placement.warp, (p) => ({ x: p.x * kx, y: p.y * ky })) };
10128
+ if (placement.warp) placement = { ...placement, warp: _chunkVYW7JBTMcjs.mapWarpMeshPoints.call(void 0, placement.warp, (p) => ({ x: p.x * kx, y: p.y * ky })) };
10127
10129
  }
10128
10130
  }
10129
10131
  if (!contents || !placement) {
@@ -10147,7 +10149,7 @@ function importSmart(ctx, rec, name, notes, props) {
10147
10149
  ctx.warn.add("A smart object without readable contents came in with its stored pixels as contents", name);
10148
10150
  notes.push("contents missing");
10149
10151
  }
10150
- placement = { corners: _chunkEJVDBITDcjs.boxQuad.call(void 0, { x: rec.rect.left, y: rec.rect.top, width, height }) };
10152
+ placement = { corners: _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x: rec.rect.left, y: rec.rect.top, width, height }) };
10151
10153
  preview = true;
10152
10154
  }
10153
10155
  const layer = { type: "smart", id: ctx.newId(name), ...props, contents, placement, surface, offset: { x: 0, y: 0 } };
@@ -10424,34 +10426,34 @@ function blendOf(d, key, fallback, notes) {
10424
10426
  function colorOf(d, fallback = "#000000") {
10425
10427
  if (!d) return fallback;
10426
10428
  const g = (k) => descNumber(d, k);
10427
- if (g("redFloat") !== void 0) return _chunkWMRIG4XQcjs.effectColorHex.call(void 0, [g("redFloat"), _nullishCoalesce(g("greenFloat"), () => ( 0)), _nullishCoalesce(g("blueFloat"), () => ( 0))]);
10429
+ if (g("redFloat") !== void 0) return _chunkLL3RAN55cjs.effectColorHex.call(void 0, [g("redFloat"), _nullishCoalesce(g("greenFloat"), () => ( 0)), _nullishCoalesce(g("blueFloat"), () => ( 0))]);
10428
10430
  switch (d.classId) {
10429
10431
  case "HSBC": {
10430
10432
  const rgb = decodePsdColor(1, [(_nullishCoalesce(g("H "), () => ( 0))) / 360 * 65535, (_nullishCoalesce(g("Strt"), () => ( 0))) / 100 * 65535, (_nullishCoalesce(g("Brgh"), () => ( 0))) / 100 * 65535]);
10431
- return rgb ? _chunkWMRIG4XQcjs.effectColorHex.call(void 0, rgb) : fallback;
10433
+ return rgb ? _chunkLL3RAN55cjs.effectColorHex.call(void 0, rgb) : fallback;
10432
10434
  }
10433
10435
  case "CMYC": {
10434
10436
  const inv = (k) => (1 - (_nullishCoalesce(g(k), () => ( 0))) / 100) * 65535;
10435
10437
  const rgb = decodePsdColor(2, [inv("Cyn "), inv("Mgnt"), inv("Ylw "), inv("Blck")]);
10436
- return rgb ? _chunkWMRIG4XQcjs.effectColorHex.call(void 0, rgb) : fallback;
10438
+ return rgb ? _chunkLL3RAN55cjs.effectColorHex.call(void 0, rgb) : fallback;
10437
10439
  }
10438
10440
  case "LbCl": {
10439
10441
  const rgb = decodePsdColor(7, [(_nullishCoalesce(g("Lmnc"), () => ( 0))) * 100, Math.round((_nullishCoalesce(g("A "), () => ( 0))) * 100) & 65535, Math.round((_nullishCoalesce(g("B "), () => ( 0))) * 100) & 65535]);
10440
- return rgb ? _chunkWMRIG4XQcjs.effectColorHex.call(void 0, rgb) : fallback;
10442
+ return rgb ? _chunkLL3RAN55cjs.effectColorHex.call(void 0, rgb) : fallback;
10441
10443
  }
10442
10444
  case "Grsc": {
10443
10445
  const v = 1 - (_nullishCoalesce(g("Gry "), () => ( 0))) / 100;
10444
- return _chunkWMRIG4XQcjs.effectColorHex.call(void 0, [v, v, v]);
10446
+ return _chunkLL3RAN55cjs.effectColorHex.call(void 0, [v, v, v]);
10445
10447
  }
10446
10448
  }
10447
10449
  const r = g("Rd ");
10448
10450
  const gr = g("Grn ");
10449
10451
  const b = g("Bl ");
10450
10452
  if (r === void 0 || gr === void 0 || b === void 0) return fallback;
10451
- return _chunkWMRIG4XQcjs.effectColorHex.call(void 0, [r / 255, gr / 255, b / 255]);
10453
+ return _chunkLL3RAN55cjs.effectColorHex.call(void 0, [r / 255, gr / 255, b / 255]);
10452
10454
  }
10453
10455
  function colorDesc(hex) {
10454
- const [r, g, b] = _nullishCoalesce(_chunkWMRIG4XQcjs.parseEffectColor.call(void 0, hex), () => ( [0, 0, 0]));
10456
+ const [r, g, b] = _nullishCoalesce(_chunkLL3RAN55cjs.parseEffectColor.call(void 0, hex), () => ( [0, 0, 0]));
10455
10457
  return descriptor("RGBC", [
10456
10458
  ["Rd ", dbl3(r * 255)],
10457
10459
  ["Grn ", dbl3(g * 255)],
@@ -10534,9 +10536,9 @@ function gradientOf(d, notes) {
10534
10536
  raw.forEach((s, i) => {
10535
10537
  if (i > 0 && Math.abs(s.mid - 0.5) > 1e-3) {
10536
10538
  const a = raw[i - 1];
10537
- const ca = _chunkWMRIG4XQcjs.parseEffectColor.call(void 0, a.color);
10538
- const cb = _chunkWMRIG4XQcjs.parseEffectColor.call(void 0, s.color);
10539
- stops.push({ position: a.position + (s.position - a.position) * s.mid, color: _chunkWMRIG4XQcjs.effectColorHex.call(void 0, ca.map((v, k) => (v + cb[k]) / 2)) });
10539
+ const ca = _chunkLL3RAN55cjs.parseEffectColor.call(void 0, a.color);
10540
+ const cb = _chunkLL3RAN55cjs.parseEffectColor.call(void 0, s.color);
10541
+ stops.push({ position: a.position + (s.position - a.position) * s.mid, color: _chunkLL3RAN55cjs.effectColorHex.call(void 0, ca.map((v, k) => (v + cb[k]) / 2)) });
10540
10542
  notes.add("gradient midpoints are drawn as straight segments");
10541
10543
  }
10542
10544
  stops.push({ position: s.position, color: s.color });
@@ -10648,8 +10650,8 @@ var KINDS = [
10648
10650
  ["FrFX", "frameFXMulti", "stroke"]
10649
10651
  ];
10650
10652
  function common(d, kind, notes) {
10651
- const def = _chunkWMRIG4XQcjs.defaultLayerEffect.call(void 0, kind, "x");
10652
- return { id: _chunkWMRIG4XQcjs.newEffectId.call(void 0, ), enabled: descBool(d, "enab") !== false, blend: blendOf(d, "Md ", def.blend, notes), opacity: clamp3(pct(d, "Opct", def.opacity), 0, 1) };
10653
+ const def = _chunkLL3RAN55cjs.defaultLayerEffect.call(void 0, kind, "x");
10654
+ return { id: _chunkLL3RAN55cjs.newEffectId.call(void 0, ), enabled: descBool(d, "enab") !== false, blend: blendOf(d, "Md ", def.blend, notes), opacity: clamp3(pct(d, "Opct", def.opacity), 0, 1) };
10653
10655
  }
10654
10656
  function readOne(kind, d, notes) {
10655
10657
  const size = (key, fallback) => clamp3(num3(d, key, fallback), 0, 250);
@@ -10692,7 +10694,7 @@ function readOne(kind, d, notes) {
10692
10694
  case "bevel-emboss": {
10693
10695
  const styles = { OtrB: "outer-bevel", InrB: "inner-bevel", Embs: "emboss", PlEb: "pillow-emboss", strokeEmboss: "stroke-emboss" };
10694
10696
  const out = {
10695
- id: _chunkWMRIG4XQcjs.newEffectId.call(void 0, ),
10697
+ id: _chunkLL3RAN55cjs.newEffectId.call(void 0, ),
10696
10698
  enabled: descBool(d, "enab") !== false,
10697
10699
  kind,
10698
10700
  style: _nullishCoalesce(styles[_nullishCoalesce(enumOf3(d, "bvlS"), () => ( ""))], () => ( "inner-bevel")),
@@ -10903,10 +10905,10 @@ function writeLfx2(effects) {
10903
10905
  ["Scl ", unit3("#Prc", 100)],
10904
10906
  ["masterFXSwitch", boolV3(effects.enabled)]
10905
10907
  ];
10906
- const scale = _chunkWMRIG4XQcjs.effectsScale.call(void 0, effects);
10908
+ const scale = _chunkLL3RAN55cjs.effectsScale.call(void 0, effects);
10907
10909
  let dropped = 0;
10908
10910
  for (const [single, multi, kind] of KINDS) {
10909
- const of = effects.items.filter((e) => e.kind === kind).map((e) => writeOne(_chunkWMRIG4XQcjs.scaleLayerEffect.call(void 0, e, scale)));
10911
+ const of = effects.items.filter((e) => e.kind === kind).map((e) => writeOne(_chunkLL3RAN55cjs.scaleLayerEffect.call(void 0, e, scale)));
10910
10912
  if (!of.length) continue;
10911
10913
  if (of.length === 1) items.push([single, obj3(of[0])]);
10912
10914
  else if (multi) items.push([multi, { type: "VlLs", items: of.map(obj3) }]);
@@ -10938,7 +10940,7 @@ function parseLrfx(data) {
10938
10940
  const colorAt = (rd) => {
10939
10941
  rd.u16();
10940
10942
  const c = [rd.u16(), rd.u16(), rd.u16(), rd.u16()];
10941
- return _chunkWMRIG4XQcjs.effectColorHex.call(void 0, [c[0] >> 8, c[1] >> 8, c[2] >> 8].map((v) => v / 255));
10943
+ return _chunkLL3RAN55cjs.effectColorHex.call(void 0, [c[0] >> 8, c[1] >> 8, c[2] >> 8].map((v) => v / 255));
10942
10944
  };
10943
10945
  const blendAt = (rd) => {
10944
10946
  rd.skip(4);
@@ -10957,7 +10959,7 @@ function parseLrfx(data) {
10957
10959
  const enabled = b.u8() !== 0;
10958
10960
  const useGlobalLight = b.u8() !== 0;
10959
10961
  const opacity = b.u8() / 255;
10960
- const base = { id: _chunkWMRIG4XQcjs.newEffectId.call(void 0, ), enabled, blend, opacity, color, angle, useGlobalLight, distance: clamp3(distance, 0, 3e4), size: clamp3(blur, 0, 250), antiAlias: false, noise: 0 };
10962
+ const base = { id: _chunkLL3RAN55cjs.newEffectId.call(void 0, ), enabled, blend, opacity, color, angle, useGlobalLight, distance: clamp3(distance, 0, 3e4), size: clamp3(blur, 0, 250), antiAlias: false, noise: 0 };
10961
10963
  items.push(key === "dsdw" ? { ...base, kind: "drop-shadow", spread: 0, knocksOut: true } : { ...base, kind: "inner-shadow", choke: 0 });
10962
10964
  } else if (key === "oglw" || key === "iglw") {
10963
10965
  b.u32();
@@ -10967,7 +10969,7 @@ function parseLrfx(data) {
10967
10969
  const blend = blendAt(b);
10968
10970
  const enabled = b.u8() !== 0;
10969
10971
  const opacity = b.u8() / 255;
10970
- const base = { id: _chunkWMRIG4XQcjs.newEffectId.call(void 0, ), enabled, blend, opacity, fill: { type: "color", color }, technique: "softer", size: clamp3(blur, 0, 250), antiAlias: false, range: 0.5, jitter: 0, noise: 0 };
10972
+ const base = { id: _chunkLL3RAN55cjs.newEffectId.call(void 0, ), enabled, blend, opacity, fill: { type: "color", color }, technique: "softer", size: clamp3(blur, 0, 250), antiAlias: false, range: 0.5, jitter: 0, noise: 0 };
10971
10973
  items.push(key === "oglw" ? { ...base, kind: "outer-glow", spread: 0 } : { ...base, kind: "inner-glow", choke: 0, source: "edge" });
10972
10974
  } else if (key === "sofi") {
10973
10975
  b.u32();
@@ -10975,7 +10977,7 @@ function parseLrfx(data) {
10975
10977
  const color = colorAt(b);
10976
10978
  const opacity = b.u8() / 255;
10977
10979
  const enabled = b.u8() !== 0;
10978
- items.push({ id: _chunkWMRIG4XQcjs.newEffectId.call(void 0, ), kind: "color-overlay", enabled, blend, opacity, color });
10980
+ items.push({ id: _chunkLL3RAN55cjs.newEffectId.call(void 0, ), kind: "color-overlay", enabled, blend, opacity, color });
10979
10981
  } else if (key === "bevl") notes.add("legacy bevels are not read");
10980
10982
  }
10981
10983
  return { effects: { enabled: true, items }, notes: [...notes] };
@@ -11091,7 +11093,7 @@ function smartContentsFile(c) {
11091
11093
  if (c.file) return { name: c.name, bytes: c.file.bytes };
11092
11094
  if (c.kind === "raster") {
11093
11095
  const data = _chunk7ISPWEJAcjs.readRegion.call(void 0, contentsSurface(c), { x: 0, y: 0, width: c.width, height: c.height });
11094
- return { name: `${base}.png`, bytes: _chunkEJVDBITDcjs.encodePng.call(void 0, c.width, c.height, data) };
11096
+ return { name: `${base}.png`, bytes: _chunkDCLJNVZScjs.encodePng.call(void 0, c.width, c.height, data) };
11095
11097
  }
11096
11098
  const doc = c.document;
11097
11099
  const merged2 = _chunk7ISPWEJAcjs.readRegion.call(void 0, contentsSurface(c), { x: 0, y: 0, width: c.width, height: c.height });
@@ -11158,7 +11160,7 @@ function exportPsd(input) {
11158
11160
  const key = layer.type === "group" ? "lfxs" : "lfx2";
11159
11161
  if (fx.psd) {
11160
11162
  const original = parseLfx2(fx.psd.data);
11161
- if (original ? _chunkWMRIG4XQcjs.effectsFingerprint.call(void 0, original.effects) === _chunkWMRIG4XQcjs.effectsFingerprint.call(void 0, fx) : !fx.items.length) return { key, data: padEven(fx.psd.data) };
11163
+ if (original ? _chunkLL3RAN55cjs.effectsFingerprint.call(void 0, original.effects) === _chunkLL3RAN55cjs.effectsFingerprint.call(void 0, fx) : !fx.items.length) return { key, data: padEven(fx.psd.data) };
11162
11164
  }
11163
11165
  if (!fx.items.length && fx.enabled && (_nullishCoalesce(fx.scale, () => ( 1))) === 1) return null;
11164
11166
  const { data, dropped } = writeLfx2(fx);
@@ -11379,7 +11381,7 @@ function exportPsd(input) {
11379
11381
  const byId = new Map((_nullishCoalesce(input.patterns, () => ( []))).map((p) => [p.id, p]));
11380
11382
  const embed = [];
11381
11383
  for (const id of patternIds2) {
11382
- const p = _nullishCoalesce(byId.get(id), () => ( _chunkWMRIG4XQcjs.builtinPattern.call(void 0, id)));
11384
+ const p = _nullishCoalesce(byId.get(id), () => ( _chunkLL3RAN55cjs.builtinPattern.call(void 0, id)));
11383
11385
  if (p) embed.push(p);
11384
11386
  else note(`Pattern "${id}" is not in the document and was not embedded`, id);
11385
11387
  }
@@ -11770,4 +11772,4 @@ function exportPsd(input) {
11770
11772
 
11771
11773
 
11772
11774
  exports.LEGACY_PROCESS_VERSION = LEGACY_PROCESS_VERSION; exports.LATEST_PROCESS_VERSION = LATEST_PROCESS_VERSION; exports.normalizeProcessVersion = normalizeProcessVersion; exports.srgbToLinear = srgbToLinear; exports.linearToSrgb = linearToSrgb; exports.LUMA_709 = LUMA_709; exports.IDENTITY_MATRIX3 = IDENTITY_MATRIX3; exports.mulMatrix3 = mulMatrix3; exports.applyMatrix3 = applyMatrix3; exports.invertMatrix3 = invertMatrix3; exports.D65 = D65; exports.bradfordAdaptation = bradfordAdaptation; exports.wbMatrix = wbMatrix; exports.linearSrgbToXy = linearSrgbToXy; exports.TINT_SCALE = TINT_SCALE; exports.MIN_KELVIN = MIN_KELVIN; exports.MAX_KELVIN = MAX_KELVIN; exports.xyToUv = xyToUv; exports.uvToXy = uvToXy; exports.tempTintToXy = tempTintToXy; exports.xyToTempTint = xyToTempTint; exports.AS_SHOT_KELVIN = AS_SHOT_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = MIRED_PER_TEMPERATURE_UNIT; exports.temperatureToKelvin = temperatureToKelvin; exports.kelvinToTemperature = kelvinToTemperature; exports.whiteBalanceMatrix = whiteBalanceMatrix; exports.whiteBalanceFromSample = whiteBalanceFromSample; exports.TONE_LUT_SIZE = TONE_LUT_SIZE; exports.toneCurve = toneCurve; exports.buildToneLut = buildToneLut; exports.sampleToneLut = sampleToneLut; exports.normalizeAngle = normalizeAngle; exports.isQuarterTurnSwapped = isQuarterTurnSwapped; exports.getRotatedSize = getRotatedSize; exports.projectImagePoint = projectImagePoint; exports.unprojectCanvasPoint = unprojectCanvasPoint; exports.applyImageProjectionToContext = applyImageProjectionToContext; exports.projectImageRect = projectImageRect; exports.clampCropToImage = clampCropToImage; exports.getViewportProjection = getViewportProjection; exports.getViewportMetrics = getViewportMetrics; exports.canvasToImagePoint = canvasToImagePoint; exports.imageToCanvasPoint = imageToCanvasPoint; exports.mapCropHandle = mapCropHandle; exports.hitTestCrop = hitTestCrop; exports.getCropCursor = getCropCursor; exports.calculateCropDrag = calculateCropDrag; exports.getAnnotationBounds = getAnnotationBounds; exports.hitTestAnnotation = hitTestAnnotation; exports.SELECTION_MODES = SELECTION_MODES; exports.isSelectionMode = isSelectionMode; exports.parseSelectionMode = parseSelectionMode; exports.computeSelectionBounds = computeSelectionBounds; exports.createSelectionMask = createSelectionMask; exports.fullSelection = fullSelection; exports.isSelectionEmpty = isSelectionEmpty; exports.selectionValueAt = selectionValueAt; exports.coverageToByte = coverageToByte; exports.selectionFromCoverage = selectionFromCoverage; exports.selectionToCoverage = selectionToCoverage; exports.selectionArea = selectionArea; exports.combineSelections = combineSelections; exports.invertSelection = invertSelection; exports.resizeSelection = resizeSelection; exports.selectionFromPixels = selectionFromPixels; exports.selectionToPixels = selectionToPixels; exports.encodeSelectionRle = encodeSelectionRle; exports.decodeSelectionRle = decodeSelectionRle; exports.serializeSelection = serializeSelection; exports.deserializeSelection = deserializeSelection; exports.hashMaskContent = hashMaskContent; exports.EMPTY_DISTANCE = EMPTY_DISTANCE; exports.distanceTransform = distanceTransform; exports.expandCoverage = expandCoverage; exports.contractCoverage = contractCoverage; exports.borderCoverage = borderCoverage; exports.smoothCoverage = smoothCoverage; exports.featherCoverage = featherCoverage; exports.greyMorphology = greyMorphology; exports.shiftCoverage = shiftCoverage; exports.SELECTION_MODIFY_OPS = SELECTION_MODIFY_OPS; exports.modifySelection = modifySelection; exports.normalizeLayerMask = normalizeLayerMask; exports.layerMaskFromSelection = layerMaskFromSelection; exports.updateLayerMaskProps = updateLayerMaskProps; exports.decodeLayerMask = decodeLayerMask; exports.layerMaskKey = layerMaskKey; exports.layerMaskCoverage = layerMaskCoverage; exports.projectMaskCoverage = projectMaskCoverage; exports.buildLayerMaskPlanes = buildLayerMaskPlanes; exports.ADJUSTMENT_LUT_SIZE = ADJUSTMENT_LUT_SIZE; exports.sampleLut = sampleLut; exports.ADJUSTMENT_KINDS = ADJUSTMENT_KINDS; exports.isAdjustmentKind = isAdjustmentKind; exports.adjustmentKindLabel = adjustmentKindLabel; exports.HUE_RANGE_LABELS = HUE_RANGE_LABELS; exports.neutralHueRange = neutralHueRange; exports.identityCurve = identityCurve; exports.identityLevels = identityLevels; exports.defaultAdjustmentParams = defaultAdjustmentParams; exports.createAdjustmentLayer = createAdjustmentLayer; exports.normalizeAdjustmentLayer = normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = normalizeAdjustmentLayers; exports.curveLutFromLevels = curveLutFromLevels; exports.levelsValue = levelsValue; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.hueRangeWeight = hueRangeWeight; exports.hueRangeTables = hueRangeTables; exports.hueSaturation = hueSaturation; exports.rangeLightness = rangeLightness; exports.VIBRANCE_GREY = VIBRANCE_GREY; exports.vibranceLinear = vibranceLinear; exports.vibrancePixel = vibrancePixel; exports.colorBalanceChannel = colorBalanceChannel; exports.blackWhiteGray = blackWhiteGray; exports.D50 = D50; exports.XYZ_D50_TO_SRGB = XYZ_D50_TO_SRGB; exports.photoFilterMatrix = photoFilterMatrix; exports.posterizeValue = posterizeValue; exports.rgbToGray = rgbToGray; exports.hexToRgb = hexToRgb; exports.toneLuts = toneLuts; exports.compileAdjustmentLayer = compileAdjustmentLayer; exports.activeAdjustmentLayers = activeAdjustmentLayers; exports.evaluateAdjustmentLayers = evaluateAdjustmentLayers; exports.applyAdjustmentLayers = applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = applyAdjustmentLayersFloat; exports.adjustmentLayersKey = adjustmentLayersKey; exports.applyAdjustments = applyAdjustments; exports.applyLegacyAdjustments = applyLegacyAdjustments; exports.applyProcess2Adjustments = applyProcess2Adjustments; exports.applyBoxBlur = applyBoxBlur; exports.applyDepthMask = applyDepthMask; exports.removeAlpha = removeAlpha; exports.TEXT_ALIGNS = TEXT_ALIGNS; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.LIVE_SHAPE_KINDS = LIVE_SHAPE_KINDS; exports.newLayerId = newLayerId; exports.pixelLayers = pixelLayers; exports.developFilter = developFilter; exports.blurFilter = blurFilter; exports.isActiveFilter = isActiveFilter; exports.isSpatialFilter = isSpatialFilter; exports.pixelLayerBounds = pixelLayerBounds; exports.layerTypeLabel = layerTypeLabel; exports.hasSurface = hasSurface; exports.isRenderedLayer = isRenderedLayer; exports.shapeLayers = shapeLayers; exports.smartObjectLayers = smartObjectLayers; exports.adjustmentNodeAsLayer = adjustmentNodeAsLayer; exports.depthMaskAlpha = depthMaskAlpha; exports.runLayerFilters = runLayerFilters; exports.LayerCompositor = LayerCompositor; exports.compositeDeep = compositeDeep; exports.DEFAULT_ADJUSTMENTS_VALUES = DEFAULT_ADJUSTMENTS_VALUES; exports.DEFAULT_TRANSFORM_VALUES = DEFAULT_TRANSFORM_VALUES; exports.DEFAULT_DEPTH_MASK_VALUES = DEFAULT_DEPTH_MASK_VALUES; exports.flattenPath = flattenPath; exports.rasterizeCoverage = rasterizeCoverage; exports.parseCssColor = parseCssColor; exports.LayerOperationError = LayerOperationError; exports.requireLayer = requireLayer; exports.requireUnlocked = requireUnlocked; exports.placeLayer = placeLayer; exports.removeLayer = removeLayer; exports.moveLayer = moveLayer; exports.withNewIds = withNewIds; exports.duplicateLayer = duplicateLayer; exports.setLayerProperties = setLayerProperties; exports.groupLayers = groupLayers; exports.ungroupLayer = ungroupLayer; exports.offsetLayer = offsetLayer; exports.setLayerMask = setLayerMask; exports.normalizeFilter = normalizeFilter; exports.addLayerFilter = addLayerFilter; exports.updateLayerFilter = updateLayerFilter; exports.removeLayerFilter = removeLayerFilter; exports.layerEffectsOf = layerEffectsOf; exports.setLayerEffects = setLayerEffects; exports.addLayerEffect = addLayerEffect; exports.updateLayerEffect = updateLayerEffect; exports.removeLayerEffect = removeLayerEffect; exports.setLayerEffectsEnabled = setLayerEffectsEnabled; exports.parseBlend = parseBlend; exports.unionRect = unionRect; exports.SHAPE_RENDER_MARGIN = SHAPE_RENDER_MARGIN; exports.DEFAULT_MITER_LIMIT = DEFAULT_MITER_LIMIT; exports.mapSubpaths = mapSubpaths; exports.liveShapeSubpaths = liveShapeSubpaths; exports.liveComponent = liveComponent; exports.componentPath = componentPath; exports.shapeOutline = shapeOutline; exports.shapeGeometryBounds = shapeGeometryBounds; exports.shapeRenderClip = shapeRenderClip; exports.renderShapeRect = renderShapeRect; exports.renderShape = renderShape; exports.rerenderShape = rerenderShape; exports.normalizeShapePaint = normalizeShapePaint; exports.normalizeShapeStroke = normalizeShapeStroke; exports.normalizeLiveShape = normalizeLiveShape; exports.normalizeSubpaths = normalizeSubpaths; exports.requireOperation = requireOperation; exports.requireShapeLayer = requireShapeLayer; exports.createShapeLayer = createShapeLayer; exports.defaultShapeName = defaultShapeName; exports.updateShapeLayer = updateShapeLayer; exports.transformShapeComponents = transformShapeComponents; exports.offsetShape = offsetShape; exports.mergeShapeComponents = mergeShapeComponents; exports.shapeAsPixelLayer = shapeAsPixelLayer; exports.shapeFromAnnotation = shapeFromAnnotation; exports.annotationBlend = annotationBlend; exports.annotationOfShape = annotationOfShape; exports.TEXT_RENDER_MARGIN = TEXT_RENDER_MARGIN; exports.textMatrix = textMatrix; exports.textOutlines = textOutlines; exports.renderText = renderText; exports.rerenderText = rerenderText; exports.TEXT_STYLE_FIELDS = TEXT_STYLE_FIELDS; exports.patchTextStyle = patchTextStyle; exports.PARAGRAPH_STYLE_FIELDS = PARAGRAPH_STYLE_FIELDS; exports.patchParagraphStyle = patchParagraphStyle; exports.textRange = textRange; exports.requireTypeLayer = requireTypeLayer; exports.normalizeText = normalizeText; exports.typeLayerName = typeLayerName; exports.createTypeLayer = createTypeLayer; exports.updateTypeLayer = updateTypeLayer; exports.replaceTextRange = replaceTextRange; exports.transformTypeLayer = transformTypeLayer; exports.typeFrame = typeFrame; exports.typeAsPixelLayer = typeAsPixelLayer; exports.toTextSpace = toTextSpace; exports.typeFromAnnotation = typeFromAnnotation; exports.annotationOfType = annotationOfType; exports.BACKGROUND_LAYER_ID = BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = BACKGROUND_LAYER_NAME; exports.DEVELOP_FILTER_ID = DEVELOP_FILTER_ID; exports.BLUR_FILTER_ID = BLUR_FILTER_ID; exports.rasterMaskFromLegacy = rasterMaskFromLegacy; exports.hasResampledLegacyMask = hasResampledLegacyMask; exports.legacyMaskOf = legacyMaskOf; exports.isDefaultDepthMask = isDefaultDepthMask; exports.developFromAdjustments = developFromAdjustments; exports.annotationLayerName = annotationLayerName; exports.annotationLayerFor = annotationLayerFor; exports.annotationOfLayer = annotationOfLayer; exports.adjustmentNodeFromLegacy = adjustmentNodeFromLegacy; exports.backgroundLayer = backgroundLayer; exports.depthRasterMask = depthRasterMask; exports.layersFromLegacy = layersFromLegacy; exports.legacyAdjustmentLayer = legacyAdjustmentLayer; exports.developTarget = developTarget; exports.legacyView = legacyView; exports.isLegacyShape = isLegacyShape; exports.FREE_TRANSFORM_MODES = FREE_TRANSFORM_MODES; exports.TRANSFORM_ANCHORS = TRANSFORM_ANCHORS; exports.isTransformAnchor = isTransformAnchor; exports.identityTransform = identityTransform; exports.cornersFromMatrix = cornersFromMatrix; exports.matrixFromCorners = matrixFromCorners; exports.transformHomography = transformHomography; exports.hasWarp = hasWarp; exports.isIdentityTransform = isIdentityTransform; exports.transformMap = transformMap; exports.transformedPoint = transformedPoint; exports.anchorPoint = anchorPoint; exports.transformedBox = transformedBox; exports.referencePoint = referencePoint; exports.matrixFromParams = matrixFromParams; exports.describeTransform = describeTransform; exports.applyParams = applyParams; exports.flipCorners = flipCorners; exports.boxPointOf = boxPointOf; exports.presetWarp = presetWarp; exports.isValidWarp = isValidWarp; exports.geometryHomography = geometryHomography; exports.SMART_RENDER_MARGIN = SMART_RENDER_MARGIN; exports.newContentsId = newContentsId; exports.contentsBox = contentsBox; exports.placementGeometry = placementGeometry; exports.placementAt = placementAt; exports.isContentsDecoded = isContentsDecoded; exports.requireSmartObject = requireSmartObject; exports.contentsSurface = contentsSurface; exports.rasterContents = rasterContents; exports.documentContents = documentContents; exports.placeContents = placeContents; exports.activeSmartFilters = activeSmartFilters; exports.filterMaskCoverage = filterMaskCoverage; exports.applySmartFilters = applySmartFilters; exports.renderSmartObject = renderSmartObject; exports.rerender = rerender; exports.normalizePlacement = normalizePlacement; exports.setSmartPlacement = setSmartPlacement; exports.offsetSmartObject = offsetSmartObject; exports.convertToSmartObject = convertToSmartObject; exports.rasterizeSmartObject = rasterizeSmartObject; exports.copySmartObject = copySmartObject; exports.instancesOf = instancesOf; exports.replaceContents = replaceContents; exports.normalizeSmartFilter = normalizeSmartFilter; exports.addSmartFilter = addSmartFilter; exports.updateSmartFilter = updateSmartFilter; exports.removeSmartFilter = removeSmartFilter; exports.moveSmartFilter = moveSmartFilter; exports.setSmartFiltersEnabled = setSmartFiltersEnabled; exports.setSmartFilterMask = setSmartFilterMask; exports.withFilterMaskSurface = withFilterMaskSurface; exports.placementBounds = placementBounds; exports.LAYERED_SCHEMA_VERSION = LAYERED_SCHEMA_VERSION; exports.serializePatterns = serializePatterns; exports.deserializePatterns = deserializePatterns; exports.encodeSurface = encodeSurface; exports.encodeDeepSurface = encodeDeepSurface; exports.decodeDeepSurface = decodeDeepSurface; exports.serializeEffects = serializeEffects; exports.deserializeEffects = deserializeEffects; exports.serializeLayer = serializeLayer; exports.serializeContents = serializeContents; exports.serializeLayers = serializeLayers; exports.serializeLayersExternal = serializeLayersExternal; exports.resolveExternalAssets = resolveExternalAssets; exports.decodePngDataUrl = decodePngDataUrl; exports.deserializeLayer = deserializeLayer; exports.deserializeLayers = deserializeLayers; exports.PsdError = PsdError; exports.parseVersionedDescriptor = parseVersionedDescriptor; exports.versionedDescriptorBytes = versionedDescriptorBytes; exports.ADJUSTMENT_KEYS = ADJUSTMENT_KEYS; exports.SUPPORTED_ADJUSTMENT_KEYS = SUPPORTED_ADJUSTMENT_KEYS; exports.parseAdjustmentBlock = parseAdjustmentBlock; exports.writeAdjustmentBlock = writeAdjustmentBlock; exports.parseLfx2 = parseLfx2; exports.writeLfx2 = writeLfx2; exports.parseLrfx = parseLrfx; exports.decodePlanes = decodePlanes; exports.encodeRle = encodeRle; exports.BROWSER_IMAGE_TYPES = BROWSER_IMAGE_TYPES; exports.readPsd = readPsd; exports.layerName = layerName; exports.layerTree = layerTree; exports.decodeLayerChannel = decodeLayerChannel; exports.decodeMergedImage = decodeMergedImage; exports.writePsd = writePsd; exports.PATTERN_BLOCK_KEYS = PATTERN_BLOCK_KEYS; exports.parsePatternBlock = parsePatternBlock; exports.psdPatternToEffectPattern = psdPatternToEffectPattern; exports.writePatternBlock = writePatternBlock; exports.PSD_BLEND_KEYS = PSD_BLEND_KEYS; exports.psdToLayers = psdToLayers; exports.importPsd = importPsd; exports.smartContentsFile = smartContentsFile; exports.exportPsd = exportPsd;
11773
- //# sourceMappingURL=chunk-4S2AXNQF.cjs.map
11775
+ //# sourceMappingURL=chunk-GLOOH65Y.cjs.map