@pixerate/editor 0.115.0 → 0.116.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 (117) hide show
  1. package/THIRD_PARTY_NOTICES.md +3 -0
  2. package/dist/animation-editor/index.cjs +54 -54
  3. package/dist/animation-editor/index.d.cts +2 -2
  4. package/dist/animation-editor/index.d.ts +2 -2
  5. package/dist/animation-editor/index.js +2 -2
  6. package/dist/{chunk-DFQEX3AM.cjs → chunk-2UT4GXYA.cjs} +133 -8
  7. package/dist/chunk-2UT4GXYA.cjs.map +1 -0
  8. package/dist/{chunk-VXR7XWMF.js → chunk-7LNZAWSJ.js} +437 -41
  9. package/dist/chunk-7LNZAWSJ.js.map +1 -0
  10. package/dist/{chunk-LKCYANMW.js → chunk-ARQ7PQ6Q.js} +129 -4
  11. package/dist/chunk-ARQ7PQ6Q.js.map +1 -0
  12. package/dist/chunk-COAMRKVI.cjs +159 -0
  13. package/dist/chunk-COAMRKVI.cjs.map +1 -0
  14. package/dist/{chunk-C6C5PDKU.js → chunk-D53KSJUV.js} +3 -322
  15. package/dist/chunk-D53KSJUV.js.map +1 -0
  16. package/dist/chunk-D53VQGEJ.js +3262 -0
  17. package/dist/chunk-D53VQGEJ.js.map +1 -0
  18. package/dist/chunk-EJVDBITD.cjs +501 -0
  19. package/dist/chunk-EJVDBITD.cjs.map +1 -0
  20. package/dist/{chunk-LPLCWZTM.cjs → chunk-FODKPD44.cjs} +555 -159
  21. package/dist/chunk-FODKPD44.cjs.map +1 -0
  22. package/dist/chunk-HOCPSFGA.cjs +3262 -0
  23. package/dist/chunk-HOCPSFGA.cjs.map +1 -0
  24. package/dist/chunk-IPFRWILU.js +1908 -0
  25. package/dist/chunk-IPFRWILU.js.map +1 -0
  26. package/dist/{chunk-FV5AXTSF.cjs → chunk-JSSBHMMU.cjs} +36 -188
  27. package/dist/chunk-JSSBHMMU.cjs.map +1 -0
  28. package/dist/chunk-LF4WOZXZ.js +159 -0
  29. package/dist/chunk-LF4WOZXZ.js.map +1 -0
  30. package/dist/{chunk-26PGXHY7.cjs → chunk-M7O4BJRH.cjs} +36 -36
  31. package/dist/{chunk-26PGXHY7.cjs.map → chunk-M7O4BJRH.cjs.map} +1 -1
  32. package/dist/chunk-N3467VD6.js +501 -0
  33. package/dist/chunk-N3467VD6.js.map +1 -0
  34. package/dist/{chunk-ST7E3NEE.cjs → chunk-PAOWHJ5O.cjs} +18 -337
  35. package/dist/chunk-PAOWHJ5O.cjs.map +1 -0
  36. package/dist/{chunk-XICA4PVO.js → chunk-SEBYNBHW.js} +10 -10
  37. package/dist/chunk-SMJGE7HM.cjs +1908 -0
  38. package/dist/chunk-SMJGE7HM.cjs.map +1 -0
  39. package/dist/{chunk-MMVHBKMM.js → chunk-T2P5TIZ6.js} +2 -2
  40. package/dist/{chunk-FGW5OWJ4.js → chunk-VJUML33I.js} +4 -156
  41. package/dist/chunk-VJUML33I.js.map +1 -0
  42. package/dist/{chunk-I7FQBWMQ.cjs → chunk-ZYZGEILO.cjs} +239 -239
  43. package/dist/{chunk-I7FQBWMQ.cjs.map → chunk-ZYZGEILO.cjs.map} +1 -1
  44. package/dist/export/index.cjs +4 -2
  45. package/dist/export/index.cjs.map +1 -1
  46. package/dist/export/index.js +5 -3
  47. package/dist/{export-BJE8T0YA.d.cts → export-BXxSGBCq.d.cts} +2 -2
  48. package/dist/{export-Con3UKkm.d.ts → export-Dm44YUvS.d.ts} +2 -2
  49. package/dist/export-Dv0-ZVrV.d.cts +501 -0
  50. package/dist/export-Dv0-ZVrV.d.ts +501 -0
  51. package/dist/{retouch-Do6tBs2H.d.ts → flow-BMtHAmg4.d.ts} +561 -2
  52. package/dist/{retouch-Bxkuc0KH.d.cts → flow-COCB42TP.d.cts} +561 -2
  53. package/dist/image-editor/index.cjs +957 -795
  54. package/dist/image-editor/index.cjs.map +1 -1
  55. package/dist/image-editor/index.d.cts +6 -6
  56. package/dist/image-editor/index.d.ts +6 -6
  57. package/dist/image-editor/index.js +180 -18
  58. package/dist/image-editor/index.js.map +1 -1
  59. package/dist/index.cjs +4 -2
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.js +5 -3
  62. package/dist/index.js.map +1 -1
  63. package/dist/kernel-wasm-WYCGNZR4.js +10 -0
  64. package/dist/kernel-wasm-WYCGNZR4.js.map +1 -0
  65. package/dist/kernel-wasm-YPVAEMVN.cjs +10 -0
  66. package/dist/kernel-wasm-YPVAEMVN.cjs.map +1 -0
  67. package/dist/paint/index.cjs +165 -3
  68. package/dist/paint/index.cjs.map +1 -1
  69. package/dist/paint/index.d.cts +225 -3
  70. package/dist/paint/index.d.ts +225 -3
  71. package/dist/paint/index.js +166 -4
  72. package/dist/paint-editor/index.cjs +4690 -845
  73. package/dist/paint-editor/index.cjs.map +1 -1
  74. package/dist/paint-editor/index.d.cts +1525 -277
  75. package/dist/paint-editor/index.d.ts +1525 -277
  76. package/dist/paint-editor/index.js +4560 -715
  77. package/dist/paint-editor/index.js.map +1 -1
  78. package/dist/raster/index.cjs +4 -3
  79. package/dist/raster/index.cjs.map +1 -1
  80. package/dist/raster/index.js +10 -9
  81. package/dist/{svg-BnRj0q8i.d.cts → svg-CVdFc80-.d.cts} +2 -2
  82. package/dist/{svg-CmmBFfGT.d.ts → svg-DlEuhwoX.d.ts} +2 -2
  83. package/dist/{types-1SUQKDAw.d.ts → types-CDLGhAZp.d.ts} +40 -2
  84. package/dist/{types-yINF17Ta.d.cts → types-Tfly4Aya.d.cts} +40 -2
  85. package/dist/vector/index.cjs +1897 -975
  86. package/dist/vector/index.cjs.map +1 -1
  87. package/dist/vector/index.d.cts +292 -32
  88. package/dist/vector/index.d.ts +292 -32
  89. package/dist/vector/index.js +928 -6
  90. package/dist/vector/index.js.map +1 -1
  91. package/dist/video-editor/index.cjs +502 -2165
  92. package/dist/video-editor/index.cjs.map +1 -1
  93. package/dist/video-editor/index.d.cts +3 -501
  94. package/dist/video-editor/index.d.ts +3 -501
  95. package/dist/video-editor/index.js +151 -1814
  96. package/dist/video-editor/index.js.map +1 -1
  97. package/package.json +1 -1
  98. package/skills/pixerate-image-editor/references/photoshop-files.md +7 -3
  99. package/skills/pixerate-vector/SKILL.md +3 -0
  100. package/dist/chunk-C6C5PDKU.js.map +0 -1
  101. package/dist/chunk-DFQEX3AM.cjs.map +0 -1
  102. package/dist/chunk-FGW5OWJ4.js.map +0 -1
  103. package/dist/chunk-FV5AXTSF.cjs.map +0 -1
  104. package/dist/chunk-GX332W2C.js +0 -181
  105. package/dist/chunk-GX332W2C.js.map +0 -1
  106. package/dist/chunk-LKCYANMW.js.map +0 -1
  107. package/dist/chunk-LPLCWZTM.cjs.map +0 -1
  108. package/dist/chunk-MUUXNRU4.cjs +0 -181
  109. package/dist/chunk-MUUXNRU4.cjs.map +0 -1
  110. package/dist/chunk-ST7E3NEE.cjs.map +0 -1
  111. package/dist/chunk-TCKIXI46.cjs +0 -1136
  112. package/dist/chunk-TCKIXI46.cjs.map +0 -1
  113. package/dist/chunk-UBIXVXPR.js +0 -1136
  114. package/dist/chunk-UBIXVXPR.js.map +0 -1
  115. package/dist/chunk-VXR7XWMF.js.map +0 -1
  116. /package/dist/{chunk-XICA4PVO.js.map → chunk-SEBYNBHW.js.map} +0 -0
  117. /package/dist/{chunk-MMVHBKMM.js.map → chunk-T2P5TIZ6.js.map} +0 -0
@@ -38,13 +38,13 @@
38
38
 
39
39
 
40
40
 
41
+ var _chunkPAOWHJ5Ocjs = require('./chunk-PAOWHJ5O.cjs');
41
42
 
42
43
 
43
44
 
44
45
 
45
46
 
46
47
 
47
- var _chunkST7E3NEEcjs = require('./chunk-ST7E3NEE.cjs');
48
48
 
49
49
 
50
50
 
@@ -54,7 +54,7 @@ var _chunkST7E3NEEcjs = require('./chunk-ST7E3NEE.cjs');
54
54
 
55
55
 
56
56
 
57
- var _chunkMUUXNRU4cjs = require('./chunk-MUUXNRU4.cjs');
57
+ var _chunkEJVDBITDcjs = require('./chunk-EJVDBITD.cjs');
58
58
 
59
59
 
60
60
 
@@ -118,7 +118,7 @@ var _chunk643B2HKCcjs = require('./chunk-643B2HKC.cjs');
118
118
 
119
119
 
120
120
 
121
- var _chunkLPLCWZTMcjs = require('./chunk-LPLCWZTM.cjs');
121
+ var _chunkFODKPD44cjs = require('./chunk-FODKPD44.cjs');
122
122
 
123
123
 
124
124
 
@@ -1137,7 +1137,7 @@ function smoothCoverage(m, w, h, r) {
1137
1137
  return src;
1138
1138
  }
1139
1139
  function featherCoverage(m, w, h, radius) {
1140
- const out = _chunkST7E3NEEcjs.gaussianBlur.call(void 0, m, w, h, Number.isFinite(radius) ? Math.max(0, radius) : 0, "zero");
1140
+ const out = _chunkPAOWHJ5Ocjs.gaussianBlur.call(void 0, m, w, h, Number.isFinite(radius) ? Math.max(0, radius) : 0, "zero");
1141
1141
  for (let i = 0; i < out.length; i++) if (Math.abs(out[i]) < 1e-7) out[i] = 0;
1142
1142
  return out;
1143
1143
  }
@@ -1285,7 +1285,7 @@ function layerMaskCoverage(mask) {
1285
1285
  let v = new Float32Array(sel.data.length);
1286
1286
  for (let i = 0; i < v.length; i++) v[i] = sel.data[i] / 255;
1287
1287
  const feather = _nullishCoalesce(mask.feather, () => ( 0));
1288
- if (feather > 0) v = _chunkST7E3NEEcjs.gaussianBlur.call(void 0, v, mask.width, mask.height, feather, "clamp");
1288
+ if (feather > 0) v = _chunkPAOWHJ5Ocjs.gaussianBlur.call(void 0, v, mask.width, mask.height, feather, "clamp");
1289
1289
  const density = _nullishCoalesce(mask.density, () => ( 1));
1290
1290
  if (density !== 1) for (let i = 0; i < v.length; i++) v[i] = 1 - density * (1 - v[i]);
1291
1291
  return v;
@@ -1528,7 +1528,7 @@ function normalizeAdjustmentLayers(raw) {
1528
1528
  return out;
1529
1529
  }
1530
1530
  function curveLutFromLevels(points) {
1531
- return _chunkST7E3NEEcjs.curveLut.call(void 0, points.map((p) => ({ input: p.input / 255, output: p.output / 255 })));
1531
+ return _chunkPAOWHJ5Ocjs.curveLut.call(void 0, points.map((p) => ({ input: p.input / 255, output: p.output / 255 })));
1532
1532
  }
1533
1533
  var toUnitLevels = (c) => ({
1534
1534
  inBlack: c.inBlack / 255,
@@ -2282,7 +2282,7 @@ function newLayerId(prefix = "layer") {
2282
2282
  return `${prefix}_${Date.now().toString(36)}_${(++idCounter).toString(36)}`;
2283
2283
  }
2284
2284
  function pixelLayers(layers) {
2285
- return _chunkST7E3NEEcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
2285
+ return _chunkPAOWHJ5Ocjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
2286
2286
  }
2287
2287
  function developFilter(layer) {
2288
2288
  return _optionalChain([layer, 'access', _10 => _10.filters, 'optionalAccess', _11 => _11.find, 'call', _12 => _12((f) => f.kind === "develop")]);
@@ -2313,10 +2313,10 @@ function isRenderedLayer(layer) {
2313
2313
  return layer.type === "smart" || layer.type === "shape" || layer.type === "type";
2314
2314
  }
2315
2315
  function shapeLayers(layers) {
2316
- return _chunkST7E3NEEcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "shape");
2316
+ return _chunkPAOWHJ5Ocjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "shape");
2317
2317
  }
2318
2318
  function smartObjectLayers(layers) {
2319
- return _chunkST7E3NEEcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart");
2319
+ return _chunkPAOWHJ5Ocjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart");
2320
2320
  }
2321
2321
 
2322
2322
  // src/image-editor/layers/compositor.ts
@@ -2422,13 +2422,13 @@ var PHOTO_PROFILE = {
2422
2422
  return v;
2423
2423
  }
2424
2424
  };
2425
- var LayerCompositor = class extends _chunkST7E3NEEcjs.RasterCompositor {
2425
+ var LayerCompositor = class extends _chunkPAOWHJ5Ocjs.RasterCompositor {
2426
2426
  constructor(options = {}) {
2427
2427
  super(PHOTO_PROFILE, options);
2428
2428
  }
2429
2429
  };
2430
2430
  function compositeDeep(layers, rect, sources, depth) {
2431
- const deep = new (0, _chunkST7E3NEEcjs.DeepCompositor)(new LayerCompositor(), PHOTO_PROFILE, {
2431
+ const deep = new (0, _chunkPAOWHJ5Ocjs.DeepCompositor)(new LayerCompositor(), PHOTO_PROFILE, {
2432
2432
  applyFilterRunDeep: (run, acc, _r, masks) => applyAdjustmentLayersFloat(acc, run.map(adjustmentNodeAsLayer), masks)
2433
2433
  }, depth);
2434
2434
  return deep.composite(layers, rect, sources);
@@ -2974,47 +2974,47 @@ var fail = (message) => {
2974
2974
  throw new LayerOperationError(message);
2975
2975
  };
2976
2976
  function requireLayer(layers, id) {
2977
- const loc = _chunkST7E3NEEcjs.findLayer.call(void 0, layers, id);
2977
+ const loc = _chunkPAOWHJ5Ocjs.findLayer.call(void 0, layers, id);
2978
2978
  if (!loc) {
2979
- const ids = _chunkST7E3NEEcjs.flattenLayers.call(void 0, layers).map((l) => l.id);
2979
+ const ids = _chunkPAOWHJ5Ocjs.flattenLayers.call(void 0, layers).map((l) => l.id);
2980
2980
  fail(`Unknown layer "${id}". ${ids.length ? `Layers: ${ids.join(", ")}.` : "The document has no layers."} Call list_layers for ids.`);
2981
2981
  }
2982
2982
  return loc;
2983
2983
  }
2984
2984
  function requireUnlocked(layer, what, action) {
2985
- if (_chunkST7E3NEEcjs.isLayerLocked.call(void 0, layer, "all")) fail(`Layer "${layer.name || layer.id}" is locked (all); unlock it before you ${action}.`);
2986
- if (what !== "all" && _chunkST7E3NEEcjs.isLayerLocked.call(void 0, layer, what)) fail(`Layer "${layer.name || layer.id}" has its ${what} locked; unlock it before you ${action}.`);
2985
+ if (_chunkPAOWHJ5Ocjs.isLayerLocked.call(void 0, layer, "all")) fail(`Layer "${layer.name || layer.id}" is locked (all); unlock it before you ${action}.`);
2986
+ if (what !== "all" && _chunkPAOWHJ5Ocjs.isLayerLocked.call(void 0, layer, what)) fail(`Layer "${layer.name || layer.id}" has its ${what} locked; unlock it before you ${action}.`);
2987
2987
  }
2988
2988
  function placeLayer(layers, layer, placement = {}, defaultIndex) {
2989
2989
  const given = [placement.aboveId, placement.belowId, placement.parentId].filter((v) => v !== void 0).length;
2990
2990
  if (given > 1) fail("Give only one of aboveId, belowId and parentId.");
2991
2991
  if (placement.aboveId || placement.belowId) {
2992
2992
  const ref = requireLayer(layers, _nullishCoalesce(placement.aboveId, () => ( placement.belowId)));
2993
- return _chunkST7E3NEEcjs.insertLayer.call(void 0, layers, layer, _nullishCoalesce(_optionalChain([ref, 'access', _21 => _21.parent, 'optionalAccess', _22 => _22.id]), () => ( null)), ref.index + (placement.aboveId ? 1 : 0));
2993
+ return _chunkPAOWHJ5Ocjs.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
2994
  }
2995
2995
  if (placement.parentId) {
2996
2996
  const ref = requireLayer(layers, placement.parentId);
2997
2997
  if (ref.layer.type !== "group") fail(`Layer "${placement.parentId}" is not a group; parentId must be a group id.`);
2998
- return _chunkST7E3NEEcjs.insertLayer.call(void 0, layers, layer, ref.layer.id, placement.index);
2998
+ return _chunkPAOWHJ5Ocjs.insertLayer.call(void 0, layers, layer, ref.layer.id, placement.index);
2999
2999
  }
3000
- return _chunkST7E3NEEcjs.insertLayer.call(void 0, layers, layer, null, _nullishCoalesce(placement.index, () => ( defaultIndex)));
3000
+ return _chunkPAOWHJ5Ocjs.insertLayer.call(void 0, layers, layer, null, _nullishCoalesce(placement.index, () => ( defaultIndex)));
3001
3001
  }
3002
3002
  function removeLayer(layers, id) {
3003
3003
  const loc = requireLayer(layers, id);
3004
3004
  requireUnlocked(loc.layer, "all", "delete it");
3005
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => null);
3005
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => null);
3006
3006
  }
3007
3007
  function moveLayer(layers, id, placement) {
3008
3008
  const loc = requireLayer(layers, id);
3009
3009
  requireUnlocked(loc.layer, "all", "move it");
3010
3010
  const target = _nullishCoalesce(_nullishCoalesce(placement.aboveId, () => ( placement.belowId)), () => ( placement.parentId));
3011
3011
  if (target === id) fail("A layer cannot be placed relative to itself.");
3012
- if (target && loc.layer.type === "group" && _chunkST7E3NEEcjs.flattenLayers.call(void 0, loc.layer.children).some((l) => l.id === target)) {
3012
+ if (target && loc.layer.type === "group" && _chunkPAOWHJ5Ocjs.flattenLayers.call(void 0, loc.layer.children).some((l) => l.id === target)) {
3013
3013
  fail(`Group "${id}" cannot be moved into its own child "${target}".`);
3014
3014
  }
3015
3015
  if (target) requireLayer(layers, target);
3016
3016
  if (!target && placement.index === void 0) fail("Give aboveId, belowId, parentId or index.");
3017
- const without = _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => null);
3017
+ const without = _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => null);
3018
3018
  return placeLayer(without, loc.layer, placement);
3019
3019
  }
3020
3020
  function withNewIds(layer) {
@@ -3033,7 +3033,7 @@ function duplicateLayer(layers, id, name) {
3033
3033
  const copy = withNewIds(loc.layer);
3034
3034
  copy.name = _nullishCoalesce(name, () => ( `${loc.layer.name || "Layer"} copy`));
3035
3035
  delete copy.locks;
3036
- return { layers: _chunkST7E3NEEcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _25 => _25.parent, 'optionalAccess', _26 => _26.id]), () => ( null)), loc.index + 1), id: copy.id };
3036
+ return { layers: _chunkPAOWHJ5Ocjs.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
3037
  }
3038
3038
  function setLayerProperties(layers, id, props) {
3039
3039
  const loc = requireLayer(layers, id);
@@ -3080,7 +3080,7 @@ function setLayerProperties(layers, id, props) {
3080
3080
  if (props.collapsed) g.collapsed = true;
3081
3081
  else delete g.collapsed;
3082
3082
  }
3083
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next);
3083
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next);
3084
3084
  }
3085
3085
  function groupLayers(layers, ids, name = "Group") {
3086
3086
  if (!ids.length) fail("Give at least one layer id to group.");
@@ -3109,17 +3109,17 @@ function groupLayers(layers, ids, name = "Group") {
3109
3109
  group.children[0] = c;
3110
3110
  }
3111
3111
  let out = layers;
3112
- for (const l of ordered) out = _chunkST7E3NEEcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
3113
- return { layers: _chunkST7E3NEEcjs.insertLayer.call(void 0, out, group, parent, top - below), id: group.id };
3112
+ for (const l of ordered) out = _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, out, l.layer.id, () => null);
3113
+ return { layers: _chunkPAOWHJ5Ocjs.insertLayer.call(void 0, out, group, parent, top - below), id: group.id };
3114
3114
  }
3115
3115
  function ungroupLayer(layers, id) {
3116
3116
  const loc = requireLayer(layers, id);
3117
3117
  if (loc.layer.type !== "group") fail(`Layer "${id}" is not a group.`);
3118
3118
  requireUnlocked(loc.layer, "all", "ungroup it");
3119
3119
  const group = loc.layer;
3120
- let out = _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => null);
3120
+ let out = _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => null);
3121
3121
  group.children.forEach((c, i) => {
3122
- out = _chunkST7E3NEEcjs.insertLayer.call(void 0, out, c, _nullishCoalesce(_optionalChain([loc, 'access', _35 => _35.parent, 'optionalAccess', _36 => _36.id]), () => ( null)), loc.index + i);
3122
+ out = _chunkPAOWHJ5Ocjs.insertLayer.call(void 0, out, c, _nullishCoalesce(_optionalChain([loc, 'access', _35 => _35.parent, 'optionalAccess', _36 => _36.id]), () => ( null)), loc.index + i);
3123
3123
  });
3124
3124
  return { layers: out, ids: group.children.map((c) => c.id) };
3125
3125
  }
@@ -3134,12 +3134,12 @@ function offsetLayer(layers, id, offset) {
3134
3134
  if (mask && mask.linked === false && !mask.source) {
3135
3135
  next.mask = { ...mask, surface: _chunkTFOPHZ3Ucjs.translateSurface.call(void 0, mask.surface, layer.offset.x - next.offset.x, layer.offset.y - next.offset.y) };
3136
3136
  }
3137
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next);
3137
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next);
3138
3138
  }
3139
3139
  function setLayerMask(layers, id, mask) {
3140
3140
  const loc = requireLayer(layers, id);
3141
3141
  requireUnlocked(loc.layer, "all", "change its mask");
3142
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, (l) => {
3142
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, (l) => {
3143
3143
  const next = { ...l };
3144
3144
  if (mask) next.mask = mask;
3145
3145
  else delete next.mask;
@@ -3178,7 +3178,7 @@ function requirePixelLayer(layers, id) {
3178
3178
  function addLayerFilter(layers, id, filter) {
3179
3179
  const layer = requirePixelLayer(layers, id);
3180
3180
  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 _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters: [..._nullishCoalesce(layer.filters, () => ( [])), filter] }));
3181
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters: [..._nullishCoalesce(layer.filters, () => ( [])), filter] }));
3182
3182
  }
3183
3183
  function updateLayerFilter(layers, id, filterId, changes) {
3184
3184
  const layer = requirePixelLayer(layers, id);
@@ -3189,7 +3189,7 @@ function updateLayerFilter(layers, id, filterId, changes) {
3189
3189
  const merged2 = normalizeFilter({ ...current, ...changes, kind: current.kind }, current.id);
3190
3190
  const filters = [...layer.filters];
3191
3191
  filters[i] = merged2;
3192
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters }));
3192
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters }));
3193
3193
  }
3194
3194
  function removeLayerFilter(layers, id, filterId) {
3195
3195
  const layer = requirePixelLayer(layers, id);
@@ -3198,7 +3198,7 @@ function removeLayerFilter(layers, id, filterId) {
3198
3198
  const next = { ...layer };
3199
3199
  if (filters.length) next.filters = filters;
3200
3200
  else delete next.filters;
3201
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next);
3201
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next);
3202
3202
  }
3203
3203
  function requireEffectLayer(layers, id, action) {
3204
3204
  const layer = requireLayer(layers, id).layer;
@@ -3213,7 +3213,7 @@ function guard(fn) {
3213
3213
  try {
3214
3214
  return fn();
3215
3215
  } catch (e) {
3216
- if (e instanceof _chunkST7E3NEEcjs.LayerEffectError) fail(e.message);
3216
+ if (e instanceof _chunkPAOWHJ5Ocjs.LayerEffectError) fail(e.message);
3217
3217
  throw e;
3218
3218
  }
3219
3219
  }
@@ -3221,20 +3221,20 @@ function setLayerEffects(layers, id, effects) {
3221
3221
  const layer = requireEffectLayer(layers, id, "change its effects");
3222
3222
  const next = { ...layer };
3223
3223
  if (effects && (effects.items.length || effects.psd || effects.scale !== void 0 || !effects.enabled)) {
3224
- guard(() => _chunkST7E3NEEcjs.validateLayerEffects.call(void 0, effects));
3224
+ guard(() => _chunkPAOWHJ5Ocjs.validateLayerEffects.call(void 0, effects));
3225
3225
  next.effects = effects;
3226
3226
  } else delete next.effects;
3227
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next);
3227
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next);
3228
3228
  }
3229
3229
  function addLayerEffect(layers, id, kind, params = {}, index) {
3230
- if (!_chunkST7E3NEEcjs.isLayerEffectKind.call(void 0, kind)) fail(`Unknown effect kind "${String(kind)}". Kinds: ${_chunkST7E3NEEcjs.LAYER_EFFECT_KINDS.join(", ")}.`);
3230
+ if (!_chunkPAOWHJ5Ocjs.isLayerEffectKind.call(void 0, kind)) fail(`Unknown effect kind "${String(kind)}". Kinds: ${_chunkPAOWHJ5Ocjs.LAYER_EFFECT_KINDS.join(", ")}.`);
3231
3231
  const layer = requireEffectLayer(layers, id, "add effects");
3232
3232
  const current = layerEffectsOf(layer);
3233
3233
  const ids = new Set(current.items.map((e) => e.id));
3234
- let effectId = _chunkST7E3NEEcjs.newEffectId.call(void 0, );
3235
- while (ids.has(effectId)) effectId = _chunkST7E3NEEcjs.newEffectId.call(void 0, );
3234
+ let effectId = _chunkPAOWHJ5Ocjs.newEffectId.call(void 0, );
3235
+ while (ids.has(effectId)) effectId = _chunkPAOWHJ5Ocjs.newEffectId.call(void 0, );
3236
3236
  const { id: _ignored, kind: _kind, ...rest } = params;
3237
- const effect = guard(() => _chunkST7E3NEEcjs.mergeLayerEffect.call(void 0, _chunkST7E3NEEcjs.defaultLayerEffect.call(void 0, kind, effectId), rest));
3237
+ const effect = guard(() => _chunkPAOWHJ5Ocjs.mergeLayerEffect.call(void 0, _chunkPAOWHJ5Ocjs.defaultLayerEffect.call(void 0, kind, effectId), rest));
3238
3238
  const items = [...current.items];
3239
3239
  const at = index === void 0 ? items.length : Math.max(0, Math.min(items.length, Math.floor(index)));
3240
3240
  items.splice(at, 0, effect);
@@ -3251,7 +3251,7 @@ function updateLayerEffect(layers, id, effectId, changes) {
3251
3251
  const i = requireEffect(layer, effectId);
3252
3252
  const current = layer.effects;
3253
3253
  const items = [...current.items];
3254
- items[i] = guard(() => _chunkST7E3NEEcjs.mergeLayerEffect.call(void 0, items[i], changes));
3254
+ items[i] = guard(() => _chunkPAOWHJ5Ocjs.mergeLayerEffect.call(void 0, items[i], changes));
3255
3255
  return setLayerEffects(layers, id, { ...current, items });
3256
3256
  }
3257
3257
  function removeLayerEffect(layers, id, effectId) {
@@ -3286,7 +3286,7 @@ function unionRect(a, b) {
3286
3286
  }
3287
3287
 
3288
3288
  // src/image-editor/layers/shape.ts
3289
- var SHAPE_RENDER_MARGIN = _chunkST7E3NEEcjs.MAX_EFFECT_REACH;
3289
+ var SHAPE_RENDER_MARGIN = _chunkPAOWHJ5Ocjs.MAX_EFFECT_REACH;
3290
3290
  var DEFAULT_MITER_LIMIT = 100;
3291
3291
  var fail2 = (message) => {
3292
3292
  throw new LayerOperationError(message);
@@ -3326,7 +3326,7 @@ function mapAnchor(a, f) {
3326
3326
  return out;
3327
3327
  }
3328
3328
  function mapSubpaths(subpaths, f) {
3329
- return _chunkLPLCWZTMcjs.expandVectorCorners.call(void 0, subpaths).map((sp) => ({ closed: sp.closed, anchors: sp.anchors.map((a) => mapAnchor(a, f)) }));
3329
+ return _chunkFODKPD44cjs.expandVectorCorners.call(void 0, subpaths).map((sp) => ({ closed: sp.closed, anchors: sp.anchors.map((a) => mapAnchor(a, f)) }));
3330
3330
  }
3331
3331
  function liveShapeSubpaths(live) {
3332
3332
  let out;
@@ -3334,19 +3334,19 @@ function liveShapeSubpaths(live) {
3334
3334
  case "rect": {
3335
3335
  const x = Math.min(live.x, live.x + live.width);
3336
3336
  const y = Math.min(live.y, live.y + live.height);
3337
- const sp = _chunkLPLCWZTMcjs.rectSubpath.call(void 0, { x, y, width: Math.abs(live.width), height: Math.abs(live.height) });
3337
+ const sp = _chunkFODKPD44cjs.rectSubpath.call(void 0, { x, y, width: Math.abs(live.width), height: Math.abs(live.height) });
3338
3338
  const r = _nullishCoalesce(live.radii, () => ( [0, 0, 0, 0]));
3339
- out = [{ closed: true, anchors: sp.anchors.map((a, i) => r[i] > 0 ? _chunkLPLCWZTMcjs.setAnchorCorner.call(void 0, a, r[i]) : a) }];
3339
+ out = [{ closed: true, anchors: sp.anchors.map((a, i) => r[i] > 0 ? _chunkFODKPD44cjs.setAnchorCorner.call(void 0, a, r[i]) : a) }];
3340
3340
  break;
3341
3341
  }
3342
3342
  case "ellipse":
3343
- out = [_chunkLPLCWZTMcjs.ellipseSubpath.call(void 0, normBox(live))];
3343
+ out = [_chunkFODKPD44cjs.ellipseSubpath.call(void 0, normBox(live))];
3344
3344
  break;
3345
3345
  case "polygon":
3346
- out = [_chunkLPLCWZTMcjs.polygonSubpath.call(void 0, normBox(live), live.sides)];
3346
+ out = [_chunkFODKPD44cjs.polygonSubpath.call(void 0, normBox(live), live.sides)];
3347
3347
  break;
3348
3348
  case "star":
3349
- out = [_chunkLPLCWZTMcjs.starSubpath.call(void 0, normBox(live), live.points, Math.max(0, Math.min(1, live.innerRatio)))];
3349
+ out = [_chunkFODKPD44cjs.starSubpath.call(void 0, normBox(live), live.points, Math.max(0, Math.min(1, live.innerRatio)))];
3350
3350
  break;
3351
3351
  case "line": {
3352
3352
  const a = { x: live.x1, y: live.y1 };
@@ -3369,7 +3369,7 @@ function liveShapeSubpaths(live) {
3369
3369
  }
3370
3370
  }
3371
3371
  const m = live.transform;
3372
- return m && !_chunkLPLCWZTMcjs.isIdentityMatrix.call(void 0, m) ? mapSubpaths(out, (p) => _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, p)) : out;
3372
+ return m && !_chunkFODKPD44cjs.isIdentityMatrix.call(void 0, m) ? mapSubpaths(out, (p) => _chunkFODKPD44cjs.applyMatrix.call(void 0, m, p)) : out;
3373
3373
  }
3374
3374
  function normBox(b) {
3375
3375
  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 +3381,7 @@ var pathCache = /* @__PURE__ */ new WeakMap();
3381
3381
  function componentPath(c) {
3382
3382
  let p = pathCache.get(c.subpaths);
3383
3383
  if (!p) {
3384
- p = _chunkLPLCWZTMcjs.subpathsToBezier.call(void 0, c.subpaths);
3384
+ p = _chunkFODKPD44cjs.subpathsToBezier.call(void 0, c.subpaths);
3385
3385
  pathCache.set(c.subpaths, p);
3386
3386
  }
3387
3387
  return p;
@@ -3502,11 +3502,11 @@ function fillCoverage(geo, rect, rule, inverted = false) {
3502
3502
  function paintContext(env) {
3503
3503
  const tiles = /* @__PURE__ */ new Map();
3504
3504
  return {
3505
- light: _chunkST7E3NEEcjs.DEFAULT_GLOBAL_LIGHT,
3505
+ light: _chunkPAOWHJ5Ocjs.DEFAULT_GLOBAL_LIGHT,
3506
3506
  pattern: (id) => {
3507
3507
  if (tiles.has(id)) return tiles.get(id);
3508
- const p = _nullishCoalesce(_optionalChain([env, 'access', _44 => _44.pattern, 'optionalCall', _45 => _45(id)]), () => ( _chunkST7E3NEEcjs.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, _chunkST7E3NEEcjs.PatternTile)(p) : null;
3508
+ const p = _nullishCoalesce(_optionalChain([env, 'access', _44 => _44.pattern, 'optionalCall', _45 => _45(id)]), () => ( _chunkPAOWHJ5Ocjs.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, _chunkPAOWHJ5Ocjs.PatternTile)(p) : null;
3510
3510
  tiles.set(id, t);
3511
3511
  return t;
3512
3512
  }
@@ -3537,9 +3537,9 @@ function renderShapeRect(layer, rect, env, ctx = paintContext(env)) {
3537
3537
  if (!fCov && !sCov) return null;
3538
3538
  const canvas = { x: 0, y: 0, width: env.width, height: env.height };
3539
3539
  const anchor = { x: geo.frame.x, y: geo.frame.y };
3540
- const fc = fCov ? _chunkST7E3NEEcjs.effectFillColors.call(void 0, layer.fill, rect, geo.frame, canvas, anchor, ctx) : null;
3540
+ const fc = fCov ? _chunkPAOWHJ5Ocjs.effectFillColors.call(void 0, layer.fill, rect, geo.frame, canvas, anchor, ctx) : null;
3541
3541
  const fo = _nullishCoalesce(_optionalChain([layer, 'access', _46 => _46.fill, 'optionalAccess', _47 => _47.opacity]), () => ( 1));
3542
- const sc = sCov ? _chunkST7E3NEEcjs.effectFillColors.call(void 0, layer.stroke.paint, rect, geo.frame, canvas, anchor, ctx) : null;
3542
+ const sc = sCov ? _chunkPAOWHJ5Ocjs.effectFillColors.call(void 0, layer.stroke.paint, rect, geo.frame, canvas, anchor, ctx) : null;
3543
3543
  const so = _nullishCoalesce(_optionalChain([layer, 'access', _48 => _48.stroke, 'optionalAccess', _49 => _49.paint, 'access', _50 => _50.opacity]), () => ( 1));
3544
3544
  const out = new Uint8ClampedArray(n * 4);
3545
3545
  let any = false;
@@ -3632,9 +3632,9 @@ function normalizeShapePaint(v, path = "paint") {
3632
3632
  offset: _nullishCoalesce(g.offset, () => ( { x: 0, y: 0 }))
3633
3633
  };
3634
3634
  try {
3635
- _chunkST7E3NEEcjs.validateEffectGradient.call(void 0, gradient, `${path}.gradient`);
3635
+ _chunkPAOWHJ5Ocjs.validateEffectGradient.call(void 0, gradient, `${path}.gradient`);
3636
3636
  } catch (e) {
3637
- if (e instanceof _chunkST7E3NEEcjs.LayerEffectError) fail2(e.message);
3637
+ if (e instanceof _chunkPAOWHJ5Ocjs.LayerEffectError) fail2(e.message);
3638
3638
  throw e;
3639
3639
  }
3640
3640
  if (gradient.stops.length < 1) fail2(`${path}.gradient.stops needs at least one { position, color }.`);
@@ -3704,7 +3704,7 @@ function matrixArg(v, path) {
3704
3704
  if (!Array.isArray(v) || v.length !== 6 || !v.every(isNum)) fail2(`${path} must be six numbers [a, b, c, d, e, f].`);
3705
3705
  const m = v;
3706
3706
  if (Math.abs(m[0] * m[3] - m[1] * m[2]) < 1e-12) fail2(`${path} is singular.`);
3707
- return _chunkLPLCWZTMcjs.isIdentityMatrix.call(void 0, m) ? void 0 : [...m];
3707
+ return _chunkFODKPD44cjs.isIdentityMatrix.call(void 0, m) ? void 0 : [...m];
3708
3708
  }
3709
3709
  function normalizeLiveShape(v, path = "shape") {
3710
3710
  if (!v || typeof v !== "object") return fail2(`${path} must be an object with kind ${LIVE_SHAPE_KINDS.join(", ")}.`);
@@ -3765,7 +3765,7 @@ function normalizeSubpaths(v, path = "subpaths") {
3765
3765
  if (typeof v === "string") {
3766
3766
  let subs;
3767
3767
  try {
3768
- subs = _chunkLPLCWZTMcjs.bezierToSubpaths.call(void 0, v);
3768
+ subs = _chunkFODKPD44cjs.bezierToSubpaths.call(void 0, v);
3769
3769
  } catch (e5) {
3770
3770
  return fail2(`${path}: could not read the SVG path data.`);
3771
3771
  }
@@ -3846,20 +3846,20 @@ function updateShapeLayer(layers, id, change, env, action = "edit it") {
3846
3846
  if (!("annotation" in patch)) delete next.annotation;
3847
3847
  if (!next.components.length) fail2("A shape needs at least one component; delete the layer instead.");
3848
3848
  const rendered = rerenderShape(next, env);
3849
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
3849
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
3850
3850
  }
3851
3851
  function transformShapeComponents(components, f, affine) {
3852
3852
  return components.map((c) => {
3853
3853
  if (affine && c.live) {
3854
- const live = { ...c.live, transform: _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, _nullishCoalesce(c.live.transform, () => ( _chunkLPLCWZTMcjs.IDENTITY_MATRIX)), affine) };
3855
- if (_chunkLPLCWZTMcjs.isIdentityMatrix.call(void 0, live.transform)) delete live.transform;
3854
+ const live = { ...c.live, transform: _chunkFODKPD44cjs.multiplyMatrices.call(void 0, _nullishCoalesce(c.live.transform, () => ( _chunkFODKPD44cjs.IDENTITY_MATRIX)), affine) };
3855
+ if (_chunkFODKPD44cjs.isIdentityMatrix.call(void 0, live.transform)) delete live.transform;
3856
3856
  return { op: c.op, subpaths: liveShapeSubpaths(live), live };
3857
3857
  }
3858
3858
  return { op: c.op, subpaths: mapSubpaths(c.subpaths, f) };
3859
3859
  });
3860
3860
  }
3861
3861
  function offsetShape(layer, dx, dy, env) {
3862
- const m = _chunkLPLCWZTMcjs.translateMatrix.call(void 0, dx, dy);
3862
+ const m = _chunkFODKPD44cjs.translateMatrix.call(void 0, dx, dy);
3863
3863
  const next = { ...layer, components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), m) };
3864
3864
  delete next.annotation;
3865
3865
  return rerenderShape(next, env);
@@ -3867,7 +3867,7 @@ function offsetShape(layer, dx, dy, env) {
3867
3867
  function mergeShapeComponents(components, fillRule = "nonzero") {
3868
3868
  if (components.length < 2) return [...components];
3869
3869
  const path = shapeOutline(components, fillRule);
3870
- const subpaths = _chunkLPLCWZTMcjs.bezierToSubpaths.call(void 0, path);
3870
+ const subpaths = _chunkFODKPD44cjs.bezierToSubpaths.call(void 0, path);
3871
3871
  if (!subpaths.length) fail2("The components combine to nothing (the operations remove every area), so there is nothing to merge into.");
3872
3872
  return [{ op: "combine", subpaths }];
3873
3873
  }
@@ -3877,14 +3877,14 @@ function shapeAsPixelLayer(layer) {
3877
3877
  }
3878
3878
  function annotationPaint(color, opacity) {
3879
3879
  const c = parseCssColor(color);
3880
- if (!c || !_chunkST7E3NEEcjs.parseEffectColor.call(void 0, c.hex)) return void 0;
3880
+ if (!c || !_chunkPAOWHJ5Ocjs.parseEffectColor.call(void 0, c.hex)) return void 0;
3881
3881
  const a = c.alpha * opacity;
3882
3882
  return a !== 1 ? { type: "color", color: c.hex, opacity: a } : { type: "color", color: c.hex };
3883
3883
  }
3884
3884
  function shapeFromAnnotation(a) {
3885
3885
  const opacity = _nullishCoalesce(a.opacity, () => ( 1));
3886
3886
  const lineWidth = "strokeWidth" in a && a.strokeWidth > 0 ? a.strokeWidth : 1;
3887
- const rotation = a.rotation ? _chunkLPLCWZTMcjs.rotateMatrix.call(void 0, a.rotation, { x: a.x, y: a.y }) : void 0;
3887
+ const rotation = a.rotation ? _chunkFODKPD44cjs.rotateMatrix.call(void 0, a.rotation, { x: a.x, y: a.y }) : void 0;
3888
3888
  const t = rotation ? { transform: rotation } : {};
3889
3889
  const live = (l) => liveComponent(l);
3890
3890
  switch (a.type) {
@@ -3927,7 +3927,7 @@ function shapeFromAnnotation(a) {
3927
3927
  case "pen": {
3928
3928
  const paint = annotationPaint(a.strokeColor, opacity);
3929
3929
  if (!paint) return null;
3930
- const pts = rotation ? a.points.map((p) => _chunkLPLCWZTMcjs.applyMatrix.call(void 0, rotation, p)) : a.points;
3930
+ const pts = rotation ? a.points.map((p) => _chunkFODKPD44cjs.applyMatrix.call(void 0, rotation, p)) : a.points;
3931
3931
  const subpaths = pts.length > 1 ? [{ closed: false, anchors: pts.map((p) => ({ x: p.x, y: p.y })) }] : [];
3932
3932
  return {
3933
3933
  components: [{ op: "combine", subpaths }],
@@ -3958,9 +3958,9 @@ function annotationOfShape(layer) {
3958
3958
  var fail3 = (message) => {
3959
3959
  throw new LayerOperationError(message);
3960
3960
  };
3961
- var TEXT_RENDER_MARGIN = _chunkST7E3NEEcjs.MAX_EFFECT_REACH;
3961
+ var TEXT_RENDER_MARGIN = _chunkPAOWHJ5Ocjs.MAX_EFFECT_REACH;
3962
3962
  function textMatrix(layer) {
3963
- return _nullishCoalesce(layer.transform, () => ( _chunkLPLCWZTMcjs.IDENTITY_MATRIX));
3963
+ return _nullishCoalesce(layer.transform, () => ( _chunkFODKPD44cjs.IDENTITY_MATRIX));
3964
3964
  }
3965
3965
  function rectCorners(r) {
3966
3966
  return [
@@ -3971,7 +3971,7 @@ function rectCorners(r) {
3971
3971
  ];
3972
3972
  }
3973
3973
  function docRect(r, m) {
3974
- const pts = rectCorners(r).map((p) => _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, p));
3974
+ const pts = rectCorners(r).map((p) => _chunkFODKPD44cjs.applyMatrix.call(void 0, m, p));
3975
3975
  const x0 = Math.floor(Math.min(...pts.map((p) => p.x)));
3976
3976
  const y0 = Math.floor(Math.min(...pts.map((p) => p.y)));
3977
3977
  const x1 = Math.ceil(Math.max(...pts.map((p) => p.x)));
@@ -4004,14 +4004,14 @@ function inkBounds(layout) {
4004
4004
  }
4005
4005
  function textOutlines(layer, shaper) {
4006
4006
  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 = _chunkLPLCWZTMcjs.layoutText.call(void 0, layer, shaper);
4007
+ const layout = _chunkFODKPD44cjs.layoutText.call(void 0, layer, shaper);
4008
4008
  const m = textMatrix(layer);
4009
4009
  const out = [];
4010
4010
  for (const l of layout.lines) {
4011
4011
  for (const f of l.fragments) {
4012
- let path = _chunkLPLCWZTMcjs.textFragmentOutline.call(void 0, shaper, layer.text, f);
4013
- for (const r of _chunkLPLCWZTMcjs.textDecorations.call(void 0, f, l)) path = [...path, ..._chunkLPLCWZTMcjs.textRectPath.call(void 0, r)];
4014
- out.push({ fragment: f, path: _chunkLPLCWZTMcjs.isIdentityMatrix.call(void 0, m) ? path : _chunkXGD3FSNCcjs.transformBezierPath.call(void 0, path, m) });
4012
+ let path = _chunkFODKPD44cjs.textFragmentOutline.call(void 0, shaper, layer.text, f);
4013
+ for (const r of _chunkFODKPD44cjs.textDecorations.call(void 0, f, l)) path = [...path, ..._chunkFODKPD44cjs.textRectPath.call(void 0, r)];
4014
+ out.push({ fragment: f, path: _chunkFODKPD44cjs.isIdentityMatrix.call(void 0, m) ? path : _chunkXGD3FSNCcjs.transformBezierPath.call(void 0, path, m) });
4015
4015
  }
4016
4016
  }
4017
4017
  return out;
@@ -4067,7 +4067,7 @@ function renderOnCanvas(layer, shaper, region, env) {
4067
4067
  const canvas = env.createCanvas(region.width, region.height);
4068
4068
  const ctx = canvas.getContext("2d");
4069
4069
  if (!ctx || typeof ctx.getImageData !== "function") return null;
4070
- const layout = _chunkLPLCWZTMcjs.layoutText.call(void 0, layer, shaper);
4070
+ const layout = _chunkFODKPD44cjs.layoutText.call(void 0, layer, shaper);
4071
4071
  const m = textMatrix(layer);
4072
4072
  ctx.setTransform(1, 0, 0, 1, 0, 0);
4073
4073
  ctx.clearRect(0, 0, region.width, region.height);
@@ -4079,8 +4079,8 @@ function renderOnCanvas(layer, shaper, region, env) {
4079
4079
  ctx.globalAlpha = _nullishCoalesce(f.style.opacity, () => ( 1));
4080
4080
  const s = layer.text.slice(f.start, f.end);
4081
4081
  if (!f.spaced) shaper.draw(ctx, s, f.font, f.x, f.y);
4082
- else for (let k = 0; k < s.length; k++) if (!_chunkLPLCWZTMcjs.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 _chunkLPLCWZTMcjs.textDecorations.call(void 0, f, l)) ctx.fillRect(d.x, d.y, d.width, d.height);
4082
+ else for (let k = 0; k < s.length; k++) if (!_chunkFODKPD44cjs.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 _chunkFODKPD44cjs.textDecorations.call(void 0, f, l)) ctx.fillRect(d.x, d.y, d.width, d.height);
4084
4084
  }
4085
4085
  }
4086
4086
  ctx.globalAlpha = 1;
@@ -4091,7 +4091,7 @@ function renderOnCanvas(layer, shaper, region, env) {
4091
4091
  function renderText(layer, env) {
4092
4092
  const shaper = env.shaper;
4093
4093
  if (!shaper || !shaper.outline && !shaper.draw) return null;
4094
- const layout = _chunkLPLCWZTMcjs.layoutText.call(void 0, layer, shaper);
4094
+ const layout = _chunkFODKPD44cjs.layoutText.call(void 0, layer, shaper);
4095
4095
  const ink = inkBounds(layout);
4096
4096
  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
4097
  const region = ink ? intersect2(docRect(ink, textMatrix(layer)), clip) : null;
@@ -4186,7 +4186,7 @@ function patchParagraphStyle(base, patch, path = "paragraph") {
4186
4186
  continue;
4187
4187
  }
4188
4188
  const value = k === "autoLeading" ? num(v, `${path}.${k}`, 0.1, 10) : num(v, `${path}.${k}`, -1e4, 1e4);
4189
- if (k === "autoLeading" && value === _chunkLPLCWZTMcjs.DEFAULT_AUTO_LEADING || k !== "autoLeading" && value === 0) delete o[k];
4189
+ if (k === "autoLeading" && value === _chunkFODKPD44cjs.DEFAULT_AUTO_LEADING || k !== "autoLeading" && value === 0) delete o[k];
4190
4190
  else o[k] = value;
4191
4191
  } else fail3(`${path}.${k} is not a paragraph style field; use ${PARAGRAPH_STYLE_FIELDS.join(", ")}.`);
4192
4192
  }
@@ -4223,14 +4223,14 @@ function createTypeLayer(init, env, id = newLayerId(), lenient = false) {
4223
4223
  opacity: 1,
4224
4224
  blend: "normal",
4225
4225
  text: text3,
4226
- runs: _chunkLPLCWZTMcjs.fitRuns.call(void 0, init.runs, text3.length, _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE),
4227
- paragraphs: _chunkLPLCWZTMcjs.fitParagraphRuns.call(void 0, _nullishCoalesce(init.paragraphs, () => ( [{ length: text3.length, style: {} }])), text3),
4226
+ runs: _chunkFODKPD44cjs.fitRuns.call(void 0, init.runs, text3.length, _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE),
4227
+ paragraphs: _chunkFODKPD44cjs.fitParagraphRuns.call(void 0, _nullishCoalesce(init.paragraphs, () => ( [{ length: text3.length, style: {} }])), text3),
4228
4228
  frame: init.frame,
4229
4229
  surface: _chunkTFOPHZ3Ucjs.emptySurface.call(void 0, 4),
4230
4230
  offset: { x: 0, y: 0 }
4231
4231
  };
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]), () => ( _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE)) }];
4233
- if (init.transform && !_chunkLPLCWZTMcjs.isIdentityMatrix.call(void 0, init.transform)) layer.transform = init.transform;
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]), () => ( _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE)) }];
4233
+ if (init.transform && !_chunkFODKPD44cjs.isIdentityMatrix.call(void 0, init.transform)) layer.transform = init.transform;
4234
4234
  if (lenient && !renderText(layer, env)) return { ...layer, rendering: "stored" };
4235
4235
  return rerenderText(layer, env);
4236
4236
  }
@@ -4240,24 +4240,24 @@ function updateTypeLayer(layers, id, change, env, action = "edit it") {
4240
4240
  const patch = change(current);
4241
4241
  const next = { ...current, ...patch };
4242
4242
  if (!("annotation" in patch)) delete next.annotation;
4243
- if ("text" in patch || "runs" in patch) next.runs = _chunkLPLCWZTMcjs.fitRuns.call(void 0, next.runs, next.text.length, _nullishCoalesce(_optionalChain([current, 'access', _65 => _65.runs, 'access', _66 => _66[0], 'optionalAccess', _67 => _67.style]), () => ( _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE)));
4244
- if (!next.runs.length) next.runs = [{ length: 0, style: _chunkLPLCWZTMcjs.styleAt.call(void 0, current.runs, 0, _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE) }];
4245
- if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkLPLCWZTMcjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
4243
+ if ("text" in patch || "runs" in patch) next.runs = _chunkFODKPD44cjs.fitRuns.call(void 0, next.runs, next.text.length, _nullishCoalesce(_optionalChain([current, 'access', _65 => _65.runs, 'access', _66 => _66[0], 'optionalAccess', _67 => _67.style]), () => ( _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE)));
4244
+ if (!next.runs.length) next.runs = [{ length: 0, style: _chunkFODKPD44cjs.styleAt.call(void 0, current.runs, 0, _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE) }];
4245
+ if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkFODKPD44cjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
4246
4246
  const rendered = rerenderText(next, env);
4247
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
4247
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
4248
4248
  }
4249
4249
  function replaceTextRange(layer, start, end, insert) {
4250
4250
  const text3 = layer.text.slice(0, start) + insert + layer.text.slice(end);
4251
- const style = _chunkLPLCWZTMcjs.styleAt.call(void 0, layer.runs, start > 0 && start === layer.text.length ? start - 1 : start, _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE);
4252
- const runs = _chunkLPLCWZTMcjs.spliceRuns.call(void 0, layer.runs, start, end, insert.length, style);
4253
- const pstyle = _chunkLPLCWZTMcjs.styleAt.call(void 0, layer.paragraphs, start, {});
4254
- const paragraphs = _chunkLPLCWZTMcjs.spliceRuns.call(void 0, layer.paragraphs, start, end, insert.length, pstyle);
4255
- return { text: text3, runs, paragraphs: _chunkLPLCWZTMcjs.fitParagraphRuns.call(void 0, paragraphs, text3) };
4251
+ const style = _chunkFODKPD44cjs.styleAt.call(void 0, layer.runs, start > 0 && start === layer.text.length ? start - 1 : start, _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE);
4252
+ const runs = _chunkFODKPD44cjs.spliceRuns.call(void 0, layer.runs, start, end, insert.length, style);
4253
+ const pstyle = _chunkFODKPD44cjs.styleAt.call(void 0, layer.paragraphs, start, {});
4254
+ const paragraphs = _chunkFODKPD44cjs.spliceRuns.call(void 0, layer.paragraphs, start, end, insert.length, pstyle);
4255
+ return { text: text3, runs, paragraphs: _chunkFODKPD44cjs.fitParagraphRuns.call(void 0, paragraphs, text3) };
4256
4256
  }
4257
4257
  function transformTypeLayer(layer, m) {
4258
- const t = _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, textMatrix(layer), m);
4258
+ const t = _chunkFODKPD44cjs.multiplyMatrices.call(void 0, textMatrix(layer), m);
4259
4259
  const next = { ...layer };
4260
- if (_chunkLPLCWZTMcjs.isIdentityMatrix.call(void 0, t)) delete next.transform;
4260
+ if (_chunkFODKPD44cjs.isIdentityMatrix.call(void 0, t)) delete next.transform;
4261
4261
  else next.transform = t;
4262
4262
  delete next.annotation;
4263
4263
  return next;
@@ -4265,7 +4265,7 @@ function transformTypeLayer(layer, m) {
4265
4265
  function typeFrame(layer, shaper) {
4266
4266
  if (layer.frame.kind === "box") return { x: 0, y: 0, width: layer.frame.width, height: layer.frame.height };
4267
4267
  if (!shaper) return fail3("Type layers need a text shaper to be measured; none is set here.");
4268
- const b = _chunkLPLCWZTMcjs.layoutText.call(void 0, layer, shaper).bounds;
4268
+ const b = _chunkFODKPD44cjs.layoutText.call(void 0, layer, shaper).bounds;
4269
4269
  return { x: b.x, y: b.y, width: Math.max(b.width, 1), height: Math.max(b.height, 1) };
4270
4270
  }
4271
4271
  function typeAsPixelLayer(layer) {
@@ -4273,7 +4273,7 @@ function typeAsPixelLayer(layer) {
4273
4273
  return { ...rest, type: "pixel", surface: layer.surface, offset: { x: 0, y: 0 } };
4274
4274
  }
4275
4275
  function toTextSpace(layer, p) {
4276
- return _chunkLPLCWZTMcjs.applyMatrix.call(void 0, _chunkLPLCWZTMcjs.invertMatrix.call(void 0, textMatrix(layer)), p);
4276
+ return _chunkFODKPD44cjs.applyMatrix.call(void 0, _chunkFODKPD44cjs.invertMatrix.call(void 0, textMatrix(layer)), p);
4277
4277
  }
4278
4278
  function typeFromAnnotation(a) {
4279
4279
  if (a.type !== "text") return null;
@@ -4287,7 +4287,7 @@ function typeFromAnnotation(a) {
4287
4287
  if (op !== 1) style.opacity = op;
4288
4288
  const text3 = t.text.replace(/\r?\n|\r/g, " ");
4289
4289
  const translate = [1, 0, 0, 1, t.x, t.y];
4290
- const transform = t.rotation ? _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, translate, _chunkLPLCWZTMcjs.rotateMatrix.call(void 0, t.rotation, { x: t.x, y: t.y })) : translate;
4290
+ const transform = t.rotation ? _chunkFODKPD44cjs.multiplyMatrices.call(void 0, translate, _chunkFODKPD44cjs.rotateMatrix.call(void 0, t.rotation, { x: t.x, y: t.y })) : translate;
4291
4291
  return { text: text3, runs: [{ length: text3.length, style }], frame: { kind: "point", origin: "top" }, transform };
4292
4292
  }
4293
4293
  function annotationOfType(layer) {
@@ -4617,34 +4617,34 @@ function isTransformAnchor(value) {
4617
4617
  return typeof value === "string" && value in ANCHOR_FRACTION;
4618
4618
  }
4619
4619
  function identityTransform(box2) {
4620
- return { box: { ...box2 }, corners: _chunkMUUXNRU4cjs.boxQuad.call(void 0, box2) };
4620
+ return { box: { ...box2 }, corners: _chunkEJVDBITDcjs.boxQuad.call(void 0, box2) };
4621
4621
  }
4622
4622
  function cornersFromMatrix(box2, m) {
4623
- const q2 = _chunkMUUXNRU4cjs.boxQuad.call(void 0, box2);
4624
- return [_chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[0]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[1]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[2]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[3])];
4623
+ const q2 = _chunkEJVDBITDcjs.boxQuad.call(void 0, box2);
4624
+ return [_chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[0]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[1]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[2]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[3])];
4625
4625
  }
4626
4626
  function matrixFromCorners(box2, corners, eps = 1e-6) {
4627
4627
  const [tl, tr, br, bl] = corners;
4628
4628
  const size = 1 + Math.max(box2.width, box2.height);
4629
4629
  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 = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, box2, corners);
4631
- return h ? _chunkMUUXNRU4cjs.affineFromHomography.call(void 0, h, 1e-9) : null;
4630
+ const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, box2, corners);
4631
+ return h ? _chunkEJVDBITDcjs.affineFromHomography.call(void 0, h, 1e-9) : null;
4632
4632
  }
4633
4633
  function transformHomography(geometry) {
4634
- const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4634
+ const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4635
4635
  if (!h) return null;
4636
- return _chunkMUUXNRU4cjs.homographyKeepsQuad.call(void 0, h, _chunkMUUXNRU4cjs.boxQuad.call(void 0, geometry.box)) ? h : null;
4636
+ return _chunkEJVDBITDcjs.homographyKeepsQuad.call(void 0, h, _chunkEJVDBITDcjs.boxQuad.call(void 0, geometry.box)) ? h : null;
4637
4637
  }
4638
4638
  function hasWarp(geometry) {
4639
4639
  const w = geometry.warp;
4640
4640
  if (!w) return false;
4641
- const id = _chunkLPLCWZTMcjs.identityWarpMesh.call(void 0, geometry.box, w.us.length - 1, w.vs.length - 1);
4641
+ const id = _chunkFODKPD44cjs.identityWarpMesh.call(void 0, geometry.box, w.us.length - 1, w.vs.length - 1);
4642
4642
  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
4643
  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
4644
  }
4645
4645
  function isIdentityTransform(geometry) {
4646
4646
  if (hasWarp(geometry)) return false;
4647
- const q2 = _chunkMUUXNRU4cjs.boxQuad.call(void 0, geometry.box);
4647
+ const q2 = _chunkEJVDBITDcjs.boxQuad.call(void 0, geometry.box);
4648
4648
  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
4649
  }
4650
4650
  function transformMap(geometry) {
@@ -4652,8 +4652,8 @@ function transformMap(geometry) {
4652
4652
  if (!h) return null;
4653
4653
  const { box: box2 } = geometry;
4654
4654
  const warp = hasWarp(geometry) ? geometry.warp : null;
4655
- if (!warp) return (p) => _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p);
4656
- return (p) => _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, _chunkLPLCWZTMcjs.evalWarpMesh.call(void 0, warp, (p.x - box2.x) / box2.width, (p.y - box2.y) / box2.height));
4655
+ if (!warp) return (p) => _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p);
4656
+ return (p) => _chunkEJVDBITDcjs.applyHomography.call(void 0, h, _chunkFODKPD44cjs.evalWarpMesh.call(void 0, warp, (p.x - box2.x) / box2.width, (p.y - box2.y) / box2.height));
4657
4657
  }
4658
4658
  function transformedPoint(geometry, fx, fy) {
4659
4659
  const f = transformMap(geometry);
@@ -4662,9 +4662,9 @@ function transformedPoint(geometry, fx, fy) {
4662
4662
  }
4663
4663
  function anchorPoint(geometry, anchor) {
4664
4664
  const [fx, fy] = ANCHOR_FRACTION[anchor];
4665
- const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4665
+ const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4666
4666
  const p = { x: geometry.box.x + fx * geometry.box.width, y: geometry.box.y + fy * geometry.box.height };
4667
- return _nullishCoalesce((h && _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p)), () => ( p));
4667
+ return _nullishCoalesce((h && _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p)), () => ( p));
4668
4668
  }
4669
4669
  function transformedBox(geometry) {
4670
4670
  const f = transformMap(geometry);
@@ -4697,16 +4697,16 @@ function matrixFromParams(box2, params) {
4697
4697
  const tx = Math.tan((_nullishCoalesce(params.skewX, () => ( 0))) * Math.PI / 180);
4698
4698
  const ty = Math.tan((_nullishCoalesce(params.skewY, () => ( 0))) * Math.PI / 180);
4699
4699
  const ref = referencePoint(box2, params.reference);
4700
- const linear = _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, [1, ty, tx, 1, 0, 0], [sx, 0, 0, sy, 0, 0]), _chunkLPLCWZTMcjs.rotateMatrix.call(void 0, _nullishCoalesce(params.rotate, () => ( 0))));
4701
- return _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, _chunkLPLCWZTMcjs.matrixAbout.call(void 0, linear, ref), _chunkLPLCWZTMcjs.translateMatrix.call(void 0, _nullishCoalesce(params.dx, () => ( 0)), _nullishCoalesce(params.dy, () => ( 0))));
4700
+ const linear = _chunkFODKPD44cjs.multiplyMatrices.call(void 0, _chunkFODKPD44cjs.multiplyMatrices.call(void 0, [1, ty, tx, 1, 0, 0], [sx, 0, 0, sy, 0, 0]), _chunkFODKPD44cjs.rotateMatrix.call(void 0, _nullishCoalesce(params.rotate, () => ( 0))));
4701
+ return _chunkFODKPD44cjs.multiplyMatrices.call(void 0, _chunkFODKPD44cjs.matrixAbout.call(void 0, linear, ref), _chunkFODKPD44cjs.translateMatrix.call(void 0, _nullishCoalesce(params.dx, () => ( 0)), _nullishCoalesce(params.dy, () => ( 0))));
4702
4702
  }
4703
4703
  function describeTransform(geometry, reference = "center") {
4704
4704
  const m = hasWarp(geometry) ? null : matrixFromCorners(geometry.box, geometry.corners);
4705
4705
  const ref = referencePoint(geometry.box, reference);
4706
4706
  const bounds = transformedBox(geometry);
4707
4707
  if (!m) {
4708
- const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, geometry.box, geometry.corners);
4709
- const at2 = _nullishCoalesce((h && _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, ref)), () => ( ref));
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
4710
  return { affine: false, scaleX: 100, scaleY: 100, rotate: 0, skewX: 0, x: at2.x, y: at2.y, bounds, corners: geometry.corners };
4711
4711
  }
4712
4712
  const [a, b, c, d] = m;
@@ -4715,7 +4715,7 @@ function describeTransform(geometry, reference = "center") {
4715
4715
  const shear = sxAbs ? (a * c + b * d) / sxAbs : 0;
4716
4716
  const sy = sxAbs ? (a * d - b * c) / sxAbs : 0;
4717
4717
  const skew = sxAbs ? Math.atan(shear / sxAbs) * 180 / Math.PI : 0;
4718
- const at = _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, ref);
4718
+ const at = _chunkFODKPD44cjs.applyMatrix.call(void 0, m, ref);
4719
4719
  const clean = (v) => Math.abs(v) < 1e-9 ? 0 : v;
4720
4720
  return {
4721
4721
  affine: true,
@@ -4733,35 +4733,35 @@ function applyParams(geometry, params) {
4733
4733
  const ref = params.reference && typeof params.reference === "object" ? params.reference : anchorPoint(geometry, _nullishCoalesce(params.reference, () => ( "center")));
4734
4734
  const m = matrixFromParams({ x: ref.x, y: ref.y, width: 0, height: 0 }, { ...params, reference: ref });
4735
4735
  const c = geometry.corners;
4736
- return [_chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, c[0]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, c[1]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, c[2]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, c[3])];
4736
+ return [_chunkFODKPD44cjs.applyMatrix.call(void 0, m, c[0]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, c[1]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, c[2]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, c[3])];
4737
4737
  }
4738
4738
  function flipCorners(geometry, axis) {
4739
4739
  const c = anchorPoint(geometry, "center");
4740
4740
  const m = axis === "horizontal" ? [-1, 0, 0, 1, 2 * c.x, 0] : [1, 0, 0, -1, 0, 2 * c.y];
4741
4741
  const q2 = geometry.corners;
4742
- return [_chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[0]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[1]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[2]), _chunkLPLCWZTMcjs.applyMatrix.call(void 0, m, q2[3])];
4742
+ return [_chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[0]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[1]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[2]), _chunkFODKPD44cjs.applyMatrix.call(void 0, m, q2[3])];
4743
4743
  }
4744
4744
  function boxPointOf(geometry, p) {
4745
4745
  const m = matrixFromCorners(geometry.box, geometry.corners);
4746
- if (m) return _chunkLPLCWZTMcjs.applyMatrix.call(void 0, _chunkLPLCWZTMcjs.invertMatrix.call(void 0, m), p);
4746
+ if (m) return _chunkFODKPD44cjs.applyMatrix.call(void 0, _chunkFODKPD44cjs.invertMatrix.call(void 0, m), p);
4747
4747
  return null;
4748
4748
  }
4749
4749
  function presetWarp(box2, preset) {
4750
- return _chunkLPLCWZTMcjs.warpPresetMesh.call(void 0, preset, box2);
4750
+ return _chunkFODKPD44cjs.warpPresetMesh.call(void 0, preset, box2);
4751
4751
  }
4752
4752
  function isValidWarp(mesh) {
4753
- return _chunkLPLCWZTMcjs.isValidWarpMesh.call(void 0, mesh);
4753
+ return _chunkFODKPD44cjs.isValidWarpMesh.call(void 0, mesh);
4754
4754
  }
4755
4755
  function geometryHomography(geometry) {
4756
4756
  const m = matrixFromCorners(geometry.box, geometry.corners);
4757
- return m ? _chunkMUUXNRU4cjs.homographyFromAffine.call(void 0, m) : transformHomography(geometry);
4757
+ return m ? _chunkEJVDBITDcjs.homographyFromAffine.call(void 0, m) : transformHomography(geometry);
4758
4758
  }
4759
4759
 
4760
4760
  // src/image-editor/layers/smart.ts
4761
4761
  var fail4 = (message) => {
4762
4762
  throw new LayerOperationError(message);
4763
4763
  };
4764
- var SMART_RENDER_MARGIN = _chunkST7E3NEEcjs.MAX_EFFECT_REACH;
4764
+ var SMART_RENDER_MARGIN = _chunkPAOWHJ5Ocjs.MAX_EFFECT_REACH;
4765
4765
  function newContentsId() {
4766
4766
  return newLayerId("so");
4767
4767
  }
@@ -4772,7 +4772,7 @@ function placementGeometry(layer) {
4772
4772
  return { box: contentsBox(layer.contents), corners: layer.placement.corners, warp: _nullishCoalesce(layer.placement.warp, () => ( null)) };
4773
4773
  }
4774
4774
  function placementAt(contents, x, y) {
4775
- return { corners: _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x, y, width: contents.width, height: contents.height }) };
4775
+ return { corners: _chunkEJVDBITDcjs.boxQuad.call(void 0, { x, y, width: contents.width, height: contents.height }) };
4776
4776
  }
4777
4777
  function isContentsDecoded(contents) {
4778
4778
  return contents.kind === "raster" ? Boolean(contents.raster) : Boolean(contents.document);
@@ -4827,7 +4827,7 @@ function placementKey(p, canvas) {
4827
4827
  function integerMove(layer) {
4828
4828
  const g = placementGeometry(layer);
4829
4829
  if (hasWarp(g)) return null;
4830
- const q2 = _chunkMUUXNRU4cjs.boxQuad.call(void 0, g.box);
4830
+ const q2 = _chunkEJVDBITDcjs.boxQuad.call(void 0, g.box);
4831
4831
  const dx = g.corners[0].x - q2[0].x;
4832
4832
  const dy = g.corners[0].y - q2[0].y;
4833
4833
  if (Math.abs(dx - Math.round(dx)) > 1e-9 || Math.abs(dy - Math.round(dy)) > 1e-9) return null;
@@ -4868,7 +4868,7 @@ function placeContents(layer, canvas, options = {}) {
4868
4868
  k = step;
4869
4869
  let r = _optionalChain([options, 'access', _84 => _84.reduced, 'optionalAccess', _85 => _85.get, 'call', _86 => _86(k)]);
4870
4870
  if (!r) {
4871
- r = _chunkST7E3NEEcjs.reduceSurface.call(void 0, src, k);
4871
+ r = _chunkPAOWHJ5Ocjs.reduceSurface.call(void 0, src, k);
4872
4872
  _optionalChain([options, 'access', _87 => _87.reduced, 'optionalAccess', _88 => _88.set, 'call', _89 => _89(k, r)]);
4873
4873
  }
4874
4874
  source = r;
@@ -4878,15 +4878,15 @@ function placeContents(layer, canvas, options = {}) {
4878
4878
  if (hasWarp(g)) {
4879
4879
  const f = transformMap(g);
4880
4880
  if (!f) fail4("The placement folds the contents over itself or through the horizon; keep the corners a convex quad.");
4881
- out = _chunkST7E3NEEcjs.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 });
4881
+ out = _chunkPAOWHJ5Ocjs.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
4882
  } else {
4883
4883
  const h = transformHomography(g);
4884
4884
  if (!h) fail4("The placement folds the contents over itself or through the horizon; keep the corners a convex quad.");
4885
- const hk = _chunkMUUXNRU4cjs.multiplyHomographies.call(void 0, [k, 0, 0, 0, k, 0, 0, 0, 1], h);
4886
- out = _chunkST7E3NEEcjs.transformSurface.call(void 0, source, hk, { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4885
+ const hk = _chunkEJVDBITDcjs.multiplyHomographies.call(void 0, [k, 0, 0, 0, k, 0, 0, 0, 1], h);
4886
+ out = _chunkPAOWHJ5Ocjs.transformSurface.call(void 0, source, hk, { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4887
4887
  }
4888
4888
  } catch (e) {
4889
- if (e instanceof _chunkST7E3NEEcjs.TransformTooLargeError) fail4(e.message);
4889
+ if (e instanceof _chunkPAOWHJ5Ocjs.TransformTooLargeError) fail4(e.message);
4890
4890
  throw e;
4891
4891
  }
4892
4892
  }
@@ -4918,7 +4918,7 @@ function filterMaskCoverage(mask, canvas) {
4918
4918
  }
4919
4919
  const feather = _nullishCoalesce(mask.feather, () => ( 0));
4920
4920
  if (all && !(feather > 0)) return null;
4921
- if (feather > 0) v = _chunkST7E3NEEcjs.gaussianBlur.call(void 0, v, W, H, feather, "clamp");
4921
+ if (feather > 0) v = _chunkPAOWHJ5Ocjs.gaussianBlur.call(void 0, v, W, H, feather, "clamp");
4922
4922
  const density = _nullishCoalesce(mask.density, () => ( 1));
4923
4923
  if (density !== 1) for (let i = 0; i < v.length; i++) v[i] = 1 - density * (1 - v[i]);
4924
4924
  return v;
@@ -4940,7 +4940,7 @@ function applySmartFilters(placed, stack, canvas) {
4940
4940
  if (f.opacity >= 1) acc = out;
4941
4941
  else lerpInto(acc, out, f.opacity, null);
4942
4942
  } else {
4943
- _chunkST7E3NEEcjs.blendTile.call(void 0, acc, out, f.blend, f.opacity, null);
4943
+ _chunkPAOWHJ5Ocjs.blendTile.call(void 0, acc, out, f.blend, f.opacity, null);
4944
4944
  }
4945
4945
  }
4946
4946
  entry = { key, base, filtered: acc };
@@ -4983,11 +4983,11 @@ function normalizePlacement(raw, contents) {
4983
4983
  }
4984
4984
  const out = { corners: c.map((p) => ({ x: p.x, y: p.y })) };
4985
4985
  if (raw.warp) {
4986
- if (!_chunkLPLCWZTMcjs.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.");
4986
+ if (!_chunkFODKPD44cjs.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
4987
  out.warp = { us: [...raw.warp.us], vs: [...raw.warp.vs], points: raw.warp.points.map((p) => ({ x: p.x, y: p.y })) };
4988
4988
  }
4989
4989
  if (raw.interpolation !== void 0) {
4990
- if (!_chunkST7E3NEEcjs.isInterpolation.call(void 0, raw.interpolation)) fail4(`Unknown interpolation "${String(raw.interpolation)}"; use nearest, bilinear or bicubic.`);
4990
+ if (!_chunkPAOWHJ5Ocjs.isInterpolation.call(void 0, raw.interpolation)) fail4(`Unknown interpolation "${String(raw.interpolation)}"; use nearest, bilinear or bicubic.`);
4991
4991
  if (raw.interpolation !== "bicubic") out.interpolation = raw.interpolation;
4992
4992
  }
4993
4993
  const g = { box: { x: 0, y: 0, width: contents.width, height: contents.height }, corners: out.corners, warp: _nullishCoalesce(out.warp, () => ( null)) };
@@ -5004,10 +5004,10 @@ function followMask(mask, before, after) {
5004
5004
  const h0 = placementHomography(before);
5005
5005
  const h1 = placementHomography(after);
5006
5006
  if (!h0 || !h1) return mask;
5007
- const inv = _chunkMUUXNRU4cjs.invertHomography.call(void 0, h0);
5007
+ const inv = _chunkEJVDBITDcjs.invertHomography.call(void 0, h0);
5008
5008
  if (!inv) return mask;
5009
- const delta = _chunkMUUXNRU4cjs.multiplyHomographies.call(void 0, inv, h1);
5010
- const surface = _chunkST7E3NEEcjs.transformSurface.call(void 0, mask.surface, delta, { interpolation: "bilinear" });
5009
+ const delta = _chunkEJVDBITDcjs.multiplyHomographies.call(void 0, inv, h1);
5010
+ const surface = _chunkPAOWHJ5Ocjs.transformSurface.call(void 0, mask.surface, delta, { interpolation: "bilinear" });
5011
5011
  return { ...mask, surface };
5012
5012
  }
5013
5013
  function setSmartPlacement(layers, id, placement, canvas) {
@@ -5028,7 +5028,7 @@ function setSmartPlacement(layers, id, placement, canvas) {
5028
5028
  next.smartFilters = { ...next.smartFilters, mask: m };
5029
5029
  }
5030
5030
  next = rerender(next, canvas, "be transformed");
5031
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, masksMoved };
5031
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next, masksMoved };
5032
5032
  }
5033
5033
  function offsetSmartObject(layers, id, dx, dy, canvas) {
5034
5034
  const layer = requireSmartObject(layers, id);
@@ -5050,7 +5050,7 @@ function offsetSmartObject(layers, id, dx, dy, canvas) {
5050
5050
  } else {
5051
5051
  next = rerender(next, canvas, "move");
5052
5052
  }
5053
- return _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next);
5053
+ return _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next);
5054
5054
  }
5055
5055
  function translateLayer(layer, dx, dy) {
5056
5056
  if (!dx && !dy) return layer;
@@ -5086,7 +5086,7 @@ function translateLayer(layer, dx, dy) {
5086
5086
  case "shape": {
5087
5087
  const next = {
5088
5088
  ...layer,
5089
- components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), _chunkLPLCWZTMcjs.translateMatrix.call(void 0, dx, dy)),
5089
+ components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), _chunkFODKPD44cjs.translateMatrix.call(void 0, dx, dy)),
5090
5090
  surface: _chunkTFOPHZ3Ucjs.translateSurface.call(void 0, layer.surface, dx, dy),
5091
5091
  mask: moveMask(layer.mask)
5092
5092
  };
@@ -5095,7 +5095,7 @@ function translateLayer(layer, dx, dy) {
5095
5095
  return next;
5096
5096
  }
5097
5097
  case "type": {
5098
- const next = { ...transformTypeLayer(layer, _chunkLPLCWZTMcjs.translateMatrix.call(void 0, dx, dy)), surface: _chunkTFOPHZ3Ucjs.translateSurface.call(void 0, layer.surface, dx, dy), mask: moveMask(layer.mask) };
5098
+ const next = { ...transformTypeLayer(layer, _chunkFODKPD44cjs.translateMatrix.call(void 0, dx, dy)), surface: _chunkTFOPHZ3Ucjs.translateSurface.call(void 0, layer.surface, dx, dy), mask: moveMask(layer.mask) };
5099
5099
  if (!next.mask) delete next.mask;
5100
5100
  return next;
5101
5101
  }
@@ -5118,7 +5118,7 @@ function layerExtent(layer, surfaceOf, canvas) {
5118
5118
  } else {
5119
5119
  b = full;
5120
5120
  }
5121
- const m = _chunkST7E3NEEcjs.effectsMargin.call(void 0, layer.effects);
5121
+ const m = _chunkPAOWHJ5Ocjs.effectsMargin.call(void 0, layer.effects);
5122
5122
  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
5123
  return b;
5124
5124
  }
@@ -5187,7 +5187,7 @@ function convertToSmartObject(layers, ids, canvas, options) {
5187
5187
  delete resolved.source;
5188
5188
  layer = resolved;
5189
5189
  }
5190
- if (_chunkST7E3NEEcjs.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.`);
5190
+ if (_chunkPAOWHJ5Ocjs.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
5191
  return translateLayer(layer, -b.x, -b.y);
5192
5192
  });
5193
5193
  if (nested[0].clipped) {
@@ -5214,8 +5214,8 @@ function convertToSmartObject(layers, ids, canvas, options) {
5214
5214
  smart = { ...smart, surface: renderSmartObject(smart, canvas) };
5215
5215
  const below = ordered.filter((l) => l.index < top.index).length;
5216
5216
  let out = layers;
5217
- for (const l of ordered) out = _chunkST7E3NEEcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
5218
- return { layers: _chunkST7E3NEEcjs.insertLayer.call(void 0, out, smart, parent, top.index - below), layer: smart };
5217
+ for (const l of ordered) out = _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, out, l.layer.id, () => null);
5218
+ return { layers: _chunkPAOWHJ5Ocjs.insertLayer.call(void 0, out, smart, parent, top.index - below), layer: smart };
5219
5219
  }
5220
5220
  function rasterizeSmartObject(layers, id) {
5221
5221
  const layer = requireSmartObject(layers, id);
@@ -5235,7 +5235,7 @@ function rasterizeSmartObject(layers, id) {
5235
5235
  if (layer.locks) out.locks = layer.locks;
5236
5236
  if (layer.effects) out.effects = layer.effects;
5237
5237
  if (layer.fillOpacity !== void 0) out.fillOpacity = layer.fillOpacity;
5238
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => out), layer: out };
5238
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => out), layer: out };
5239
5239
  }
5240
5240
  function copySmartObject(layers, id, linked, name) {
5241
5241
  const loc = requireLayer(layers, id);
@@ -5245,19 +5245,19 @@ function copySmartObject(layers, id, linked, name) {
5245
5245
  delete copy.psd;
5246
5246
  if (!linked) copy.contents = { ...layer.contents, id: newContentsId() };
5247
5247
  if (copy.smartFilters) copy.smartFilters = { ...copy.smartFilters, filters: copy.smartFilters.filters.map((f) => ({ ...f, id: newLayerId("flt") })) };
5248
- return { layers: _chunkST7E3NEEcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _114 => _114.parent, 'optionalAccess', _115 => _115.id]), () => ( null)), loc.index + 1), layer: copy };
5248
+ return { layers: _chunkPAOWHJ5Ocjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _114 => _114.parent, 'optionalAccess', _115 => _115.id]), () => ( null)), loc.index + 1), layer: copy };
5249
5249
  }
5250
5250
  function instancesOf(layers, contentsId) {
5251
- return _chunkST7E3NEEcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart" && l.contents.id === contentsId).map((l) => l.id);
5251
+ return _chunkPAOWHJ5Ocjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart" && l.contents.id === contentsId).map((l) => l.id);
5252
5252
  }
5253
5253
  function replaceContents(layers, contentsId, contents, canvas) {
5254
5254
  const ids = instancesOf(layers, contentsId);
5255
5255
  if (!ids.length) fail4(`No smart object uses contents "${contentsId}".`);
5256
- for (const id of ids) requireUnlocked(_chunkST7E3NEEcjs.findLayer.call(void 0, layers, id).layer, "all", "replace its contents");
5256
+ for (const id of ids) requireUnlocked(_chunkPAOWHJ5Ocjs.findLayer.call(void 0, layers, id).layer, "all", "replace its contents");
5257
5257
  const next = { ...contents, id: contentsId };
5258
5258
  let out = layers;
5259
5259
  for (const id of ids) {
5260
- out = _chunkST7E3NEEcjs.mapLayer.call(void 0, out, id, (l) => {
5260
+ out = _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, out, id, (l) => {
5261
5261
  const layer = l;
5262
5262
  return rerender({ ...layer, contents: next, placement: refitPlacement(layer, next) }, canvas, "take the new contents");
5263
5263
  });
@@ -5274,14 +5274,14 @@ function refitPlacement(layer, contents) {
5274
5274
  const h = transformHomography(g);
5275
5275
  if (!h) return placementAt(contents, 0, 0);
5276
5276
  const shift = [1, 0, (W0 - W1) / 2, 0, 1, (H0 - H1) / 2, 0, 0, 1];
5277
- const hn = _chunkMUUXNRU4cjs.multiplyHomographies.call(void 0, shift, h);
5278
- const pts = _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x: 0, y: 0, width: W1, height: H1 }).map((p) => {
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
5279
  const w = hn[6] * p.x + hn[7] * p.y + hn[8];
5280
5280
  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
5281
  });
5282
5282
  const out = { corners: pts };
5283
5283
  if (layer.placement.interpolation) out.interpolation = layer.placement.interpolation;
5284
- if (layer.placement.warp) out.warp = _chunkLPLCWZTMcjs.mapWarpMeshPoints.call(void 0, layer.placement.warp, (p) => ({ x: p.x * W1 / W0, y: p.y * H1 / H0 }));
5284
+ if (layer.placement.warp) out.warp = _chunkFODKPD44cjs.mapWarpMeshPoints.call(void 0, layer.placement.warp, (p) => ({ x: p.x * W1 / W0, y: p.y * H1 / H0 }));
5285
5285
  return out;
5286
5286
  }
5287
5287
  function normalizeSmartFilter(raw, id = newLayerId("flt")) {
@@ -5320,7 +5320,7 @@ function addSmartFilter(layers, id, filter, canvas, index) {
5320
5320
  const at = index === void 0 ? filters.length : Math.max(0, Math.min(filters.length, Math.floor(index)));
5321
5321
  filters.splice(at, 0, filter);
5322
5322
  const next = withStack(layer, { ...stack, filters }, canvas);
5323
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter };
5323
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter };
5324
5324
  }
5325
5325
  function updateSmartFilter(layers, id, filterId, changes, canvas) {
5326
5326
  const layer = editableSmart(layers, id);
@@ -5342,7 +5342,7 @@ function updateSmartFilter(layers, id, filterId, changes, canvas) {
5342
5342
  const filters = [...layer.smartFilters.filters];
5343
5343
  filters[i] = merged2;
5344
5344
  const next = withStack(layer, { ...layer.smartFilters, filters }, canvas);
5345
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter: merged2 };
5345
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter: merged2 };
5346
5346
  }
5347
5347
  function removeSmartFilter(layers, id, filterId, canvas) {
5348
5348
  const layer = editableSmart(layers, id);
@@ -5350,7 +5350,7 @@ function removeSmartFilter(layers, id, filterId, canvas) {
5350
5350
  const stack = layer.smartFilters;
5351
5351
  const filters = stack.filters.filter((f) => f.id !== filterId);
5352
5352
  const next = withStack(layer, filters.length ? { ...stack, filters } : stack.enabled ? void 0 : { enabled: false, filters }, canvas);
5353
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5353
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5354
5354
  }
5355
5355
  function moveSmartFilter(layers, id, filterId, index, canvas) {
5356
5356
  const layer = editableSmart(layers, id);
@@ -5361,12 +5361,12 @@ function moveSmartFilter(layers, id, filterId, index, canvas) {
5361
5361
  const [f] = filters.splice(i, 1);
5362
5362
  filters.splice(index, 0, f);
5363
5363
  const next = withStack(layer, { ...layer.smartFilters, filters }, canvas);
5364
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5364
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5365
5365
  }
5366
5366
  function setSmartFiltersEnabled(layers, id, enabled, canvas) {
5367
5367
  const layer = editableSmart(layers, id);
5368
5368
  const next = withStack(layer, { ...stackOf(layer), enabled: Boolean(enabled) }, canvas);
5369
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5369
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5370
5370
  }
5371
5371
  function setSmartFilterMask(layers, id, mask, canvas) {
5372
5372
  const layer = editableSmart(layers, id);
@@ -5375,7 +5375,7 @@ function setSmartFilterMask(layers, id, mask, canvas) {
5375
5375
  if (mask) stack.mask = mask;
5376
5376
  else delete stack.mask;
5377
5377
  const next = withStack(layer, stack, canvas);
5378
- return { layers: _chunkST7E3NEEcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5378
+ return { layers: _chunkPAOWHJ5Ocjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5379
5379
  }
5380
5380
  function withFilterMaskSurface(layer, surface, canvas) {
5381
5381
  const stack = stackOf(layer);
@@ -5389,7 +5389,7 @@ function placementBounds(layer) {
5389
5389
  // src/image-editor/layers/serialize.ts
5390
5390
  var LAYERED_SCHEMA_VERSION = 3;
5391
5391
  function serializePatterns(patterns) {
5392
- return patterns.map((p) => ({ id: p.id, name: p.name, png: _chunkST7E3NEEcjs.pngDataUrl.call(void 0, p.width, p.height, p.data) }));
5392
+ return patterns.map((p) => ({ id: p.id, name: p.name, png: _chunkEJVDBITDcjs.pngDataUrl.call(void 0, p.width, p.height, p.data) }));
5393
5393
  }
5394
5394
  function deserializePatterns(raw, problems = []) {
5395
5395
  if (!Array.isArray(raw)) return [];
@@ -5412,7 +5412,7 @@ function encodeSurface(surface) {
5412
5412
  let out = null;
5413
5413
  if (b) {
5414
5414
  const data = _chunkTFOPHZ3Ucjs.readRegion.call(void 0, surface, b);
5415
- out = { url: _chunkST7E3NEEcjs.pngDataUrl.call(void 0, b.width, b.height, data, surface.channels), x: b.x, y: b.y };
5415
+ out = { url: _chunkEJVDBITDcjs.pngDataUrl.call(void 0, b.width, b.height, data, surface.channels), x: b.x, y: b.y };
5416
5416
  }
5417
5417
  encodedCache.set(surface, out);
5418
5418
  return out;
@@ -5421,15 +5421,15 @@ var deepCache = /* @__PURE__ */ new WeakMap();
5421
5421
  function encodeDeepSurface(surface) {
5422
5422
  if (deepCache.has(surface)) return deepCache.get(surface);
5423
5423
  let out = null;
5424
- const depth = _chunkST7E3NEEcjs.surfaceDepth.call(void 0, surface);
5424
+ const depth = _chunkPAOWHJ5Ocjs.surfaceDepth.call(void 0, surface);
5425
5425
  const b = depth === 8 ? null : _chunkTFOPHZ3Ucjs.contentBounds.call(void 0, surface);
5426
5426
  if (depth !== 8 && b) {
5427
- const samples = _chunkST7E3NEEcjs.readDeepRegion.call(void 0, surface, b, depth);
5427
+ const samples = _chunkPAOWHJ5Ocjs.readDeepRegion.call(void 0, surface, b, depth);
5428
5428
  const bytes = new Uint8Array(samples.byteLength);
5429
5429
  const view = new DataView(bytes.buffer);
5430
5430
  if (samples instanceof Uint16Array) for (let i = 0; i < samples.length; i++) view.setUint16(2 * i, samples[i], true);
5431
5431
  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: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, _chunk643B2HKCcjs.deflate.call(void 0, bytes)) };
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)) };
5433
5433
  }
5434
5434
  deepCache.set(surface, out);
5435
5435
  return out;
@@ -5441,13 +5441,13 @@ function decodeDeepSurface(surface, raw, problems, label) {
5441
5441
  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
5442
  const n = d.width * d.height * 4;
5443
5443
  const size = d.depth === 16 ? 2 : 4;
5444
- const bytes = _chunk643B2HKCcjs.inflate.call(void 0, _chunkST7E3NEEcjs.base64ToBytes.call(void 0, d.data), { maxOutput: n * size });
5444
+ const bytes = _chunk643B2HKCcjs.inflate.call(void 0, _chunkEJVDBITDcjs.base64ToBytes.call(void 0, d.data), { maxOutput: n * size });
5445
5445
  if (bytes.length !== n * size) throw new Error("wrong length");
5446
5446
  const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
5447
5447
  const samples = d.depth === 16 ? new Uint16Array(n) : new Float32Array(n);
5448
5448
  if (samples instanceof Uint16Array) for (let i = 0; i < n; i++) samples[i] = view.getUint16(2 * i, true);
5449
5449
  else for (let i = 0; i < n; i++) samples[i] = view.getFloat32(4 * i, true);
5450
- return _chunkST7E3NEEcjs.writeDeepRegion.call(void 0, surface, { x: d.x, y: d.y, width: d.width, height: d.height }, samples);
5450
+ return _chunkPAOWHJ5Ocjs.writeDeepRegion.call(void 0, surface, { x: d.x, y: d.y, width: d.width, height: d.height }, samples);
5451
5451
  } catch (e6) {
5452
5452
  problems.push(`${label}: its ${d.depth}-bit samples could not be read, so it was opened at 8 bits`);
5453
5453
  return surface;
@@ -5470,7 +5470,7 @@ function baseFields(layer, ctx) {
5470
5470
  function serializeEffects(effects) {
5471
5471
  const out = { enabled: effects.enabled, items: JSON.parse(JSON.stringify(effects.items)) };
5472
5472
  if (effects.scale !== void 0 && effects.scale !== 1) out.scale = effects.scale;
5473
- if (effects.psd) out.psd = { key: effects.psd.key, data: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, effects.psd.data) };
5473
+ if (effects.psd) out.psd = { key: effects.psd.key, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, effects.psd.data) };
5474
5474
  return out;
5475
5475
  }
5476
5476
  function deserializeEffects(raw) {
@@ -5480,12 +5480,12 @@ function deserializeEffects(raw) {
5480
5480
  const p = r.psd;
5481
5481
  if (p && typeof p.key === "string" && typeof p.data === "string") {
5482
5482
  try {
5483
- psd = { key: p.key, data: _chunkST7E3NEEcjs.base64ToBytes.call(void 0, p.data) };
5483
+ psd = { key: p.key, data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, p.data) };
5484
5484
  } catch (e7) {
5485
5485
  psd = void 0;
5486
5486
  }
5487
5487
  }
5488
- return _chunkST7E3NEEcjs.normalizeLayerEffects.call(void 0, { ...r, psd });
5488
+ return _chunkPAOWHJ5Ocjs.normalizeLayerEffects.call(void 0, { ...r, psd });
5489
5489
  }
5490
5490
  function serializeMask(mask, hint, ctx) {
5491
5491
  const out = { defaultValue: mask.defaultValue };
@@ -5566,8 +5566,8 @@ function serializeType(layer, base, ctx) {
5566
5566
  if (layer.annotation) out.annotation = JSON.parse(JSON.stringify(layer.annotation));
5567
5567
  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])) {
5568
5568
  out.psd = {};
5569
- if (layer.psd.tySh) out.psd.tySh = _chunkST7E3NEEcjs.bytesToBase64.call(void 0, layer.psd.tySh);
5570
- 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: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, b.data) }));
5569
+ if (layer.psd.tySh) out.psd.tySh = _chunkEJVDBITDcjs.bytesToBase64.call(void 0, layer.psd.tySh);
5570
+ 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) }));
5571
5571
  if (layer.psd.signature) out.psd.signature = layer.psd.signature;
5572
5572
  }
5573
5573
  return out;
@@ -5578,7 +5578,7 @@ function readType(r, base, ctx) {
5578
5578
  const text3 = normalizeText(_nullishCoalesce(r.text, () => ( "")));
5579
5579
  const runs = (Array.isArray(r.runs) ? r.runs : []).map((run, i) => ({
5580
5580
  length: Math.max(0, Math.floor(num2(_optionalChain([run, 'optionalAccess', _131 => _131.length]), 0, 1e9, 0))),
5581
- style: patchTextStyle(_chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE, _optionalChain([run, 'optionalAccess', _132 => _132.style]) && typeof run.style === "object" ? run.style : {}, `runs[${i}].style`)
5581
+ style: patchTextStyle(_chunkFODKPD44cjs.DEFAULT_TEXT_STYLE, _optionalChain([run, 'optionalAccess', _132 => _132.style]) && typeof run.style === "object" ? run.style : {}, `runs[${i}].style`)
5582
5582
  }));
5583
5583
  const paragraphs = (Array.isArray(r.paragraphs) ? r.paragraphs : []).map((p, i) => ({
5584
5584
  length: Math.max(0, Math.floor(num2(_optionalChain([p, 'optionalAccess', _133 => _133.length]), 0, 1e9, 0))),
@@ -5591,13 +5591,13 @@ function readType(r, base, ctx) {
5591
5591
  ...base,
5592
5592
  type: "type",
5593
5593
  text: text3,
5594
- runs: _chunkLPLCWZTMcjs.fitRuns.call(void 0, runs, text3.length, _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE),
5595
- paragraphs: _chunkLPLCWZTMcjs.fitParagraphRuns.call(void 0, paragraphs.length ? paragraphs : [{ length: text3.length, style: {} }], text3),
5594
+ runs: _chunkFODKPD44cjs.fitRuns.call(void 0, runs, text3.length, _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE),
5595
+ paragraphs: _chunkFODKPD44cjs.fitParagraphRuns.call(void 0, paragraphs.length ? paragraphs : [{ length: text3.length, style: {} }], text3),
5596
5596
  frame,
5597
5597
  surface: _chunkTFOPHZ3Ucjs.emptySurface.call(void 0, 4),
5598
5598
  offset: { x: 0, y: 0 }
5599
5599
  };
5600
- if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([runs, 'access', _137 => _137[0], 'optionalAccess', _138 => _138.style]), () => ( _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE)) }];
5600
+ if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([runs, 'access', _137 => _137[0], 'optionalAccess', _138 => _138.style]), () => ( _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE)) }];
5601
5601
  if (m) layer.transform = m;
5602
5602
  if (r.antiAlias === false) layer.antiAlias = false;
5603
5603
  if (typeof r.fillOpacity === "number" && r.fillOpacity !== 1) layer.fillOpacity = num2(r.fillOpacity, 0, 1, 1);
@@ -5605,8 +5605,8 @@ function readType(r, base, ctx) {
5605
5605
  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)) }));
5606
5606
  if (r.psd && typeof r.psd === "object") {
5607
5607
  const psd = {};
5608
- if (typeof r.psd.tySh === "string") psd.tySh = _chunkST7E3NEEcjs.base64ToBytes.call(void 0, r.psd.tySh);
5609
- 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: _chunkST7E3NEEcjs.base64ToBytes.call(void 0, b.data) }));
5608
+ if (typeof r.psd.tySh === "string") psd.tySh = _chunkEJVDBITDcjs.base64ToBytes.call(void 0, r.psd.tySh);
5609
+ 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) }));
5610
5610
  if (typeof r.psd.signature === "string") psd.signature = r.psd.signature;
5611
5611
  if (psd.tySh || _optionalChain([psd, 'access', _139 => _139.blocks, 'optionalAccess', _140 => _140.length])) layer.psd = psd;
5612
5612
  }
@@ -5634,7 +5634,7 @@ function serializeShape(layer, base) {
5634
5634
  if (layer.inverted) out.inverted = true;
5635
5635
  if (layer.fillOpacity !== void 0 && layer.fillOpacity !== 1) out.fillOpacity = layer.fillOpacity;
5636
5636
  if (layer.annotation) out.annotation = JSON.parse(JSON.stringify(layer.annotation));
5637
- 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: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, b.data) })), ...layer.psd.signature ? { signature: layer.psd.signature } : {} };
5637
+ 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 } : {} };
5638
5638
  return out;
5639
5639
  }
5640
5640
  function readShape(r, base, ctx) {
@@ -5666,7 +5666,7 @@ function readShape(r, base, ctx) {
5666
5666
  if (typeof r.fillOpacity === "number" && r.fillOpacity !== 1) out.fillOpacity = num2(r.fillOpacity, 0, 1, 1);
5667
5667
  if (a && shapeFromAnnotation(a)) out.annotation = a;
5668
5668
  if (r.psd && Array.isArray(r.psd.blocks)) {
5669
- const blocks = r.psd.blocks.filter((b) => b && typeof b.key === "string" && typeof b.data === "string").map((b) => ({ key: b.key, data: _chunkST7E3NEEcjs.base64ToBytes.call(void 0, b.data) }));
5669
+ 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) }));
5670
5670
  if (blocks.length) out.psd = { blocks };
5671
5671
  if (out.psd && typeof r.psd.signature === "string") out.psd.signature = r.psd.signature;
5672
5672
  }
@@ -5679,7 +5679,7 @@ function readShape(r, base, ctx) {
5679
5679
  function serializeSmartFilters(stack, layerId, ctx) {
5680
5680
  const out = {
5681
5681
  enabled: stack.enabled,
5682
- filters: stack.filters.map((f) => f.kind === "psd" ? { ...f, data: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, f.data) } : JSON.parse(JSON.stringify(f)))
5682
+ filters: stack.filters.map((f) => f.kind === "psd" ? { ...f, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, f.data) } : JSON.parse(JSON.stringify(f)))
5683
5683
  };
5684
5684
  if (stack.mask) out.mask = serializeMask(stack.mask, `${layerId}-filter-mask`, ctx);
5685
5685
  return out;
@@ -5705,7 +5705,7 @@ function serializeSmartObject(layer, base, ctx) {
5705
5705
  }
5706
5706
  if (layer.fillOpacity !== void 0 && layer.fillOpacity !== 1) out.fillOpacity = layer.fillOpacity;
5707
5707
  if (layer.psd) {
5708
- out.psd = { key: layer.psd.key, data: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, layer.psd.data) };
5708
+ out.psd = { key: layer.psd.key, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, layer.psd.data) };
5709
5709
  if (layer.psd.placed) out.psd.placed = layer.psd.placed;
5710
5710
  }
5711
5711
  return out;
@@ -5717,7 +5717,7 @@ function serializeContents(c, ctx) {
5717
5717
  if (enc) {
5718
5718
  if (enc.x !== 0 || enc.y !== 0) {
5719
5719
  const data = _chunkTFOPHZ3Ucjs.readRegion.call(void 0, c.raster, { x: 0, y: 0, width: c.width, height: c.height });
5720
- out.asset = ctx.addAsset(_chunkST7E3NEEcjs.pngDataUrl.call(void 0, c.width, c.height, data, 4), `contents-${c.id}`);
5720
+ out.asset = ctx.addAsset(_chunkEJVDBITDcjs.pngDataUrl.call(void 0, c.width, c.height, data, 4), `contents-${c.id}`);
5721
5721
  } else out.asset = ctx.addAsset(enc.url, `contents-${c.id}`);
5722
5722
  }
5723
5723
  }
@@ -5726,7 +5726,7 @@ function serializeContents(c, ctx) {
5726
5726
  if (c.document.globalLight) out.globalLight = { ...c.document.globalLight };
5727
5727
  if (_optionalChain([c, 'access', _152 => _152.document, 'access', _153 => _153.patterns, 'optionalAccess', _154 => _154.length])) out.patterns = serializePatterns(c.document.patterns);
5728
5728
  }
5729
- if (c.file) out.file = { type: c.file.type, data: _chunkST7E3NEEcjs.bytesToBase64.call(void 0, c.file.bytes) };
5729
+ if (c.file) out.file = { type: c.file.type, data: _chunkEJVDBITDcjs.bytesToBase64.call(void 0, c.file.bytes) };
5730
5730
  if (c.linked) out.linked = { path: c.linked.path };
5731
5731
  return out;
5732
5732
  }
@@ -5762,7 +5762,7 @@ async function serializeLayersExternal(layers, store) {
5762
5762
  for (const [id, url] of Object.entries(inline.assets)) {
5763
5763
  let ref = refs.get(url);
5764
5764
  if (!ref) {
5765
- const parsed = _chunkST7E3NEEcjs.parseDataUrl.call(void 0, url);
5765
+ const parsed = _chunkEJVDBITDcjs.parseDataUrl.call(void 0, url);
5766
5766
  const png = decodePngHeader(parsed.bytes);
5767
5767
  ref = await store.put(new Blob([parsed.bytes], { type: "image/png" }), { id, width: png.width, height: png.height });
5768
5768
  if (typeof ref !== "string" || !ref) throw new Error(`The asset store returned no reference for "${id}".`);
@@ -5790,7 +5790,7 @@ async function resolveExternalAssets(assets, store, problems) {
5790
5790
  try {
5791
5791
  const blob = await store.get(ref);
5792
5792
  const bytes = new Uint8Array(await blob.arrayBuffer());
5793
- out[id] = `data:image/png;base64,${_chunkST7E3NEEcjs.bytesToBase64.call(void 0, bytes)}`;
5793
+ out[id] = `data:image/png;base64,${_chunkEJVDBITDcjs.bytesToBase64.call(void 0, bytes)}`;
5794
5794
  } catch (err) {
5795
5795
  problems.push(`Asset "${id}" (${ref}) could not be fetched: ${err.message}`);
5796
5796
  }
@@ -5798,9 +5798,9 @@ async function resolveExternalAssets(assets, store, problems) {
5798
5798
  return out;
5799
5799
  }
5800
5800
  function decodePngDataUrl(url, channels) {
5801
- const parsed = _chunkST7E3NEEcjs.parseDataUrl.call(void 0, url);
5801
+ const parsed = _chunkEJVDBITDcjs.parseDataUrl.call(void 0, url);
5802
5802
  if (!parsed) throw new Error("Asset is not a data URL.");
5803
- const png = _chunkST7E3NEEcjs.decodePng.call(void 0, parsed.bytes, { keepGray: channels === 1 });
5803
+ const png = _chunkEJVDBITDcjs.decodePng.call(void 0, parsed.bytes, { keepGray: channels === 1 });
5804
5804
  if (png.channels === channels) return png;
5805
5805
  if (channels === 1) {
5806
5806
  const out2 = new Uint8ClampedArray(png.width * png.height);
@@ -5974,7 +5974,7 @@ function readContents(id, ctx) {
5974
5974
  const c = { id, name: typeof raw.name === "string" ? raw.name : "Contents", width, height, kind: raw.kind === "document" ? "document" : "raster" };
5975
5975
  if (raw.file && typeof raw.file.type === "string" && typeof raw.file.data === "string") {
5976
5976
  try {
5977
- c.file = { type: raw.file.type, bytes: _chunkST7E3NEEcjs.base64ToBytes.call(void 0, raw.file.data) };
5977
+ c.file = { type: raw.file.type, bytes: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, raw.file.data) };
5978
5978
  } catch (e9) {
5979
5979
  ctx.problems.push(`Smart object contents "${c.name}": the embedded file could not be read`);
5980
5980
  }
@@ -6009,7 +6009,7 @@ function readSmartFilters(raw, ctx, what) {
6009
6009
  const opacity = num2(f.opacity, 0, 1, 1);
6010
6010
  if (f.kind === "psd") {
6011
6011
  try {
6012
- 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: _chunkST7E3NEEcjs.base64ToBytes.call(void 0, String(_nullishCoalesce(f.data, () => ( "")))), blend, opacity });
6012
+ 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 });
6013
6013
  } catch (e10) {
6014
6014
  ctx.problems.push(`${what}: a Photoshop smart filter could not be read`);
6015
6015
  }
@@ -6034,8 +6034,8 @@ function readSmartObject(r, base, ctx) {
6034
6034
  let placement;
6035
6035
  try {
6036
6036
  const raw = { corners: p.corners };
6037
- if (p.warp && _chunkLPLCWZTMcjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6038
- if (_chunkST7E3NEEcjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6037
+ if (p.warp && _chunkFODKPD44cjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6038
+ if (_chunkPAOWHJ5Ocjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6039
6039
  placement = normalizePlacement(raw, contents);
6040
6040
  } catch (e) {
6041
6041
  ctx.problems.push(`${what}: its placement is invalid (${e instanceof Error ? e.message : String(e)}); it was placed at the top left`);
@@ -6047,7 +6047,7 @@ function readSmartObject(r, base, ctx) {
6047
6047
  if (typeof r.fillOpacity === "number" && r.fillOpacity !== 1) layer.fillOpacity = num2(r.fillOpacity, 0, 1, 1);
6048
6048
  if (r.psd && typeof r.psd.key === "string" && typeof r.psd.data === "string") {
6049
6049
  try {
6050
- layer.psd = { key: r.psd.key, data: _chunkST7E3NEEcjs.base64ToBytes.call(void 0, r.psd.data) };
6050
+ layer.psd = { key: r.psd.key, data: _chunkEJVDBITDcjs.base64ToBytes.call(void 0, r.psd.data) };
6051
6051
  if (typeof r.psd.placed === "string") layer.psd.placed = r.psd.placed;
6052
6052
  } catch (e11) {
6053
6053
  }
@@ -7017,7 +7017,7 @@ function vectorBlockForComponents(components, inverted, width, height, flags = 0
7017
7017
  const fr = (p) => ({ x: p.x / w, y: p.y / h });
7018
7018
  const subpaths = [];
7019
7019
  components.forEach((c, ci) => {
7020
- _chunkLPLCWZTMcjs.expandVectorCorners.call(void 0, c.subpaths).forEach((sp, si) => {
7020
+ _chunkFODKPD44cjs.expandVectorCorners.call(void 0, c.subpaths).forEach((sp, si) => {
7021
7021
  if (!sp.anchors.length) return;
7022
7022
  subpaths.push({
7023
7023
  closed: sp.closed,
@@ -7739,7 +7739,7 @@ function merged(levels) {
7739
7739
  function charStyle(d, fonts, notes) {
7740
7740
  const n = (k) => eNum(eGet(d, k));
7741
7741
  const flag = (k) => eBool(eGet(d, k));
7742
- const s = { ..._chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE };
7742
+ const s = { ..._chunkFODKPD44cjs.DEFAULT_TEXT_STYLE };
7743
7743
  const fi = n("Font");
7744
7744
  const ps = fi !== void 0 ? fonts[fi] : void 0;
7745
7745
  if (ps) {
@@ -7822,7 +7822,7 @@ function typeFromTySh(data, notes) {
7822
7822
  }
7823
7823
  const edText = _nullishCoalesce(eStr(ePath(_nullishCoalesce(engine, () => ( void 0)), ["EngineDict", "Editor", "Text"])), () => ( ""));
7824
7824
  const text3 = (_nullishCoalesce(txt, () => ( edText.replace(/\r$/, "")))).replace(/\r\n?/g, "\n");
7825
- let runs = [{ length: text3.length, style: { ..._chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE } }];
7825
+ let runs = [{ length: text3.length, style: { ..._chunkFODKPD44cjs.DEFAULT_TEXT_STYLE } }];
7826
7826
  let paragraphs = [{ length: text3.length, style: {} }];
7827
7827
  let frame = { kind: "point" };
7828
7828
  let transform = t.transform;
@@ -7878,14 +7878,14 @@ function typeFromTySh(data, notes) {
7878
7878
  const b = eArray(ePath(shape, ["Cookie", "Photoshop", "BoxBounds"])).map((v) => _nullishCoalesce(eNum(v), () => ( 0)));
7879
7879
  if (b.length === 4 && b[2] > b[0] && b[3] > b[1]) {
7880
7880
  frame = { kind: "box", width: b[2] - b[0], height: b[3] - b[1] };
7881
- transform = _chunkLPLCWZTMcjs.multiplyMatrices.call(void 0, [1, 0, 0, 1, b[0], b[1]], t.transform);
7881
+ transform = _chunkFODKPD44cjs.multiplyMatrices.call(void 0, [1, 0, 0, 1, b[0], b[1]], t.transform);
7882
7882
  }
7883
7883
  }
7884
7884
  }
7885
7885
  return {
7886
7886
  text: text3,
7887
- runs: _chunkLPLCWZTMcjs.fitRuns.call(void 0, runs, text3.length, _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE),
7888
- paragraphs: _chunkLPLCWZTMcjs.fitParagraphRuns.call(void 0, paragraphs, text3),
7887
+ runs: _chunkFODKPD44cjs.fitRuns.call(void 0, runs, text3.length, _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE),
7888
+ paragraphs: _chunkFODKPD44cjs.fitParagraphRuns.call(void 0, paragraphs, text3),
7889
7889
  frame,
7890
7890
  transform,
7891
7891
  antiAlias,
@@ -7959,7 +7959,7 @@ function buildEngineData(layer, template) {
7959
7959
  fonts.push(ps);
7960
7960
  return fonts.length - 1;
7961
7961
  };
7962
- const runs = _chunkLPLCWZTMcjs.fitRuns.call(void 0, layer.runs, layer.text.length, _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE);
7962
+ const runs = _chunkFODKPD44cjs.fitRuns.call(void 0, layer.runs, layer.text.length, _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE);
7963
7963
  const sruns = [];
7964
7964
  const slens = [];
7965
7965
  runs.forEach((r, i) => {
@@ -7967,10 +7967,10 @@ function buildEngineData(layer, template) {
7967
7967
  slens.push(E.int(r.length + (i === runs.length - 1 ? 1 : 0)));
7968
7968
  });
7969
7969
  if (!runs.length) {
7970
- sruns.push(E.dict([["StyleSheet", E.dict([["StyleSheetData", styleSheetData(_chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE, fontIndex(postScriptFor(_chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE)))]])]]));
7970
+ sruns.push(E.dict([["StyleSheet", E.dict([["StyleSheetData", styleSheetData(_chunkFODKPD44cjs.DEFAULT_TEXT_STYLE, fontIndex(postScriptFor(_chunkFODKPD44cjs.DEFAULT_TEXT_STYLE)))]])]]));
7971
7971
  slens.push(E.int(1));
7972
7972
  }
7973
- const paras = _chunkLPLCWZTMcjs.fitParagraphRuns.call(void 0, layer.paragraphs, layer.text);
7973
+ const paras = _chunkFODKPD44cjs.fitParagraphRuns.call(void 0, layer.paragraphs, layer.text);
7974
7974
  const pruns = [];
7975
7975
  const plens = [];
7976
7976
  paras.forEach((p, i) => {
@@ -8026,7 +8026,7 @@ function buildEngineData(layer, template) {
8026
8026
  eSet(e, key, rd);
8027
8027
  }
8028
8028
  eSet(rd, "FontSet", fontSet);
8029
- 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]), () => ( _chunkLPLCWZTMcjs.DEFAULT_TEXT_STYLE)), 0)]])]));
8029
+ 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]), () => ( _chunkFODKPD44cjs.DEFAULT_TEXT_STYLE)), 0)]])]));
8030
8030
  if (!eGet(rd, "ParagraphSheetSet")) eSet(rd, "ParagraphSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["DefaultStyleSheet", E.int(0)], ["Properties", paragraphProperties({})]])]));
8031
8031
  if (!eGet(rd, "TheNormalStyleSheet")) eSet(rd, "TheNormalStyleSheet", E.int(0));
8032
8032
  if (!eGet(rd, "TheNormalParagraphSheet")) eSet(rd, "TheNormalParagraphSheet", E.int(0));
@@ -8037,13 +8037,13 @@ function inkBounds2(layer) {
8037
8037
  if (layer.frame.kind === "box") return [0, 0, layer.frame.width, layer.frame.height];
8038
8038
  const b = _chunkTFOPHZ3Ucjs.contentBounds.call(void 0, layer.surface);
8039
8039
  if (!b) return [0, 0, 0, 0];
8040
- const inv = _chunkLPLCWZTMcjs.invertMatrix.call(void 0, textMatrix(layer));
8040
+ const inv = _chunkFODKPD44cjs.invertMatrix.call(void 0, textMatrix(layer));
8041
8041
  const pts = [
8042
8042
  { x: b.x, y: b.y },
8043
8043
  { x: b.x + b.width, y: b.y },
8044
8044
  { x: b.x + b.width, y: b.y + b.height },
8045
8045
  { x: b.x, y: b.y + b.height }
8046
- ].map((p) => _chunkLPLCWZTMcjs.applyMatrix.call(void 0, inv, p));
8046
+ ].map((p) => _chunkFODKPD44cjs.applyMatrix.call(void 0, inv, p));
8047
8047
  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))];
8048
8048
  }
8049
8049
  function tyShForLayer(layer) {
@@ -8510,7 +8510,7 @@ function filterMaskItem(placed, mask, area) {
8510
8510
  var warpStyleOf = (name) => {
8511
8511
  if (!name.startsWith("warp")) return null;
8512
8512
  const s = _optionalChain([name, 'access', _218 => _218[4], 'optionalAccess', _219 => _219.toLowerCase, 'call', _220 => _220()]) + name.slice(5);
8513
- return _chunkLPLCWZTMcjs.WARP_STYLES.includes(s) ? s : null;
8513
+ return _chunkFODKPD44cjs.WARP_STYLES.includes(s) ? s : null;
8514
8514
  };
8515
8515
  function warpFromDescriptor(w, contents) {
8516
8516
  const full = { x: 0, y: 0, width: contents.width, height: contents.height };
@@ -8540,7 +8540,7 @@ function warpFromDescriptor(w, contents) {
8540
8540
  } else {
8541
8541
  const style = warpStyleOf(styleName);
8542
8542
  if (!style) return void 0;
8543
- mesh = _chunkLPLCWZTMcjs.warpPresetMesh.call(void 0,
8543
+ mesh = _chunkFODKPD44cjs.warpPresetMesh.call(void 0,
8544
8544
  {
8545
8545
  style,
8546
8546
  bend: _nullishCoalesce(descNumber(w, "warpValue"), () => ( 0)),
@@ -8555,7 +8555,7 @@ function warpFromDescriptor(w, contents) {
8555
8555
  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;
8556
8556
  if (!same) {
8557
8557
  const m = mesh;
8558
- mesh = _chunkLPLCWZTMcjs.fitWarpMesh.call(void 0, (s, t) => _chunkLPLCWZTMcjs.evalWarpMesh.call(void 0, m, (s * contents.width - bounds.x) / bounds.width, (t * contents.height - bounds.y) / bounds.height), [0, 1], [0, 1]);
8558
+ mesh = _chunkFODKPD44cjs.fitWarpMesh.call(void 0, (s, t) => _chunkFODKPD44cjs.evalWarpMesh.call(void 0, m, (s * contents.width - bounds.x) / bounds.width, (t * contents.height - bounds.y) / bounds.height), [0, 1], [0, 1]);
8559
8559
  }
8560
8560
  return { mesh, frame };
8561
8561
  }
@@ -8604,14 +8604,14 @@ var toQuad = (p) => [
8604
8604
  function cornersFromQuad(quad, frame, contents) {
8605
8605
  if (quad.length !== 8 || !quad.every(Number.isFinite)) return null;
8606
8606
  const q2 = toQuad(quad);
8607
- const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, frame, q2);
8607
+ const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, frame, q2);
8608
8608
  if (!h) return null;
8609
- 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));
8609
+ 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));
8610
8610
  return out.every(Boolean) ? out : null;
8611
8611
  }
8612
8612
  function quadFromCorners(corners, frame, contents) {
8613
- const h = _chunkMUUXNRU4cjs.rectToQuad.call(void 0, { x: 0, y: 0, width: contents.width, height: contents.height }, corners);
8614
- const pts = _chunkMUUXNRU4cjs.boxQuad.call(void 0, frame).map((p) => _nullishCoalesce((h ? _chunkMUUXNRU4cjs.applyHomography.call(void 0, h, p) : p), () => ( p)));
8613
+ const h = _chunkEJVDBITDcjs.rectToQuad.call(void 0, { x: 0, y: 0, width: contents.width, height: contents.height }, corners);
8614
+ const pts = _chunkEJVDBITDcjs.boxQuad.call(void 0, frame).map((p) => _nullishCoalesce((h ? _chunkEJVDBITDcjs.applyHomography.call(void 0, h, p) : p), () => ( p)));
8615
8615
  return pts.flatMap((p) => [p.x, p.y]);
8616
8616
  }
8617
8617
  var PLACED_KEYS = ["SoLd", "SoLE", "PlLd"];
@@ -9764,7 +9764,7 @@ function recordPixels(ctx, rec, name) {
9764
9764
  cmykToRgb: ctx.cmykToRgb
9765
9765
  };
9766
9766
  const deep = set.cmykToRgb ? null : toRgbaDeep(set);
9767
- if (deep) return _chunkST7E3NEEcjs.surfaceFromDeepPixels.call(void 0, { width, height, data: deep }, 4, rec.rect.left, rec.rect.top);
9767
+ if (deep) return _chunkPAOWHJ5Ocjs.surfaceFromDeepPixels.call(void 0, { width, height, data: deep }, 4, rec.rect.left, rec.rect.top);
9768
9768
  return _chunkTFOPHZ3Ucjs.surfaceFromPixels.call(void 0, { width, height, data: toRgba8(set) }, 4, rec.rect.left, rec.rect.top);
9769
9769
  }
9770
9770
  function recordMask(ctx, rec, name) {
@@ -9840,7 +9840,7 @@ function recordEffects(ctx, rec, name, notes, group) {
9840
9840
  }
9841
9841
  for (const e of parsed.effects.items) {
9842
9842
  for (const id of patternIds(e)) {
9843
- if (ctx.patterns.has(id) || _chunkST7E3NEEcjs.builtinPattern.call(void 0, id)) continue;
9843
+ if (ctx.patterns.has(id) || _chunkPAOWHJ5Ocjs.builtinPattern.call(void 0, id)) continue;
9844
9844
  ctx.warn.add("A pattern effect uses a pattern the file does not contain, and paints nothing", name);
9845
9845
  notes.push(`pattern "${id}" is not in the file`);
9846
9846
  }
@@ -10050,7 +10050,7 @@ function contentsFor(ctx, placed, name, notes) {
10050
10050
  document: { layers: nested.layers, globalLight: nested.globalLight, patterns: nested.patterns.length ? nested.patterns : void 0 }
10051
10051
  };
10052
10052
  } else if (t.ext === "png") {
10053
- const png = _chunkST7E3NEEcjs.decodePng.call(void 0, file.bytes);
10053
+ const png = _chunkEJVDBITDcjs.decodePng.call(void 0, file.bytes);
10054
10054
  out = { ...base, kind: "raster", width: png.width, height: png.height, raster: _chunkTFOPHZ3Ucjs.surfaceFromPixels.call(void 0, png, 4, 0, 0) };
10055
10055
  } else {
10056
10056
  const size = _nullishCoalesce(placed.size, () => ( { width: 0, height: 0 }));
@@ -10092,7 +10092,7 @@ function importSmart(ctx, rec, name, notes, props) {
10092
10092
  if (placement && (size.width !== contents.width || size.height !== contents.height)) {
10093
10093
  const kx = contents.width / size.width;
10094
10094
  const ky = contents.height / size.height;
10095
- if (placement.warp) placement = { ...placement, warp: _chunkLPLCWZTMcjs.mapWarpMeshPoints.call(void 0, placement.warp, (p) => ({ x: p.x * kx, y: p.y * ky })) };
10095
+ if (placement.warp) placement = { ...placement, warp: _chunkFODKPD44cjs.mapWarpMeshPoints.call(void 0, placement.warp, (p) => ({ x: p.x * kx, y: p.y * ky })) };
10096
10096
  }
10097
10097
  }
10098
10098
  if (!contents || !placement) {
@@ -10116,7 +10116,7 @@ function importSmart(ctx, rec, name, notes, props) {
10116
10116
  ctx.warn.add("A smart object without readable contents came in with its stored pixels as contents", name);
10117
10117
  notes.push("contents missing");
10118
10118
  }
10119
- placement = { corners: _chunkMUUXNRU4cjs.boxQuad.call(void 0, { x: rec.rect.left, y: rec.rect.top, width, height }) };
10119
+ placement = { corners: _chunkEJVDBITDcjs.boxQuad.call(void 0, { x: rec.rect.left, y: rec.rect.top, width, height }) };
10120
10120
  preview = true;
10121
10121
  }
10122
10122
  const layer = { type: "smart", id: ctx.newId(name), ...props, contents, placement, surface, offset: { x: 0, y: 0 } };
@@ -10175,7 +10175,7 @@ function mergedLayer(ctx) {
10175
10175
  };
10176
10176
  const deep = hasAlpha || set.cmykToRgb ? null : toRgbaDeep(set);
10177
10177
  let surface;
10178
- if (deep) surface = _chunkST7E3NEEcjs.surfaceFromDeepPixels.call(void 0, { width, height, data: deep }, 4);
10178
+ if (deep) surface = _chunkPAOWHJ5Ocjs.surfaceFromDeepPixels.call(void 0, { width, height, data: deep }, 4);
10179
10179
  else {
10180
10180
  const data = toRgba8(set);
10181
10181
  if (hasAlpha) unmatteWhite(data);
@@ -10393,34 +10393,34 @@ function blendOf(d, key, fallback, notes) {
10393
10393
  function colorOf(d, fallback = "#000000") {
10394
10394
  if (!d) return fallback;
10395
10395
  const g = (k) => descNumber(d, k);
10396
- if (g("redFloat") !== void 0) return _chunkST7E3NEEcjs.effectColorHex.call(void 0, [g("redFloat"), _nullishCoalesce(g("greenFloat"), () => ( 0)), _nullishCoalesce(g("blueFloat"), () => ( 0))]);
10396
+ if (g("redFloat") !== void 0) return _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, [g("redFloat"), _nullishCoalesce(g("greenFloat"), () => ( 0)), _nullishCoalesce(g("blueFloat"), () => ( 0))]);
10397
10397
  switch (d.classId) {
10398
10398
  case "HSBC": {
10399
10399
  const rgb = decodePsdColor(1, [(_nullishCoalesce(g("H "), () => ( 0))) / 360 * 65535, (_nullishCoalesce(g("Strt"), () => ( 0))) / 100 * 65535, (_nullishCoalesce(g("Brgh"), () => ( 0))) / 100 * 65535]);
10400
- return rgb ? _chunkST7E3NEEcjs.effectColorHex.call(void 0, rgb) : fallback;
10400
+ return rgb ? _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, rgb) : fallback;
10401
10401
  }
10402
10402
  case "CMYC": {
10403
10403
  const inv = (k) => (1 - (_nullishCoalesce(g(k), () => ( 0))) / 100) * 65535;
10404
10404
  const rgb = decodePsdColor(2, [inv("Cyn "), inv("Mgnt"), inv("Ylw "), inv("Blck")]);
10405
- return rgb ? _chunkST7E3NEEcjs.effectColorHex.call(void 0, rgb) : fallback;
10405
+ return rgb ? _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, rgb) : fallback;
10406
10406
  }
10407
10407
  case "LbCl": {
10408
10408
  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]);
10409
- return rgb ? _chunkST7E3NEEcjs.effectColorHex.call(void 0, rgb) : fallback;
10409
+ return rgb ? _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, rgb) : fallback;
10410
10410
  }
10411
10411
  case "Grsc": {
10412
10412
  const v = 1 - (_nullishCoalesce(g("Gry "), () => ( 0))) / 100;
10413
- return _chunkST7E3NEEcjs.effectColorHex.call(void 0, [v, v, v]);
10413
+ return _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, [v, v, v]);
10414
10414
  }
10415
10415
  }
10416
10416
  const r = g("Rd ");
10417
10417
  const gr = g("Grn ");
10418
10418
  const b = g("Bl ");
10419
10419
  if (r === void 0 || gr === void 0 || b === void 0) return fallback;
10420
- return _chunkST7E3NEEcjs.effectColorHex.call(void 0, [r / 255, gr / 255, b / 255]);
10420
+ return _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, [r / 255, gr / 255, b / 255]);
10421
10421
  }
10422
10422
  function colorDesc(hex) {
10423
- const [r, g, b] = _nullishCoalesce(_chunkST7E3NEEcjs.parseEffectColor.call(void 0, hex), () => ( [0, 0, 0]));
10423
+ const [r, g, b] = _nullishCoalesce(_chunkPAOWHJ5Ocjs.parseEffectColor.call(void 0, hex), () => ( [0, 0, 0]));
10424
10424
  return descriptor("RGBC", [
10425
10425
  ["Rd ", dbl3(r * 255)],
10426
10426
  ["Grn ", dbl3(g * 255)],
@@ -10503,9 +10503,9 @@ function gradientOf(d, notes) {
10503
10503
  raw.forEach((s, i) => {
10504
10504
  if (i > 0 && Math.abs(s.mid - 0.5) > 1e-3) {
10505
10505
  const a = raw[i - 1];
10506
- const ca = _chunkST7E3NEEcjs.parseEffectColor.call(void 0, a.color);
10507
- const cb = _chunkST7E3NEEcjs.parseEffectColor.call(void 0, s.color);
10508
- stops.push({ position: a.position + (s.position - a.position) * s.mid, color: _chunkST7E3NEEcjs.effectColorHex.call(void 0, ca.map((v, k) => (v + cb[k]) / 2)) });
10506
+ const ca = _chunkPAOWHJ5Ocjs.parseEffectColor.call(void 0, a.color);
10507
+ const cb = _chunkPAOWHJ5Ocjs.parseEffectColor.call(void 0, s.color);
10508
+ stops.push({ position: a.position + (s.position - a.position) * s.mid, color: _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, ca.map((v, k) => (v + cb[k]) / 2)) });
10509
10509
  notes.add("gradient midpoints are drawn as straight segments");
10510
10510
  }
10511
10511
  stops.push({ position: s.position, color: s.color });
@@ -10617,8 +10617,8 @@ var KINDS = [
10617
10617
  ["FrFX", "frameFXMulti", "stroke"]
10618
10618
  ];
10619
10619
  function common(d, kind, notes) {
10620
- const def = _chunkST7E3NEEcjs.defaultLayerEffect.call(void 0, kind, "x");
10621
- return { id: _chunkST7E3NEEcjs.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) };
10620
+ const def = _chunkPAOWHJ5Ocjs.defaultLayerEffect.call(void 0, kind, "x");
10621
+ return { id: _chunkPAOWHJ5Ocjs.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) };
10622
10622
  }
10623
10623
  function readOne(kind, d, notes) {
10624
10624
  const size = (key, fallback) => clamp3(num3(d, key, fallback), 0, 250);
@@ -10661,7 +10661,7 @@ function readOne(kind, d, notes) {
10661
10661
  case "bevel-emboss": {
10662
10662
  const styles = { OtrB: "outer-bevel", InrB: "inner-bevel", Embs: "emboss", PlEb: "pillow-emboss", strokeEmboss: "stroke-emboss" };
10663
10663
  const out = {
10664
- id: _chunkST7E3NEEcjs.newEffectId.call(void 0, ),
10664
+ id: _chunkPAOWHJ5Ocjs.newEffectId.call(void 0, ),
10665
10665
  enabled: descBool(d, "enab") !== false,
10666
10666
  kind,
10667
10667
  style: _nullishCoalesce(styles[_nullishCoalesce(enumOf3(d, "bvlS"), () => ( ""))], () => ( "inner-bevel")),
@@ -10872,10 +10872,10 @@ function writeLfx2(effects) {
10872
10872
  ["Scl ", unit3("#Prc", 100)],
10873
10873
  ["masterFXSwitch", boolV3(effects.enabled)]
10874
10874
  ];
10875
- const scale = _chunkST7E3NEEcjs.effectsScale.call(void 0, effects);
10875
+ const scale = _chunkPAOWHJ5Ocjs.effectsScale.call(void 0, effects);
10876
10876
  let dropped = 0;
10877
10877
  for (const [single, multi, kind] of KINDS) {
10878
- const of = effects.items.filter((e) => e.kind === kind).map((e) => writeOne(_chunkST7E3NEEcjs.scaleLayerEffect.call(void 0, e, scale)));
10878
+ const of = effects.items.filter((e) => e.kind === kind).map((e) => writeOne(_chunkPAOWHJ5Ocjs.scaleLayerEffect.call(void 0, e, scale)));
10879
10879
  if (!of.length) continue;
10880
10880
  if (of.length === 1) items.push([single, obj3(of[0])]);
10881
10881
  else if (multi) items.push([multi, { type: "VlLs", items: of.map(obj3) }]);
@@ -10907,7 +10907,7 @@ function parseLrfx(data) {
10907
10907
  const colorAt = (rd) => {
10908
10908
  rd.u16();
10909
10909
  const c = [rd.u16(), rd.u16(), rd.u16(), rd.u16()];
10910
- return _chunkST7E3NEEcjs.effectColorHex.call(void 0, [c[0] >> 8, c[1] >> 8, c[2] >> 8].map((v) => v / 255));
10910
+ return _chunkPAOWHJ5Ocjs.effectColorHex.call(void 0, [c[0] >> 8, c[1] >> 8, c[2] >> 8].map((v) => v / 255));
10911
10911
  };
10912
10912
  const blendAt = (rd) => {
10913
10913
  rd.skip(4);
@@ -10926,7 +10926,7 @@ function parseLrfx(data) {
10926
10926
  const enabled = b.u8() !== 0;
10927
10927
  const useGlobalLight = b.u8() !== 0;
10928
10928
  const opacity = b.u8() / 255;
10929
- const base = { id: _chunkST7E3NEEcjs.newEffectId.call(void 0, ), enabled, blend, opacity, color, angle, useGlobalLight, distance: clamp3(distance, 0, 3e4), size: clamp3(blur, 0, 250), antiAlias: false, noise: 0 };
10929
+ const base = { id: _chunkPAOWHJ5Ocjs.newEffectId.call(void 0, ), enabled, blend, opacity, color, angle, useGlobalLight, distance: clamp3(distance, 0, 3e4), size: clamp3(blur, 0, 250), antiAlias: false, noise: 0 };
10930
10930
  items.push(key === "dsdw" ? { ...base, kind: "drop-shadow", spread: 0, knocksOut: true } : { ...base, kind: "inner-shadow", choke: 0 });
10931
10931
  } else if (key === "oglw" || key === "iglw") {
10932
10932
  b.u32();
@@ -10936,7 +10936,7 @@ function parseLrfx(data) {
10936
10936
  const blend = blendAt(b);
10937
10937
  const enabled = b.u8() !== 0;
10938
10938
  const opacity = b.u8() / 255;
10939
- const base = { id: _chunkST7E3NEEcjs.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 };
10939
+ const base = { id: _chunkPAOWHJ5Ocjs.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 };
10940
10940
  items.push(key === "oglw" ? { ...base, kind: "outer-glow", spread: 0 } : { ...base, kind: "inner-glow", choke: 0, source: "edge" });
10941
10941
  } else if (key === "sofi") {
10942
10942
  b.u32();
@@ -10944,7 +10944,7 @@ function parseLrfx(data) {
10944
10944
  const color = colorAt(b);
10945
10945
  const opacity = b.u8() / 255;
10946
10946
  const enabled = b.u8() !== 0;
10947
- items.push({ id: _chunkST7E3NEEcjs.newEffectId.call(void 0, ), kind: "color-overlay", enabled, blend, opacity, color });
10947
+ items.push({ id: _chunkPAOWHJ5Ocjs.newEffectId.call(void 0, ), kind: "color-overlay", enabled, blend, opacity, color });
10948
10948
  } else if (key === "bevl") notes.add("legacy bevels are not read");
10949
10949
  }
10950
10950
  return { effects: { enabled: true, items }, notes: [...notes] };
@@ -10996,7 +10996,7 @@ function rleChannel(id, plane, width, height, psb, depth = 8) {
10996
10996
  function surfacePlanes(surface, bounds, depth) {
10997
10997
  const n = bounds.width * bounds.height;
10998
10998
  if (depth === 8) return rgbaToPlanes(_chunkTFOPHZ3Ucjs.readRegion.call(void 0, surface, bounds), n);
10999
- return deepToPlanes(_chunkST7E3NEEcjs.readDeepRegion.call(void 0, surface, bounds, depth), n);
10999
+ return deepToPlanes(_chunkPAOWHJ5Ocjs.readDeepRegion.call(void 0, surface, bounds, depth), n);
11000
11000
  }
11001
11001
  var emptyChannel = (id) => ({ id, compression: 0, data: new Uint8Array(0) });
11002
11002
  function maskChannel(mask, ox, oy, psb, depth = 8) {
@@ -11056,7 +11056,7 @@ function smartContentsFile(c) {
11056
11056
  if (c.file) return { name: c.name, bytes: c.file.bytes };
11057
11057
  if (c.kind === "raster") {
11058
11058
  const data = _chunkTFOPHZ3Ucjs.readRegion.call(void 0, contentsSurface(c), { x: 0, y: 0, width: c.width, height: c.height });
11059
- return { name: `${base}.png`, bytes: _chunkST7E3NEEcjs.encodePng.call(void 0, c.width, c.height, data) };
11059
+ return { name: `${base}.png`, bytes: _chunkEJVDBITDcjs.encodePng.call(void 0, c.width, c.height, data) };
11060
11060
  }
11061
11061
  const doc = c.document;
11062
11062
  const merged2 = _chunkTFOPHZ3Ucjs.readRegion.call(void 0, contentsSurface(c), { x: 0, y: 0, width: c.width, height: c.height });
@@ -11123,7 +11123,7 @@ function exportPsd(input) {
11123
11123
  const key = layer.type === "group" ? "lfxs" : "lfx2";
11124
11124
  if (fx.psd) {
11125
11125
  const original = parseLfx2(fx.psd.data);
11126
- if (original ? _chunkST7E3NEEcjs.effectsFingerprint.call(void 0, original.effects) === _chunkST7E3NEEcjs.effectsFingerprint.call(void 0, fx) : !fx.items.length) return { key, data: padEven(fx.psd.data) };
11126
+ if (original ? _chunkPAOWHJ5Ocjs.effectsFingerprint.call(void 0, original.effects) === _chunkPAOWHJ5Ocjs.effectsFingerprint.call(void 0, fx) : !fx.items.length) return { key, data: padEven(fx.psd.data) };
11127
11127
  }
11128
11128
  if (!fx.items.length && fx.enabled && (_nullishCoalesce(fx.scale, () => ( 1))) === 1) return null;
11129
11129
  const { data, dropped } = writeLfx2(fx);
@@ -11344,7 +11344,7 @@ function exportPsd(input) {
11344
11344
  const byId = new Map((_nullishCoalesce(input.patterns, () => ( []))).map((p) => [p.id, p]));
11345
11345
  const embed = [];
11346
11346
  for (const id of patternIds2) {
11347
- const p = _nullishCoalesce(byId.get(id), () => ( _chunkST7E3NEEcjs.builtinPattern.call(void 0, id)));
11347
+ const p = _nullishCoalesce(byId.get(id), () => ( _chunkPAOWHJ5Ocjs.builtinPattern.call(void 0, id)));
11348
11348
  if (p) embed.push(p);
11349
11349
  else note(`Pattern "${id}" is not in the document and was not embedded`, id);
11350
11350
  }
@@ -11735,4 +11735,4 @@ function exportPsd(input) {
11735
11735
 
11736
11736
 
11737
11737
  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;
11738
- //# sourceMappingURL=chunk-I7FQBWMQ.cjs.map
11738
+ //# sourceMappingURL=chunk-ZYZGEILO.cjs.map