@pixerate/editor 0.218.1 → 0.219.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.
@@ -43,7 +43,7 @@ var _chunkLCCMOWR7cjs = require('../chunk-LCCMOWR7.cjs');
43
43
 
44
44
 
45
45
 
46
- var _chunkUC3PWFM3cjs = require('../chunk-UC3PWFM3.cjs');
46
+ var _chunkKALCIDWHcjs = require('../chunk-KALCIDWH.cjs');
47
47
 
48
48
 
49
49
 
@@ -552,7 +552,7 @@ var _chunkK6PXS6DOcjs = require('../chunk-K6PXS6DO.cjs');
552
552
 
553
553
 
554
554
 
555
- var _chunkYF3YZZ6Gcjs = require('../chunk-YF3YZZ6G.cjs');
555
+ var _chunk2ONK3ERDcjs = require('../chunk-2ONK3ERD.cjs');
556
556
 
557
557
 
558
558
 
@@ -561,7 +561,7 @@ var _chunkYF3YZZ6Gcjs = require('../chunk-YF3YZZ6G.cjs');
561
561
 
562
562
 
563
563
 
564
- var _chunkMQDIP4CFcjs = require('../chunk-MQDIP4CF.cjs');
564
+ var _chunkBB6TR422cjs = require('../chunk-BB6TR422.cjs');
565
565
 
566
566
 
567
567
 
@@ -4497,7 +4497,7 @@ function segmentationOutlines(result) {
4497
4497
  function segmentToSelection(width, height, result) {
4498
4498
  let out = null;
4499
4499
  for (const ring of segmentationOutlines(result)) {
4500
- out = _chunkSS53NNZOcjs.combineSelections.call(void 0, out, _chunkUC3PWFM3cjs.polygonSelection.call(void 0, width, height, ring), "add");
4500
+ out = _chunkSS53NNZOcjs.combineSelections.call(void 0, out, _chunkKALCIDWHcjs.polygonSelection.call(void 0, width, height, ring), "add");
4501
4501
  }
4502
4502
  if (result.mask && result.mask.width > 0 && result.mask.height > 0) {
4503
4503
  const raw = _chunkSS53NNZOcjs.selectionFromPixels.call(void 0, result.mask, { channel: "luminance" });
@@ -5555,7 +5555,7 @@ var PaintStrokeSession = (_class11 = class {
5555
5555
  this.stroke = null;
5556
5556
  this.retouch = stroke;
5557
5557
  if (this.base.channels === 1) {
5558
- const view = _chunkYF3YZZ6Gcjs.rgbaViewOfGrey.call(void 0, this.mixerPixels());
5558
+ const view = _chunk2ONK3ERDcjs.rgbaViewOfGrey.call(void 0, this.mixerPixels());
5559
5559
  this.mixer = stroke.create(view.target);
5560
5560
  this.flushView = view.flush;
5561
5561
  } else this.mixer = stroke.create(this.mixerPixels());
@@ -5602,7 +5602,7 @@ var PaintStrokeSession = (_class11 = class {
5602
5602
  retouchDeepTile(key2, tx, ty, paint, options) {
5603
5603
  const r = this.retouch;
5604
5604
  const read = this.readWork(key2);
5605
- const out = _chunkYF3YZZ6Gcjs.applyRetouchToTile.call(void 0, this.stroke.coverage, _nullishCoalesce(read, () => ( new Float32Array(_chunk474IQG74cjs.TILE * _chunk474IQG74cjs.TILE * 4))), 4, tx, ty, paint, r.apply, options);
5605
+ const out = _chunk2ONK3ERDcjs.applyRetouchToTile.call(void 0, this.stroke.coverage, _nullishCoalesce(read, () => ( new Float32Array(_chunk474IQG74cjs.TILE * _chunk474IQG74cjs.TILE * 4))), 4, tx, ty, paint, r.apply, options);
5606
5606
  this.work.set(key2, out);
5607
5607
  const d = deepOfWorkTile(out, this.deep, read, this.base.tiles.get(key2));
5608
5608
  this.liveDeep.set(key2, d);
@@ -5612,7 +5612,7 @@ var PaintStrokeSession = (_class11 = class {
5612
5612
  /** The new tile of a coverage stroke over the pre-stroke tile `src`. */
5613
5613
  compositeTile(src, tx, ty, options = {}, paint) {
5614
5614
  const r = this.retouch;
5615
- if (r && r.kind === "coverage") return _chunkYF3YZZ6Gcjs.applyRetouchToTile.call(void 0, this.stroke.coverage, src, this.base.channels, tx, ty, _nullishCoalesce(paint, () => ( r.paint())), r.apply, options);
5615
+ if (r && r.kind === "coverage") return _chunk2ONK3ERDcjs.applyRetouchToTile.call(void 0, this.stroke.coverage, src, this.base.channels, tx, ty, _nullishCoalesce(paint, () => ( r.paint())), r.apply, options);
5616
5616
  return _chunkPQ3H2AANcjs.applyStrokeToTile.call(void 0, this.stroke.coverage, src, this.base.channels, tx, ty, this.apply, options);
5617
5617
  }
5618
5618
  /** The live pixels a mixer stroke reads and writes; base tiles are copied on first write. */
@@ -5710,7 +5710,7 @@ var PaintStrokeSession = (_class11 = class {
5710
5710
  const prev2 = this.touched.has(key2) ? this.liveDeep.get(key2) : void 0;
5711
5711
  this.touched.add(key2);
5712
5712
  const opts = prev2 ? { into: prev2, region: r, channels: ch } : { channels: ch };
5713
- const d = _optionalChain([rt, 'optionalAccess', _134 => _134.kind]) === "coverage" && _optionalChain([paint, 'optionalAccess', _135 => _135.kind]) === "tone" ? _chunkYF3YZZ6Gcjs.applyToneToDeepTile.call(void 0, stroke.coverage, src2, tx, ty, paint.tone, rt.apply, opts) : _chunkPQ3H2AANcjs.applyStrokeToDeepTile.call(void 0, stroke.coverage, src2, tx, ty, this.apply, opts);
5713
+ const d = _optionalChain([rt, 'optionalAccess', _134 => _134.kind]) === "coverage" && _optionalChain([paint, 'optionalAccess', _135 => _135.kind]) === "tone" ? _chunk2ONK3ERDcjs.applyToneToDeepTile.call(void 0, stroke.coverage, src2, tx, ty, paint.tone, rt.apply, opts) : _chunkPQ3H2AANcjs.applyStrokeToDeepTile.call(void 0, stroke.coverage, src2, tx, ty, this.apply, opts);
5714
5714
  this.liveDeep.set(key2, d);
5715
5715
  this.live.set(key2, { data: _chunkOLNIPTB3cjs.proxyOf.call(void 0, d, ch), uniform: null, deep: d });
5716
5716
  continue;
@@ -5962,7 +5962,7 @@ var ImageEditorController = (_class12 = class {
5962
5962
  this.effectsEngine.subscribe(() => this.queueEffectRefresh("incomplete"));
5963
5963
  if (options.effects) this.effects.set(options.effects);
5964
5964
  if (options.segmentation) this.segmentation = options.segmentation;
5965
- if (options.selectionWorker) this.selectionWorker = new (0, _chunkUC3PWFM3cjs.SelectionWorkerClient)(options.selectionWorker);
5965
+ if (options.selectionWorker) this.selectionWorker = new (0, _chunkKALCIDWHcjs.SelectionWorkerClient)(options.selectionWorker);
5966
5966
  if (options.openDocument) this.documentOpener = options.openDocument;
5967
5967
  this.maxHistoryDepth = _nullishCoalesce(options.maxHistoryDepth, () => ( 50));
5968
5968
  if (options.textShaper !== void 0) this.textShaperValue = options.textShaper;
@@ -5998,7 +5998,7 @@ var ImageEditorController = (_class12 = class {
5998
5998
  activeLayerId: null,
5999
5999
  activeTarget: "pixels",
6000
6000
  outputOpacity: 1,
6001
- paint: { brush: { ..._chunkPQ3H2AANcjs.DEFAULT_BRUSH }, foreground: "#000000", background: "#ffffff", paint: { type: "color", color: "#000000" }, mixer: { ..._chunkPQ3H2AANcjs.DEFAULT_MIXER }, mixerLoad: _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD, retouch: { ..._chunkYF3YZZ6Gcjs.DEFAULT_RETOUCH }, cloneSource: null, cloneTransform: { ..._chunkYF3YZZ6Gcjs.IDENTITY_CLONE_TRANSFORM } },
6001
+ paint: { brush: { ..._chunkPQ3H2AANcjs.DEFAULT_BRUSH }, foreground: "#000000", background: "#ffffff", paint: { type: "color", color: "#000000" }, mixer: { ..._chunkPQ3H2AANcjs.DEFAULT_MIXER }, mixerLoad: _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD, retouch: { ..._chunk2ONK3ERDcjs.DEFAULT_RETOUCH }, cloneSource: null, cloneTransform: { ..._chunk2ONK3ERDcjs.IDENTITY_CLONE_TRANSFORM } },
6002
6002
  fit: _nullishCoalesce(options.fit, () => ( "margin"))
6003
6003
  };
6004
6004
  if (options.image instanceof Object && "width" in options.image) {
@@ -6163,7 +6163,7 @@ var ImageEditorController = (_class12 = class {
6163
6163
  */
6164
6164
  setSelectionWorker(factory) {
6165
6165
  _optionalChain([this, 'access', _172 => _172.selectionWorker, 'optionalAccess', _173 => _173.terminate, 'call', _174 => _174()]);
6166
- this.selectionWorker = factory ? new (0, _chunkUC3PWFM3cjs.SelectionWorkerClient)(factory) : null;
6166
+ this.selectionWorker = factory ? new (0, _chunkKALCIDWHcjs.SelectionWorkerClient)(factory) : null;
6167
6167
  }
6168
6168
  /** Sets (or with `null` removes) how new documents are opened (see `DocumentOpener`). Not an edit. */
6169
6169
  setDocumentOpener(opener) {
@@ -6241,7 +6241,7 @@ var ImageEditorController = (_class12 = class {
6241
6241
  async runSelectionJob(job, pixels, options = {}) {
6242
6242
  _optionalChain([options, 'access', _176 => _176.signal, 'optionalAccess', _177 => _177.throwIfAborted, 'call', _178 => _178()]);
6243
6243
  if (this.selectionWorker) return this.selectionWorker.run(job, pixels, options);
6244
- const result = _chunkUC3PWFM3cjs.runSelectionJob.call(void 0, job, pixels, options.onProgress);
6244
+ const result = _chunkKALCIDWHcjs.runSelectionJob.call(void 0, job, pixels, options.onProgress);
6245
6245
  _optionalChain([options, 'access', _179 => _179.signal, 'optionalAccess', _180 => _180.throwIfAborted, 'call', _181 => _181()]);
6246
6246
  return result;
6247
6247
  }
@@ -8603,7 +8603,7 @@ var ImageEditorController = (_class12 = class {
8603
8603
  /** Brush settings, colours and tool options of the paint tools (view state, no undo). */
8604
8604
  setPaintOptions(options) {
8605
8605
  const cur = this.state.paint;
8606
- const retouch = options.retouch ? _chunkYF3YZZ6Gcjs.normalizeRetouch.call(void 0, options.retouch, cur.retouch) : cur.retouch;
8606
+ const retouch = options.retouch ? _chunk2ONK3ERDcjs.normalizeRetouch.call(void 0, options.retouch, cur.retouch) : cur.retouch;
8607
8607
  const cloneSource = cur.cloneSource && retouch.aligned !== cur.retouch.aligned ? { ...cur.cloneSource, offset: null } : cur.cloneSource;
8608
8608
  let source = cur.paint;
8609
8609
  let foreground = options.foreground !== void 0 ? toHex(parseColor(options.foreground)) : cur.foreground;
@@ -8670,7 +8670,7 @@ var ImageEditorController = (_class12 = class {
8670
8670
  */
8671
8671
  setCloneTransform(t) {
8672
8672
  const cur = this.state.paint.cloneTransform;
8673
- const next = t ? { ...cur, ...t } : { ..._chunkYF3YZZ6Gcjs.IDENTITY_CLONE_TRANSFORM };
8673
+ const next = t ? { ...cur, ...t } : { ..._chunk2ONK3ERDcjs.IDENTITY_CLONE_TRANSFORM };
8674
8674
  for (const k of ["scaleX", "scaleY"]) {
8675
8675
  const v = next[k];
8676
8676
  if (!Number.isFinite(v) || Math.abs(v) < 0.01 || Math.abs(v) > 10) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`${k} must be a scale factor between 0.01 and 10 in size (negative flips), not ${String(v)}.`);
@@ -8778,11 +8778,11 @@ var ImageEditorController = (_class12 = class {
8778
8778
  }
8779
8779
  /** A retouching stroke's start: its settings, what it samples and how it composites. */
8780
8780
  retouchStroke(tool, init, brush, target, apply) {
8781
- const settings = _chunkYF3YZZ6Gcjs.normalizeRetouch.call(void 0, _nullishCoalesce(init.retouch, () => ( {})), this.state.paint.retouch);
8781
+ const settings = _chunk2ONK3ERDcjs.normalizeRetouch.call(void 0, _nullishCoalesce(init.retouch, () => ( {})), this.state.paint.retouch);
8782
8782
  const mask = target.channel !== "pixels";
8783
8783
  if (tool === "sponge" && mask) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("The Sponge changes saturation, and a mask has none; target pixels (channel pixels), or use dodge or burn on the mask.");
8784
- if (tool === "smudge") return { kind: "dabs", create: (pixels) => new (0, _chunkYF3YZZ6Gcjs.RetouchDabStroke)(brush, pixels, _chunkYF3YZZ6Gcjs.smudgeEffect.call(void 0, brush, settings.strength)) };
8785
- if (tool === "sponge") return { kind: "dabs", create: (pixels) => new (0, _chunkYF3YZZ6Gcjs.RetouchDabStroke)(brush, pixels, _chunkYF3YZZ6Gcjs.spongeEffect.call(void 0, brush, settings.spongeMode === "saturate", settings.vibrance)) };
8784
+ if (tool === "smudge") return { kind: "dabs", create: (pixels) => new (0, _chunk2ONK3ERDcjs.RetouchDabStroke)(brush, pixels, _chunk2ONK3ERDcjs.smudgeEffect.call(void 0, brush, settings.strength)) };
8785
+ if (tool === "sponge") return { kind: "dabs", create: (pixels) => new (0, _chunk2ONK3ERDcjs.RetouchDabStroke)(brush, pixels, _chunk2ONK3ERDcjs.spongeEffect.call(void 0, brush, settings.spongeMode === "saturate", settings.vibrance)) };
8786
8786
  const retouchApply = {
8787
8787
  opacity: tool === "clone" || tool === "heal" || tool === "history" ? brush.opacity : tool === "blur" || tool === "sharpen" ? brush.opacity * settings.strength : 1,
8788
8788
  blend: tool === "clone" && !mask ? brush.blend : "normal",
@@ -8792,7 +8792,7 @@ var ImageEditorController = (_class12 = class {
8792
8792
  };
8793
8793
  const coverage = new (0, _chunkPQ3H2AANcjs.StrokeCoverage)(brush);
8794
8794
  if (tool === "dodge" || tool === "burn") {
8795
- const paint2 = { kind: "tone", tone: _chunkYF3YZZ6Gcjs.toneOf.call(void 0, tool, settings) };
8795
+ const paint2 = { kind: "tone", tone: _chunk2ONK3ERDcjs.toneOf.call(void 0, tool, settings) };
8796
8796
  return { kind: "coverage", coverage, apply: retouchApply, start: () => {
8797
8797
  }, paint: () => paint2 };
8798
8798
  }
@@ -8800,11 +8800,11 @@ var ImageEditorController = (_class12 = class {
8800
8800
  const n = target.surface.channels;
8801
8801
  const depth = !mask && this.bitDepth !== 8 ? this.bitDepth : null;
8802
8802
  const m = 6;
8803
- const filtered = new (0, _chunkYF3YZZ6Gcjs.TilePixelSource)(
8803
+ const filtered = new (0, _chunk2ONK3ERDcjs.TilePixelSource)(
8804
8804
  (tx, ty) => {
8805
8805
  const r = { x: tx * _chunk474IQG74cjs.TILE - m, y: ty * _chunk474IQG74cjs.TILE - m, width: _chunk474IQG74cjs.TILE + 2 * m, height: _chunk474IQG74cjs.TILE + 2 * m };
8806
8806
  const d = workRegionOf(target.surface, r, depth);
8807
- _chunkYF3YZZ6Gcjs.retouchFilter.call(void 0, d, r.width, r.height, n, tool, 2, 1.2);
8807
+ _chunk2ONK3ERDcjs.retouchFilter.call(void 0, d, r.width, r.height, n, tool, 2, 1.2);
8808
8808
  const out = new Float32Array(_chunk474IQG74cjs.TILE * _chunk474IQG74cjs.TILE * n);
8809
8809
  for (let y = 0; y < _chunk474IQG74cjs.TILE; y++) out.set(d.subarray(((y + m) * r.width + m) * n, ((y + m) * r.width + m + _chunk474IQG74cjs.TILE) * n), y * _chunk474IQG74cjs.TILE * n);
8810
8810
  return out;
@@ -8826,14 +8826,14 @@ var ImageEditorController = (_class12 = class {
8826
8826
  if (!surface) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Layer "${target.id}" had no ${target.channel === "mask" ? "mask" : "pixels"} in that state.`);
8827
8827
  const offset2 = then.type === "pixel" ? then.offset : { x: 0, y: 0 };
8828
8828
  const depth = !mask && this.bitDepth !== 8 ? this.bitDepth : null;
8829
- const source2 = depth ? new (0, _chunkYF3YZZ6Gcjs.TilePixelSource)((tx, ty) => workTileOf(surface.tiles.get(_chunk474IQG74cjs.tileKey.call(void 0, tx, ty))), 4, offset2) : this.surfaceSource(surface, offset2);
8829
+ const source2 = depth ? new (0, _chunk2ONK3ERDcjs.TilePixelSource)((tx, ty) => workTileOf(surface.tiles.get(_chunk474IQG74cjs.tileKey.call(void 0, tx, ty))), 4, offset2) : this.surfaceSource(surface, offset2);
8830
8830
  const paint2 = { kind: "source", source: source2, dx: 0, dy: 0 };
8831
8831
  return { kind: "coverage", coverage, apply: retouchApply, start: () => {
8832
8832
  }, paint: () => paint2 };
8833
8833
  }
8834
8834
  const sample = mask ? "current" : settings.sample;
8835
8835
  const deep = !mask && this.bitDepth !== 8 ? this.bitDepth : null;
8836
- const own = deep ? new (0, _chunkYF3YZZ6Gcjs.TilePixelSource)((tx, ty) => workTileOf(target.surface.tiles.get(_chunk474IQG74cjs.tileKey.call(void 0, tx, ty))), 4, target.offset) : this.surfaceSource(target.surface, target.offset);
8836
+ const own = deep ? new (0, _chunk2ONK3ERDcjs.TilePixelSource)((tx, ty) => workTileOf(target.surface.tiles.get(_chunk474IQG74cjs.tileKey.call(void 0, tx, ty))), 4, target.offset) : this.surfaceSource(target.surface, target.offset);
8837
8837
  const source = sample === "current" ? own : this.compositeSource(sample === "all" ? null : target.id, deep);
8838
8838
  const pad = (r, m) => ({ x: r.x - m, y: r.y - m, width: r.width + 2 * m, height: r.height + 2 * m });
8839
8839
  const covered = (cov, r) => {
@@ -8854,14 +8854,14 @@ var ImageEditorController = (_class12 = class {
8854
8854
  paint: () => trail,
8855
8855
  finalPaint: (cov) => {
8856
8856
  if (!cov.bounds) return null;
8857
- const win = _chunkYF3YZZ6Gcjs.spotHealWindow.call(void 0, cov.bounds, { width, height });
8857
+ const win = _chunk2ONK3ERDcjs.spotHealWindow.call(void 0, cov.bounds, { width, height });
8858
8858
  if (win.width <= 0 || win.height <= 0) return null;
8859
- const img = _chunkYF3YZZ6Gcjs.readSourceRegion.call(void 0, source, win);
8859
+ const img = _chunk2ONK3ERDcjs.readSourceRegion.call(void 0, source, win);
8860
8860
  const hole = covered(cov, win);
8861
- const healed = _chunkYF3YZZ6Gcjs.spotHealPixels.call(void 0, win.width, win.height, img, hole, brush.size, settings.spotType, (off) => {
8861
+ const healed = _chunk2ONK3ERDcjs.spotHealPixels.call(void 0, win.width, win.height, img, hole, brush.size, settings.spotType, (off) => {
8862
8862
  patch = off ? { x: off[0], y: off[1] } : null;
8863
8863
  });
8864
- return { kind: "source", source: new (0, _chunkYF3YZZ6Gcjs.RegionPixelSource)(win, healed), dx: 0, dy: 0 };
8864
+ return { kind: "source", source: new (0, _chunk2ONK3ERDcjs.RegionPixelSource)(win, healed), dx: 0, dy: 0 };
8865
8865
  },
8866
8866
  result: () => ({ spotHeal: { offset: patch } })
8867
8867
  };
@@ -8872,7 +8872,7 @@ var ImageEditorController = (_class12 = class {
8872
8872
  let offset = { x: 0, y: 0 };
8873
8873
  let first = { x: 0, y: 0 };
8874
8874
  const xf = this.state.paint.cloneTransform;
8875
- const transformed = _chunkYF3YZZ6Gcjs.isIdentityCloneTransform.call(void 0, xf) ? null : new (0, _chunkYF3YZZ6Gcjs.TransformedPixelSource)(source, (x, y) => _chunkYF3YZZ6Gcjs.cloneSamplePoint.call(void 0, xf, cs, { x: cs.x - offset.x, y: cs.y - offset.y }, x, y));
8875
+ const transformed = _chunk2ONK3ERDcjs.isIdentityCloneTransform.call(void 0, xf) ? null : new (0, _chunk2ONK3ERDcjs.TransformedPixelSource)(source, (x, y) => _chunk2ONK3ERDcjs.cloneSamplePoint.call(void 0, xf, cs, { x: cs.x - offset.x, y: cs.y - offset.y }, x, y));
8876
8876
  const paint = () => transformed ? { kind: "source", source: transformed, dx: 0, dy: 0 } : { kind: "source", source, dx: offset.x, dy: offset.y };
8877
8877
  return {
8878
8878
  kind: "coverage",
@@ -8887,16 +8887,16 @@ var ImageEditorController = (_class12 = class {
8887
8887
  finalPaint: tool === "heal" ? (cov) => {
8888
8888
  if (!cov.bounds) return null;
8889
8889
  const g = pad(cov.bounds, 2);
8890
- const src = transformed ? _chunkYF3YZZ6Gcjs.readSourceRegion.call(void 0, transformed, g) : _chunkYF3YZZ6Gcjs.readSourceRegion.call(void 0, source, g, offset.x, offset.y);
8891
- const dst = _chunkYF3YZZ6Gcjs.readSourceRegion.call(void 0, source, g);
8892
- return { kind: "source", source: new (0, _chunkYF3YZZ6Gcjs.RegionPixelSource)(g, _chunkYF3YZZ6Gcjs.healPixels.call(void 0, g.width, g.height, src, dst, covered(cov, g))), dx: 0, dy: 0 };
8890
+ const src = transformed ? _chunk2ONK3ERDcjs.readSourceRegion.call(void 0, transformed, g) : _chunk2ONK3ERDcjs.readSourceRegion.call(void 0, source, g, offset.x, offset.y);
8891
+ const dst = _chunk2ONK3ERDcjs.readSourceRegion.call(void 0, source, g);
8892
+ return { kind: "source", source: new (0, _chunk2ONK3ERDcjs.RegionPixelSource)(g, _chunk2ONK3ERDcjs.healPixels.call(void 0, g.width, g.height, src, dst, covered(cov, g))), dx: 0, dy: 0 };
8893
8893
  } : void 0,
8894
8894
  result: () => ({ clone: { offset: { ...offset }, source: { x: first.x + offset.x, y: first.y + offset.y }, aligned: settings.aligned } })
8895
8895
  };
8896
8896
  }
8897
8897
  /** A pixel source over a surface (layer pixels or a mask) in layer space at `offset`. */
8898
8898
  surfaceSource(surface, offset) {
8899
- return new (0, _chunkYF3YZZ6Gcjs.TilePixelSource)((tx, ty) => _nullishCoalesce(_optionalChain([surface, 'access', _323 => _323.tiles, 'access', _324 => _324.get, 'call', _325 => _325(_chunk474IQG74cjs.tileKey.call(void 0, tx, ty)), 'optionalAccess', _326 => _326.data]), () => ( (surface.defaultValue ? defaultTile(surface) : null))), surface.channels, offset);
8899
+ return new (0, _chunk2ONK3ERDcjs.TilePixelSource)((tx, ty) => _nullishCoalesce(_optionalChain([surface, 'access', _323 => _323.tiles, 'access', _324 => _324.get, 'call', _325 => _325(_chunk474IQG74cjs.tileKey.call(void 0, tx, ty)), 'optionalAccess', _326 => _326.data]), () => ( (surface.defaultValue ? defaultTile(surface) : null))), surface.channels, offset);
8900
8900
  }
8901
8901
  /** A pixel source over the composite of the current layers (through `throughId` and below, or all of them), as it is now. */
8902
8902
  compositeSource(throughId, depth = null) {
@@ -8904,7 +8904,7 @@ var ImageEditorController = (_class12 = class {
8904
8904
  const layers = throughId ? layersThrough(stack, throughId) : stack;
8905
8905
  const sources = this.compositorSources();
8906
8906
  if (depth) {
8907
- return new (0, _chunkYF3YZZ6Gcjs.TilePixelSource)((tx, ty) => {
8907
+ return new (0, _chunk2ONK3ERDcjs.TilePixelSource)((tx, ty) => {
8908
8908
  const w = _chunkS55JFWDAcjs.compositeDeep.call(void 0, layers, { x: tx * _chunk474IQG74cjs.TILE, y: ty * _chunk474IQG74cjs.TILE, width: _chunk474IQG74cjs.TILE, height: _chunk474IQG74cjs.TILE }, sources, depth);
8909
8909
  for (let i = 0; i < w.length; i += 4) {
8910
8910
  if (depth === 32) for (let c = 0; c < 3; c++) w[i + c] = _chunkOLNIPTB3cjs.srgbEncode.call(void 0, w[i + c]);
@@ -8914,7 +8914,7 @@ var ImageEditorController = (_class12 = class {
8914
8914
  }, 4);
8915
8915
  }
8916
8916
  const compositor = new (0, _chunkS55JFWDAcjs.LayerCompositor)();
8917
- return new (0, _chunkYF3YZZ6Gcjs.TilePixelSource)((tx, ty) => compositor.tile(layers, tx, ty, sources), 4);
8917
+ return new (0, _chunk2ONK3ERDcjs.TilePixelSource)((tx, ty) => compositor.tile(layers, tx, ty, sources), 4);
8918
8918
  }
8919
8919
  /** A Mixer Brush stroke's start: the settings, and the load (refilled when asked or set to). */
8920
8920
  mixerStroke(init, brush) {
@@ -9033,7 +9033,7 @@ var ImageEditorController = (_class12 = class {
9033
9033
  */
9034
9034
  contentAwareFill(options = {}) {
9035
9035
  const plan = this.prepareContentAwareFill(options);
9036
- const filled = _chunkMQDIP4CFcjs.contentAwareFill.call(void 0, plan.window.width, plan.window.height, 4, plan.before, plan.hole, { seed: _nullishCoalesce(options.seed, () => ( 0)), exclude: plan.exclude });
9036
+ const filled = _chunkBB6TR422cjs.contentAwareFill.call(void 0, plan.window.width, plan.window.height, 4, plan.before, plan.hole, { seed: _nullishCoalesce(options.seed, () => ( 0)), exclude: plan.exclude });
9037
9037
  return this.applyContentAwareFill(plan, Uint8ClampedArray.from(filled), _nullishCoalesce(options.output, () => ( "current")));
9038
9038
  }
9039
9039
  /**
@@ -9045,6 +9045,50 @@ var ImageEditorController = (_class12 = class {
9045
9045
  const filled = await this.synthesiseFill(plan, _nullishCoalesce(options.seed, () => ( 0)), options);
9046
9046
  return this.applyContentAwareFill(plan, filled, _nullishCoalesce(options.output, () => ( "current")));
9047
9047
  }
9048
+ /**
9049
+ * Separate Subject: splits the selected subject from its background in one undo step. The
9050
+ * subject goes to a copy of the layer masked by the selection (on top, made active); a second
9051
+ * copy becomes the background plate with the subject's area, grown by `dilate` px (default 8),
9052
+ * Content-Aware Filled (`fill: 'none'` leaves it transparent); an alpha channel marks the filled
9053
+ * area so a bad patch can be selected and filled again; the source layer is hidden. The fill is
9054
+ * computed first, so `signal` cancels it with nothing changed. 8-bit pixel layers only. Returns
9055
+ * the new layers, the channel and the filled bounds.
9056
+ */
9057
+ async separateSubject(options = {}) {
9058
+ const subject = this.state.selection;
9059
+ if (!_optionalChain([subject, 'optionalAccess', _331 => _331.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected: select the subject first (select_subject, select_object or quick_select), then separate it.");
9060
+ const fill = _nullishCoalesce(options.fill, () => ( "content-aware"));
9061
+ if (fill !== "content-aware" && fill !== "none") throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`fill must be content-aware or none, got "${String(fill)}".`);
9062
+ const dilate = _nullishCoalesce(options.dilate, () => ( 8));
9063
+ if (!(typeof dilate === "number" && Number.isFinite(dilate) && dilate >= 0 && dilate <= 200)) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`dilate must be 0 to 200 px, got ${String(options.dilate)}.`);
9064
+ const source = this.paintTarget(options.layerId, "pixels", "separate the subject from");
9065
+ const name = source.layer.name || "Layer";
9066
+ const hole = dilate > 0 ? _chunkSS53NNZOcjs.modifySelection.call(void 0, subject, "expand", dilate) : subject;
9067
+ let plan;
9068
+ this.state.selection = hole;
9069
+ try {
9070
+ plan = this.prepareContentAwareFill({ layerId: source.id, seed: options.seed });
9071
+ } finally {
9072
+ this.state.selection = subject;
9073
+ }
9074
+ const filled = fill === "content-aware" ? await this.synthesiseFill(plan, _nullishCoalesce(options.seed, () => ( 0)), options) : new Uint8ClampedArray(plan.before.length);
9075
+ _optionalChain([options, 'access', _332 => _332.signal, 'optionalAccess', _333 => _333.throwIfAborted, 'call', _334 => _334()]);
9076
+ const plateRect = { x: plan.window.x - source.offset.x, y: plan.window.y - source.offset.y, width: plan.window.width, height: plan.window.height };
9077
+ const plateSurface = _chunk474IQG74cjs.writeRegion.call(void 0, source.surface, plateRect, this.blendFill(plan, filled, "current"));
9078
+ return this.asOneStep(() => {
9079
+ const plateLayerId = this.duplicateLayer(source.id, `${name} plate`);
9080
+ this.commitLayers(_chunkB46UQUDCcjs.mapLayer.call(void 0, this.state.layers, plateLayerId, (l) => this.withSurface(l, "pixels", plateSurface)));
9081
+ const foregroundLayerId = this.duplicateLayer(source.id, `${name} subject`);
9082
+ this.moveLayer(foregroundLayerId, { aboveId: plateLayerId });
9083
+ this.addLayerMask(foregroundLayerId, "selection");
9084
+ this.setSelection(hole);
9085
+ const channel = this.saveSelection({ name: `${name} fill area` });
9086
+ this.setSelection(subject);
9087
+ this.setLayerProperties(source.id, { visible: false });
9088
+ this.setActiveLayer(foregroundLayerId);
9089
+ return { foregroundLayerId, plateLayerId, sourceLayerId: source.id, fillChannelId: channel.id, filledBounds: { ...hole.bounds }, dilate, fill };
9090
+ });
9091
+ }
9048
9092
  /**
9049
9093
  * The fill without changing anything: the window, its pixels before and after (RGBA, the fill
9050
9094
  * blended by the selection's coverage) and the sampling area used, for a preview.
@@ -9069,7 +9113,7 @@ var ImageEditorController = (_class12 = class {
9069
9113
  */
9070
9114
  prepareContentAwareFill(options = {}) {
9071
9115
  const sel = this.state.selection;
9072
- if (!_optionalChain([sel, 'optionalAccess', _331 => _331.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected; select what to remove, then fill it.");
9116
+ if (!_optionalChain([sel, 'optionalAccess', _335 => _335.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected; select what to remove, then fill it.");
9073
9117
  if (this.bitDepth !== 8) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Content-Aware Fill works on 8-bit documents for now; set_bit_depth 8 first, or use spot_heal.");
9074
9118
  const output = _nullishCoalesce(options.output, () => ( "current"));
9075
9119
  if (output !== "current" && output !== "new-layer" && output !== "duplicate-layer") {
@@ -9080,12 +9124,12 @@ var ImageEditorController = (_class12 = class {
9080
9124
  const b = sel.bounds;
9081
9125
  let area = _nullishCoalesce(options.samplingArea, () => ( null));
9082
9126
  if (!area && options.samplingChannelId) area = this.requireChannel(options.samplingChannelId).mask;
9083
- if (!area && _optionalChain([options, 'access', _332 => _332.sampleRects, 'optionalAccess', _333 => _333.length])) {
9084
- for (const r of options.sampleRects) area = _chunkSS53NNZOcjs.combineSelections.call(void 0, area, _chunkUC3PWFM3cjs.rectSelection.call(void 0, width, height, r, { antiAlias: false }), "add");
9127
+ if (!area && _optionalChain([options, 'access', _336 => _336.sampleRects, 'optionalAccess', _337 => _337.length])) {
9128
+ for (const r of options.sampleRects) area = _chunkSS53NNZOcjs.combineSelections.call(void 0, area, _chunkKALCIDWHcjs.rectSelection.call(void 0, width, height, r, { antiAlias: false }), "add");
9085
9129
  }
9086
9130
  if (area && !area.bounds) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("The sampling area is empty; paint or give an area to sample from.");
9087
9131
  let win;
9088
- if (_optionalChain([area, 'optionalAccess', _334 => _334.bounds])) {
9132
+ if (_optionalChain([area, 'optionalAccess', _338 => _338.bounds])) {
9089
9133
  const a = area.bounds;
9090
9134
  const x0 = Math.max(0, Math.min(b.x - 8, a.x));
9091
9135
  const y0 = Math.max(0, Math.min(b.y - 8, a.y));
@@ -9110,7 +9154,7 @@ var ImageEditorController = (_class12 = class {
9110
9154
  }
9111
9155
  }
9112
9156
  let exclude = null;
9113
- if (area || _optionalChain([options, 'access', _335 => _335.excludeRects, 'optionalAccess', _336 => _336.length])) {
9157
+ if (area || _optionalChain([options, 'access', _339 => _339.excludeRects, 'optionalAccess', _340 => _340.length])) {
9114
9158
  exclude = new Uint8Array(n);
9115
9159
  if (area) {
9116
9160
  const ad = area.data;
@@ -9181,8 +9225,8 @@ var ImageEditorController = (_class12 = class {
9181
9225
  */
9182
9226
  copyPixels(options = {}) {
9183
9227
  const { width, height } = this.naturalSize;
9184
- const sel = _optionalChain([this, 'access', _337 => _337.state, 'access', _338 => _338.selection, 'optionalAccess', _339 => _339.bounds]) ? this.state.selection : null;
9185
- const rect2 = _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _340 => _340.bounds]), () => ( { x: 0, y: 0, width, height }));
9228
+ const sel = _optionalChain([this, 'access', _341 => _341.state, 'access', _342 => _342.selection, 'optionalAccess', _343 => _343.bounds]) ? this.state.selection : null;
9229
+ const rect2 = _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _344 => _344.bounds]), () => ( { x: 0, y: 0, width, height }));
9186
9230
  let data;
9187
9231
  if (options.merged) {
9188
9232
  data = new Uint8ClampedArray(this.compositePixels(rect2).data);
@@ -9222,7 +9266,7 @@ var ImageEditorController = (_class12 = class {
9222
9266
  pastePixels(mode = "new-layer", image = this.clipboard) {
9223
9267
  if (!image) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("The clipboard is empty; copy_pixels first.");
9224
9268
  if (!PASTE_MODES.includes(mode)) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Unknown paste mode "${String(mode)}"; use ${PASTE_MODES.join(", ")}.`);
9225
- const sel = _optionalChain([this, 'access', _341 => _341.state, 'access', _342 => _342.selection, 'optionalAccess', _343 => _343.bounds]) ? this.state.selection : null;
9269
+ const sel = _optionalChain([this, 'access', _345 => _345.state, 'access', _346 => _346.selection, 'optionalAccess', _347 => _347.bounds]) ? this.state.selection : null;
9226
9270
  if ((mode === "into" || mode === "outside") && !sel) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Paste ${mode === "into" ? "Into" : "Outside"} needs a selection; select where it goes first.`);
9227
9271
  const { width, height } = this.naturalSize;
9228
9272
  let x;
@@ -9231,7 +9275,7 @@ var ImageEditorController = (_class12 = class {
9231
9275
  x = image.x;
9232
9276
  y = image.y;
9233
9277
  } else {
9234
- const frame = _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _344 => _344.bounds]), () => ( { x: 0, y: 0, width, height }));
9278
+ const frame = _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _348 => _348.bounds]), () => ( { x: 0, y: 0, width, height }));
9235
9279
  x = Math.round(frame.x + (frame.width - image.width) / 2);
9236
9280
  y = Math.round(frame.y + (frame.height - image.height) / 2);
9237
9281
  }
@@ -9248,8 +9292,8 @@ var ImageEditorController = (_class12 = class {
9248
9292
  if (!(opacity >= 0 && opacity <= 1)) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("opacity must be from 0 to 1.");
9249
9293
  const blend = _nullishCoalesce(_chunkS55JFWDAcjs.parseBlend.call(void 0, options.blend), () => ( "normal"));
9250
9294
  const quickMask = target.channel === "quick-mask";
9251
- const sel = _nullishCoalesce(coverageMask, () => ( (!quickMask && options.useSelection !== false && _optionalChain([this, 'access', _345 => _345.state, 'access', _346 => _346.selection, 'optionalAccess', _347 => _347.bounds]) ? this.state.selection : null)));
9252
- const region = _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _348 => _348.bounds]), () => ( { x: 0, y: 0, width, height }));
9295
+ const sel = _nullishCoalesce(coverageMask, () => ( (!quickMask && options.useSelection !== false && _optionalChain([this, 'access', _349 => _349.state, 'access', _350 => _350.selection, 'optionalAccess', _351 => _351.bounds]) ? this.state.selection : null)));
9296
+ const region = _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _352 => _352.bounds]), () => ( { x: 0, y: 0, width, height }));
9253
9297
  const coverage = new (0, _chunkPQ3H2AANcjs.CoverageMap)();
9254
9298
  const ones = new Float32Array(region.width * region.height);
9255
9299
  if (sel) {
@@ -9374,7 +9418,7 @@ var ImageEditorController = (_class12 = class {
9374
9418
  placeLayer(layers, node, where) {
9375
9419
  if (where.aboveId) {
9376
9420
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, layers, where.aboveId);
9377
- if (loc) return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, _nullishCoalesce(_optionalChain([loc, 'access', _349 => _349.parent, 'optionalAccess', _350 => _350.id]), () => ( null)), loc.index + 1);
9421
+ if (loc) return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, _nullishCoalesce(_optionalChain([loc, 'access', _353 => _353.parent, 'optionalAccess', _354 => _354.id]), () => ( null)), loc.index + 1);
9378
9422
  }
9379
9423
  if (where.parentId) {
9380
9424
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, layers, where.parentId);
@@ -9385,11 +9429,11 @@ var ImageEditorController = (_class12 = class {
9385
9429
  const at = Math.max(0, Math.min(nodes.length, Math.round(where.adjustmentIndex)));
9386
9430
  if (at < nodes.length) {
9387
9431
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, layers, nodes[at].id);
9388
- return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, _nullishCoalesce(_optionalChain([loc, 'access', _351 => _351.parent, 'optionalAccess', _352 => _352.id]), () => ( null)), loc.index);
9432
+ return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, _nullishCoalesce(_optionalChain([loc, 'access', _355 => _355.parent, 'optionalAccess', _356 => _356.id]), () => ( null)), loc.index);
9389
9433
  }
9390
9434
  if (nodes.length) {
9391
9435
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, layers, nodes[nodes.length - 1].id);
9392
- return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, _nullishCoalesce(_optionalChain([loc, 'access', _353 => _353.parent, 'optionalAccess', _354 => _354.id]), () => ( null)), loc.index + 1);
9436
+ return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, _nullishCoalesce(_optionalChain([loc, 'access', _357 => _357.parent, 'optionalAccess', _358 => _358.id]), () => ( null)), loc.index + 1);
9393
9437
  }
9394
9438
  }
9395
9439
  return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, node, null, this.defaultInsertIndex(layers));
@@ -9428,7 +9472,7 @@ var ImageEditorController = (_class12 = class {
9428
9472
  enabled: spec.enabled,
9429
9473
  opacity: spec.opacity,
9430
9474
  blend: spec.blend,
9431
- mask: _nullishCoalesce(spec.mask, () => ( (spec.useSelection && _optionalChain([this, 'access', _355 => _355.state, 'access', _356 => _356.selection, 'optionalAccess', _357 => _357.bounds]) ? _chunkS55JFWDAcjs.layerMaskFromSelection.call(void 0, this.state.selection) : void 0)))
9475
+ mask: _nullishCoalesce(spec.mask, () => ( (spec.useSelection && _optionalChain([this, 'access', _359 => _359.state, 'access', _360 => _360.selection, 'optionalAccess', _361 => _361.bounds]) ? _chunkS55JFWDAcjs.layerMaskFromSelection.call(void 0, this.state.selection) : void 0)))
9432
9476
  });
9433
9477
  while (ids.has(layer.id)) layer.id = _chunkS55JFWDAcjs.newLayerId.call(void 0, "adj");
9434
9478
  const { width, height } = this.naturalSize;
@@ -9505,7 +9549,7 @@ var ImageEditorController = (_class12 = class {
9505
9549
  const anchor = nodes[to];
9506
9550
  const without = _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => null);
9507
9551
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, without, anchor.id);
9508
- return _chunkB46UQUDCcjs.insertLayer.call(void 0, without, node, _nullishCoalesce(_optionalChain([loc, 'access', _358 => _358.parent, 'optionalAccess', _359 => _359.id]), () => ( null)), to > from ? loc.index + 1 : loc.index);
9552
+ return _chunkB46UQUDCcjs.insertLayer.call(void 0, without, node, _nullishCoalesce(_optionalChain([loc, 'access', _362 => _362.parent, 'optionalAccess', _363 => _363.id]), () => ( null)), to > from ? loc.index + 1 : loc.index);
9509
9553
  }
9510
9554
  /** Moves a layer to `toIndex` among the adjustment layers (0 = bottom) as one undo step. Returns false if nothing moved. */
9511
9555
  moveAdjustmentLayer(id, toIndex) {
@@ -9546,7 +9590,7 @@ var ImageEditorController = (_class12 = class {
9546
9590
  return _nullishCoalesce(this.state.selection, () => ( null));
9547
9591
  }
9548
9592
  get hasSelection() {
9549
- return Boolean(_optionalChain([this, 'access', _360 => _360.state, 'access', _361 => _361.selection, 'optionalAccess', _362 => _362.bounds]));
9593
+ return Boolean(_optionalChain([this, 'access', _364 => _364.state, 'access', _365 => _365.selection, 'optionalAccess', _366 => _366.bounds]));
9550
9594
  }
9551
9595
  /** Returns the current canvas (composition) dimensions. */
9552
9596
  getCanvasSize() {
@@ -9638,7 +9682,7 @@ var ImageEditorController = (_class12 = class {
9638
9682
  const prev = normalizeSelection(_nullishCoalesce(this.state.selection, () => ( null)));
9639
9683
  if (prev === next || prev && next && sameSelection(prev, next)) return false;
9640
9684
  this.recordHistory();
9641
- if (!next && _optionalChain([prev, 'optionalAccess', _363 => _363.bounds])) this.lastSelection = prev;
9685
+ if (!next && _optionalChain([prev, 'optionalAccess', _367 => _367.bounds])) this.lastSelection = prev;
9642
9686
  this.state.selection = next;
9643
9687
  this.notify();
9644
9688
  return true;
@@ -9687,19 +9731,19 @@ var ImageEditorController = (_class12 = class {
9687
9731
  throw new RangeError(`${orientation === "row" ? "y" : "x"} ${position} is outside the image (0..${max - 1}).`);
9688
9732
  }
9689
9733
  const rect2 = orientation === "row" ? { x: 0, y: at, width, height: 1 } : { x: at, y: 0, width: 1, height };
9690
- return this.shapeCommand(_chunkUC3PWFM3cjs.rectSelection.call(void 0, width, height, rect2, { antiAlias: false }), options);
9734
+ return this.shapeCommand(_chunkKALCIDWHcjs.rectSelection.call(void 0, width, height, rect2, { antiAlias: false }), options);
9691
9735
  }
9692
9736
  /** Select › Grow: adds connected pixels within `tolerance` of a selected colour (one undo step). */
9693
9737
  async growSelection(options = {}) {
9694
9738
  const sel = this.state.selection;
9695
- if (!_optionalChain([sel, 'optionalAccess', _364 => _364.bounds])) return false;
9739
+ if (!_optionalChain([sel, 'optionalAccess', _368 => _368.bounds])) return false;
9696
9740
  const pixels = await this.requirePixels(options);
9697
9741
  return this.setSelection(growSelection(pixels, sel, options));
9698
9742
  }
9699
9743
  /** Select › Similar: adds every pixel within `tolerance` of a selected colour (one undo step). */
9700
9744
  async selectSimilar(options = {}) {
9701
9745
  const sel = this.state.selection;
9702
- if (!_optionalChain([sel, 'optionalAccess', _365 => _365.bounds])) return false;
9746
+ if (!_optionalChain([sel, 'optionalAccess', _369 => _369.bounds])) return false;
9703
9747
  const pixels = await this.requirePixels(options);
9704
9748
  return this.setSelection(selectSimilar(pixels, sel, options));
9705
9749
  }
@@ -9745,17 +9789,17 @@ var ImageEditorController = (_class12 = class {
9745
9789
  /** Rectangular marquee in natural image pixels. */
9746
9790
  selectRect(rect2, options = {}) {
9747
9791
  const { width, height } = this.naturalSize;
9748
- return this.shapeCommand(_chunkUC3PWFM3cjs.rectSelection.call(void 0, width, height, rect2, options), options);
9792
+ return this.shapeCommand(_chunkKALCIDWHcjs.rectSelection.call(void 0, width, height, rect2, options), options);
9749
9793
  }
9750
9794
  /** Elliptical marquee inscribed in `rect`. */
9751
9795
  selectEllipse(rect2, options = {}) {
9752
9796
  const { width, height } = this.naturalSize;
9753
- return this.shapeCommand(_chunkUC3PWFM3cjs.ellipseSelection.call(void 0, width, height, rect2, options), options);
9797
+ return this.shapeCommand(_chunkKALCIDWHcjs.ellipseSelection.call(void 0, width, height, rect2, options), options);
9754
9798
  }
9755
9799
  /** Lasso / polygonal lasso. */
9756
9800
  selectPolygon(points, options = {}) {
9757
9801
  const { width, height } = this.naturalSize;
9758
- return this.shapeCommand(_chunkUC3PWFM3cjs.polygonSelection.call(void 0, width, height, points, options), options);
9802
+ return this.shapeCommand(_chunkKALCIDWHcjs.polygonSelection.call(void 0, width, height, points, options), options);
9759
9803
  }
9760
9804
  /**
9761
9805
  * Magnetic Lasso for a given outline: each point snaps to the strongest edge within `width` px
@@ -9791,7 +9835,7 @@ var ImageEditorController = (_class12 = class {
9791
9835
  size: options.size,
9792
9836
  grow: m === "add",
9793
9837
  enhanceEdge: options.enhanceEdge,
9794
- selection: m === "add" && _optionalChain([sel, 'optionalAccess', _366 => _366.bounds]) ? _chunkUC3PWFM3cjs.serializeMask.call(void 0, sel) : null
9838
+ selection: m === "add" && _optionalChain([sel, 'optionalAccess', _370 => _370.bounds]) ? _chunkKALCIDWHcjs.serializeMask.call(void 0, sel) : null
9795
9839
  };
9796
9840
  const { mask } = await this.runSelectionJob(job, pixels, {
9797
9841
  signal: options.signal,
@@ -9811,7 +9855,7 @@ var ImageEditorController = (_class12 = class {
9811
9855
  const { width, height } = this.naturalSize;
9812
9856
  const image = await this.toDataURL({ format: "image/png" });
9813
9857
  const results = await provider.segment({ ...request, image, width, height });
9814
- _optionalChain([request, 'access', _367 => _367.signal, 'optionalAccess', _368 => _368.throwIfAborted, 'call', _369 => _369()]);
9858
+ _optionalChain([request, 'access', _371 => _371.signal, 'optionalAccess', _372 => _372.throwIfAborted, 'call', _373 => _373()]);
9815
9859
  const decoded = [];
9816
9860
  for (const r of _nullishCoalesce(results, () => ( []))) decoded.push({ ...r, mask: r.mask !== void 0 ? await this.decodeMaskImage(r.mask) : void 0 });
9817
9861
  return decoded;
@@ -9828,11 +9872,11 @@ var ImageEditorController = (_class12 = class {
9828
9872
  let union = null;
9829
9873
  for (const r of decoded) {
9830
9874
  const one = segmentsToSelection(width, height, [r]);
9831
- if (!_optionalChain([one, 'optionalAccess', _370 => _370.bounds])) continue;
9875
+ if (!_optionalChain([one, 'optionalAccess', _374 => _374.bounds])) continue;
9832
9876
  if ("rect" in target) {
9833
9877
  const r0 = target.rect;
9834
9878
  const grow = 0.1 * Math.max(r0.width, r0.height);
9835
- const box = _chunkUC3PWFM3cjs.rectSelection.call(void 0, width, height, { x: r0.x - grow, y: r0.y - grow, width: r0.width + 2 * grow, height: r0.height + 2 * grow }, { antiAlias: false });
9879
+ const box = _chunkKALCIDWHcjs.rectSelection.call(void 0, width, height, { x: r0.x - grow, y: r0.y - grow, width: r0.width + 2 * grow, height: r0.height + 2 * grow }, { antiAlias: false });
9836
9880
  const inside = _chunkSS53NNZOcjs.combineSelections.call(void 0, one, box, "intersect");
9837
9881
  if (!inside || _chunkSS53NNZOcjs.selectionArea.call(void 0, inside) < _chunkSS53NNZOcjs.selectionArea.call(void 0, one) * 0.5) continue;
9838
9882
  union = _chunkSS53NNZOcjs.combineSelections.call(void 0, union, inside, "add");
@@ -9896,7 +9940,7 @@ var ImageEditorController = (_class12 = class {
9896
9940
  if (this.segmentation && options.useModel !== false) {
9897
9941
  const { width, height } = this.naturalSize;
9898
9942
  const sky = segmentsToSelection(width, height, await this.modelSegments({ target: "the sky", signal: options.signal }));
9899
- if (!_optionalChain([sky, 'optionalAccess', _371 => _371.bounds])) return { selection: _nullishCoalesce(this.state.selection, () => ( null)), method: "model", note: "The segmentation model found no sky." };
9943
+ if (!_optionalChain([sky, 'optionalAccess', _375 => _375.bounds])) return { selection: _nullishCoalesce(this.state.selection, () => ( null)), method: "model", note: "The segmentation model found no sky." };
9900
9944
  this.setSelection(sky, _nullishCoalesce(options.mode, () => ( "replace")));
9901
9945
  return { selection: _nullishCoalesce(this.state.selection, () => ( null)), method: "model" };
9902
9946
  }
@@ -9927,7 +9971,7 @@ var ImageEditorController = (_class12 = class {
9927
9971
  try {
9928
9972
  const canvas = await this.renderSource();
9929
9973
  const ctx = canvas.getContext("2d");
9930
- const data2 = _optionalChain([ctx, 'optionalAccess', _372 => _372.getImageData, 'optionalCall', _373 => _373(0, 0, width, height)]);
9974
+ const data2 = _optionalChain([ctx, 'optionalAccess', _376 => _376.getImageData, 'optionalCall', _377 => _377(0, 0, width, height)]);
9931
9975
  if (data2 && data2.data && data2.data.length >= width * height * 4) {
9932
9976
  base = { width, height, data: data2.data };
9933
9977
  this.samplePixels = base;
@@ -10002,7 +10046,7 @@ var ImageEditorController = (_class12 = class {
10002
10046
  /** Select › Modify: grow, shrink, feather, border or smooth by `radius` pixels (one undo step). */
10003
10047
  modifySelection(op, radius) {
10004
10048
  const sel = this.state.selection;
10005
- if (!_optionalChain([sel, 'optionalAccess', _374 => _374.bounds])) return false;
10049
+ if (!_optionalChain([sel, 'optionalAccess', _378 => _378.bounds])) return false;
10006
10050
  return this.setSelection(_chunkSS53NNZOcjs.modifySelection.call(void 0, sel, op, radius));
10007
10051
  }
10008
10052
  /**
@@ -10011,7 +10055,7 @@ var ImageEditorController = (_class12 = class {
10011
10055
  */
10012
10056
  async refineSelection(params, options = {}) {
10013
10057
  const sel = this.state.selection;
10014
- if (!_optionalChain([sel, 'optionalAccess', _375 => _375.bounds])) return false;
10058
+ if (!_optionalChain([sel, 'optionalAccess', _379 => _379.bounds])) return false;
10015
10059
  const pixels = (_nullishCoalesce(params.radius, () => ( 0))) > 0 ? await this.requirePixels(options) : null;
10016
10060
  return this.setSelection(_chunkSS53NNZOcjs.refineSelection.call(void 0, pixels, sel, params));
10017
10061
  }
@@ -10034,7 +10078,7 @@ var ImageEditorController = (_class12 = class {
10034
10078
  const edits = _nullishCoalesce(options.edits, () => ( []));
10035
10079
  const regions2 = this.checkRegions(options.regions);
10036
10080
  const refineMode = _nullishCoalesce(options.refineMode, () => ( "color"));
10037
- if (!_optionalChain([this, 'access', _376 => _376.state, 'access', _377 => _377.selection, 'optionalAccess', _378 => _378.bounds]) && !edits.length) throw new Error("Nothing is selected; select first, or pass edits that paint a selection.");
10081
+ if (!_optionalChain([this, 'access', _380 => _380.state, 'access', _381 => _381.selection, 'optionalAccess', _382 => _382.bounds]) && !edits.length) throw new Error("Nothing is selected; select first, or pass edits that paint a selection.");
10038
10082
  if (refineMode === "object" && !this.segmentation) {
10039
10083
  throw new Error("Object aware refinement needs a segmentation model (setSegmentationProvider); use refineMode color.");
10040
10084
  }
@@ -10055,16 +10099,16 @@ var ImageEditorController = (_class12 = class {
10055
10099
  const needsPixels = (_nullishCoalesce(params.radius, () => ( 0))) > 0 || edits.some((e) => e.kind !== "brush");
10056
10100
  const pixels = needsPixels ? await this.requirePixels(options) : null;
10057
10101
  const { width, height } = this.naturalSize;
10058
- const edited = _chunkUC3PWFM3cjs.applyRefineEdits.call(void 0, pixels, _nullishCoalesce(this.state.selection, () => ( null)), edits, width, height);
10102
+ const edited = _chunkKALCIDWHcjs.applyRefineEdits.call(void 0, pixels, _nullishCoalesce(this.state.selection, () => ( null)), edits, width, height);
10059
10103
  let sel = edited.selection;
10060
- if (!_optionalChain([sel, 'optionalAccess', _379 => _379.bounds])) throw new Error("The edits leave nothing selected; paint with mode add first.");
10104
+ if (!_optionalChain([sel, 'optionalAccess', _383 => _383.bounds])) throw new Error("The edits leave nothing selected; paint with mode add first.");
10061
10105
  if (refineMode === "object") {
10062
10106
  const b = sel.bounds;
10063
10107
  const found = await this.modelObject({ rect: b }, options.signal);
10064
10108
  if (!found) throw new Error("The segmentation model found no object in the selection; use refineMode color.");
10065
10109
  const near = _chunkSS53NNZOcjs.modifySelection.call(void 0, sel, "expand", Math.max(4, _nullishCoalesce(params.radius, () => ( 8))));
10066
10110
  const clipped = _chunkSS53NNZOcjs.combineSelections.call(void 0, found, near, "intersect");
10067
- if (!_optionalChain([clipped, 'optionalAccess', _380 => _380.bounds])) throw new Error("The segmentation model found no object in the selection; use refineMode color.");
10111
+ if (!_optionalChain([clipped, 'optionalAccess', _384 => _384.bounds])) throw new Error("The segmentation model found no object in the selection; use refineMode color.");
10068
10112
  sel = clipped;
10069
10113
  }
10070
10114
  let refined = _chunkSS53NNZOcjs.refineSelection.call(void 0, pixels, sel, params, edited.refineBrush);
@@ -10166,7 +10210,7 @@ var ImageEditorController = (_class12 = class {
10166
10210
  let mask;
10167
10211
  if (source === "selection") {
10168
10212
  const sel = this.state.selection;
10169
- if (!_optionalChain([sel, 'optionalAccess', _381 => _381.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected; select first, or export a channel or a layer mask.");
10213
+ if (!_optionalChain([sel, 'optionalAccess', _385 => _385.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected; select first, or export a channel or a layer mask.");
10170
10214
  mask = sel;
10171
10215
  } else if ("channelId" in source) {
10172
10216
  mask = this.requireChannel(source.channelId).mask;
@@ -10190,7 +10234,7 @@ var ImageEditorController = (_class12 = class {
10190
10234
  const canvas = this.renderer.createCanvas(w, h);
10191
10235
  const ctx = canvas.getContext("2d");
10192
10236
  if (ctx) ctx.drawImage(img, 0, 0, w, h);
10193
- const data = _optionalChain([ctx, 'optionalAccess', _382 => _382.getImageData, 'optionalCall', _383 => _383(0, 0, w, h)]);
10237
+ const data = _optionalChain([ctx, 'optionalAccess', _386 => _386.getImageData, 'optionalCall', _387 => _387(0, 0, w, h)]);
10194
10238
  if (!data) throw new Error("The mask image pixels are not available (no canvas access); pass pixels.");
10195
10239
  return { width: w, height: h, data: data.data };
10196
10240
  }
@@ -10206,7 +10250,7 @@ var ImageEditorController = (_class12 = class {
10206
10250
  const provider = this.segmentation;
10207
10251
  if (!provider) {
10208
10252
  const pixels = await this.requirePixels({});
10209
- _optionalChain([options, 'access', _384 => _384.signal, 'optionalAccess', _385 => _385.throwIfAborted, 'call', _386 => _386()]);
10253
+ _optionalChain([options, 'access', _388 => _388.signal, 'optionalAccess', _389 => _389.throwIfAborted, 'call', _390 => _390()]);
10210
10254
  const { mask: selection, reason } = await this.runSelectionJob({ op: "subject", enhanceEdge: options.enhanceEdge }, pixels, options);
10211
10255
  if (selection.bounds) this.shapeCommand(selection, options);
10212
10256
  const unused = target.trim() ? ` "${target.trim()}" was not used to choose it.` : "";
@@ -10222,17 +10266,17 @@ var ImageEditorController = (_class12 = class {
10222
10266
  const decoded = await this.modelSegments({ target: description, maxSegments: options.maxSegments, signal: options.signal });
10223
10267
  const segments = decoded.map((r) => {
10224
10268
  const one = segmentsToSelection(width, height, [r]);
10225
- return { label: r.label || description, bounds: _nullishCoalesce(_optionalChain([one, 'optionalAccess', _387 => _387.bounds]), () => ( null)), ...r.score !== void 0 ? { score: r.score } : {} };
10269
+ return { label: r.label || description, bounds: _nullishCoalesce(_optionalChain([one, 'optionalAccess', _391 => _391.bounds]), () => ( null)), ...r.score !== void 0 ? { score: r.score } : {} };
10226
10270
  });
10227
10271
  const mask = segmentsToSelection(width, height, decoded);
10228
10272
  if (mask && options.beforeApply) {
10229
10273
  const outlines = decoded.flatMap((r, i) => {
10230
10274
  const rings = segmentationOutlines(r);
10231
- const b = _optionalChain([segments, 'access', _388 => _388[i], 'optionalAccess', _389 => _389.bounds]);
10275
+ const b = _optionalChain([segments, 'access', _392 => _392[i], 'optionalAccess', _393 => _393.bounds]);
10232
10276
  return rings.length ? rings : b ? [[{ x: b.x, y: b.y }, { x: b.x + b.width, y: b.y }, { x: b.x + b.width, y: b.y + b.height }, { x: b.x, y: b.y + b.height }]] : [];
10233
10277
  });
10234
10278
  await options.beforeApply(outlines);
10235
- _optionalChain([options, 'access', _390 => _390.signal, 'optionalAccess', _391 => _391.throwIfAborted, 'call', _392 => _392()]);
10279
+ _optionalChain([options, 'access', _394 => _394.signal, 'optionalAccess', _395 => _395.throwIfAborted, 'call', _396 => _396()]);
10236
10280
  }
10237
10281
  if (mask) this.shapeCommand(mask, options);
10238
10282
  return { segments: segments.filter((s) => s.bounds), method: "model" };
@@ -10265,7 +10309,7 @@ var ImageEditorController = (_class12 = class {
10265
10309
  const view = this.state.maskView;
10266
10310
  if (!view) return null;
10267
10311
  const layer = this.getLayer(view.layerId);
10268
- return _optionalChain([layer, 'optionalAccess', _393 => _393.mask]) && !layer.mask.source ? view : null;
10312
+ return _optionalChain([layer, 'optionalAccess', _397 => _397.mask]) && !layer.mask.source ? view : null;
10269
10313
  }
10270
10314
  /**
10271
10315
  * Shows a layer's mask on the canvas: `gray` alone in grey (Alt-click the mask thumbnail),
@@ -10288,7 +10332,7 @@ var ImageEditorController = (_class12 = class {
10288
10332
  if (!layer.mask) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Layer "${layer.name || id}" has no mask to show; add one with add_layer_mask.`);
10289
10333
  if (layer.mask.source) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Layer "${layer.name || id}" has a depth mask, which is computed, not painted, so it has no mask view.`);
10290
10334
  const cur = this.state.maskView;
10291
- if (_optionalChain([cur, 'optionalAccess', _394 => _394.layerId]) !== id || cur.mode !== mode) {
10335
+ if (_optionalChain([cur, 'optionalAccess', _398 => _398.layerId]) !== id || cur.mode !== mode) {
10292
10336
  this.state.maskView = { layerId: id, mode };
10293
10337
  this.notify();
10294
10338
  }
@@ -10300,7 +10344,7 @@ var ImageEditorController = (_class12 = class {
10300
10344
  return _nullishCoalesce(this.state.channels, () => ( []));
10301
10345
  }
10302
10346
  getChannel(id) {
10303
- return _nullishCoalesce(_optionalChain([this, 'access', _395 => _395.state, 'access', _396 => _396.channels, 'optionalAccess', _397 => _397.find, 'call', _398 => _398((c) => c.id === id)]), () => ( null));
10347
+ return _nullishCoalesce(_optionalChain([this, 'access', _399 => _399.state, 'access', _400 => _400.channels, 'optionalAccess', _401 => _401.find, 'call', _402 => _402((c) => c.id === id)]), () => ( null));
10304
10348
  }
10305
10349
  requireChannel(id) {
10306
10350
  const channel = this.getChannel(id);
@@ -10329,14 +10373,14 @@ var ImageEditorController = (_class12 = class {
10329
10373
  */
10330
10374
  saveSelection(options = {}) {
10331
10375
  const sel = this.state.selection;
10332
- if (!_optionalChain([sel, 'optionalAccess', _399 => _399.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected; select first, then save the selection to a channel.");
10376
+ if (!_optionalChain([sel, 'optionalAccess', _403 => _403.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected; select first, then save the selection to a channel.");
10333
10377
  const { width, height } = this.naturalSize;
10334
10378
  const sized = sel.width === width && sel.height === height ? sel : _chunkSS53NNZOcjs.resizeSelection.call(void 0, sel, width, height);
10335
10379
  const channels = [...this.getChannels()];
10336
10380
  if (options.channelId !== void 0) {
10337
10381
  const existing = this.requireChannel(options.channelId);
10338
10382
  const mask = _nullishCoalesce(_chunkSS53NNZOcjs.combineSelections.call(void 0, existing.mask.bounds ? existing.mask : null, sized, _nullishCoalesce(options.mode, () => ( "replace"))), () => ( _chunkSS53NNZOcjs.createSelectionMask.call(void 0, width, height)));
10339
- const next = { ...existing, mask, ..._optionalChain([options, 'access', _400 => _400.name, 'optionalAccess', _401 => _401.trim, 'call', _402 => _402()]) ? { name: options.name.trim() } : {} };
10383
+ const next = { ...existing, mask, ..._optionalChain([options, 'access', _404 => _404.name, 'optionalAccess', _405 => _405.trim, 'call', _406 => _406()]) ? { name: options.name.trim() } : {} };
10340
10384
  this.setChannels(channels.map((c) => c.id === existing.id ? next : c));
10341
10385
  return next;
10342
10386
  }
@@ -10347,7 +10391,7 @@ var ImageEditorController = (_class12 = class {
10347
10391
  const channels = this.getChannels();
10348
10392
  const channel = {
10349
10393
  id: this.newChannelId(),
10350
- name: _optionalChain([name, 'optionalAccess', _403 => _403.trim, 'call', _404 => _404()]) || `Alpha ${channels.length + 1}`,
10394
+ name: _optionalChain([name, 'optionalAccess', _407 => _407.trim, 'call', _408 => _408()]) || `Alpha ${channels.length + 1}`,
10351
10395
  mask,
10352
10396
  color: DEFAULT_CHANNEL_COLOR,
10353
10397
  opacity: 0.5,
@@ -10392,7 +10436,7 @@ var ImageEditorController = (_class12 = class {
10392
10436
  /** Duplicates an alpha channel just after it (one undo step). Returns the copy. */
10393
10437
  duplicateChannel(id, name) {
10394
10438
  const channel = this.requireChannel(id);
10395
- const copy = { ...channel, id: this.newChannelId(), name: _optionalChain([name, 'optionalAccess', _405 => _405.trim, 'call', _406 => _406()]) || `${channel.name} copy` };
10439
+ const copy = { ...channel, id: this.newChannelId(), name: _optionalChain([name, 'optionalAccess', _409 => _409.trim, 'call', _410 => _410()]) || `${channel.name} copy` };
10396
10440
  const channels = [...this.getChannels()];
10397
10441
  channels.splice(channels.findIndex((c) => c.id === id) + 1, 0, copy);
10398
10442
  this.setChannels(channels);
@@ -10423,7 +10467,7 @@ var ImageEditorController = (_class12 = class {
10423
10467
  quickMaskSurface() {
10424
10468
  const { width, height } = this.naturalSize;
10425
10469
  const sel = this.state.selection;
10426
- if (!_optionalChain([sel, 'optionalAccess', _407 => _407.bounds])) return _chunk474IQG74cjs.emptySurface.call(void 0, 1, 0);
10470
+ if (!_optionalChain([sel, 'optionalAccess', _411 => _411.bounds])) return _chunk474IQG74cjs.emptySurface.call(void 0, 1, 0);
10427
10471
  return (sel.width === width && sel.height === height ? sel : _chunkSS53NNZOcjs.resizeSelection.call(void 0, sel, width, height)).surface;
10428
10472
  }
10429
10473
  /** The selection a painted Quick Mask surface stands for (it shares the surface's tiles). */
@@ -10444,7 +10488,7 @@ var ImageEditorController = (_class12 = class {
10444
10488
  */
10445
10489
  applySelectionAsLayerMask(layerId, props = {}) {
10446
10490
  const sel = this.state.selection;
10447
- if (!_optionalChain([sel, 'optionalAccess', _408 => _408.bounds]) || !this.getAdjustmentLayer(layerId)) return false;
10491
+ if (!_optionalChain([sel, 'optionalAccess', _412 => _412.bounds]) || !this.getAdjustmentLayer(layerId)) return false;
10448
10492
  return this.setLayerMask(layerId, this.maskFromSelection(sel, props));
10449
10493
  }
10450
10494
  setLayerMask(layerId, mask, commitToHistory = true) {
@@ -10493,7 +10537,7 @@ var ImageEditorController = (_class12 = class {
10493
10537
  let layer;
10494
10538
  if (target === "selection") {
10495
10539
  mask = this.getSelection();
10496
- if (!_optionalChain([mask, 'optionalAccess', _409 => _409.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected: make a selection first, or inspect a layer-mask or vector-mask with layerId.");
10540
+ if (!_optionalChain([mask, 'optionalAccess', _413 => _413.bounds])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Nothing is selected: make a selection first, or inspect a layer-mask or vector-mask with layerId.");
10497
10541
  } else if (target === "layer-mask" || target === "vector-mask") {
10498
10542
  if (!options.layerId) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`A ${target} needs layerId (see list_layers).`);
10499
10543
  layer = this.getLayer(options.layerId);
@@ -10514,7 +10558,7 @@ var ImageEditorController = (_class12 = class {
10514
10558
  const x = Math.max(0, b.x - 8);
10515
10559
  const y = Math.max(0, b.y - 8);
10516
10560
  const region = { x, y, width: Math.min(width, b.x + b.width + 8) - x, height: Math.min(height, b.y + b.height + 8) - y };
10517
- const own = _optionalChain([layer, 'optionalAccess', _410 => _410.type]) === "pixel" ? this.getLayerPixels(layer.id) : null;
10561
+ const own = _optionalChain([layer, 'optionalAccess', _414 => _414.type]) === "pixel" ? this.getLayerPixels(layer.id) : null;
10518
10562
  const image = _nullishCoalesce(own, () => ( { ...this.compositePixels(region), x: region.x, y: region.y }));
10519
10563
  const report = inspectMaskEdge(mask, image, options);
10520
10564
  return { target, ...layer ? { layerId: layer.id } : {}, ...report };
@@ -10525,10 +10569,10 @@ var ImageEditorController = (_class12 = class {
10525
10569
  const { width, height } = this.naturalSize;
10526
10570
  if (!Array.isArray(regions2) || !regions2.length) throw new Error("regions must be a non-empty list of { x, y, width, height } (e.g. the uncertainRegions bounds); leave it out to refine everywhere.");
10527
10571
  return regions2.map((r, i) => {
10528
- const x = Math.max(0, Math.floor(_optionalChain([r, 'optionalAccess', _411 => _411.x])));
10529
- const y = Math.max(0, Math.floor(_optionalChain([r, 'optionalAccess', _412 => _412.y])));
10530
- const x1 = Math.min(width, Math.ceil(_optionalChain([r, 'optionalAccess', _413 => _413.x]) + _optionalChain([r, 'optionalAccess', _414 => _414.width])));
10531
- const y1 = Math.min(height, Math.ceil(_optionalChain([r, 'optionalAccess', _415 => _415.y]) + _optionalChain([r, 'optionalAccess', _416 => _416.height])));
10572
+ const x = Math.max(0, Math.floor(_optionalChain([r, 'optionalAccess', _415 => _415.x])));
10573
+ const y = Math.max(0, Math.floor(_optionalChain([r, 'optionalAccess', _416 => _416.y])));
10574
+ const x1 = Math.min(width, Math.ceil(_optionalChain([r, 'optionalAccess', _417 => _417.x]) + _optionalChain([r, 'optionalAccess', _418 => _418.width])));
10575
+ const y1 = Math.min(height, Math.ceil(_optionalChain([r, 'optionalAccess', _419 => _419.y]) + _optionalChain([r, 'optionalAccess', _420 => _420.height])));
10532
10576
  if (![x, y, x1, y1].every(Number.isFinite) || x1 <= x || y1 <= y) throw new Error(`regions[${i}] must overlap the image (0..${width} \xD7 0..${height}), got ${JSON.stringify(r)}.`);
10533
10577
  return { x, y, width: x1 - x, height: y1 - y };
10534
10578
  });
@@ -10542,7 +10586,7 @@ var ImageEditorController = (_class12 = class {
10542
10586
  selectionUncertainty(options = {}) {
10543
10587
  const { width, height } = this.naturalSize;
10544
10588
  const sel = this.getSelection();
10545
- if (!_optionalChain([sel, 'optionalAccess', _417 => _417.bounds])) return selectionUncertainty(_chunkSS53NNZOcjs.createSelectionMask.call(void 0, width, height), { x: 0, y: 0, width: 0, height: 0, data: new Uint8ClampedArray(0) }, options);
10589
+ if (!_optionalChain([sel, 'optionalAccess', _421 => _421.bounds])) return selectionUncertainty(_chunkSS53NNZOcjs.createSelectionMask.call(void 0, width, height), { x: 0, y: 0, width: 0, height: 0, data: new Uint8ClampedArray(0) }, options);
10546
10590
  const b = sel.bounds;
10547
10591
  const m = Math.max(8, Math.ceil(_nullishCoalesce(options.band, () => ( Math.max(2, Math.min(width, height) / 200)))) + 4);
10548
10592
  const x = Math.max(0, b.x - m);
@@ -10556,7 +10600,7 @@ var ImageEditorController = (_class12 = class {
10556
10600
  */
10557
10601
  selectionFrom(source) {
10558
10602
  const { width, height } = this.naturalSize;
10559
- switch (_optionalChain([source, 'optionalAccess', _418 => _418.kind])) {
10603
+ switch (_optionalChain([source, 'optionalAccess', _422 => _422.kind])) {
10560
10604
  case "selection":
10561
10605
  return this.getSelection();
10562
10606
  case "history": {
@@ -10612,7 +10656,7 @@ var ImageEditorController = (_class12 = class {
10612
10656
  /** A layer's painted mask over the canvas as a selection mask; null without one (or for a depth mask). */
10613
10657
  layerMaskCoverage(layerId) {
10614
10658
  const layer = this.getLayer(layerId);
10615
- if (!_optionalChain([layer, 'optionalAccess', _419 => _419.mask]) || layer.mask.source) return null;
10659
+ if (!_optionalChain([layer, 'optionalAccess', _423 => _423.mask]) || layer.mask.source) return null;
10616
10660
  const { width, height } = this.naturalSize;
10617
10661
  const ox = layer.type === "pixel" ? layer.offset.x : 0;
10618
10662
  const oy = layer.type === "pixel" ? layer.offset.y : 0;
@@ -10647,7 +10691,7 @@ var ImageEditorController = (_class12 = class {
10647
10691
  this.state.layers = _chunkB46UQUDCcjs.mapLayer.call(void 0, this.state.layers, target.id, (l) => {
10648
10692
  const next = { ...l };
10649
10693
  if (_chunkS55JFWDAcjs.isDefaultDepthMask.call(void 0, merged)) {
10650
- if (_optionalChain([next, 'access', _420 => _420.mask, 'optionalAccess', _421 => _421.source])) delete next.mask;
10694
+ if (_optionalChain([next, 'access', _424 => _424.mask, 'optionalAccess', _425 => _425.source])) delete next.mask;
10651
10695
  } else next.mask = _chunkS55JFWDAcjs.depthRasterMask.call(void 0, merged);
10652
10696
  return next;
10653
10697
  });
@@ -10657,7 +10701,7 @@ var ImageEditorController = (_class12 = class {
10657
10701
  resetDepthMask() {
10658
10702
  this.recordHistory();
10659
10703
  const target = this.developLayer();
10660
- if (_optionalChain([target, 'optionalAccess', _422 => _422.mask, 'optionalAccess', _423 => _423.source])) {
10704
+ if (_optionalChain([target, 'optionalAccess', _426 => _426.mask, 'optionalAccess', _427 => _427.source])) {
10661
10705
  this.state.layers = _chunkB46UQUDCcjs.mapLayer.call(void 0, this.state.layers, target.id, (l) => {
10662
10706
  const next = { ...l };
10663
10707
  delete next.mask;
@@ -10669,7 +10713,7 @@ var ImageEditorController = (_class12 = class {
10669
10713
  // --- Annotations & Layers ---
10670
10714
  /** The layer showing annotation `id`: an annotation layer, or a shape layer migrated from it. */
10671
10715
  annotationLayer(id) {
10672
- return _chunkB46UQUDCcjs.flattenLayers.call(void 0, this.state.layers).find((l) => (l.type === "annotation" || l.type === "shape" || l.type === "type") && _optionalChain([_chunkS55JFWDAcjs.annotationOfLayer.call(void 0, l), 'optionalAccess', _424 => _424.id]) === id);
10716
+ return _chunkB46UQUDCcjs.flattenLayers.call(void 0, this.state.layers).find((l) => (l.type === "annotation" || l.type === "shape" || l.type === "type") && _optionalChain([_chunkS55JFWDAcjs.annotationOfLayer.call(void 0, l), 'optionalAccess', _428 => _428.id]) === id);
10673
10717
  }
10674
10718
  /** What migrating an annotation needs: the canvas size, patterns and the text shaper. */
10675
10719
  annotationEnv() {
@@ -10687,7 +10731,7 @@ var ImageEditorController = (_class12 = class {
10687
10731
  const fullAnnotation = { ...annotation, id };
10688
10732
  const layer = _chunkS55JFWDAcjs.annotationLayerFor.call(void 0, fullAnnotation, this.annotationEnv());
10689
10733
  const loc = placement.aboveId ? _chunkB46UQUDCcjs.findLayer.call(void 0, this.state.layers, placement.aboveId) : null;
10690
- this.state.layers = loc ? _chunkB46UQUDCcjs.insertLayer.call(void 0, this.state.layers, layer, _nullishCoalesce(_optionalChain([loc, 'access', _425 => _425.parent, 'optionalAccess', _426 => _426.id]), () => ( null)), loc.index + 1) : _chunkB46UQUDCcjs.insertLayer.call(void 0, this.state.layers, layer, null);
10734
+ this.state.layers = loc ? _chunkB46UQUDCcjs.insertLayer.call(void 0, this.state.layers, layer, _nullishCoalesce(_optionalChain([loc, 'access', _429 => _429.parent, 'optionalAccess', _430 => _430.id]), () => ( null)), loc.index + 1) : _chunkB46UQUDCcjs.insertLayer.call(void 0, this.state.layers, layer, null);
10691
10735
  this.state.selectedAnnotationId = id;
10692
10736
  this.notify();
10693
10737
  return id;
@@ -10795,7 +10839,7 @@ var ImageEditorController = (_class12 = class {
10795
10839
  const cs = s.paint.cloneSource;
10796
10840
  if (!cs) return null;
10797
10841
  if (cursor && cs.offset && s.paint.retouch.aligned) {
10798
- const [x, y] = _chunkYF3YZZ6Gcjs.cloneSamplePoint.call(void 0, s.paint.cloneTransform, cs, { x: cs.x - cs.offset.x, y: cs.y - cs.offset.y }, cursor.x, cursor.y);
10842
+ const [x, y] = _chunk2ONK3ERDcjs.cloneSamplePoint.call(void 0, s.paint.cloneTransform, cs, { x: cs.x - cs.offset.x, y: cs.y - cs.offset.y }, cursor.x, cursor.y);
10799
10843
  return { x, y };
10800
10844
  }
10801
10845
  return { x: cs.x, y: cs.y };
@@ -10810,7 +10854,7 @@ var ImageEditorController = (_class12 = class {
10810
10854
  await this.renderer.renderToCanvas(targetCanvas, source, this.state, {
10811
10855
  ...options,
10812
10856
  // The clone source follows the brush cursor (both editors pass it).
10813
- cloneSourceMarker: _optionalChain([options, 'optionalAccess', _427 => _427.cloneSourceMarker]) !== void 0 ? options.cloneSourceMarker : _optionalChain([options, 'optionalAccess', _428 => _428.brushCursor]) ? this.cloneSourceMarker(options.brushCursor) : null,
10857
+ cloneSourceMarker: _optionalChain([options, 'optionalAccess', _431 => _431.cloneSourceMarker]) !== void 0 ? options.cloneSourceMarker : _optionalChain([options, 'optionalAccess', _432 => _432.brushCursor]) ? this.cloneSourceMarker(options.brushCursor) : null,
10814
10858
  dirty: dirty === "all" ? void 0 : dirty,
10815
10859
  checkpointLayerId: this.state.activeLayerId
10816
10860
  });
@@ -10823,7 +10867,7 @@ var ImageEditorController = (_class12 = class {
10823
10867
  return this.renderer.createCanvas(1, 1);
10824
10868
  }
10825
10869
  this.syncViews();
10826
- if (_optionalChain([options, 'optionalAccess', _429 => _429.layerIds])) {
10870
+ if (_optionalChain([options, 'optionalAccess', _433 => _433.layerIds])) {
10827
10871
  const keep = new Set(options.layerIds);
10828
10872
  const layers = _chunkB46UQUDCcjs.flattenLayers.call(void 0, this.state.layers).filter((l) => keep.has(l.id));
10829
10873
  return this.renderer.renderExport(source, { ...this.state, layers }, options);
@@ -10977,7 +11021,7 @@ var ImageEditorController = (_class12 = class {
10977
11021
  let px2 = await this.decodeImage(newDataUrl);
10978
11022
  if (px2.width !== width || px2.height !== height) px2 = resizePixels(px2, width, height);
10979
11023
  const data = new Uint8ClampedArray(px2.data);
10980
- const sel = _optionalChain([this, 'access', _430 => _430.state, 'access', _431 => _431.selection, 'optionalAccess', _432 => _432.bounds]) ? this.state.selection : null;
11024
+ const sel = _optionalChain([this, 'access', _434 => _434.state, 'access', _435 => _435.selection, 'optionalAccess', _436 => _436.bounds]) ? this.state.selection : null;
10981
11025
  if (sel) for (let p = 0, i = 3; p < width * height; p++, i += 4) data[i] = Math.round(data[i] * sel.data[p] / 255);
10982
11026
  return this.addPixelLayer({ name: "Inpaint", pixels: { width, height, data } });
10983
11027
  }
@@ -11024,7 +11068,7 @@ var ImageEditorController = (_class12 = class {
11024
11068
  }
11025
11069
  /** Font families the shaper offers (generic families at least). */
11026
11070
  listFonts() {
11027
- return _nullishCoalesce(_optionalChain([this, 'access', _433 => _433.getTextShaper, 'call', _434 => _434(), 'optionalAccess', _435 => _435.families, 'optionalCall', _436 => _436()]), () => ( ["sans-serif", "serif", "monospace"]));
11071
+ return _nullishCoalesce(_optionalChain([this, 'access', _437 => _437.getTextShaper, 'call', _438 => _438(), 'optionalAccess', _439 => _439.families, 'optionalCall', _440 => _440()]), () => ( ["sans-serif", "serif", "monospace"]));
11028
11072
  }
11029
11073
  typeInfo(id) {
11030
11074
  const layer = _chunkS55JFWDAcjs.requireTypeLayer.call(void 0, this.state.layers, id);
@@ -11098,8 +11142,8 @@ var ImageEditorController = (_class12 = class {
11098
11142
  const layer = this.layoutTypeLayer({ ...init, text, orientation: vertical ? "vertical" : "horizontal" });
11099
11143
  const { width, height } = this.naturalSize;
11100
11144
  const b = _chunk474IQG74cjs.contentBounds.call(void 0, layer.surface);
11101
- const x0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _437 => _437.x]), () => ( 0)));
11102
- const y0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _438 => _438.y]), () => ( 0)));
11145
+ const x0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _441 => _441.x]), () => ( 0)));
11146
+ const y0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _442 => _442.y]), () => ( 0)));
11103
11147
  const x1 = Math.min(width, b ? b.x + b.width : 0);
11104
11148
  const y1 = Math.min(height, b ? b.y + b.height : 0);
11105
11149
  let mask;
@@ -11276,7 +11320,7 @@ var ImageEditorController = (_class12 = class {
11276
11320
  if (colors.size > 1) warnings.push("The text had several colours; the shape takes the first one.");
11277
11321
  const missing = _chunkQAUIZPYIcjs.layoutText.call(void 0, layer, shaper).missingFonts;
11278
11322
  if (missing.length) warnings.push(`Missing fonts were drawn with a fallback: ${missing.join(", ")}.`);
11279
- const first = _nullishCoalesce(_optionalChain([layer, 'access', _439 => _439.runs, 'access', _440 => _440.find, 'call', _441 => _441((r) => r.length > 0), 'optionalAccess', _442 => _442.style]), () => ( _chunkQAUIZPYIcjs.DEFAULT_TEXT_STYLE));
11323
+ const first = _nullishCoalesce(_optionalChain([layer, 'access', _443 => _443.runs, 'access', _444 => _444.find, 'call', _445 => _445((r) => r.length > 0), 'optionalAccess', _446 => _446.style]), () => ( _chunkQAUIZPYIcjs.DEFAULT_TEXT_STYLE));
11280
11324
  const fill = first.opacity !== void 0 && first.opacity !== 1 ? { type: "color", color: first.color, opacity: first.opacity } : { type: "color", color: first.color };
11281
11325
  const shape = _chunkS55JFWDAcjs.createShapeLayer.call(void 0, { components: [{ op: "combine", subpaths }], fill, stroke: null, name: layer.name }, this.shapeEnv(), layer.id);
11282
11326
  const keep = { visible: layer.visible, opacity: layer.opacity, blend: layer.blend };
@@ -11309,7 +11353,7 @@ var ImageEditorController = (_class12 = class {
11309
11353
  // --- Shape layers ---
11310
11354
  /** What shape rendering needs: the canvas size and the document's patterns. */
11311
11355
  shapeEnv() {
11312
- return { ...this.naturalSize, pattern: (id) => _nullishCoalesce(_optionalChain([this, 'access', _443 => _443.state, 'access', _444 => _444.patterns, 'optionalAccess', _445 => _445.find, 'call', _446 => _446((p) => p.id === id)]), () => ( null)) };
11356
+ return { ...this.naturalSize, pattern: (id) => _nullishCoalesce(_optionalChain([this, 'access', _447 => _447.state, 'access', _448 => _448.patterns, 'optionalAccess', _449 => _449.find, 'call', _450 => _450((p) => p.id === id)]), () => ( null)) };
11313
11357
  }
11314
11358
  /** One component from tool or UI input (validated). */
11315
11359
  componentFrom(spec, path) {
@@ -11352,9 +11396,9 @@ var ImageEditorController = (_class12 = class {
11352
11396
  * open path) and stroked with `stroke`. Goes above the active layer unless placed. Returns its id.
11353
11397
  */
11354
11398
  addShapeLayer(init) {
11355
- const specs = _optionalChain([init, 'access', _447 => _447.components, 'optionalAccess', _448 => _448.length]) ? init.components : [init];
11356
- if (_optionalChain([init, 'access', _449 => _449.components, 'optionalAccess', _450 => _450.length]) && (init.shape !== void 0 || init.subpaths !== void 0)) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Give components, or shape / subpaths, not both.");
11357
- const components = specs.map((c, i) => this.componentFrom(c, _optionalChain([init, 'access', _451 => _451.components, 'optionalAccess', _452 => _452.length]) ? `components[${i}].` : ""));
11399
+ const specs = _optionalChain([init, 'access', _451 => _451.components, 'optionalAccess', _452 => _452.length]) ? init.components : [init];
11400
+ if (_optionalChain([init, 'access', _453 => _453.components, 'optionalAccess', _454 => _454.length]) && (init.shape !== void 0 || init.subpaths !== void 0)) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)("Give components, or shape / subpaths, not both.");
11401
+ const components = specs.map((c, i) => this.componentFrom(c, _optionalChain([init, 'access', _455 => _455.components, 'optionalAccess', _456 => _456.length]) ? `components[${i}].` : ""));
11358
11402
  const stroke = init.stroke ? _chunkS55JFWDAcjs.normalizeShapeStroke.call(void 0, init.stroke, "stroke") : null;
11359
11403
  const openOnly = components.every((c) => !c.live && c.subpaths.every((sp) => !sp.closed));
11360
11404
  const fill = init.fill === void 0 ? stroke && openOnly ? null : _chunkS55JFWDAcjs.normalizeShapePaint.call(void 0, this.state.paint.foreground, "fill") : init.fill === null ? null : _chunkS55JFWDAcjs.normalizeShapePaint.call(void 0, init.fill, "fill");
@@ -11465,7 +11509,7 @@ var ImageEditorController = (_class12 = class {
11465
11509
  if (layer.locks) next.locks = layer.locks;
11466
11510
  if (this.state.selectedAnnotationId === layer.annotation.id) this.state.selectedAnnotationId = null;
11467
11511
  } else if (layer.type === "pixel") {
11468
- if (!_optionalChain([layer, 'access', _453 => _453.filters, 'optionalAccess', _454 => _454.length])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Layer "${layer.name || id}" is already pixels with no filters to bake.`);
11512
+ if (!_optionalChain([layer, 'access', _457 => _457.filters, 'optionalAccess', _458 => _458.length])) throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Layer "${layer.name || id}" is already pixels with no filters to bake.`);
11469
11513
  _chunkS55JFWDAcjs.requireUnlocked.call(void 0, layer, "pixels", "rasterize it");
11470
11514
  const spatial = layer.filters.some((f) => f.enabled && f.kind === "blur");
11471
11515
  const content = { ...layer, visible: true, opacity: 1, blend: "normal" };
@@ -11484,7 +11528,7 @@ var ImageEditorController = (_class12 = class {
11484
11528
  return this.rasterizeSmartObject(id);
11485
11529
  } else if (layer.type === "shape" || layer.type === "type") {
11486
11530
  next = layer.type === "shape" ? _chunkS55JFWDAcjs.shapeAsPixelLayer.call(void 0, layer) : _chunkS55JFWDAcjs.typeAsPixelLayer.call(void 0, layer);
11487
- if (this.state.selectedAnnotationId && this.state.selectedAnnotationId === _optionalChain([layer, 'access', _455 => _455.annotation, 'optionalAccess', _456 => _456.id])) this.state.selectedAnnotationId = null;
11531
+ if (this.state.selectedAnnotationId && this.state.selectedAnnotationId === _optionalChain([layer, 'access', _459 => _459.annotation, 'optionalAccess', _460 => _460.id])) this.state.selectedAnnotationId = null;
11488
11532
  } else {
11489
11533
  throw new (0, _chunkS55JFWDAcjs.LayerOperationError)(`Only shape, type and annotation layers, smart objects and pixel layers with filters rasterize; "${layer.name || id}" is a ${layer.type} layer. Merge it down or flatten instead.`);
11490
11534
  }
@@ -11498,8 +11542,8 @@ var ImageEditorController = (_class12 = class {
11498
11542
  const doc = this.state.colorProfile;
11499
11543
  const p = resolveProfile(doc);
11500
11544
  const m = this.state.colorMode;
11501
- const out = { name: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _457 => _457.name]), () => ( p.description)), builtin: doc ? _nullishCoalesce(doc.builtin, () => ( null)) : "srgb", colorSpace: p.colorSpace, srgb: isSrgb(doc), mode: _nullishCoalesce(_optionalChain([m, 'optionalAccess', _458 => _458.mode]), () => ( "rgb")) };
11502
- if (_optionalChain([m, 'optionalAccess', _459 => _459.mode]) === "cmyk") out.cmykProfile = { name: m.profile.name, builtin: _nullishCoalesce(m.profile.builtin, () => ( null)), intent: m.intent };
11545
+ const out = { name: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _461 => _461.name]), () => ( p.description)), builtin: doc ? _nullishCoalesce(doc.builtin, () => ( null)) : "srgb", colorSpace: p.colorSpace, srgb: isSrgb(doc), mode: _nullishCoalesce(_optionalChain([m, 'optionalAccess', _462 => _462.mode]), () => ( "rgb")) };
11546
+ if (_optionalChain([m, 'optionalAccess', _463 => _463.mode]) === "cmyk") out.cmykProfile = { name: m.profile.name, builtin: _nullishCoalesce(m.profile.builtin, () => ( null)), intent: m.intent };
11503
11547
  return out;
11504
11548
  }
11505
11549
  /**
@@ -11589,7 +11633,7 @@ var ImageEditorController = (_class12 = class {
11589
11633
  const textEnv = this.textEnv();
11590
11634
  const walk = (layers) => layers.map((l) => {
11591
11635
  let next2 = l;
11592
- if (_optionalChain([l, 'access', _460 => _460.effects, 'optionalAccess', _461 => _461.items, 'access', _462 => _462.length])) next2 = { ...next2, effects: convertColorFields(l.effects, hex) };
11636
+ if (_optionalChain([l, 'access', _464 => _464.effects, 'optionalAccess', _465 => _465.items, 'access', _466 => _466.length])) next2 = { ...next2, effects: convertColorFields(l.effects, hex) };
11593
11637
  if (l.type === "group") {
11594
11638
  if (next2 !== l) converted.push(l.id);
11595
11639
  return { ...next2, children: walk(l.children) };
@@ -11777,8 +11821,8 @@ var ImageEditorController = (_class12 = class {
11777
11821
  else delete s.bitDepth;
11778
11822
  delete s.colorProfile;
11779
11823
  delete s.colorMode;
11780
- if (_optionalChain([result, 'access', _463 => _463.sourceMode, 'optionalAccess', _464 => _464.mode]) === "cmyk") s.colorMode = { mode: "cmyk", profile: result.sourceMode.profile, intent: "relative" };
11781
- else if (_optionalChain([result, 'access', _465 => _465.sourceMode, 'optionalAccess', _466 => _466.mode]) === "lab") s.colorMode = { mode: "lab" };
11824
+ if (_optionalChain([result, 'access', _467 => _467.sourceMode, 'optionalAccess', _468 => _468.mode]) === "cmyk") s.colorMode = { mode: "cmyk", profile: result.sourceMode.profile, intent: "relative" };
11825
+ else if (_optionalChain([result, 'access', _469 => _469.sourceMode, 'optionalAccess', _470 => _470.mode]) === "lab") s.colorMode = { mode: "lab" };
11782
11826
  else if (result.iccProfile) {
11783
11827
  try {
11784
11828
  const doc = documentProfile(result.iccProfile);
@@ -11842,7 +11886,7 @@ var ImageEditorController = (_class12 = class {
11842
11886
  const compositor = new (0, _chunkS55JFWDAcjs.LayerCompositor)();
11843
11887
  const bakeMask = (layer) => {
11844
11888
  const mask = layer.mask;
11845
- if (!_optionalChain([mask, 'optionalAccess', _467 => _467.source])) return mask;
11889
+ if (!_optionalChain([mask, 'optionalAccess', _471 => _471.source])) return mask;
11846
11890
  add2("Parametric (depth) masks were baked into pixel masks", layer.name);
11847
11891
  const plain3 = { ...layer, mask: { ...mask, density: 1, feather: 0, enabled: true } };
11848
11892
  const ox = layer.type === "pixel" ? layer.offset.x : 0;
@@ -11858,10 +11902,10 @@ var ImageEditorController = (_class12 = class {
11858
11902
  return baked;
11859
11903
  };
11860
11904
  const prepare = async (layer) => {
11861
- if (_optionalChain([layer, 'access', _468 => _468.edge, 'optionalAccess', _469 => _469.ambient])) add2("The live edge cast (set_edge_ambient) has no PSD equivalent and was left out", layer.name);
11905
+ if (_optionalChain([layer, 'access', _472 => _472.edge, 'optionalAccess', _473 => _473.ambient])) add2("The live edge cast (set_edge_ambient) has no PSD equivalent and was left out", layer.name);
11862
11906
  const p = await prepareLayer(layer);
11863
- if (_optionalChain([p, 'optionalAccess', _470 => _470.edge])) delete p.edge;
11864
- if (_optionalChain([p, 'optionalAccess', _471 => _471.blend]) === "pigment") add2("The Pigment blend mode has no PSD equivalent and was written as Normal", layer.name);
11907
+ if (_optionalChain([p, 'optionalAccess', _474 => _474.edge])) delete p.edge;
11908
+ if (_optionalChain([p, 'optionalAccess', _475 => _475.blend]) === "pigment") add2("The Pigment blend mode has no PSD equivalent and was written as Normal", layer.name);
11865
11909
  return p;
11866
11910
  };
11867
11911
  const prepareLayer = async (layer) => {
@@ -11904,7 +11948,7 @@ var ImageEditorController = (_class12 = class {
11904
11948
  return out2;
11905
11949
  }
11906
11950
  if (layer.type === "shape" || layer.type === "type") {
11907
- if (layer.type === "type" && _optionalChain([layer, 'access', _472 => _472.missingFonts, 'optionalAccess', _473 => _473.length])) add2(`Type layers drawn with a fallback for missing fonts (${layer.missingFonts.join(", ")}) keep the font names, so Photoshop may draw them differently`, layer.name);
11951
+ if (layer.type === "type" && _optionalChain([layer, 'access', _476 => _476.missingFonts, 'optionalAccess', _477 => _477.length])) add2(`Type layers drawn with a fallback for missing fonts (${layer.missingFonts.join(", ")}) keep the font names, so Photoshop may draw them differently`, layer.name);
11908
11952
  const out2 = { ...layer };
11909
11953
  const mask2 = bakeMask(layer);
11910
11954
  if (mask2) out2.mask = mask2;
@@ -11923,7 +11967,7 @@ var ImageEditorController = (_class12 = class {
11923
11967
  out.surface = this.surfaceOf(layer);
11924
11968
  delete out.source;
11925
11969
  }
11926
- const active = _nullishCoalesce(_optionalChain([layer, 'access', _474 => _474.filters, 'optionalAccess', _475 => _475.filter, 'call', _476 => _476(_chunkS55JFWDAcjs.isActiveFilter)]), () => ( []));
11970
+ const active = _nullishCoalesce(_optionalChain([layer, 'access', _478 => _478.filters, 'optionalAccess', _479 => _479.filter, 'call', _480 => _480(_chunkS55JFWDAcjs.isActiveFilter)]), () => ( []));
11927
11971
  if (active.length) {
11928
11972
  add2("Layer filters (develop, blur) were baked into the pixels", layer.name);
11929
11973
  const content = { ...out, visible: true, opacity: 1, blend: "normal" };
@@ -11934,7 +11978,7 @@ var ImageEditorController = (_class12 = class {
11934
11978
  const data = compositor.composite([content], canvas, sources);
11935
11979
  out = { ...out, surface: _chunk474IQG74cjs.surfaceFromPixels.call(void 0, { width, height, data }, 4, -layer.offset.x, -layer.offset.y) };
11936
11980
  }
11937
- if (_optionalChain([layer, 'access', _477 => _477.filters, 'optionalAccess', _478 => _478.some, 'call', _479 => _479((f) => !f.enabled)])) add2("Disabled layer filters were left out", layer.name);
11981
+ if (_optionalChain([layer, 'access', _481 => _481.filters, 'optionalAccess', _482 => _482.some, 'call', _483 => _483((f) => !f.enabled)])) add2("Disabled layer filters were left out", layer.name);
11938
11982
  delete out.filters;
11939
11983
  const unmixMask = _chunkS55JFWDAcjs.hasEdgeUnmix.call(void 0, layer.edge) ? _chunkS55JFWDAcjs.effectiveLayerMask.call(void 0, layer, width, height) : void 0;
11940
11984
  if (unmixMask && !unmixMask.source && unmixMask.enabled !== false) {
@@ -12006,7 +12050,7 @@ var ImageEditorController = (_class12 = class {
12006
12050
  );
12007
12051
  }
12008
12052
  layers = resizeLegacyMasks(layers, prev, next.dimensions);
12009
- const env = { ...next.dimensions, pattern: (pid) => _nullishCoalesce(_optionalChain([this, 'access', _480 => _480.state, 'access', _481 => _481.patterns, 'optionalAccess', _482 => _482.find, 'call', _483 => _483((p) => p.id === pid)]), () => ( null)) };
12053
+ const env = { ...next.dimensions, pattern: (pid) => _nullishCoalesce(_optionalChain([this, 'access', _484 => _484.state, 'access', _485 => _485.patterns, 'optionalAccess', _486 => _486.find, 'call', _487 => _487((p) => p.id === pid)]), () => ( null)) };
12010
12054
  for (const l of _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers)) {
12011
12055
  if (l.type === "annotation") {
12012
12056
  layers = _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, l.id, () => ({ ...l, annotation: scaleAnnotation(l.annotation, sx, sy) }));
@@ -12015,7 +12059,7 @@ var ImageEditorController = (_class12 = class {
12015
12059
  const scaled = a ? scaleAnnotation(a, sx, sy) : null;
12016
12060
  const fromAnnotation = scaled ? _chunkS55JFWDAcjs.shapeFromAnnotation.call(void 0, scaled) : null;
12017
12061
  const m = [sx, 0, 0, sy, 0, 0];
12018
- const components = _nullishCoalesce(_optionalChain([fromAnnotation, 'optionalAccess', _484 => _484.components]), () => ( _chunkS55JFWDAcjs.transformShapeComponents.call(void 0, l.components, (p) => ({ x: p.x * sx, y: p.y * sy }), m)));
12062
+ const components = _nullishCoalesce(_optionalChain([fromAnnotation, 'optionalAccess', _488 => _488.components]), () => ( _chunkS55JFWDAcjs.transformShapeComponents.call(void 0, l.components, (p) => ({ x: p.x * sx, y: p.y * sy }), m)));
12019
12063
  const moved = { ...l, components, ...fromAnnotation ? { fill: fromAnnotation.fill, stroke: fromAnnotation.stroke } : {} };
12020
12064
  if (scaled && fromAnnotation) moved.annotation = scaled;
12021
12065
  else delete moved.annotation;
@@ -12033,7 +12077,7 @@ var ImageEditorController = (_class12 = class {
12033
12077
  this.notify();
12034
12078
  }
12035
12079
  toJSON(options) {
12036
- const root = _optionalChain([this, 'access', _485 => _485.contentsStack, 'access', _486 => _486[0], 'optionalAccess', _487 => _487.saved]);
12080
+ const root = _optionalChain([this, 'access', _489 => _489.contentsStack, 'access', _490 => _490[0], 'optionalAccess', _491 => _491.saved]);
12037
12081
  const current = this.state;
12038
12082
  const element = this.imageElement;
12039
12083
  if (root) {
@@ -12044,9 +12088,9 @@ var ImageEditorController = (_class12 = class {
12044
12088
  let out;
12045
12089
  try {
12046
12090
  out = this.serializeState();
12047
- if (_optionalChain([this, 'access', _488 => _488.state, 'access', _489 => _489.selection, 'optionalAccess', _490 => _490.bounds])) out.selection = _chunkSS53NNZOcjs.serializeSelection.call(void 0, this.state.selection);
12048
- if (_optionalChain([this, 'access', _491 => _491.state, 'access', _492 => _492.channels, 'optionalAccess', _493 => _493.length])) out.channels = serializeChannels(this.state.channels);
12049
- if (_optionalChain([this, 'access', _494 => _494.state, 'access', _495 => _495.paths, 'optionalAccess', _496 => _496.length])) out.paths = serializePaths(this.state.paths);
12091
+ if (_optionalChain([this, 'access', _492 => _492.state, 'access', _493 => _493.selection, 'optionalAccess', _494 => _494.bounds])) out.selection = _chunkSS53NNZOcjs.serializeSelection.call(void 0, this.state.selection);
12092
+ if (_optionalChain([this, 'access', _495 => _495.state, 'access', _496 => _496.channels, 'optionalAccess', _497 => _497.length])) out.channels = serializeChannels(this.state.channels);
12093
+ if (_optionalChain([this, 'access', _498 => _498.state, 'access', _499 => _499.paths, 'optionalAccess', _500 => _500.length])) out.paths = serializePaths(this.state.paths);
12050
12094
  } finally {
12051
12095
  if (root) {
12052
12096
  this.state = current;
@@ -12164,10 +12208,10 @@ var ImageEditorController = (_class12 = class {
12164
12208
  serializeState() {
12165
12209
  const { width, height } = this.naturalSize;
12166
12210
  const view = _chunkS55JFWDAcjs.legacyView.call(void 0, this.stack(), width, height, null);
12167
- if (view.exact && !this.state.globalLight && !_optionalChain([this, 'access', _497 => _497.state, 'access', _498 => _498.patterns, 'optionalAccess', _499 => _499.length]) && this.bitDepth === 8 && !this.state.colorProfile && !this.state.colorMode) {
12211
+ if (view.exact && !this.state.globalLight && !_optionalChain([this, 'access', _501 => _501.state, 'access', _502 => _502.patterns, 'optionalAccess', _503 => _503.length]) && this.bitDepth === 8 && !this.state.colorProfile && !this.state.colorMode) {
12168
12212
  return {
12169
12213
  // States without adjustment layers keep schema 1, so they round-trip unchanged.
12170
- version: _optionalChain([view, 'access', _500 => _500.adjustments, 'access', _501 => _501.layers, 'optionalAccess', _502 => _502.length]) ? 2 : 1,
12214
+ version: _optionalChain([view, 'access', _504 => _504.adjustments, 'access', _505 => _505.layers, 'optionalAccess', _506 => _506.length]) ? 2 : 1,
12171
12215
  crop: this.state.crop ? { ...this.state.crop } : null,
12172
12216
  transform: { ...this.state.transform },
12173
12217
  adjustments: serializeAdjustments(view.adjustments),
@@ -12192,7 +12236,7 @@ var ImageEditorController = (_class12 = class {
12192
12236
  };
12193
12237
  if (this.state.legacyOutputBlur !== void 0) out.legacyOutputBlur = this.state.legacyOutputBlur;
12194
12238
  if (this.state.globalLight) out.globalLight = { ...this.state.globalLight };
12195
- if (_optionalChain([this, 'access', _503 => _503.state, 'access', _504 => _504.patterns, 'optionalAccess', _505 => _505.length])) out.patterns = _chunkS55JFWDAcjs.serializePatterns.call(void 0, this.state.patterns);
12239
+ if (_optionalChain([this, 'access', _507 => _507.state, 'access', _508 => _508.patterns, 'optionalAccess', _509 => _509.length])) out.patterns = _chunkS55JFWDAcjs.serializePatterns.call(void 0, this.state.patterns);
12196
12240
  if (smartContents) out.smartContents = smartContents;
12197
12241
  if (this.state.bitDepth === 16 || this.state.bitDepth === 32) out.bitDepth = this.state.bitDepth;
12198
12242
  if (this.state.colorProfile) out.colorProfile = serializeColorProfile(this.state.colorProfile);
@@ -12202,7 +12246,7 @@ var ImageEditorController = (_class12 = class {
12202
12246
  }, _class12);
12203
12247
  function serializeAdjustments(adjustments) {
12204
12248
  const out = { ...adjustments };
12205
- if (_optionalChain([out, 'access', _506 => _506.layers, 'optionalAccess', _507 => _507.length])) out.layers = JSON.parse(JSON.stringify(out.layers));
12249
+ if (_optionalChain([out, 'access', _510 => _510.layers, 'optionalAccess', _511 => _511.length])) out.layers = JSON.parse(JSON.stringify(out.layers));
12206
12250
  else delete out.layers;
12207
12251
  if (_chunkS55JFWDAcjs.normalizeProcessVersion.call(void 0, out.process) === _chunkS55JFWDAcjs.LEGACY_PROCESS_VERSION) {
12208
12252
  delete out.process;
@@ -12238,11 +12282,11 @@ function withDevelop(layer, partial) {
12238
12282
  return { ...layer, filters };
12239
12283
  }
12240
12284
  function withBlur(layer, radius) {
12241
- const existing = _optionalChain([layer, 'access', _508 => _508.filters, 'optionalAccess', _509 => _509.find, 'call', _510 => _510((f) => f.kind === "blur")]);
12285
+ const existing = _optionalChain([layer, 'access', _512 => _512.filters, 'optionalAccess', _513 => _513.find, 'call', _514 => _514((f) => f.kind === "blur")]);
12242
12286
  const filters = (_nullishCoalesce(layer.filters, () => ( []))).filter((f) => f.kind !== "blur");
12243
12287
  if (radius > 0) {
12244
12288
  filters.push({
12245
- id: _nullishCoalesce(_optionalChain([existing, 'optionalAccess', _511 => _511.id]), () => ( (layer.source === "document" ? _chunkS55JFWDAcjs.BLUR_FILTER_ID : _chunkS55JFWDAcjs.newLayerId.call(void 0, "flt")))),
12289
+ id: _nullishCoalesce(_optionalChain([existing, 'optionalAccess', _515 => _515.id]), () => ( (layer.source === "document" ? _chunkS55JFWDAcjs.BLUR_FILTER_ID : _chunkS55JFWDAcjs.newLayerId.call(void 0, "flt")))),
12246
12290
  kind: "blur",
12247
12291
  enabled: true,
12248
12292
  radius
@@ -12338,7 +12382,7 @@ function collectStateTiles(layers, into) {
12338
12382
  if (l.type === "shape" || l.type === "type") _chunk474IQG74cjs.collectTiles.call(void 0, l.surface, into);
12339
12383
  if (l.type === "smart") {
12340
12384
  _chunk474IQG74cjs.collectTiles.call(void 0, l.surface, into);
12341
- if (_optionalChain([l, 'access', _512 => _512.smartFilters, 'optionalAccess', _513 => _513.mask])) _chunk474IQG74cjs.collectTiles.call(void 0, l.smartFilters.mask.surface, into);
12385
+ if (_optionalChain([l, 'access', _516 => _516.smartFilters, 'optionalAccess', _517 => _517.mask])) _chunk474IQG74cjs.collectTiles.call(void 0, l.smartFilters.mask.surface, into);
12342
12386
  if (l.contents.raster) _chunk474IQG74cjs.collectTiles.call(void 0, l.contents.raster, into);
12343
12387
  if (l.contents.document) collectStateTiles(l.contents.document.layers, into);
12344
12388
  }
@@ -12370,7 +12414,7 @@ function pixelsOnly(layers) {
12370
12414
  for (const l of layers) {
12371
12415
  if (l.type === "adjustment") continue;
12372
12416
  if (l.type === "group") out.push({ ...l, children: pixelsOnly(l.children) });
12373
- else if (l.type === "pixel" && _optionalChain([l, 'access', _514 => _514.filters, 'optionalAccess', _515 => _515.length])) {
12417
+ else if (l.type === "pixel" && _optionalChain([l, 'access', _518 => _518.filters, 'optionalAccess', _519 => _519.length])) {
12374
12418
  const p = { ...l };
12375
12419
  delete p.filters;
12376
12420
  out.push(p);
@@ -12436,7 +12480,7 @@ function toHex(c) {
12436
12480
  return "#" + [c[0], c[1], c[2]].map((v) => Math.round(v).toString(16).padStart(2, "0")).join("");
12437
12481
  }
12438
12482
  function normalizeSelection(mask) {
12439
- return _optionalChain([mask, 'optionalAccess', _516 => _516.bounds]) ? mask : null;
12483
+ return _optionalChain([mask, 'optionalAccess', _520 => _520.bounds]) ? mask : null;
12440
12484
  }
12441
12485
  function sameSelection(a, b) {
12442
12486
  if (a.width !== b.width || a.height !== b.height) return false;
@@ -12646,7 +12690,7 @@ function loadImageEditorDocument(input) {
12646
12690
  }
12647
12691
  const state = { version: 1, ...result.value };
12648
12692
  if (isV2) {
12649
- if (_optionalChain([state, 'access', _517 => _517.adjustments, 'access', _518 => _518.layers, 'optionalAccess', _519 => _519.length])) state.version = 2;
12693
+ if (_optionalChain([state, 'access', _521 => _521.adjustments, 'access', _522 => _522.layers, 'optionalAccess', _523 => _523.length])) state.version = 2;
12650
12694
  result.report.version = 2;
12651
12695
  }
12652
12696
  if (state.selection === void 0) delete state.selection;
@@ -12854,7 +12898,7 @@ function findAdjustmentControl(id) {
12854
12898
  }
12855
12899
  function findLayerControl(kind, id) {
12856
12900
  if (id === "opacity") return ADJUSTMENT_LAYER_OPACITY_CONTROL;
12857
- return _optionalChain([ADJUSTMENT_LAYER_CONTROLS, 'access', _520 => _520[kind], 'optionalAccess', _521 => _521.find, 'call', _522 => _522((c) => c.id === id)]);
12901
+ return _optionalChain([ADJUSTMENT_LAYER_CONTROLS, 'access', _524 => _524[kind], 'optionalAccess', _525 => _525.find, 'call', _526 => _526((c) => c.id === id)]);
12858
12902
  }
12859
12903
  function clampControlValue(spec, v) {
12860
12904
  if (typeof v !== "number" || !Number.isFinite(v)) return spec.default;
@@ -13331,7 +13375,7 @@ function summary(controller) {
13331
13375
  const area = _chunkSS53NNZOcjs.selectionArea.call(void 0, sel);
13332
13376
  return {
13333
13377
  empty: !sel,
13334
- bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _523 => _523.bounds]), () => ( null)),
13378
+ bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _527 => _527.bounds]), () => ( null)),
13335
13379
  /** Σ coverage in pixels. */
13336
13380
  area: Math.round(area),
13337
13381
  percent: Math.round(area / Math.max(1, width * height) * 1e4) / 100,
@@ -13486,7 +13530,7 @@ function createImageSelectionTools(controller) {
13486
13530
  break;
13487
13531
  }
13488
13532
  case "polygon": {
13489
- const list = Array.isArray(points) ? points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _524 => _524.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _525 => _525.y]), NaN) })) : [];
13533
+ const list = Array.isArray(points) ? points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _528 => _528.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _529 => _529.y]), NaN) })) : [];
13490
13534
  if (list.length < 3 || !list.every((p) => Number.isFinite(p.x) && Number.isFinite(p.y))) {
13491
13535
  throw new Error("polygon needs points: at least 3 { x, y } vertices.");
13492
13536
  }
@@ -13621,7 +13665,7 @@ function createImageSelectionTools(controller) {
13621
13665
  },
13622
13666
  annotations: writeAnnotations("Refine the selection edge"),
13623
13667
  handler: async (params) => {
13624
- const edits = Array.isArray(params.edits) ? params.edits.map((e) => e.kind === "object" ? { ...e } : { ...e, points: (_nullishCoalesce(e.points, () => ( []))).map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _526 => _526.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _527 => _527.y]), NaN) })) }) : [];
13668
+ const edits = Array.isArray(params.edits) ? params.edits.map((e) => e.kind === "object" ? { ...e } : { ...e, points: (_nullishCoalesce(e.points, () => ( []))).map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _530 => _530.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _531 => _531.y]), NaN) })) }) : [];
13625
13669
  for (const e of edits) {
13626
13670
  if (e.kind === "object") {
13627
13671
  if (!e.rect === !e.point) throw new Error("An object edit takes rect (a box around the object) or point (on it).");
@@ -13786,7 +13830,7 @@ function createImageSelectionTools(controller) {
13786
13830
  },
13787
13831
  annotations: writeAnnotations("Select a polygon (lasso)", true),
13788
13832
  handler: async (args) => {
13789
- const list = Array.isArray(args.points) ? args.points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _528 => _528.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _529 => _529.y]), NaN) })) : [];
13833
+ const list = Array.isArray(args.points) ? args.points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _532 => _532.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _533 => _533.y]), NaN) })) : [];
13790
13834
  if (list.length < 3 || !list.every((p) => Number.isFinite(p.x) && Number.isFinite(p.y))) {
13791
13835
  throw new Error("points needs at least 3 { x, y } vertices in natural image pixels.");
13792
13836
  }
@@ -13823,7 +13867,7 @@ function createImageSelectionTools(controller) {
13823
13867
  },
13824
13868
  annotations: writeAnnotations("Quick Selection"),
13825
13869
  handler: async (args, context) => {
13826
- const strokes = Array.isArray(args.strokes) ? args.strokes.map((s) => Array.isArray(s) ? s.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _530 => _530.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _531 => _531.y]), NaN) })) : []) : [];
13870
+ const strokes = Array.isArray(args.strokes) ? args.strokes.map((s) => Array.isArray(s) ? s.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _534 => _534.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _535 => _535.y]), NaN) })) : []) : [];
13827
13871
  if (!strokes.length || strokes.some((s) => !s.length || !s.every((p) => Number.isFinite(p.x) && Number.isFinite(p.y)))) {
13828
13872
  throw new Error("strokes needs at least one stroke of { x, y } points in natural image pixels.");
13829
13873
  }
@@ -13832,7 +13876,7 @@ function createImageSelectionTools(controller) {
13832
13876
  mode: _chunkSS53NNZOcjs.parseSelectionMode.call(void 0, args.mode),
13833
13877
  sampleAllLayers: args.sampleAllLayers,
13834
13878
  enhanceEdge: args.enhanceEdge,
13835
- signal: _optionalChain([context, 'optionalAccess', _532 => _532.signal])
13879
+ signal: _optionalChain([context, 'optionalAccess', _536 => _536.signal])
13836
13880
  });
13837
13881
  return { ...summary(controller), ...uncertainty(controller) };
13838
13882
  }
@@ -13870,7 +13914,7 @@ function createImageSelectionTools(controller) {
13870
13914
  sampleAllLayers: args.sampleAllLayers,
13871
13915
  enhanceEdge: args.enhanceEdge,
13872
13916
  useModel: args.useModel,
13873
- signal: _optionalChain([context, 'optionalAccess', _533 => _533.signal])
13917
+ signal: _optionalChain([context, 'optionalAccess', _537 => _537.signal])
13874
13918
  };
13875
13919
  const { method } = rect2 ? await controller.selectObject({ rect: { x: num2(rect2.x, NaN), y: num2(rect2.y, NaN), width: num2(rect2.width, NaN), height: num2(rect2.height, NaN) } }, options) : await controller.selectObject({ point: { x: num2(point.x, NaN), y: num2(point.y, NaN) } }, options);
13876
13920
  return { ...summary(controller), method, ...uncertainty(controller) };
@@ -13899,7 +13943,7 @@ function createImageSelectionTools(controller) {
13899
13943
  softness: args.softness === void 0 ? void 0 : num2(args.softness, 4),
13900
13944
  mode: _chunkSS53NNZOcjs.parseSelectionMode.call(void 0, args.mode),
13901
13945
  sampleAllLayers: args.sampleAllLayers,
13902
- signal: _optionalChain([context, 'optionalAccess', _534 => _534.signal])
13946
+ signal: _optionalChain([context, 'optionalAccess', _538 => _538.signal])
13903
13947
  });
13904
13948
  return { ...summary(controller), noiseLevel };
13905
13949
  }
@@ -13927,7 +13971,7 @@ function createImageSelectionTools(controller) {
13927
13971
  mode: _chunkSS53NNZOcjs.parseSelectionMode.call(void 0, args.mode),
13928
13972
  sampleAllLayers: args.sampleAllLayers,
13929
13973
  useModel: args.useModel,
13930
- signal: _optionalChain([context, 'optionalAccess', _535 => _535.signal])
13974
+ signal: _optionalChain([context, 'optionalAccess', _539 => _539.signal])
13931
13975
  });
13932
13976
  return { ...summary(controller), method, ...note ? { note } : {}, ...uncertainty(controller) };
13933
13977
  }
@@ -14025,7 +14069,7 @@ function createImageSelectionTools(controller) {
14025
14069
  await controller.selectColorRangePreset(args.preset, { ...common, falloff: num2(args.fuzziness, 20) });
14026
14070
  } else {
14027
14071
  const samples = args.samples.map((s, i) => {
14028
- if (typeof _optionalChain([s, 'optionalAccess', _536 => _536.color]) !== "string" || !/^#?[0-9a-f]{6}$/i.test(s.color.trim())) throw new Error(`samples[${i}].color must be #rrggbb.`);
14072
+ if (typeof _optionalChain([s, 'optionalAccess', _540 => _540.color]) !== "string" || !/^#?[0-9a-f]{6}$/i.test(s.color.trim())) throw new Error(`samples[${i}].color must be #rrggbb.`);
14029
14073
  const at = typeof s.x === "number" && typeof s.y === "number" ? { x: s.x, y: s.y } : void 0;
14030
14074
  return at ? { color: s.color, at } : { color: s.color };
14031
14075
  });
@@ -14267,7 +14311,7 @@ function createImageSelectionTools(controller) {
14267
14311
  annotations: writeAnnotations("Content-Aware Fill"),
14268
14312
  handler: async (args, context) => {
14269
14313
  if (!controller.getSelection()) throw new Error("Nothing is selected; select what to remove first.");
14270
- const rects = (v) => Array.isArray(v) ? v.map((r) => ({ x: num2(_optionalChain([r, 'optionalAccess', _537 => _537.x]), NaN), y: num2(_optionalChain([r, 'optionalAccess', _538 => _538.y]), NaN), width: num2(_optionalChain([r, 'optionalAccess', _539 => _539.width]), NaN), height: num2(_optionalChain([r, 'optionalAccess', _540 => _540.height]), NaN) })) : void 0;
14314
+ const rects = (v) => Array.isArray(v) ? v.map((r) => ({ x: num2(_optionalChain([r, 'optionalAccess', _541 => _541.x]), NaN), y: num2(_optionalChain([r, 'optionalAccess', _542 => _542.y]), NaN), width: num2(_optionalChain([r, 'optionalAccess', _543 => _543.width]), NaN), height: num2(_optionalChain([r, 'optionalAccess', _544 => _544.height]), NaN) })) : void 0;
14271
14315
  return controller.contentAwareFillAsync({
14272
14316
  output: args.output,
14273
14317
  sampleRadius: args.sampleRadius,
@@ -14276,10 +14320,33 @@ function createImageSelectionTools(controller) {
14276
14320
  sampleRects: rects(args.sampleRects),
14277
14321
  excludeRects: rects(args.excludeRects),
14278
14322
  samplingChannelId: typeof args.samplingChannelId === "string" ? args.samplingChannelId : void 0,
14279
- signal: _optionalChain([context, 'optionalAccess', _541 => _541.signal])
14323
+ signal: _optionalChain([context, 'optionalAccess', _545 => _545.signal])
14280
14324
  });
14281
14325
  }
14282
14326
  };
14327
+ const separateTool = {
14328
+ name: "separate_subject",
14329
+ title: "Separate the subject from its background",
14330
+ description: "Separate Subject: splits the selected subject (select it first: select_subject, select_object, quick_select) from its background in one undo step. The subject goes to a copy of the layer masked by the selection, on top and made active; a second copy becomes the background plate, with the subject's area grown by dilate px and Content-Aware Filled (fill none leaves it transparent); an alpha channel marks the filled area, so a bad patch can be loaded (load_selection_from_channel), trimmed and filled again (content_aware_fill); the source layer is hidden. Use it to move, scale or relight a subject over its own rebuilt background. 8-bit pixel layers. Can be cancelled. Returns foregroundLayerId, plateLayerId, sourceLayerId, fillChannelId, filledBounds, dilate and fill.",
14331
+ inputSchema: {
14332
+ type: "object",
14333
+ properties: {
14334
+ layerId: layerIdSchema,
14335
+ dilate: { type: "number", minimum: 0, maximum: 200, description: "Grow the hole past the subject by this many px before filling, so no fringe of it stays in the plate (default 8)." },
14336
+ fill: { type: "string", enum: ["content-aware", "none"], description: "content-aware (default) rebuilds the background in the hole; none leaves it transparent." },
14337
+ seed: { type: "integer", minimum: 0, description: "Random seed for the fill; the same seed gives the same plate (default 0)." }
14338
+ },
14339
+ additionalProperties: false
14340
+ },
14341
+ annotations: writeAnnotations("Separate the subject from its background"),
14342
+ handler: async (args, context) => controller.separateSubject({
14343
+ layerId: requireLayerId(args.layerId),
14344
+ dilate: args.dilate,
14345
+ fill: args.fill,
14346
+ seed: args.seed,
14347
+ signal: _optionalChain([context, 'optionalAccess', _546 => _546.signal])
14348
+ })
14349
+ };
14283
14350
  const copyTool = {
14284
14351
  name: "copy_pixels",
14285
14352
  title: "Copy pixels",
@@ -14517,6 +14584,7 @@ function createImageSelectionTools(controller) {
14517
14584
  strokeTool,
14518
14585
  cropTool,
14519
14586
  fillTool,
14587
+ separateTool,
14520
14588
  copyTool,
14521
14589
  cutTool,
14522
14590
  pasteTool,
@@ -14556,13 +14624,13 @@ function createImageSubjectSelectionTool(controller) {
14556
14624
  handler: async ({ target, maxSegments, mode, feather, enhanceEdge }, context) => {
14557
14625
  if (target !== void 0 && typeof target !== "string") throw new Error("target must be a description in words.");
14558
14626
  if (controller.segmentationProvider && !String(_nullishCoalesce(target, () => ( ""))).trim()) throw new Error("target must describe what to select (a model is set, and it selects by description).");
14559
- const perform = _optionalChain([context, 'optionalAccess', _542 => _542.perform]);
14627
+ const perform = _optionalChain([context, 'optionalAccess', _547 => _547.perform]);
14560
14628
  const { segments, method, note } = await controller.selectSubject(String(_nullishCoalesce(target, () => ( ""))), {
14561
14629
  mode: _chunkSS53NNZOcjs.parseSelectionMode.call(void 0, mode),
14562
14630
  feather: num2(feather, 0),
14563
14631
  maxSegments: typeof maxSegments === "number" ? Math.max(1, Math.round(maxSegments)) : void 0,
14564
14632
  enhanceEdge: enhanceEdge === true,
14565
- signal: _optionalChain([context, 'optionalAccess', _543 => _543.signal]),
14633
+ signal: _optionalChain([context, 'optionalAccess', _548 => _548.signal]),
14566
14634
  // Under playback the cursor traces what the model found, as a lasso, before it is selected.
14567
14635
  beforeApply: perform ? (outlines) => perform(planOutlineTrace(outlines)) : void 0
14568
14636
  });
@@ -14640,7 +14708,7 @@ async function renderImageRegion(controller, request) {
14640
14708
  const maskView = maskViewCanvas(controller, document);
14641
14709
  if (maskView) context.drawImage(maskView, rect2.x, rect2.y, rect2.width, rect2.height, 0, 0, out.width, out.height);
14642
14710
  const selection = state.selection;
14643
- if (_optionalChain([selection, 'optionalAccess', _544 => _544.bounds]) && selection.width === state.imageDimensions.width && selection.height === state.imageDimensions.height) {
14711
+ if (_optionalChain([selection, 'optionalAccess', _549 => _549.bounds]) && selection.width === state.imageDimensions.width && selection.height === state.imageDimensions.height) {
14644
14712
  const shade = selectionShade(selection, document);
14645
14713
  if (shade) context.drawImage(shade, rect2.x, rect2.y, rect2.width, rect2.height, 0, 0, out.width, out.height);
14646
14714
  }
@@ -14665,7 +14733,7 @@ function createImageCaptureSurface(controller) {
14665
14733
  return {
14666
14734
  units: "image pixels",
14667
14735
  content: whole,
14668
- selection: () => ({ rect: _nullishCoalesce(_optionalChain([controller, 'access', _545 => _545.getState, 'call', _546 => _546(), 'access', _547 => _547.selection, 'optionalAccess', _548 => _548.bounds]), () => ( null)) }),
14736
+ selection: () => ({ rect: _nullishCoalesce(_optionalChain([controller, 'access', _550 => _550.getState, 'call', _551 => _551(), 'access', _552 => _552.selection, 'optionalAccess', _553 => _553.bounds]), () => ( null)) }),
14669
14737
  overlays: "a shade over unselected pixels, the crop box outline and a layer mask view (set_mask_view)",
14670
14738
  maxScale: 8,
14671
14739
  render: (request) => renderImageRegion(controller, request)
@@ -14999,7 +15067,7 @@ function describeLayer(layer, activeId, boundsOf) {
14999
15067
  out.bounds = boundsOf(layer);
15000
15068
  out.fillOpacity = round3(_nullishCoalesce(layer.fillOpacity, () => ( 1)));
15001
15069
  out.shape = {
15002
- components: layer.components.map((c) => ({ op: c.op, kind: _nullishCoalesce(_optionalChain([c, 'access', _549 => _549.live, 'optionalAccess', _550 => _550.kind]), () => ( "path")) })),
15070
+ components: layer.components.map((c) => ({ op: c.op, kind: _nullishCoalesce(_optionalChain([c, 'access', _554 => _554.live, 'optionalAccess', _555 => _555.kind]), () => ( "path")) })),
15003
15071
  fill: layer.fill ? layer.fill.type : null,
15004
15072
  stroke: layer.stroke ? { width: layer.stroke.width, paint: layer.stroke.paint.type } : null
15005
15073
  };
@@ -15022,8 +15090,8 @@ function describeLayer(layer, activeId, boundsOf) {
15022
15090
  out.bounds = boundsOf(layer);
15023
15091
  out.fillOpacity = round3(_nullishCoalesce(layer.fillOpacity, () => ( 1)));
15024
15092
  out.contents = { id: layer.contents.id, name: layer.contents.name, kind: layer.contents.kind, width: layer.contents.width, height: layer.contents.height };
15025
- out.smartFilters = (_nullishCoalesce(_optionalChain([layer, 'access', _551 => _551.smartFilters, 'optionalAccess', _552 => _552.filters]), () => ( []))).map((f) => ({ id: f.id, kind: f.kind, enabled: f.enabled }));
15026
- out.filterMask = maskSummary(_optionalChain([layer, 'access', _553 => _553.smartFilters, 'optionalAccess', _554 => _554.mask]));
15093
+ out.smartFilters = (_nullishCoalesce(_optionalChain([layer, 'access', _556 => _556.smartFilters, 'optionalAccess', _557 => _557.filters]), () => ( []))).map((f) => ({ id: f.id, kind: f.kind, enabled: f.enabled }));
15094
+ out.filterMask = maskSummary(_optionalChain([layer, 'access', _558 => _558.smartFilters, 'optionalAccess', _559 => _559.mask]));
15027
15095
  break;
15028
15096
  }
15029
15097
  return out;
@@ -15051,7 +15119,7 @@ function createImageLayerTools(controller) {
15051
15119
  if (!loc) return null;
15052
15120
  return {
15053
15121
  ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)),
15054
- parentId: _nullishCoalesce(_optionalChain([loc, 'access', _555 => _555.parent, 'optionalAccess', _556 => _556.id]), () => ( null)),
15122
+ parentId: _nullishCoalesce(_optionalChain([loc, 'access', _560 => _560.parent, 'optionalAccess', _561 => _561.id]), () => ( null)),
15055
15123
  index: loc.index
15056
15124
  };
15057
15125
  };
@@ -15374,7 +15442,7 @@ function createImageLayerTools(controller) {
15374
15442
  if (view !== "gray" && view !== "overlay" && view !== "off") throw new Error(`Unknown view "${String(view)}". Use gray, overlay or off.`);
15375
15443
  const id = view === "off" || layerId === void 0 ? void 0 : exists(layerId);
15376
15444
  const shown = controller.setMaskView(view, id);
15377
- return { view: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _557 => _557.mode]), () => ( "off")), layerId: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _558 => _558.layerId]), () => ( null)) };
15445
+ return { view: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _562 => _562.mode]), () => ( "off")), layerId: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _563 => _563.layerId]), () => ( null)) };
15378
15446
  }
15379
15447
  };
15380
15448
  const AMOUNT = (what) => ({ type: "number", minimum: 0, maximum: 100, description: `${what}, in percent 0-100; 0 turns it off.` });
@@ -15973,7 +16041,7 @@ var SelectionGesture = (_class13 = class {
15973
16041
  size: _nullishCoalesce(options.quickSize, () => ( 30)),
15974
16042
  grow: q.mode === "add",
15975
16043
  enhanceEdge: _nullishCoalesce(options.quickEnhance, () => ( false)),
15976
- selection: q.mode === "add" && _optionalChain([q, 'access', _559 => _559.base, 'optionalAccess', _560 => _560.bounds]) ? _chunkUC3PWFM3cjs.serializeMask.call(void 0, q.base) : null
16044
+ selection: q.mode === "add" && _optionalChain([q, 'access', _564 => _564.base, 'optionalAccess', _565 => _565.bounds]) ? _chunkKALCIDWHcjs.serializeMask.call(void 0, q.base) : null
15977
16045
  },
15978
16046
  pixels
15979
16047
  );
@@ -15998,14 +16066,14 @@ var SelectionGesture = (_class13 = class {
15998
16066
  const { tool } = this.getOptions();
15999
16067
  if (tool === "quick") return null;
16000
16068
  if (tool === "lasso") return this.points.length > 1 ? this.points.slice() : null;
16001
- const rect2 = _chunkUC3PWFM3cjs.normalizeRect.call(void 0, {
16069
+ const rect2 = _chunkKALCIDWHcjs.normalizeRect.call(void 0, {
16002
16070
  x: this.start.x,
16003
16071
  y: this.start.y,
16004
16072
  width: this.current.x - this.start.x,
16005
16073
  height: this.current.y - this.start.y
16006
16074
  });
16007
16075
  if (rect2.width < 1 && rect2.height < 1) return null;
16008
- if (tool === "ellipse") return _chunkUC3PWFM3cjs.ellipsePoints.call(void 0, rect2);
16076
+ if (tool === "ellipse") return _chunkKALCIDWHcjs.ellipsePoints.call(void 0, rect2);
16009
16077
  return [
16010
16078
  { x: rect2.x, y: rect2.y },
16011
16079
  { x: rect2.x + rect2.width, y: rect2.y },
@@ -16166,7 +16234,7 @@ var SelectionGesture = (_class13 = class {
16166
16234
  const options = this.getOptions();
16167
16235
  const mode = selectionModeFromModifiers(_nullishCoalesce(modifiers, () => ( this.modifiers)), options.mode);
16168
16236
  if (options.tool === "object") {
16169
- const rect3 = _chunkUC3PWFM3cjs.normalizeRect.call(void 0, { x: this.start.x, y: this.start.y, width: this.current.x - this.start.x, height: this.current.y - this.start.y });
16237
+ const rect3 = _chunkKALCIDWHcjs.normalizeRect.call(void 0, { x: this.start.x, y: this.start.y, width: this.current.x - this.start.x, height: this.current.y - this.start.y });
16170
16238
  this.start = null;
16171
16239
  this.current = null;
16172
16240
  this.points = [];
@@ -16184,7 +16252,7 @@ var SelectionGesture = (_class13 = class {
16184
16252
  this.start = null;
16185
16253
  this.current = null;
16186
16254
  this.points = [];
16187
- const strokeMode = _nullishCoalesce(_optionalChain([this, 'access', _561 => _561.quick, 'optionalAccess', _562 => _562.mode]), () => ( (mode === "replace" && this.controller.getSelection() ? "add" : mode)));
16255
+ const strokeMode = _nullishCoalesce(_optionalChain([this, 'access', _566 => _566.quick, 'optionalAccess', _567 => _567.mode]), () => ( (mode === "replace" && this.controller.getSelection() ? "add" : mode)));
16188
16256
  this.quick = null;
16189
16257
  this.pending = this.controller.quickSelect([stroke], {
16190
16258
  size: _nullishCoalesce(options.quickSize, () => ( 30)),
@@ -16200,7 +16268,7 @@ var SelectionGesture = (_class13 = class {
16200
16268
  return false;
16201
16269
  }
16202
16270
  const path = this.draftPath;
16203
- const rect2 = _chunkUC3PWFM3cjs.normalizeRect.call(void 0, {
16271
+ const rect2 = _chunkKALCIDWHcjs.normalizeRect.call(void 0, {
16204
16272
  x: this.start.x,
16205
16273
  y: this.start.y,
16206
16274
  width: this.current.x - this.start.x,
@@ -16345,7 +16413,7 @@ function handleSelectionShortcut(controller, e, onError) {
16345
16413
  try {
16346
16414
  fn();
16347
16415
  } catch (err) {
16348
- _optionalChain([onError, 'optionalCall', _563 => _563(err instanceof Error ? err.message : String(err))]);
16416
+ _optionalChain([onError, 'optionalCall', _568 => _568(err instanceof Error ? err.message : String(err))]);
16349
16417
  }
16350
16418
  return true;
16351
16419
  };
@@ -16360,9 +16428,9 @@ function handleMaskViewKey(controller, e) {
16360
16428
  if (e.ctrlKey || e.metaKey || e.altKey || e.key !== "\\") return false;
16361
16429
  const id = controller.getState().activeLayerId;
16362
16430
  const layer = id ? controller.getLayer(id) : null;
16363
- if (!_optionalChain([layer, 'optionalAccess', _564 => _564.mask]) || layer.mask.source) return false;
16431
+ if (!_optionalChain([layer, 'optionalAccess', _569 => _569.mask]) || layer.mask.source) return false;
16364
16432
  const view = controller.getMaskView();
16365
- controller.setMaskView(_optionalChain([view, 'optionalAccess', _565 => _565.layerId]) === layer.id && view.mode === "overlay" ? "off" : "overlay", layer.id);
16433
+ controller.setMaskView(_optionalChain([view, 'optionalAccess', _570 => _570.layerId]) === layer.id && view.mode === "overlay" ? "off" : "overlay", layer.id);
16366
16434
  return true;
16367
16435
  }
16368
16436
  function handleQuickMaskKey(controller, e) {
@@ -16576,7 +16644,7 @@ var PaintGesture = (_class14 = class {
16576
16644
  const layer = this.controller.getActiveLayer();
16577
16645
  if (!layer) throw new Error("Select a layer to move in the Layers panel.");
16578
16646
  if (layer.type !== "pixel" && layer.type !== "shape" && layer.type !== "smart") throw new Error(`Only pixel, shape and smart object layers move; "${layer.name}" is a ${layer.type} layer.`);
16579
- if (_optionalChain([layer, 'access', _566 => _566.locks, 'optionalAccess', _567 => _567.all]) || _optionalChain([layer, 'access', _568 => _568.locks, 'optionalAccess', _569 => _569.position])) throw new Error(`Layer "${layer.name}" has its position locked.`);
16647
+ if (_optionalChain([layer, 'access', _571 => _571.locks, 'optionalAccess', _572 => _572.all]) || _optionalChain([layer, 'access', _573 => _573.locks, 'optionalAccess', _574 => _574.position])) throw new Error(`Layer "${layer.name}" has its position locked.`);
16580
16648
  const origin = layer.type === "pixel" ? { ...layer.offset } : layer.type === "smart" ? { ...layer.placement.corners[0] } : (() => {
16581
16649
  const b = _chunkS55JFWDAcjs.shapeGeometryBounds.call(void 0, layer);
16582
16650
  return b ? { x: b.x, y: b.y } : { x: 0, y: 0 };
@@ -16633,7 +16701,7 @@ var PaintGesture = (_class14 = class {
16633
16701
  this.move = null;
16634
16702
  }
16635
16703
  cancel() {
16636
- _optionalChain([this, 'access', _570 => _570.stroke, 'optionalAccess', _571 => _571.cancel, 'call', _572 => _572()]);
16704
+ _optionalChain([this, 'access', _575 => _575.stroke, 'optionalAccess', _576 => _576.cancel, 'call', _577 => _577()]);
16637
16705
  this.stroke = null;
16638
16706
  this.move = null;
16639
16707
  }
@@ -17043,7 +17111,7 @@ var TARGET2 = {
17043
17111
  };
17044
17112
  var SAMPLE = {
17045
17113
  type: "string",
17046
- enum: [..._chunkYF3YZZ6Gcjs.RETOUCH_SAMPLES],
17114
+ enum: [..._chunk2ONK3ERDcjs.RETOUCH_SAMPLES],
17047
17115
  description: "What is sampled: current (default: the target layer), current-below (the composite of this layer and everything under it), or all (the composite of every layer). Sample current-below or all to retouch onto an empty layer above the image."
17048
17116
  };
17049
17117
  function readTarget2(args) {
@@ -17122,7 +17190,7 @@ function createImageRetouchTools(controller) {
17122
17190
  type: "object",
17123
17191
  properties: {
17124
17192
  points: POINTS,
17125
- type: { type: "string", enum: [..._chunkYF3YZZ6Gcjs.SPOT_HEAL_TYPES], description: "proximity-match (default the current option), content-aware or smooth." },
17193
+ type: { type: "string", enum: [..._chunk2ONK3ERDcjs.SPOT_HEAL_TYPES], description: "proximity-match (default the current option), content-aware or smooth." },
17126
17194
  sample: SAMPLE,
17127
17195
  brush: BRUSH2,
17128
17196
  ...TARGET2
@@ -17155,7 +17223,7 @@ function createImageRetouchTools(controller) {
17155
17223
  type: "object",
17156
17224
  properties: {
17157
17225
  points: POINTS,
17158
- range: { type: "string", enum: [..._chunkYF3YZZ6Gcjs.TONE_RANGES], description: `Which tones to ${verb} most: shadows, midtones (default the current option, midtones) or highlights.` },
17226
+ range: { type: "string", enum: [..._chunk2ONK3ERDcjs.TONE_RANGES], description: `Which tones to ${verb} most: shadows, midtones (default the current option, midtones) or highlights.` },
17159
17227
  exposure: { type: "number", minimum: 0, maximum: 1, description: "Strength 0..1 (default the current option, 0.5). Overlapping dabs in one stroke never go past it; another stroke builds on it." },
17160
17228
  protectTones: { type: "boolean", description: "Change luma only, keeping hue and saturation (default true)." },
17161
17229
  brush: BRUSH2,
@@ -17264,8 +17332,8 @@ function createImageRetouchTools(controller) {
17264
17332
  properties: {
17265
17333
  aligned: { type: "boolean", description: "Clone / heal: keep the offset from stroke to stroke (default true)." },
17266
17334
  sample: SAMPLE,
17267
- spotType: { type: "string", enum: [..._chunkYF3YZZ6Gcjs.SPOT_HEAL_TYPES], description: "Spot heal: proximity-match (default), content-aware or smooth." },
17268
- range: { type: "string", enum: [..._chunkYF3YZZ6Gcjs.TONE_RANGES], description: "Dodge / burn: shadows, midtones (default) or highlights." },
17335
+ spotType: { type: "string", enum: [..._chunk2ONK3ERDcjs.SPOT_HEAL_TYPES], description: "Spot heal: proximity-match (default), content-aware or smooth." },
17336
+ range: { type: "string", enum: [..._chunk2ONK3ERDcjs.TONE_RANGES], description: "Dodge / burn: shadows, midtones (default) or highlights." },
17269
17337
  exposure: { type: "number", minimum: 0, maximum: 1, description: "Dodge / burn strength 0..1 (default 0.5)." },
17270
17338
  protectTones: { type: "boolean", description: "Dodge / burn: keep hue and saturation (default true)." },
17271
17339
  spongeMode: { type: "string", enum: ["desaturate", "saturate"], description: "Sponge: desaturate (default) or saturate." },
@@ -17714,7 +17782,7 @@ function createImageSmartObjectTools(controller) {
17714
17782
  const layerSummary = (id) => {
17715
17783
  const s = controller.getState();
17716
17784
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, s.layers, id);
17717
- return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _573 => _573.parent, 'optionalAccess', _574 => _574.id]), () => ( null)), index: loc.index } : null;
17785
+ return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _578 => _578.parent, 'optionalAccess', _579 => _579.id]), () => ( null)), index: loc.index } : null;
17718
17786
  };
17719
17787
  const getSmart = {
17720
17788
  name: "get_smart_object",
@@ -18271,7 +18339,7 @@ function createImageShapeTools(controller) {
18271
18339
  const layerSummary = (id) => {
18272
18340
  const s = controller.getState();
18273
18341
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, s.layers, id);
18274
- return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _575 => _575.parent, 'optionalAccess', _576 => _576.id]), () => ( null)), index: loc.index } : null;
18342
+ return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _580 => _580.parent, 'optionalAccess', _581 => _581.id]), () => ( null)), index: loc.index } : null;
18275
18343
  };
18276
18344
  const get = {
18277
18345
  name: "get_shape_layer",
@@ -18502,7 +18570,7 @@ function createImageShapeTools(controller) {
18502
18570
  const mode = args.mode;
18503
18571
  controller.pathToSelection(_nullishCoalesce(fromPathId(args), () => ( pathSpec(args))), { feather: args.feather, antiAlias: args.antiAlias, mode });
18504
18572
  const sel = controller.getSelection();
18505
- return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _577 => _577.bounds]), () => ( null)), area: Math.round(sel ? _chunkSS53NNZOcjs.selectionArea.call(void 0, sel) : 0) };
18573
+ return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _582 => _582.bounds]), () => ( null)), area: Math.round(sel ? _chunkSS53NNZOcjs.selectionArea.call(void 0, sel) : 0) };
18506
18574
  }
18507
18575
  };
18508
18576
  const getVectorMask = {
@@ -18534,7 +18602,7 @@ function createImageShapeTools(controller) {
18534
18602
  handler: (args) => {
18535
18603
  const id = layerArg(args.layerId);
18536
18604
  const spec = _nullishCoalesce(fromPathId(args), () => ( pathSpec(args)));
18537
- const hasPath = _optionalChain([spec, 'access', _578 => _578.components, 'optionalAccess', _579 => _579.length]) || spec.shape !== void 0 || spec.subpaths !== void 0;
18605
+ const hasPath = _optionalChain([spec, 'access', _583 => _583.components, 'optionalAccess', _584 => _584.length]) || spec.shape !== void 0 || spec.subpaths !== void 0;
18538
18606
  const from = _nullishCoalesce(args.from, () => ( (hasPath ? "path" : "reveal-all")));
18539
18607
  if (from !== "selection" && TRACE_KEYS.some((k) => args[k] !== void 0)) throw new Error("tolerance, cornerRoundness and minArea apply only to from selection.");
18540
18608
  controller.addVectorMask(id, from, spec, traceOptions(args));
@@ -18642,7 +18710,7 @@ function createImageShapeTools(controller) {
18642
18710
  annotations: { title: "Add a document path", ...WRITE8 },
18643
18711
  handler: (args) => {
18644
18712
  const spec = pathSpec(args);
18645
- if (!_optionalChain([spec, 'access', _580 => _580.components, 'optionalAccess', _581 => _581.length]) && spec.shape === void 0 && spec.subpaths === void 0) throw new Error("Give the path as shape, subpaths or components.");
18713
+ if (!_optionalChain([spec, 'access', _585 => _585.components, 'optionalAccess', _586 => _586.length]) && spec.shape === void 0 && spec.subpaths === void 0) throw new Error("Give the path as shape, subpaths or components.");
18646
18714
  return { path: pathSummary(controller.addPath({ ...spec, name: args.name }).id) };
18647
18715
  }
18648
18716
  };
@@ -18786,7 +18854,7 @@ function createImageTypeTools(controller) {
18786
18854
  const layerSummary = (id) => {
18787
18855
  const s = controller.getState();
18788
18856
  const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, s.layers, id);
18789
- return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _582 => _582.parent, 'optionalAccess', _583 => _583.id]), () => ( null)), index: loc.index } : null;
18857
+ return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _587 => _587.parent, 'optionalAccess', _588 => _588.id]), () => ( null)), index: loc.index } : null;
18790
18858
  };
18791
18859
  const range = (args) => ({ start: args.start, end: args.end });
18792
18860
  const listFonts = {
@@ -18795,7 +18863,7 @@ function createImageTypeTools(controller) {
18795
18863
  description: "Returns the font families type layers can use here (generic families such as sans-serif always work). Changes nothing.",
18796
18864
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
18797
18865
  annotations: { title: "List fonts", ...READ11 },
18798
- handler: () => ({ families: controller.listFonts(), shaper: _nullishCoalesce(_optionalChain([controller, 'access', _584 => _584.getTextShaper, 'call', _585 => _585(), 'optionalAccess', _586 => _586.id]), () => ( null)) })
18866
+ handler: () => ({ families: controller.listFonts(), shaper: _nullishCoalesce(_optionalChain([controller, 'access', _589 => _589.getTextShaper, 'call', _590 => _590(), 'optionalAccess', _591 => _591.id]), () => ( null)) })
18799
18867
  };
18800
18868
  const get = {
18801
18869
  name: "get_text_layer",
@@ -18951,7 +19019,7 @@ function createImageTypeTools(controller) {
18951
19019
  const init = pick2(args, ["text", "x", "y", "orientation", "box", "style", "paragraph", "rotation", "mode", "feather", "antiAlias"]);
18952
19020
  controller.selectTextShape(init);
18953
19021
  const sel = controller.getSelection();
18954
- return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _587 => _587.bounds]), () => ( null)), area: Math.round(sel ? _chunkSS53NNZOcjs.selectionArea.call(void 0, sel) : 0) };
19022
+ return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _592 => _592.bounds]), () => ( null)), area: Math.round(sel ? _chunkSS53NNZOcjs.selectionArea.call(void 0, sel) : 0) };
18955
19023
  }
18956
19024
  };
18957
19025
  return [listFonts, get, add2, setText, setStyle, setParagraph, setFrame, setOrientation, toShape, typeMask];
@@ -19130,7 +19198,7 @@ function createImageEditorToolProvider(controller, options = {}) {
19130
19198
  for (const ref of [aboveId, parentId]) {
19131
19199
  if (ref !== void 0 && !controller.getLayer(ref)) throw new Error(`Unknown layer "${ref}". Call list_layers for ids.`);
19132
19200
  }
19133
- if (parentId !== void 0 && _optionalChain([controller, 'access', _588 => _588.getLayer, 'call', _589 => _589(parentId), 'optionalAccess', _590 => _590.type]) !== "group") throw new Error(`Layer "${parentId}" is not a group.`);
19201
+ if (parentId !== void 0 && _optionalChain([controller, 'access', _593 => _593.getLayer, 'call', _594 => _594(parentId), 'optionalAccess', _595 => _595.type]) !== "group") throw new Error(`Layer "${parentId}" is not a group.`);
19134
19202
  const id = controller.addAdjustmentLayer({ kind, params, opacity, blend, name, aboveId, parentId, useSelection: useSelection !== false });
19135
19203
  const layer = controller.getAdjustmentLayer(id);
19136
19204
  return { layer: JSON.parse(JSON.stringify(layer)), index: controller.getAdjustmentLayers().findIndex((l) => l.id === id), masked: Boolean(layer.mask) };
@@ -19465,7 +19533,7 @@ var SelectAndMaskSession = (_class15 = class {
19465
19533
  const h = Math.max(1, Math.round(px2.height * s));
19466
19534
  this.previewPixels = scalePixels(px2, w, h);
19467
19535
  this.belowPreview = this.below ? scalePixels(this.below, w, h) : null;
19468
- this.baseMask = _optionalChain([this, 'access', _591 => _591.base, 'optionalAccess', _592 => _592.bounds]) ? s === 1 ? this.base : _chunkSS53NNZOcjs.resizeSelection.call(void 0, this.base, w, h) : null;
19536
+ this.baseMask = _optionalChain([this, 'access', _596 => _596.base, 'optionalAccess', _597 => _597.bounds]) ? s === 1 ? this.base : _chunkSS53NNZOcjs.resizeSelection.call(void 0, this.base, w, h) : null;
19469
19537
  }
19470
19538
  /**
19471
19539
  * Recomputes the preview mask from the base selection, the strokes and the settings: at once on
@@ -19482,8 +19550,8 @@ var SelectAndMaskSession = (_class15 = class {
19482
19550
  const { scale } = this.previewSize;
19483
19551
  const edits = [...this.editsList, ...this.live ? [this.live] : []].map((e) => scaleEdit(e, scale));
19484
19552
  try {
19485
- const { selection, refineBrush } = _chunkUC3PWFM3cjs.applyRefineEdits.call(void 0, px2, this.baseMask, edits, px2.width, px2.height);
19486
- this.previewMask = _optionalChain([selection, 'optionalAccess', _593 => _593.bounds]) ? _chunkSS53NNZOcjs.refineSelection.call(void 0, px2, selection, scaleParams(this.settingsValue.params, scale), refineBrush) : null;
19553
+ const { selection, refineBrush } = _chunkKALCIDWHcjs.applyRefineEdits.call(void 0, px2, this.baseMask, edits, px2.width, px2.height);
19554
+ this.previewMask = _optionalChain([selection, 'optionalAccess', _598 => _598.bounds]) ? _chunkSS53NNZOcjs.refineSelection.call(void 0, px2, selection, scaleParams(this.settingsValue.params, scale), refineBrush) : null;
19487
19555
  this.error = null;
19488
19556
  } catch (err) {
19489
19557
  this.previewMask = null;
@@ -19504,7 +19572,7 @@ var SelectAndMaskSession = (_class15 = class {
19504
19572
  const edits = [...this.editsList, ...this.live ? [this.live] : []].map((e) => scaleEdit(e, scale));
19505
19573
  try {
19506
19574
  const { mask } = await this.controller.runSelectionJob(
19507
- { op: "refine-preview", base: this.baseMask ? _chunkUC3PWFM3cjs.serializeMask.call(void 0, this.baseMask) : null, edits, params: scaleParams(this.settingsValue.params, scale) },
19575
+ { op: "refine-preview", base: this.baseMask ? _chunkKALCIDWHcjs.serializeMask.call(void 0, this.baseMask) : null, edits, params: scaleParams(this.settingsValue.params, scale) },
19508
19576
  px2
19509
19577
  );
19510
19578
  this.previewMask = mask.bounds ? mask : null;
@@ -19589,7 +19657,7 @@ var SelectAndMaskSession = (_class15 = class {
19589
19657
  break;
19590
19658
  }
19591
19659
  case "on-layers": {
19592
- const under = _optionalChain([this, 'access', _594 => _594.belowPreview, 'optionalAccess', _595 => _595.data]);
19660
+ const under = _optionalChain([this, 'access', _599 => _599.belowPreview, 'optionalAccess', _600 => _600.data]);
19593
19661
  let ur = checker;
19594
19662
  let ug = checker;
19595
19663
  let ub = checker;
@@ -19885,7 +19953,7 @@ function maskThumbnailClick(controller, layer, e) {
19885
19953
  } else if (e.altKey && !layer.mask.source) {
19886
19954
  const mode = e.shiftKey ? "overlay" : "gray";
19887
19955
  const view = controller.getMaskView();
19888
- controller.setMaskView(_optionalChain([view, 'optionalAccess', _596 => _596.layerId]) === layer.id && view.mode === mode ? "off" : mode, layer.id);
19956
+ controller.setMaskView(_optionalChain([view, 'optionalAccess', _601 => _601.layerId]) === layer.id && view.mode === mode ? "off" : mode, layer.id);
19889
19957
  } else if (e.shiftKey) {
19890
19958
  controller.setLayerMaskProps(layer.id, { enabled: layer.mask.enabled === false });
19891
19959
  } else {
@@ -19949,7 +20017,7 @@ function layerHasThumbnail(layer) {
19949
20017
  return layer.type === "pixel" || layer.type === "shape" || layer.type === "type";
19950
20018
  }
19951
20019
  function layerWarning(layer) {
19952
- if (layer.type === "type" && _optionalChain([layer, 'access', _597 => _597.missingFonts, 'optionalAccess', _598 => _598.length])) {
20020
+ if (layer.type === "type" && _optionalChain([layer, 'access', _602 => _602.missingFonts, 'optionalAccess', _603 => _603.length])) {
19953
20021
  return `Missing ${layer.missingFonts.length === 1 ? "font" : "fonts"}: ${layer.missingFonts.join(", ")}. ${layer.rendering === "stored" ? "Showing the saved pixels until the text is edited." : "Drawn with a fallback font."}`;
19954
20022
  }
19955
20023
  return null;
@@ -19972,16 +20040,16 @@ function layerMenu(controller) {
19972
20040
  const siblings = loc ? loc.parent ? loc.parent.children : s.layers : [];
19973
20041
  const below = loc ? siblings[loc.index - 1] : void 0;
19974
20042
  const hasSel = controller.hasSelection;
19975
- const isPixel = _optionalChain([active, 'optionalAccess', _599 => _599.type]) === "pixel";
19976
- const hasOwnPixels = _optionalChain([active, 'optionalAccess', _600 => _600.type]) === "pixel" || _optionalChain([active, 'optionalAccess', _601 => _601.type]) === "shape" || _optionalChain([active, 'optionalAccess', _602 => _602.type]) === "type" || _optionalChain([active, 'optionalAccess', _603 => _603.type]) === "smart";
20043
+ const isPixel = _optionalChain([active, 'optionalAccess', _604 => _604.type]) === "pixel";
20044
+ const hasOwnPixels = _optionalChain([active, 'optionalAccess', _605 => _605.type]) === "pixel" || _optionalChain([active, 'optionalAccess', _606 => _606.type]) === "shape" || _optionalChain([active, 'optionalAccess', _607 => _607.type]) === "type" || _optionalChain([active, 'optionalAccess', _608 => _608.type]) === "smart";
19977
20045
  return [
19978
20046
  { action: "new-layer", label: "New Layer", enabled: true },
19979
20047
  { action: "new-group", label: "New Group", enabled: true },
19980
20048
  { action: "duplicate", label: "Duplicate Layer", enabled: Boolean(active) },
19981
20049
  { action: "delete", label: "Delete Layer", enabled: Boolean(active) },
19982
20050
  { action: "group-selected", label: "Group Layer", enabled: Boolean(active) },
19983
- { action: "ungroup", label: "Ungroup", enabled: _optionalChain([active, 'optionalAccess', _604 => _604.type]) === "group" },
19984
- { action: "merge-down", label: "Merge Down", enabled: Boolean(_optionalChain([active, 'optionalAccess', _605 => _605.visible]) && _optionalChain([below, 'optionalAccess', _606 => _606.type]) === "pixel") },
20051
+ { action: "ungroup", label: "Ungroup", enabled: _optionalChain([active, 'optionalAccess', _609 => _609.type]) === "group" },
20052
+ { action: "merge-down", label: "Merge Down", enabled: Boolean(_optionalChain([active, 'optionalAccess', _610 => _610.visible]) && _optionalChain([below, 'optionalAccess', _611 => _611.type]) === "pixel") },
19985
20053
  { action: "merge-visible", label: "Merge Visible", enabled: s.layers.some((l) => l.visible) },
19986
20054
  { action: "flatten", label: "Flatten Image", enabled: s.layers.length > 0 },
19987
20055
  { action: "via-copy", label: "Layer via Copy", enabled: isPixel && hasSel },
@@ -19991,27 +20059,27 @@ function layerMenu(controller) {
19991
20059
  { action: "add-mask-hide-selection", label: "Add Mask Hiding Selection", enabled: Boolean(active) && hasSel },
19992
20060
  { action: "add-mask-transparency", label: "Add Mask from Transparency", enabled: hasOwnPixels },
19993
20061
  { action: "select-transparency", label: "Select Layer Pixels", enabled: hasOwnPixels },
19994
- { action: "apply-mask", label: "Apply Layer Mask", enabled: isPixel && Boolean(_optionalChain([active, 'optionalAccess', _607 => _607.mask])) },
19995
- { action: "delete-mask", label: "Delete Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _608 => _608.mask])) },
19996
- { action: "toggle-mask", label: _optionalChain([active, 'optionalAccess', _609 => _609.mask, 'optionalAccess', _610 => _610.enabled]) === false ? "Enable Layer Mask" : "Disable Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _611 => _611.mask])) },
19997
- { action: "toggle-mask-link", label: _optionalChain([active, 'optionalAccess', _612 => _612.mask, 'optionalAccess', _613 => _613.linked]) === false ? "Link Layer Mask" : "Unlink Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _614 => _614.mask]) && !active.mask.source) },
19998
- { action: "add-vector-mask", label: "Add Vector Mask (Reveal All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _615 => _615.mask, 'optionalAccess', _616 => _616.source])) },
19999
- { action: "add-vector-mask-hide", label: "Add Vector Mask (Hide All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _617 => _617.mask, 'optionalAccess', _618 => _618.source])) },
20000
- { action: "add-vector-mask-selection", label: "Add Vector Mask from Selection", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _619 => _619.mask, 'optionalAccess', _620 => _620.source])) && hasSel },
20001
- { action: "delete-vector-mask", label: "Delete Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _621 => _621.vectorMask])) },
20002
- { action: "toggle-vector-mask", label: _optionalChain([active, 'optionalAccess', _622 => _622.vectorMask, 'optionalAccess', _623 => _623.enabled]) === false ? "Enable Vector Mask" : "Disable Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _624 => _624.vectorMask])) },
20003
- { action: "rasterize-vector-mask", label: "Rasterize Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _625 => _625.vectorMask])) },
20004
- { action: "rasterize", label: "Rasterize Layer", enabled: _optionalChain([active, 'optionalAccess', _626 => _626.type]) === "annotation" || _optionalChain([active, 'optionalAccess', _627 => _627.type]) === "smart" || _optionalChain([active, 'optionalAccess', _628 => _628.type]) === "shape" || _optionalChain([active, 'optionalAccess', _629 => _629.type]) === "type" || isPixel && Boolean(_optionalChain([active, 'optionalAccess', _630 => _630.type]) === "pixel" && _optionalChain([active, 'access', _631 => _631.filters, 'optionalAccess', _632 => _632.length])) },
20062
+ { action: "apply-mask", label: "Apply Layer Mask", enabled: isPixel && Boolean(_optionalChain([active, 'optionalAccess', _612 => _612.mask])) },
20063
+ { action: "delete-mask", label: "Delete Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _613 => _613.mask])) },
20064
+ { action: "toggle-mask", label: _optionalChain([active, 'optionalAccess', _614 => _614.mask, 'optionalAccess', _615 => _615.enabled]) === false ? "Enable Layer Mask" : "Disable Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _616 => _616.mask])) },
20065
+ { action: "toggle-mask-link", label: _optionalChain([active, 'optionalAccess', _617 => _617.mask, 'optionalAccess', _618 => _618.linked]) === false ? "Link Layer Mask" : "Unlink Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _619 => _619.mask]) && !active.mask.source) },
20066
+ { action: "add-vector-mask", label: "Add Vector Mask (Reveal All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _620 => _620.mask, 'optionalAccess', _621 => _621.source])) },
20067
+ { action: "add-vector-mask-hide", label: "Add Vector Mask (Hide All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _622 => _622.mask, 'optionalAccess', _623 => _623.source])) },
20068
+ { action: "add-vector-mask-selection", label: "Add Vector Mask from Selection", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _624 => _624.mask, 'optionalAccess', _625 => _625.source])) && hasSel },
20069
+ { action: "delete-vector-mask", label: "Delete Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _626 => _626.vectorMask])) },
20070
+ { action: "toggle-vector-mask", label: _optionalChain([active, 'optionalAccess', _627 => _627.vectorMask, 'optionalAccess', _628 => _628.enabled]) === false ? "Enable Vector Mask" : "Disable Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _629 => _629.vectorMask])) },
20071
+ { action: "rasterize-vector-mask", label: "Rasterize Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _630 => _630.vectorMask])) },
20072
+ { action: "rasterize", label: "Rasterize Layer", enabled: _optionalChain([active, 'optionalAccess', _631 => _631.type]) === "annotation" || _optionalChain([active, 'optionalAccess', _632 => _632.type]) === "smart" || _optionalChain([active, 'optionalAccess', _633 => _633.type]) === "shape" || _optionalChain([active, 'optionalAccess', _634 => _634.type]) === "type" || isPixel && Boolean(_optionalChain([active, 'optionalAccess', _635 => _635.type]) === "pixel" && _optionalChain([active, 'access', _636 => _636.filters, 'optionalAccess', _637 => _637.length])) },
20005
20073
  { action: "convert-smart", label: "Convert to Smart Object", enabled: Boolean(active && active.type !== "annotation") },
20006
- { action: "edit-contents", label: "Edit Contents", enabled: _optionalChain([active, 'optionalAccess', _633 => _633.type]) === "smart" },
20007
- { action: "smart-via-copy", label: "New Smart Object via Copy", enabled: _optionalChain([active, 'optionalAccess', _634 => _634.type]) === "smart" },
20008
- { action: "add-filter-mask", label: "Add Smart Filter Mask", enabled: _optionalChain([active, 'optionalAccess', _635 => _635.type]) === "smart" && !_optionalChain([active, 'access', _636 => _636.smartFilters, 'optionalAccess', _637 => _637.mask]) },
20009
- { action: "toggle-clip", label: _optionalChain([active, 'optionalAccess', _638 => _638.clipped]) ? "Release Clipping Mask" : "Create Clipping Mask", enabled: Boolean(loc && loc.index > 0) }
20074
+ { action: "edit-contents", label: "Edit Contents", enabled: _optionalChain([active, 'optionalAccess', _638 => _638.type]) === "smart" },
20075
+ { action: "smart-via-copy", label: "New Smart Object via Copy", enabled: _optionalChain([active, 'optionalAccess', _639 => _639.type]) === "smart" },
20076
+ { action: "add-filter-mask", label: "Add Smart Filter Mask", enabled: _optionalChain([active, 'optionalAccess', _640 => _640.type]) === "smart" && !_optionalChain([active, 'access', _641 => _641.smartFilters, 'optionalAccess', _642 => _642.mask]) },
20077
+ { action: "toggle-clip", label: _optionalChain([active, 'optionalAccess', _643 => _643.clipped]) ? "Release Clipping Mask" : "Create Clipping Mask", enabled: Boolean(loc && loc.index > 0) }
20010
20078
  ];
20011
20079
  }
20012
20080
  async function runLayerMenuAction(controller, action) {
20013
20081
  const active = controller.getActiveLayer();
20014
- const id = _optionalChain([active, 'optionalAccess', _639 => _639.id]);
20082
+ const id = _optionalChain([active, 'optionalAccess', _644 => _644.id]);
20015
20083
  try {
20016
20084
  switch (action) {
20017
20085
  case "new-layer":
@@ -20067,10 +20135,10 @@ async function runLayerMenuAction(controller, action) {
20067
20135
  if (id) controller.removeLayerMask(id);
20068
20136
  break;
20069
20137
  case "toggle-mask":
20070
- if (id && _optionalChain([active, 'optionalAccess', _640 => _640.mask])) controller.setLayerMaskProps(id, { enabled: active.mask.enabled === false });
20138
+ if (id && _optionalChain([active, 'optionalAccess', _645 => _645.mask])) controller.setLayerMaskProps(id, { enabled: active.mask.enabled === false });
20071
20139
  break;
20072
20140
  case "toggle-mask-link":
20073
- if (id && _optionalChain([active, 'optionalAccess', _641 => _641.mask])) controller.setLayerMaskProps(id, { linked: active.mask.linked === false });
20141
+ if (id && _optionalChain([active, 'optionalAccess', _646 => _646.mask])) controller.setLayerMaskProps(id, { linked: active.mask.linked === false });
20074
20142
  break;
20075
20143
  case "add-vector-mask":
20076
20144
  case "add-vector-mask-hide":
@@ -20083,7 +20151,7 @@ async function runLayerMenuAction(controller, action) {
20083
20151
  if (id) controller.removeVectorMask(id);
20084
20152
  break;
20085
20153
  case "toggle-vector-mask":
20086
- if (id && _optionalChain([active, 'optionalAccess', _642 => _642.vectorMask])) controller.setVectorMaskProps(id, { enabled: active.vectorMask.enabled === false });
20154
+ if (id && _optionalChain([active, 'optionalAccess', _647 => _647.vectorMask])) controller.setVectorMaskProps(id, { enabled: active.vectorMask.enabled === false });
20087
20155
  break;
20088
20156
  case "rasterize-vector-mask":
20089
20157
  if (id) controller.rasterizeVectorMask(id);
@@ -20104,7 +20172,7 @@ async function runLayerMenuAction(controller, action) {
20104
20172
  if (id) controller.setSmartFilterMask(id, "reveal-all");
20105
20173
  break;
20106
20174
  case "toggle-clip":
20107
- if (id) controller.setLayerProperties(id, { clipped: !_optionalChain([active, 'optionalAccess', _643 => _643.clipped]) });
20175
+ if (id) controller.setLayerProperties(id, { clipped: !_optionalChain([active, 'optionalAccess', _648 => _648.clipped]) });
20108
20176
  break;
20109
20177
  }
20110
20178
  return null;
@@ -20114,7 +20182,7 @@ async function runLayerMenuAction(controller, action) {
20114
20182
  }
20115
20183
  function smartFilterRows(layer) {
20116
20184
  if (layer.type !== "smart") return [];
20117
- const list = _nullishCoalesce(_optionalChain([layer, 'access', _644 => _644.smartFilters, 'optionalAccess', _645 => _645.filters]), () => ( []));
20185
+ const list = _nullishCoalesce(_optionalChain([layer, 'access', _649 => _649.smartFilters, 'optionalAccess', _650 => _650.filters]), () => ( []));
20118
20186
  const rows = list.map((f, index) => ({
20119
20187
  filter: f,
20120
20188
  index,
@@ -20140,8 +20208,8 @@ function extractNormalizedLayerItems(controller, fallbackImageUrl = "") {
20140
20208
  };
20141
20209
  collectSerialized(_nullishCoalesce(serialized.layers, () => ( [])));
20142
20210
  const sLayerMap = new Map(allSerializedLayers.map((sl) => [sl.id, sl]));
20143
- const imgW = _optionalChain([state, 'access', _646 => _646.imageDimensions, 'optionalAccess', _647 => _647.width]) || 1;
20144
- const imgH = _optionalChain([state, 'access', _648 => _648.imageDimensions, 'optionalAccess', _649 => _649.height]) || 1;
20211
+ const imgW = _optionalChain([state, 'access', _651 => _651.imageDimensions, 'optionalAccess', _652 => _652.width]) || 1;
20212
+ const imgH = _optionalChain([state, 'access', _653 => _653.imageDimensions, 'optionalAccess', _654 => _654.height]) || 1;
20145
20213
  return ctrlLayers.map((l) => {
20146
20214
  const bounds = controller.getLayerBounds(l.id) || {
20147
20215
  x: 0,
@@ -20150,8 +20218,8 @@ function extractNormalizedLayerItems(controller, fallbackImageUrl = "") {
20150
20218
  height: imgH
20151
20219
  };
20152
20220
  const sLayer = sLayerMap.get(l.id);
20153
- const assetKey = _optionalChain([sLayer, 'optionalAccess', _650 => _650.asset]);
20154
- const layerDataUrl = assetKey && assets[assetKey] || assets[l.id] || (_optionalChain([sLayer, 'optionalAccess', _651 => _651.source]) === "document" ? fallbackImageUrl : "");
20221
+ const assetKey = _optionalChain([sLayer, 'optionalAccess', _655 => _655.asset]);
20222
+ const layerDataUrl = assetKey && assets[assetKey] || assets[l.id] || (_optionalChain([sLayer, 'optionalAccess', _656 => _656.source]) === "document" ? fallbackImageUrl : "");
20155
20223
  return {
20156
20224
  id: l.id,
20157
20225
  name: l.name || "Untitled Layer",
@@ -20205,9 +20273,9 @@ async function addLayerOfKind(controller, id, init) {
20205
20273
  const cx = Math.round(canvas.width / 2);
20206
20274
  const cy = Math.round(canvas.height / 2);
20207
20275
  return controller.addTextLayer({
20208
- text: _optionalChain([init, 'optionalAccess', _652 => _652.text]) || "New Text",
20209
- x: typeof _optionalChain([init, 'optionalAccess', _653 => _653.x]) === "number" ? init.x : cx - 100,
20210
- y: typeof _optionalChain([init, 'optionalAccess', _654 => _654.y]) === "number" ? init.y : cy,
20276
+ text: _optionalChain([init, 'optionalAccess', _657 => _657.text]) || "New Text",
20277
+ x: typeof _optionalChain([init, 'optionalAccess', _658 => _658.x]) === "number" ? init.x : cx - 100,
20278
+ y: typeof _optionalChain([init, 'optionalAccess', _659 => _659.y]) === "number" ? init.y : cy,
20211
20279
  ...init
20212
20280
  });
20213
20281
  }
@@ -20220,10 +20288,10 @@ async function addLayerOfKind(controller, id, init) {
20220
20288
  return controller.addShapeLayer({
20221
20289
  shape: {
20222
20290
  kind: "rect",
20223
- x: typeof _optionalChain([init, 'optionalAccess', _655 => _655.x]) === "number" ? init.x : cx - Math.round(w / 2),
20224
- y: typeof _optionalChain([init, 'optionalAccess', _656 => _656.y]) === "number" ? init.y : cy - Math.round(h / 2),
20225
- width: typeof _optionalChain([init, 'optionalAccess', _657 => _657.width]) === "number" ? init.width : w,
20226
- height: typeof _optionalChain([init, 'optionalAccess', _658 => _658.height]) === "number" ? init.height : h
20291
+ x: typeof _optionalChain([init, 'optionalAccess', _660 => _660.x]) === "number" ? init.x : cx - Math.round(w / 2),
20292
+ y: typeof _optionalChain([init, 'optionalAccess', _661 => _661.y]) === "number" ? init.y : cy - Math.round(h / 2),
20293
+ width: typeof _optionalChain([init, 'optionalAccess', _662 => _662.width]) === "number" ? init.width : w,
20294
+ height: typeof _optionalChain([init, 'optionalAccess', _663 => _663.height]) === "number" ? init.height : h
20227
20295
  },
20228
20296
  name: "Rectangle",
20229
20297
  ...init
@@ -20238,10 +20306,10 @@ async function addLayerOfKind(controller, id, init) {
20238
20306
  return controller.addShapeLayer({
20239
20307
  shape: {
20240
20308
  kind: "ellipse",
20241
- x: typeof _optionalChain([init, 'optionalAccess', _659 => _659.x]) === "number" ? init.x : cx - Math.round(w / 2),
20242
- y: typeof _optionalChain([init, 'optionalAccess', _660 => _660.y]) === "number" ? init.y : cy - Math.round(h / 2),
20243
- width: typeof _optionalChain([init, 'optionalAccess', _661 => _661.width]) === "number" ? init.width : w,
20244
- height: typeof _optionalChain([init, 'optionalAccess', _662 => _662.height]) === "number" ? init.height : h
20309
+ x: typeof _optionalChain([init, 'optionalAccess', _664 => _664.x]) === "number" ? init.x : cx - Math.round(w / 2),
20310
+ y: typeof _optionalChain([init, 'optionalAccess', _665 => _665.y]) === "number" ? init.y : cy - Math.round(h / 2),
20311
+ width: typeof _optionalChain([init, 'optionalAccess', _666 => _666.width]) === "number" ? init.width : w,
20312
+ height: typeof _optionalChain([init, 'optionalAccess', _667 => _667.height]) === "number" ? init.height : h
20245
20313
  },
20246
20314
  name: "Ellipse",
20247
20315
  ...init
@@ -20302,18 +20370,18 @@ function layerEffectsPanel(layer) {
20302
20370
  if (!layer) return { ...empty, available: false, reason: "Select a layer to add a layer style." };
20303
20371
  if (layer.type === "adjustment") return { ...empty, available: false, reason: "Adjustment layers cannot have a layer style." };
20304
20372
  const fx = layer.effects;
20305
- const readOnly = Boolean(_optionalChain([layer, 'access', _663 => _663.locks, 'optionalAccess', _664 => _664.all]));
20373
+ const readOnly = Boolean(_optionalChain([layer, 'access', _668 => _668.locks, 'optionalAccess', _669 => _669.all]));
20306
20374
  return {
20307
20375
  available: true,
20308
20376
  readOnly,
20309
20377
  reason: readOnly ? "The layer is locked; unlock it to change its layer style." : void 0,
20310
- enabled: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _665 => _665.enabled]), () => ( true)),
20311
- scale: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _666 => _666.scale]), () => ( 1)),
20312
- rows: (_nullishCoalesce(_optionalChain([fx, 'optionalAccess', _667 => _667.items]), () => ( []))).map((e) => ({ id: e.id, kind: e.kind, label: _chunkB46UQUDCcjs.layerEffectLabel.call(void 0, e.kind), enabled: e.enabled }))
20378
+ enabled: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _670 => _670.enabled]), () => ( true)),
20379
+ scale: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _671 => _671.scale]), () => ( 1)),
20380
+ rows: (_nullishCoalesce(_optionalChain([fx, 'optionalAccess', _672 => _672.items]), () => ( []))).map((e) => ({ id: e.id, kind: e.kind, label: _chunkB46UQUDCcjs.layerEffectLabel.call(void 0, e.kind), enabled: e.enabled }))
20313
20381
  };
20314
20382
  }
20315
20383
  function layerEffectsBadge(layer) {
20316
- if (!_optionalChain([layer, 'access', _668 => _668.effects, 'optionalAccess', _669 => _669.items, 'access', _670 => _670.length])) return null;
20384
+ if (!_optionalChain([layer, 'access', _673 => _673.effects, 'optionalAccess', _674 => _674.items, 'access', _675 => _675.length])) return null;
20317
20385
  return _chunkB46UQUDCcjs.hasActiveEffects.call(void 0, layer.effects) ? "on" : "off";
20318
20386
  }
20319
20387
  var LAYER_EFFECT_MENU = _chunkB46UQUDCcjs.LAYER_EFFECT_KINDS.map((kind) => ({ kind, label: _chunkB46UQUDCcjs.layerEffectLabel.call(void 0, kind) }));
@@ -20358,8 +20426,8 @@ function fillControls(f, allowPattern, patterns) {
20358
20426
  }
20359
20427
  function gradientControls(prefix, g) {
20360
20428
  return [
20361
- { key: `${prefix}.stops.0.color`, label: "Start colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _671 => _671.stops, 'access', _672 => _672[0], 'optionalAccess', _673 => _673.color]), () => ( "#000000")) },
20362
- { key: `${prefix}.stops.last.color`, label: "End colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _674 => _674.stops, 'access', _675 => _675[g.stops.length - 1], 'optionalAccess', _676 => _676.color]), () => ( "#ffffff")) },
20429
+ { key: `${prefix}.stops.0.color`, label: "Start colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _676 => _676.stops, 'access', _677 => _677[0], 'optionalAccess', _678 => _678.color]), () => ( "#000000")) },
20430
+ { key: `${prefix}.stops.last.color`, label: "End colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _679 => _679.stops, 'access', _680 => _680[g.stops.length - 1], 'optionalAccess', _681 => _681.color]), () => ( "#ffffff")) },
20363
20431
  { key: `${prefix}.style`, label: "Style", type: "select", value: g.style, options: opt(["linear", "Linear"], ["radial", "Radial"], ["angle", "Angle"], ["reflected", "Reflected"], ["diamond", "Diamond"]) },
20364
20432
  { key: `${prefix}.angle`, label: "Angle", type: "range", min: -180, max: 180, step: 1, value: g.angle, unit: "\xB0" },
20365
20433
  { key: `${prefix}.scale`, label: "Scale", type: "range", min: 0.1, max: 1.5, step: 0.01, value: g.scale, percent: true, unit: "%" },
@@ -20451,19 +20519,19 @@ function layerEffectControls(e, patterns = []) {
20451
20519
  }
20452
20520
  function fillOfType(current, type, patterns) {
20453
20521
  if (type === "gradient") return { type: "gradient", gradient: _chunkB46UQUDCcjs.defaultEffectGradient.call(void 0, ) };
20454
- if (type === "pattern") return { type: "pattern", patternId: _nullishCoalesce(_optionalChain([patterns, 'access', _677 => _677[0], 'optionalAccess', _678 => _678.id]), () => ( "checker")), scale: 1 };
20522
+ if (type === "pattern") return { type: "pattern", patternId: _nullishCoalesce(_optionalChain([patterns, 'access', _682 => _682[0], 'optionalAccess', _683 => _683.id]), () => ( "checker")), scale: 1 };
20455
20523
  return { type: "color", color: current.type === "color" ? current.color : "#000000" };
20456
20524
  }
20457
20525
  function effectControlChange(effect, key2, value, patterns = []) {
20458
20526
  const [top, ...rest] = key2.split(".");
20459
20527
  if (top === "fill" && rest[0] === "type") return { fill: fillOfType(effect.fill, String(value), patterns) };
20460
20528
  if (top === "patternId" && !rest.length) {
20461
- const name = _optionalChain([patternOptions, 'call', _679 => _679(patterns), 'access', _680 => _680.find, 'call', _681 => _681((o) => o.value === value), 'optionalAccess', _682 => _682.label]);
20529
+ const name = _optionalChain([patternOptions, 'call', _684 => _684(patterns), 'access', _685 => _685.find, 'call', _686 => _686((o) => o.value === value), 'optionalAccess', _687 => _687.label]);
20462
20530
  return name ? { patternId: value, name } : { patternId: value };
20463
20531
  }
20464
20532
  if (!rest.length) return { [top]: value };
20465
20533
  if (top === "fill" && rest[0] === "patternId") {
20466
- const name = _optionalChain([patternOptions, 'call', _683 => _683(patterns), 'access', _684 => _684.find, 'call', _685 => _685((o) => o.value === value), 'optionalAccess', _686 => _686.label]);
20534
+ const name = _optionalChain([patternOptions, 'call', _688 => _688(patterns), 'access', _689 => _689.find, 'call', _690 => _690((o) => o.value === value), 'optionalAccess', _691 => _691.label]);
20467
20535
  return { fill: { ...effect.fill, patternId: value, ...name ? { name } : {} } };
20468
20536
  }
20469
20537
  return { [top]: setPath(getPath(effect, top), rest, value) };
@@ -20490,7 +20558,7 @@ function colorPanelView(controller) {
20490
20558
  profileName: profile.name,
20491
20559
  workingSpace: profile.builtin,
20492
20560
  mode: profile.mode,
20493
- cmykProfileName: _nullishCoalesce(_optionalChain([profile, 'access', _687 => _687.cmykProfile, 'optionalAccess', _688 => _688.name]), () => ( null)),
20561
+ cmykProfileName: _nullishCoalesce(_optionalChain([profile, 'access', _692 => _692.cmykProfile, 'optionalAccess', _693 => _693.name]), () => ( null)),
20494
20562
  proof: proof ? { id: _nullishCoalesce(proof.profile.builtin, () => ( null)), name: proof.profile.name, intent: proof.intent, simulatePaper: proof.simulatePaper, gamutWarning: proof.gamutWarning, bpc: proof.bpc } : null
20495
20563
  };
20496
20564
  }
@@ -20698,7 +20766,7 @@ var FreeTransformTool = (_class16 = class {
20698
20766
  __init147() {this.error = null}
20699
20767
  __init148() {this.lastResult = null}
20700
20768
  get active() {
20701
- return Boolean(_optionalChain([this, 'access', _689 => _689.sessionRef, 'optionalAccess', _690 => _690.isOpen]));
20769
+ return Boolean(_optionalChain([this, 'access', _694 => _694.sessionRef, 'optionalAccess', _695 => _695.isOpen]));
20702
20770
  }
20703
20771
  get session() {
20704
20772
  return this.active ? this.sessionRef : null;
@@ -20707,7 +20775,7 @@ var FreeTransformTool = (_class16 = class {
20707
20775
  return this.modeValue;
20708
20776
  }
20709
20777
  get interpolation() {
20710
- return _nullishCoalesce(_optionalChain([this, 'access', _691 => _691.sessionRef, 'optionalAccess', _692 => _692.interpolation]), () => ( "bicubic"));
20778
+ return _nullishCoalesce(_optionalChain([this, 'access', _696 => _696.sessionRef, 'optionalAccess', _697 => _697.interpolation]), () => ( "bicubic"));
20711
20779
  }
20712
20780
  /** Whether the open transform has changed anything yet (a commit would add an undo step). */
20713
20781
  get modified() {
@@ -20726,7 +20794,7 @@ var FreeTransformTool = (_class16 = class {
20726
20794
  };
20727
20795
  }
20728
20796
  changed() {
20729
- _optionalChain([this, 'access', _693 => _693.options, 'access', _694 => _694.onChange, 'optionalCall', _695 => _695()]);
20797
+ _optionalChain([this, 'access', _698 => _698.options, 'access', _699 => _699.onChange, 'optionalCall', _700 => _700()]);
20730
20798
  for (const l of this.listeners) l();
20731
20799
  }
20732
20800
  /** Opens a Free Transform (default: the selected pixels of the active layer, or the whole layer). Returns an error message or `null`. */
@@ -21119,7 +21187,7 @@ var FreeTransformTool = (_class16 = class {
21119
21187
  }
21120
21188
  /** Abandons the transform and restores everything. */
21121
21189
  cancel() {
21122
- _optionalChain([this, 'access', _696 => _696.sessionRef, 'optionalAccess', _697 => _697.cancel, 'call', _698 => _698()]);
21190
+ _optionalChain([this, 'access', _701 => _701.sessionRef, 'optionalAccess', _702 => _702.cancel, 'call', _703 => _703()]);
21123
21191
  this.sessionRef = null;
21124
21192
  this.corners = null;
21125
21193
  this.mesh = null;
@@ -21175,7 +21243,7 @@ function imageLayerAppliedEffects(layer) {
21175
21243
  const ref = (r) => ({ effect: r.effect, ...r.name ? { name: r.name } : {}, ...r.provider ? { provider: r.provider } : {} });
21176
21244
  if (layer.type === "pixel" && layer.generator) out.push({ id: "generator", ...ref(layer.generator), role: "effect layer", enabled: true, values: layer.generator.values, ...layer.generator.time ? { time: layer.generator.time } : {}, ...layer.generator.animate ? { animate: layer.generator.animate } : {} });
21177
21245
  if (layer.type === "smart")
21178
- (_nullishCoalesce(_optionalChain([layer, 'access', _699 => _699.smartFilters, 'optionalAccess', _700 => _700.filters]), () => ( []))).forEach((f, index) => {
21246
+ (_nullishCoalesce(_optionalChain([layer, 'access', _704 => _704.smartFilters, 'optionalAccess', _705 => _705.filters]), () => ( []))).forEach((f, index) => {
21179
21247
  if (f.kind === "effect") out.push({ id: f.id, ...ref(f), role: "smart filter", enabled: f.enabled && layer.smartFilters.enabled, opacity: f.opacity, blend: f.blend, values: f.values, index });
21180
21248
  });
21181
21249
  return out;
@@ -21332,7 +21400,7 @@ var OTHER_TOOL_LABELS = {
21332
21400
  watermark: "Watermark"
21333
21401
  };
21334
21402
  function imageToolLabel(tool) {
21335
- return _nullishCoalesce(_nullishCoalesce(_optionalChain([PAINT_TOOLS, 'access', _701 => _701.find, 'call', _702 => _702((t) => t.id === tool), 'optionalAccess', _703 => _703.label]), () => ( OTHER_TOOL_LABELS[tool])), () => ( tool));
21403
+ return _nullishCoalesce(_nullishCoalesce(_optionalChain([PAINT_TOOLS, 'access', _706 => _706.find, 'call', _707 => _707((t) => t.id === tool), 'optionalAccess', _708 => _708.label]), () => ( OTHER_TOOL_LABELS[tool])), () => ( tool));
21336
21404
  }
21337
21405
  var IMAGE_TOOL_SHORTCUTS = {
21338
21406
  ...Object.fromEntries(PAINT_TOOLS.filter((t) => t.shortcut).map((t) => [t.id, t.shortcut])),
@@ -21464,10 +21532,10 @@ var PathEditGesture = (_class17 = class {
21464
21532
  }
21465
21533
  for (const k of [...this.selected]) {
21466
21534
  const r = parseKey(k);
21467
- if (!_optionalChain([cs, 'access', _704 => _704[r.component], 'optionalAccess', _705 => _705.subpaths, 'access', _706 => _706[r.subpath], 'optionalAccess', _707 => _707.anchors, 'access', _708 => _708[r.anchor]])) this.selected.delete(k);
21535
+ if (!_optionalChain([cs, 'access', _709 => _709[r.component], 'optionalAccess', _710 => _710.subpaths, 'access', _711 => _711[r.subpath], 'optionalAccess', _712 => _712.anchors, 'access', _713 => _713[r.anchor]])) this.selected.delete(k);
21468
21536
  }
21469
21537
  const d = this.drawing;
21470
- if (d && (!_optionalChain([cs, 'access', _709 => _709[d.component], 'optionalAccess', _710 => _710.subpaths, 'access', _711 => _711[d.subpath]]) || cs[d.component].subpaths[d.subpath].closed)) this.drawing = null;
21538
+ if (d && (!_optionalChain([cs, 'access', _714 => _714[d.component], 'optionalAccess', _715 => _715.subpaths, 'access', _716 => _716[d.subpath]]) || cs[d.component].subpaths[d.subpath].closed)) this.drawing = null;
21471
21539
  return cs;
21472
21540
  }
21473
21541
  anchorAt(cs, p) {
@@ -21802,11 +21870,11 @@ var PathEditGesture = (_class17 = class {
21802
21870
  let preview = null;
21803
21871
  const d = this.drawing;
21804
21872
  if (tool === "path-pen" && d && this.pointer && !this.drag) {
21805
- const sp = _optionalChain([cs, 'access', _712 => _712[d.component], 'optionalAccess', _713 => _713.subpaths, 'access', _714 => _714[d.subpath]]);
21806
- const last = _optionalChain([sp, 'optionalAccess', _715 => _715.anchors, 'access', _716 => _716[sp.anchors.length - 1]]);
21873
+ const sp = _optionalChain([cs, 'access', _717 => _717[d.component], 'optionalAccess', _718 => _718.subpaths, 'access', _719 => _719[d.subpath]]);
21874
+ const last = _optionalChain([sp, 'optionalAccess', _720 => _720.anchors, 'access', _721 => _721[sp.anchors.length - 1]]);
21807
21875
  if (last) preview = last.out ? [pt(last), pt(last.out), this.pointer, this.pointer] : [pt(last), this.pointer];
21808
21876
  }
21809
- const marquee = _optionalChain([this, 'access', _717 => _717.drag, 'optionalAccess', _718 => _718.kind]) === "marquee" ? rect(this.drag.start, this.drag.end) : null;
21877
+ const marquee = _optionalChain([this, 'access', _722 => _722.drag, 'optionalAccess', _723 => _723.kind]) === "marquee" ? rect(this.drag.start, this.drag.end) : null;
21810
21878
  return { curves, anchors, handles, marquee, preview };
21811
21879
  }
21812
21880
  }, _class17);
@@ -21888,8 +21956,8 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
21888
21956
  async open() {
21889
21957
  try {
21890
21958
  const { width, height } = this.controller.getState().imageDimensions;
21891
- const b = _optionalChain([this, 'access', _719 => _719.controller, 'access', _720 => _720.getSelection, 'call', _721 => _721(), 'optionalAccess', _722 => _722.bounds]);
21892
- this.margin = width * height <= _ContentAwareFillSession.WHOLE_IMAGE_PIXELS ? Math.max(width, height) : Math.max(256, 2 * Math.max(_nullishCoalesce(_optionalChain([b, 'optionalAccess', _723 => _723.width]), () => ( 0)), _nullishCoalesce(_optionalChain([b, 'optionalAccess', _724 => _724.height]), () => ( 0))));
21959
+ const b = _optionalChain([this, 'access', _724 => _724.controller, 'access', _725 => _725.getSelection, 'call', _726 => _726(), 'optionalAccess', _727 => _727.bounds]);
21960
+ this.margin = width * height <= _ContentAwareFillSession.WHOLE_IMAGE_PIXELS ? Math.max(width, height) : Math.max(256, 2 * Math.max(_nullishCoalesce(_optionalChain([b, 'optionalAccess', _728 => _728.width]), () => ( 0)), _nullishCoalesce(_optionalChain([b, 'optionalAccess', _729 => _729.height]), () => ( 0))));
21893
21961
  this.plan = this.controller.prepareContentAwareFill({ sampleRadius: this.margin });
21894
21962
  } catch (err) {
21895
21963
  this.error = err instanceof Error ? err.message : String(err);
@@ -22047,7 +22115,7 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
22047
22115
  this.dirty = false;
22048
22116
  try {
22049
22117
  const area = this.samplingMask();
22050
- if (!_optionalChain([area, 'optionalAccess', _725 => _725.bounds])) throw new Error("The sampling area is empty; paint where the fill may copy from.");
22118
+ if (!_optionalChain([area, 'optionalAccess', _730 => _730.bounds])) throw new Error("The sampling area is empty; paint where the fill may copy from.");
22051
22119
  const { plan, after } = await this.controller.previewContentAwareFill({ layerId: this.plan.layerId, samplingArea: area, seed: this.settingsValue.seed });
22052
22120
  const win = this.win;
22053
22121
  const out = Uint8ClampedArray.from(this.before);
@@ -22126,7 +22194,7 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
22126
22194
  /** OK: fills with this sampling area, seed and output as one undo step. */
22127
22195
  async commit(options = {}) {
22128
22196
  const area = this.samplingMask();
22129
- if (!this.plan || !_optionalChain([area, 'optionalAccess', _726 => _726.bounds])) throw new Error(_nullishCoalesce(this.error, () => ( "The sampling area is empty; paint where the fill may copy from.")));
22197
+ if (!this.plan || !_optionalChain([area, 'optionalAccess', _731 => _731.bounds])) throw new Error(_nullishCoalesce(this.error, () => ( "The sampling area is empty; paint where the fill may copy from.")));
22130
22198
  return this.controller.contentAwareFillAsync({ layerId: this.plan.layerId, samplingArea: area, seed: this.settingsValue.seed, output: this.settingsValue.output, signal: options.signal });
22131
22199
  }
22132
22200
  }, _class18.__initStatic(), _class18);
@@ -23246,4 +23314,4 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
23246
23314
 
23247
23315
 
23248
23316
 
23249
- exports.ADJUSTMENT_KEYS = _chunkS55JFWDAcjs.ADJUSTMENT_KEYS; exports.ADJUSTMENT_KINDS = _chunkS55JFWDAcjs.ADJUSTMENT_KINDS; exports.ADJUSTMENT_LAYER_CONTROLS = ADJUSTMENT_LAYER_CONTROLS; exports.ADJUSTMENT_LAYER_OPACITY_CONTROL = ADJUSTMENT_LAYER_OPACITY_CONTROL; exports.ADJUSTMENT_LUT_SIZE = _chunkS55JFWDAcjs.ADJUSTMENT_LUT_SIZE; exports.ANCHOR_FRACTION = _chunkS55JFWDAcjs.ANCHOR_FRACTION; exports.AS_SHOT_KELVIN = _chunkS55JFWDAcjs.AS_SHOT_KELVIN; exports.BACKGROUND_LAYER_ID = _chunkS55JFWDAcjs.BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = _chunkS55JFWDAcjs.BACKGROUND_LAYER_NAME; exports.BIT_DEPTHS = _chunkOLNIPTB3cjs.BIT_DEPTHS; exports.BIT_DEPTH_OPTIONS = BIT_DEPTH_OPTIONS; exports.BLEND_MODES = _chunkOLNIPTB3cjs.BLEND_MODES; exports.BLUR_FILTER_ID = _chunkS55JFWDAcjs.BLUR_FILTER_ID; exports.BODY_SCATTER = _chunkXFYLA3ZOcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BRUSH_OPTION_CONTROLS = BRUSH_OPTION_CONTROLS; exports.BUILTIN_PROFILES = _chunkBROJYMWUcjs.BUILTIN_PROFILES; exports.BrushstrokeCache = _chunkPQ3H2AANcjs.BrushstrokeCache; exports.CANVAS_SIZE_PRESETS = CANVAS_SIZE_PRESETS; exports.CLONE_TRANSFORM_CONTROLS = CLONE_TRANSFORM_CONTROLS; exports.COLOR_MODE_OPTIONS = COLOR_MODE_OPTIONS; exports.COLOR_RANGE_PRESETS = COLOR_RANGE_PRESETS; exports.COLOR_RANGE_PRESET_LABELS = COLOR_RANGE_PRESET_LABELS; exports.CONTENT_AWARE_FILL_SAMPLING = CONTENT_AWARE_FILL_SAMPLING; exports.CONTENT_AWARE_FILL_TOOLS = CONTENT_AWARE_FILL_TOOLS; exports.ColorGmm = _chunkUC3PWFM3cjs.ColorGmm; exports.ContentAwareFillSession = ContentAwareFillSession; exports.CoverageMap = _chunkPQ3H2AANcjs.CoverageMap; exports.D50 = _chunkS55JFWDAcjs.D50; exports.D65 = _chunkS55JFWDAcjs.D65; exports.DEFAULT_ADJUSTMENTS = DEFAULT_ADJUSTMENTS; exports.DEFAULT_AUTO_LEADING = _chunkQAUIZPYIcjs.DEFAULT_AUTO_LEADING; exports.DEFAULT_BLENDER = _chunkPQ3H2AANcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkPQ3H2AANcjs.DEFAULT_BRUSH; exports.DEFAULT_CANVAS_VIEWPORT = DEFAULT_CANVAS_VIEWPORT; exports.DEFAULT_CHANNEL_COLOR = DEFAULT_CHANNEL_COLOR; exports.DEFAULT_CONTENT_AWARE_FILL_SETTINGS = DEFAULT_CONTENT_AWARE_FILL_SETTINGS; exports.DEFAULT_DEPTH_MASK = DEFAULT_DEPTH_MASK; exports.DEFAULT_FLOW = _chunkXFYLA3ZOcjs.DEFAULT_FLOW; exports.DEFAULT_GLOBAL_LIGHT = _chunkB46UQUDCcjs.DEFAULT_GLOBAL_LIGHT; exports.DEFAULT_MITER_LIMIT = _chunkS55JFWDAcjs.DEFAULT_MITER_LIMIT; exports.DEFAULT_MIXER = _chunkPQ3H2AANcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PROOF = DEFAULT_PROOF; exports.DEFAULT_REFINE_EDGE_PARAMS = _chunkSS53NNZOcjs.DEFAULT_REFINE_EDGE_PARAMS; exports.DEFAULT_RETOUCH = _chunkYF3YZZ6Gcjs.DEFAULT_RETOUCH; exports.DEFAULT_SELECTION_TOOL_OPTIONS = DEFAULT_SELECTION_TOOL_OPTIONS; exports.DEFAULT_SELECT_AND_MASK_SETTINGS = DEFAULT_SELECT_AND_MASK_SETTINGS; exports.DEFAULT_SHAPE_TOOL_OPTIONS = DEFAULT_SHAPE_TOOL_OPTIONS; exports.DEFAULT_SMUDGE = _chunkPQ3H2AANcjs.DEFAULT_SMUDGE; exports.DEFAULT_TEXT_STYLE = _chunkQAUIZPYIcjs.DEFAULT_TEXT_STYLE; exports.DEFAULT_TRANSFORM = DEFAULT_TRANSFORM; exports.DEFAULT_TYPE_TOOL_OPTIONS = DEFAULT_TYPE_TOOL_OPTIONS; exports.DEFAULT_WET_PAPER = _chunkXFYLA3ZOcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkXFYLA3ZOcjs.DEFAULT_WET_PARAMS; exports.DEPTH_MASK_CONTROLS = DEPTH_MASK_CONTROLS; exports.DEVELOP_FILTER_ID = _chunkS55JFWDAcjs.DEVELOP_FILTER_ID; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkK6PXS6DOcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.DRY_EPS = _chunkXFYLA3ZOcjs.DRY_EPS; exports.DabWalker = _chunkPQ3H2AANcjs.DabWalker; exports.EDGE_COLOR_RADIUS = _chunkS55JFWDAcjs.EDGE_COLOR_RADIUS; exports.EFFECT_LAYER_USES = EFFECT_LAYER_USES; exports.EMPTY_DISTANCE = _chunkSS53NNZOcjs.EMPTY_DISTANCE; exports.EMPTY_MIXER_LOAD = _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkXFYLA3ZOcjs.EX; exports.EY = _chunkXFYLA3ZOcjs.EY; exports.EdgeMap = EdgeMap; exports.FLAG_ALIVE = _chunkXFYLA3ZOcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkXFYLA3ZOcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkXFYLA3ZOcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkXFYLA3ZOcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkXFYLA3ZOcjs.FLAG_TOP; exports.FLAG_WET = _chunkXFYLA3ZOcjs.FLAG_WET; exports.FLAT = _chunkXFYLA3ZOcjs.FLAT; exports.FREE_INTERVAL = _chunkXFYLA3ZOcjs.FREE_INTERVAL; exports.FREE_TRANSFORM_CONTENTS = FREE_TRANSFORM_CONTENTS; exports.FREE_TRANSFORM_FIELDS = FREE_TRANSFORM_FIELDS; exports.FREE_TRANSFORM_MODES = _chunkS55JFWDAcjs.FREE_TRANSFORM_MODES; exports.FREE_TRANSFORM_MODE_OPTIONS = FREE_TRANSFORM_MODE_OPTIONS; exports.FreeTransformSession = FreeTransformSession; exports.FreeTransformTool = FreeTransformTool; exports.GAMMA = _chunkUC3PWFM3cjs.GAMMA; exports.GRAIN_PATTERNS = _chunkPQ3H2AANcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPQ3H2AANcjs.GRAIN_TILE; exports.GUIDED_FILTER_EPS = _chunkSS53NNZOcjs.GUIDED_FILTER_EPS; exports.GridGraph = _chunkUC3PWFM3cjs.GridGraph; exports.HIDE = _chunkXFYLA3ZOcjs.HIDE; exports.HISTOGRAM_BINS = HISTOGRAM_BINS; exports.HUE_RANGE_LABELS = _chunkS55JFWDAcjs.HUE_RANGE_LABELS; exports.HUE_RANGE_PRESETS = HUE_RANGE_PRESETS; exports.IDENTITY_CLONE_TRANSFORM = _chunkYF3YZZ6Gcjs.IDENTITY_CLONE_TRANSFORM; exports.IDENTITY_MATRIX3 = _chunkS55JFWDAcjs.IDENTITY_MATRIX3; exports.IMAGE_ADJUSTMENT_CONTROLS = IMAGE_ADJUSTMENT_CONTROLS; exports.IMAGE_CROP_PRESETS = IMAGE_CROP_PRESETS; exports.IMAGE_EDITOR_SCHEMA_VERSION = IMAGE_EDITOR_SCHEMA_VERSION; exports.IMAGE_EDITOR_STATE_VERSION = IMAGE_EDITOR_STATE_VERSION; exports.IMAGE_EFFECT_PLACES = IMAGE_EFFECT_PLACES; exports.IMAGE_FILTER_PRESETS = IMAGE_FILTER_PRESETS; exports.IMAGE_PLAYBACK_KIND = IMAGE_PLAYBACK_KIND; exports.IMAGE_TOOL_GROUPS = IMAGE_TOOL_GROUPS; exports.IMAGE_TOOL_SHORTCUTS = IMAGE_TOOL_SHORTCUTS; exports.INTENTS = _chunkBROJYMWUcjs.INTENTS; exports.INTENT_OPTIONS = INTENT_OPTIONS; exports.INTERPOLATIONS = _chunkB46UQUDCcjs.INTERPOLATIONS; exports.ImageEditorController = ImageEditorController; exports.ImageEditorRenderer = ImageEditorRenderer; exports.ImageEffectsEngine = ImageEffectsEngine; exports.LATEST_PROCESS_VERSION = _chunkS55JFWDAcjs.LATEST_PROCESS_VERSION; exports.LAYERED_SCHEMA_VERSION = _chunkS55JFWDAcjs.LAYERED_SCHEMA_VERSION; exports.LAYER_EFFECT_KINDS = _chunkB46UQUDCcjs.LAYER_EFFECT_KINDS; exports.LAYER_EFFECT_MENU = LAYER_EFFECT_MENU; exports.LEGACY_PROCESS_VERSION = _chunkS55JFWDAcjs.LEGACY_PROCESS_VERSION; exports.LIVE_SHAPE_KINDS = _chunkS55JFWDAcjs.LIVE_SHAPE_KINDS; exports.LUMA_709 = _chunkS55JFWDAcjs.LUMA_709; exports.LayerCompositor = _chunkS55JFWDAcjs.LayerCompositor; exports.LayerEffectError = _chunkB46UQUDCcjs.LayerEffectError; exports.LayerOperationError = _chunkS55JFWDAcjs.LayerOperationError; exports.MARCHING_ANTS_STEP_MS = MARCHING_ANTS_STEP_MS; exports.MASK_EDGE_THRESHOLDS = MASK_EDGE_THRESHOLDS; exports.MASK_FILE_ACCEPT = MASK_FILE_ACCEPT; exports.MAX_BATCH = _chunkXFYLA3ZOcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkPQ3H2AANcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_BACKING_SIDE = MAX_CANVAS_BACKING_SIDE; exports.MAX_EFFECT_ANIMATION_MS = _chunkS55JFWDAcjs.MAX_EFFECT_ANIMATION_MS; exports.MAX_EFFECT_REACH = _chunkB46UQUDCcjs.MAX_EFFECT_REACH; exports.MAX_KELVIN = _chunkS55JFWDAcjs.MAX_KELVIN; exports.MAX_TILT_ACCEL = _chunkXFYLA3ZOcjs.MAX_TILT_ACCEL; exports.MAX_TRANSFORM_PIXELS = _chunkB46UQUDCcjs.MAX_TRANSFORM_PIXELS; exports.MAX_WET_LANES = _chunkXFYLA3ZOcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkXFYLA3ZOcjs.MAX_WET_SLOTS; exports.MIN_KELVIN = _chunkS55JFWDAcjs.MIN_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = _chunkS55JFWDAcjs.MIRED_PER_TEMPERATURE_UNIT; exports.MIXER_DRAIN = _chunkPQ3H2AANcjs.MIXER_DRAIN; exports.MIXER_MIXING_OPTIONS = MIXER_MIXING_OPTIONS; exports.MIXER_OPTION_CONTROLS = MIXER_OPTION_CONTROLS; exports.MIXER_PICKUP_RATE = _chunkPQ3H2AANcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkPQ3H2AANcjs.MIXING_MODELS; exports.MixerStroke = _chunkPQ3H2AANcjs.MixerStroke; exports.OPP = _chunkXFYLA3ZOcjs.OPP; exports.PAINTERLY_BLEND_MODES = _chunkOLNIPTB3cjs.PAINTERLY_BLEND_MODES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkPQ3H2AANcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkPQ3H2AANcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAINT_TOOLS = PAINT_TOOLS; exports.PAPER_CAPACITY = _chunkXFYLA3ZOcjs.PAPER_CAPACITY; exports.PARAGRAPH_STYLE_FIELDS = _chunkS55JFWDAcjs.PARAGRAPH_STYLE_FIELDS; exports.PARAM = _chunkXFYLA3ZOcjs.PARAM; exports.PARAM_FLOATS = _chunkXFYLA3ZOcjs.PARAM_FLOATS; exports.PASTE_MODES = PASTE_MODES; exports.PATH_EDIT_TOOLS = PATH_EDIT_TOOLS; exports.PATTERN_BLOCK_KEYS = _chunkS55JFWDAcjs.PATTERN_BLOCK_KEYS; exports.PIGMENT_BANDS = _chunkOLNIPTB3cjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkXFYLA3ZOcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkXFYLA3ZOcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunkOLNIPTB3cjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkXFYLA3ZOcjs.PLANE; exports.PLANE_BYTES = _chunkXFYLA3ZOcjs.PLANE_BYTES; exports.PREVIEW_SIZE = PREVIEW_SIZE; exports.PROOF_PROFILE_OPTIONS = PROOF_PROFILE_OPTIONS; exports.PSD_BLEND_KEYS = _chunkS55JFWDAcjs.PSD_BLEND_KEYS; exports.PSD_FILE_ACCEPT = PSD_FILE_ACCEPT; exports.P_D0 = _chunkXFYLA3ZOcjs.P_D0; exports.P_EDGE = _chunkXFYLA3ZOcjs.P_EDGE; exports.P_FX = _chunkXFYLA3ZOcjs.P_FX; exports.P_FY = _chunkXFYLA3ZOcjs.P_FY; exports.P_H = _chunkXFYLA3ZOcjs.P_H; exports.P_P0 = _chunkXFYLA3ZOcjs.P_P0; exports.P_RHO = _chunkXFYLA3ZOcjs.P_RHO; exports.P_SW = _chunkXFYLA3ZOcjs.P_SW; exports.P_UX = _chunkXFYLA3ZOcjs.P_UX; exports.P_UY = _chunkXFYLA3ZOcjs.P_UY; exports.PaintExchange = _chunkPQ3H2AANcjs.PaintExchange; exports.PaintGesture = PaintGesture; exports.PaintGradientSampler = _chunkPQ3H2AANcjs.PaintGradientSampler; exports.PaintSourceError = _chunkPQ3H2AANcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaperGrain = _chunkPQ3H2AANcjs.PaperGrain; exports.PathEditGesture = PathEditGesture; exports.PatternPlacement = _chunkB46UQUDCcjs.PatternPlacement; exports.PatternTile = _chunkB46UQUDCcjs.PatternTile; exports.PsdError = _chunkS55JFWDAcjs.PsdError; exports.QUICK_MASK_TARGET = QUICK_MASK_TARGET; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.REFINE_EDIT_KINDS = _chunkUC3PWFM3cjs.REFINE_EDIT_KINDS; exports.REFINE_OUTPUTS = REFINE_OUTPUTS; exports.RETOUCH_CHOICES = RETOUCH_CHOICES; exports.RETOUCH_OPTION_CONTROLS = RETOUCH_OPTION_CONTROLS; exports.RETOUCH_SAMPLES = _chunkYF3YZZ6Gcjs.RETOUCH_SAMPLES; exports.RETOUCH_TOGGLES = RETOUCH_TOGGLES; exports.RETOUCH_TOOLS = RETOUCH_TOOLS; exports.RegionPixelSource = _chunkYF3YZZ6Gcjs.RegionPixelSource; exports.RetouchDabStroke = _chunkYF3YZZ6Gcjs.RetouchDabStroke; exports.SELECTION_MODES = _chunkSS53NNZOcjs.SELECTION_MODES; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.SELECTION_MODIFY_OPS = _chunkSS53NNZOcjs.SELECTION_MODIFY_OPS; exports.SELECTION_TOOLS = SELECTION_TOOLS; exports.SELECT_AND_MASK_TOOLS = SELECT_AND_MASK_TOOLS; exports.SELECT_AND_MASK_VIEWS = SELECT_AND_MASK_VIEWS; exports.SET_PLANES = _chunkXFYLA3ZOcjs.SET_PLANES; exports.SHADOW_AMBIENT = _chunkOLNIPTB3cjs.SHADOW_AMBIENT; exports.SHAPE_KIND_LABELS = SHAPE_KIND_LABELS; exports.SHAPE_OPERATIONS = _chunkS55JFWDAcjs.SHAPE_OPERATIONS; exports.SHAPE_RENDER_MARGIN = _chunkS55JFWDAcjs.SHAPE_RENDER_MARGIN; exports.SLOT_BYTES = _chunkXFYLA3ZOcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkXFYLA3ZOcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkXFYLA3ZOcjs.SLOT_SIDE; exports.SMART_RENDER_MARGIN = _chunkS55JFWDAcjs.SMART_RENDER_MARGIN; exports.SPOT_HEAL_TYPES = _chunkYF3YZZ6Gcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkXFYLA3ZOcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkXFYLA3ZOcjs.STRIP; exports.SUPPORTED_ADJUSTMENT_KEYS = _chunkS55JFWDAcjs.SUPPORTED_ADJUSTMENT_KEYS; exports.SelectAndMaskSession = SelectAndMaskSession; exports.SelectionGesture = SelectionGesture; exports.SelectionWorkerClient = _chunkUC3PWFM3cjs.SelectionWorkerClient; exports.ShapeDrawGesture = ShapeDrawGesture; exports.SmudgeTip = _chunkPQ3H2AANcjs.SmudgeTip; exports.StrokeCoverage = _chunkPQ3H2AANcjs.StrokeCoverage; exports.SurfaceDraft = _chunk474IQG74cjs.SurfaceDraft; exports.TEXT_ALIGNS = _chunkS55JFWDAcjs.TEXT_ALIGNS; exports.TEXT_ORIENTATIONS = _chunkS55JFWDAcjs.TEXT_ORIENTATIONS; exports.TEXT_RENDER_MARGIN = _chunkS55JFWDAcjs.TEXT_RENDER_MARGIN; exports.TEXT_STYLE_FIELDS = _chunkS55JFWDAcjs.TEXT_STYLE_FIELDS; exports.TILE = _chunk474IQG74cjs.TILE; exports.TILE_SHIFT = _chunk474IQG74cjs.TILE_SHIFT; exports.TINT_SCALE = _chunkS55JFWDAcjs.TINT_SCALE; exports.TIP_GRADIENT_STEPS = _chunkPQ3H2AANcjs.TIP_GRADIENT_STEPS; exports.TONE_LUT_SIZE = _chunkS55JFWDAcjs.TONE_LUT_SIZE; exports.TONE_RANGES = _chunkYF3YZZ6Gcjs.TONE_RANGES; exports.TONE_RANGE_PRESETS = TONE_RANGE_PRESETS; exports.TRANSFORM_ANCHORS = _chunkS55JFWDAcjs.TRANSFORM_ANCHORS; exports.TRANSFORM_ROTATE_HANDLE_OFFSET = TRANSFORM_ROTATE_HANDLE_OFFSET; exports.TextEditSession = TextEditSession; exports.TileMedium = _chunkPQ3H2AANcjs.TileMedium; exports.TilePixelSource = _chunkYF3YZZ6Gcjs.TilePixelSource; exports.TileableNoise = _chunkPQ3H2AANcjs.TileableNoise; exports.TiledSurface = _chunk474IQG74cjs.TiledSurface; exports.TransformTooLargeError = _chunkB46UQUDCcjs.TransformTooLargeError; exports.TransformedPixelSource = _chunkYF3YZZ6Gcjs.TransformedPixelSource; exports.TypeToolGesture = TypeToolGesture; exports.UNITS = _chunkUC3PWFM3cjs.UNITS; exports.U_MAX = _chunkXFYLA3ZOcjs.U_MAX; exports.VIBRANCE_GREY = _chunkS55JFWDAcjs.VIBRANCE_GREY; exports.W9 = _chunkXFYLA3ZOcjs.W9; exports.WARP_GRID_OPTIONS = WARP_GRID_OPTIONS; exports.WARP_STYLES = _chunkQAUIZPYIcjs.WARP_STYLES; exports.WARP_STYLE_LABELS = _chunkQAUIZPYIcjs.WARP_STYLE_LABELS; exports.WARP_STYLE_OPTIONS = WARP_STYLE_OPTIONS; exports.WET_FLOW_KINDS = _chunkXFYLA3ZOcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkXFYLA3ZOcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkXFYLA3ZOcjs.WET_TILE; exports.WGSL_HALO = _chunkXFYLA3ZOcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkXFYLA3ZOcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkXFYLA3ZOcjs.WGSL_STEP; exports.WORKING_SPACE_OPTIONS = WORKING_SPACE_OPTIONS; exports.WORK_PATH_NAME = WORK_PATH_NAME; exports.WORK_SIZE = _chunkUC3PWFM3cjs.WORK_SIZE; exports.WetGpuEngine = _chunkXFYLA3ZOcjs.WetGpuEngine; exports.WetMedium = _chunkXFYLA3ZOcjs.WetMedium; exports.WetWorkerPool = _chunkXFYLA3ZOcjs.WetWorkerPool; exports.WetWorld = _chunkXFYLA3ZOcjs.WetWorld; exports.WetWorldError = _chunkXFYLA3ZOcjs.WetWorldError; exports.XYZ_D50_TO_SRGB = _chunkS55JFWDAcjs.XYZ_D50_TO_SRGB; exports.ZlibError = _chunkXFM3OCHUcjs.ZlibError; exports.activeAdjustmentLayers = _chunkS55JFWDAcjs.activeAdjustmentLayers; exports.activeEffectSmartFilters = _chunkS55JFWDAcjs.activeEffectSmartFilters; exports.activeLayerAfterRemoval = _chunkS55JFWDAcjs.activeLayerAfterRemoval; exports.activeSmartFilters = _chunkS55JFWDAcjs.activeSmartFilters; exports.addLayerEffect = _chunkS55JFWDAcjs.addLayerEffect; exports.addLayerFilter = _chunkS55JFWDAcjs.addLayerFilter; exports.addLayerOfKind = addLayerOfKind; exports.addPaintGradientStop = _chunkPQ3H2AANcjs.addPaintGradientStop; exports.addSmartFilter = _chunkS55JFWDAcjs.addSmartFilter; exports.addToHistogram = addToHistogram; exports.adjustmentKindLabel = _chunkS55JFWDAcjs.adjustmentKindLabel; exports.adjustmentLayersKey = _chunkS55JFWDAcjs.adjustmentLayersKey; exports.adjustmentNodeAsLayer = _chunkS55JFWDAcjs.adjustmentNodeAsLayer; exports.adjustmentNodeFromLegacy = _chunkS55JFWDAcjs.adjustmentNodeFromLegacy; exports.adler32 = _chunkXFM3OCHUcjs.adler32; exports.agentDragDraft = agentDragDraft; exports.anchorPoint = _chunkS55JFWDAcjs.anchorPoint; exports.annotationBlend = _chunkS55JFWDAcjs.annotationBlend; exports.annotationLayerFor = _chunkS55JFWDAcjs.annotationLayerFor; exports.annotationLayerName = _chunkS55JFWDAcjs.annotationLayerName; exports.annotationOfLayer = _chunkS55JFWDAcjs.annotationOfLayer; exports.annotationOfShape = _chunkS55JFWDAcjs.annotationOfShape; exports.annotationOfType = _chunkS55JFWDAcjs.annotationOfType; exports.applyAdjustmentLayers = _chunkS55JFWDAcjs.applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = _chunkS55JFWDAcjs.applyAdjustmentLayersFloat; exports.applyAdjustments = _chunkS55JFWDAcjs.applyAdjustments; exports.applyBoxBlur = _chunkS55JFWDAcjs.applyBoxBlur; exports.applyBoxBlurFloat = _chunkS55JFWDAcjs.applyBoxBlurFloat; exports.applyDepthMask = _chunkS55JFWDAcjs.applyDepthMask; exports.applyEdgeUnmix = _chunkS55JFWDAcjs.applyEdgeUnmix; exports.applyHomography = _chunkQT26RHKKcjs.applyHomography; exports.applyImageProjectionToContext = _chunkS55JFWDAcjs.applyImageProjectionToContext; exports.applyLegacyAdjustments = _chunkS55JFWDAcjs.applyLegacyAdjustments; exports.applyLegacyFloat = _chunkS55JFWDAcjs.applyLegacyFloat; exports.applyMatrix3 = _chunkS55JFWDAcjs.applyMatrix3; exports.applyOutputStage = applyOutputStage; exports.applyParams = _chunkS55JFWDAcjs.applyParams; exports.applyProcess2Adjustments = _chunkS55JFWDAcjs.applyProcess2Adjustments; exports.applyProcess2Float = _chunkS55JFWDAcjs.applyProcess2Float; exports.applyRefineEdits = _chunkUC3PWFM3cjs.applyRefineEdits; exports.applyRegionBlur = applyRegionBlur; exports.applyRegionMosaic = applyRegionMosaic; exports.applyRetouchToTile = _chunkYF3YZZ6Gcjs.applyRetouchToTile; exports.applyShapeOptions = applyShapeOptions; exports.applySmartFilters = _chunkS55JFWDAcjs.applySmartFilters; exports.applyStrokeToDeepTile = _chunkPQ3H2AANcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkPQ3H2AANcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkYF3YZZ6Gcjs.applyToneToDeepTile; exports.backgroundLayer = _chunkS55JFWDAcjs.backgroundLayer; exports.base64ToBytes = _chunkOLNIPTB3cjs.base64ToBytes; exports.baseProjection = baseProjection; exports.bestOffset = _chunkMQDIP4CFcjs.bestOffset; exports.blackWhiteGray = _chunkS55JFWDAcjs.blackWhiteGray; exports.blendChannel = _chunkOLNIPTB3cjs.blendChannel; exports.blendImageData = _chunkOLNIPTB3cjs.blendImageData; exports.blendLum = _chunkOLNIPTB3cjs.blendLum; exports.blendPixel = _chunkOLNIPTB3cjs.blendPixel; exports.blendRadius = _chunkPQ3H2AANcjs.blendRadius; exports.blendRgb = _chunkOLNIPTB3cjs.blendRgb; exports.blendTile = _chunkB46UQUDCcjs.blendTile; exports.blenderDab = _chunkPQ3H2AANcjs.blenderDab; exports.blurFilter = _chunkS55JFWDAcjs.blurFilter; exports.borderCoverage = _chunkSS53NNZOcjs.borderCoverage; exports.boxBlur = _chunkUC3PWFM3cjs.boxBlur; exports.boxBlurPixels = _chunkYF3YZZ6Gcjs.boxBlurPixels; exports.boxFrameHit = boxFrameHit; exports.boxFrameOverlay = boxFrameOverlay; exports.boxMean = _chunkSS53NNZOcjs.boxMean; exports.boxPointOf = _chunkS55JFWDAcjs.boxPointOf; exports.boxQuad = _chunkQT26RHKKcjs.boxQuad; exports.boxToCurvePoint = boxToCurvePoint; exports.bradfordAdaptation = _chunkS55JFWDAcjs.bradfordAdaptation; exports.brushStrokeMask = _chunkUC3PWFM3cjs.brushStrokeMask; exports.brushstrokeDataUrl = _chunkPQ3H2AANcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkPQ3H2AANcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkPQ3H2AANcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkPQ3H2AANcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkPQ3H2AANcjs.brushstrokeToCanvas; exports.buildLayerMaskPlanes = _chunkS55JFWDAcjs.buildLayerMaskPlanes; exports.buildToneLut = _chunkS55JFWDAcjs.buildToneLut; exports.builtinPattern = _chunkB46UQUDCcjs.builtinPattern; exports.builtinPatternIds = _chunkB46UQUDCcjs.builtinPatternIds; exports.bytesToBase64 = _chunkOLNIPTB3cjs.bytesToBase64; exports.calculateCropDrag = _chunkS55JFWDAcjs.calculateCropDrag; exports.canShareMemory = _chunkXFYLA3ZOcjs.canShareMemory; exports.canvasCompositeOperation = _chunkOLNIPTB3cjs.canvasCompositeOperation; exports.canvasToImagePoint = _chunkS55JFWDAcjs.canvasToImagePoint; exports.caretAt = _chunkQAUIZPYIcjs.caretAt; exports.changedTiles = _chunkB46UQUDCcjs.changedTiles; exports.channelThumbnail = channelThumbnail; exports.checkEffectAnimation = checkEffectAnimation; exports.checkEffectTime = checkEffectTime; exports.checkImageEffectPlace = checkImageEffectPlace; exports.clampControlValue = clampControlValue; exports.clampCropToImage = _chunkS55JFWDAcjs.clampCropToImage; exports.cleanMixer = _chunkPQ3H2AANcjs.cleanMixer; exports.cloneSamplePoint = _chunkYF3YZZ6Gcjs.cloneSamplePoint; exports.cloneSourceLabel = cloneSourceLabel; exports.cloneTransformView = cloneTransformView; exports.collectTiles = _chunk474IQG74cjs.collectTiles; exports.colorBalanceChannel = _chunkS55JFWDAcjs.colorBalanceChannel; exports.colorModePlanes = colorModePlanes; exports.colorModePlanes16 = colorModePlanes16; exports.colorPanelView = colorPanelView; exports.colorRange = colorRange; exports.colorRangePreset = colorRangePreset; exports.combineSelections = _chunkSS53NNZOcjs.combineSelections; exports.compareSelectionMasks = compareSelectionMasks; exports.compileAdjustmentLayer = _chunkS55JFWDAcjs.compileAdjustmentLayer; exports.componentPath = _chunkS55JFWDAcjs.componentPath; exports.componentsCoverage = _chunkS55JFWDAcjs.componentsCoverage; exports.compositeDeep = _chunkS55JFWDAcjs.compositeDeep; exports.compositeSurfaceOver = _chunkB46UQUDCcjs.compositeSurfaceOver; exports.computeHistogram = computeHistogram; exports.computeSelectionBounds = _chunkSS53NNZOcjs.computeSelectionBounds; exports.contentAwareFill = _chunkMQDIP4CFcjs.contentAwareFill; exports.contentBounds = _chunk474IQG74cjs.contentBounds; exports.contentsBox = _chunkS55JFWDAcjs.contentsBox; exports.contentsSurface = _chunkS55JFWDAcjs.contentsSurface; exports.contractCoverage = _chunkSS53NNZOcjs.contractCoverage; exports.controlPosition = controlPosition; exports.controlTrackBackground = controlTrackBackground; exports.convertColorFields = convertColorFields; exports.convertHex = convertHex; exports.convertSurfaceColors = convertSurfaceColors; exports.convertSurfaceDepth = _chunkOLNIPTB3cjs.convertSurfaceDepth; exports.convertToSmartObject = _chunkS55JFWDAcjs.convertToSmartObject; exports.copySmartObject = _chunkS55JFWDAcjs.copySmartObject; exports.cornersFromMatrix = _chunkS55JFWDAcjs.cornersFromMatrix; exports.coverageTileCoord = _chunkPQ3H2AANcjs.coverageTileCoord; exports.coverageToByte = _chunkSS53NNZOcjs.coverageToByte; exports.coveringRect = coveringRect; exports.createAdjustmentLayer = _chunkS55JFWDAcjs.createAdjustmentLayer; exports.createBlenderScratch = _chunkPQ3H2AANcjs.createBlenderScratch; exports.createCanvasTextShaper = _chunkQAUIZPYIcjs.createCanvasTextShaper; exports.createGradientSampler = createGradientSampler; exports.createImageCaptureSurface = createImageCaptureSurface; exports.createImageColorTools = createImageColorTools; exports.createImageEditTools = createImageEditTools; exports.createImageEditorDocument = createImageEditorDocument; exports.createImageEditorToolProvider = createImageEditorToolProvider; exports.createImageEffectTools = createImageEffectTools; exports.createImageEffectsToolProvider = createImageEffectsToolProvider; exports.createImageLayerTools = createImageLayerTools; exports.createImagePaintTools = createImagePaintTools; exports.createImagePlaybackLocator = createImagePlaybackLocator; exports.createImagePsdTools = createImagePsdTools; exports.createImageRetouchTools = createImageRetouchTools; exports.createImageSegmentationToolProvider = createImageSegmentationToolProvider; exports.createImageSelectionTools = createImageSelectionTools; exports.createImageShapeTools = createImageShapeTools; exports.createImageSmartObjectTools = createImageSmartObjectTools; exports.createImageSubjectSelectionTool = createImageSubjectSelectionTool; exports.createImageTransformTools = createImageTransformTools; exports.createImageTypeTools = createImageTypeTools; exports.createMetricTextShaper = _chunkQAUIZPYIcjs.createMetricTextShaper; exports.createOutlineTextShaper = _chunkQAUIZPYIcjs.createOutlineTextShaper; exports.createPigment = _chunkOLNIPTB3cjs.createPigment; exports.createPigmentTools = _chunkXFYLA3ZOcjs.createPigmentTools; exports.createSelectionMask = _chunkSS53NNZOcjs.createSelectionMask; exports.createShapeLayer = _chunkS55JFWDAcjs.createShapeLayer; exports.createTypeLayer = _chunkS55JFWDAcjs.createTypeLayer; exports.createWetGpuEngine = _chunkXFYLA3ZOcjs.createWetGpuEngine; exports.cssFont = _chunkQAUIZPYIcjs.cssFont; exports.cssFontFamily = _chunkQAUIZPYIcjs.cssFontFamily; exports.curveLut = _chunkB46UQUDCcjs.curveLut; exports.curveLutFromLevels = _chunkS55JFWDAcjs.curveLutFromLevels; exports.curvePointToBox = curvePointToBox; exports.curveSvgPath = curveSvgPath; exports.dabCoverage = _chunkPQ3H2AANcjs.dabCoverage; exports.dabRect = _chunkPQ3H2AANcjs.dabRect; exports.decodeDeepSurface = _chunkS55JFWDAcjs.decodeDeepSurface; exports.decodeLayerChannel = _chunkS55JFWDAcjs.decodeLayerChannel; exports.decodeLayerMask = _chunkS55JFWDAcjs.decodeLayerMask; exports.decodeMergedImage = _chunkS55JFWDAcjs.decodeMergedImage; exports.decodePlanes = _chunkS55JFWDAcjs.decodePlanes; exports.decodePng = _chunkOLNIPTB3cjs.decodePng; exports.decodePngDataUrl = _chunkS55JFWDAcjs.decodePngDataUrl; exports.decodeSelectionRle = _chunkSS53NNZOcjs.decodeSelectionRle; exports.decontaminateColors = _chunkSS53NNZOcjs.decontaminateColors; exports.deepBytes = _chunkOLNIPTB3cjs.deepBytes; exports.deepTile = _chunkOLNIPTB3cjs.deepTile; exports.defaultActiveLayerId = _chunkS55JFWDAcjs.defaultActiveLayerId; exports.defaultAdjustmentParams = _chunkS55JFWDAcjs.defaultAdjustmentParams; exports.defaultEffectGradient = _chunkB46UQUDCcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkB46UQUDCcjs.defaultLayerEffect; exports.defaultShapeName = _chunkS55JFWDAcjs.defaultShapeName; exports.deflate = _chunkXFM3OCHUcjs.deflate; exports.deflateRaw = _chunkXFM3OCHUcjs.deflateRaw; exports.depthMaskAlpha = _chunkS55JFWDAcjs.depthMaskAlpha; exports.depthOf = _chunkOLNIPTB3cjs.depthOf; exports.depthRasterMask = _chunkS55JFWDAcjs.depthRasterMask; exports.describeChannel = describeChannel; exports.describeLayer = describeLayer; exports.describeLayerEffects = describeLayerEffects; exports.describeSelection = describeSelection; exports.describeTransform = _chunkS55JFWDAcjs.describeTransform; exports.deserializeChannels = deserializeChannels; exports.deserializeColorMode = deserializeColorMode; exports.deserializeColorProfile = deserializeColorProfile; exports.deserializeEffects = _chunkS55JFWDAcjs.deserializeEffects; exports.deserializeLayer = _chunkS55JFWDAcjs.deserializeLayer; exports.deserializeLayers = _chunkS55JFWDAcjs.deserializeLayers; exports.deserializeMask = _chunkUC3PWFM3cjs.deserializeMask; exports.deserializePatterns = _chunkS55JFWDAcjs.deserializePatterns; exports.deserializeSelection = _chunkSS53NNZOcjs.deserializeSelection; exports.despillEdge = _chunkS55JFWDAcjs.despillEdge; exports.developFilter = _chunkS55JFWDAcjs.developFilter; exports.developFromAdjustments = _chunkS55JFWDAcjs.developFromAdjustments; exports.developTarget = _chunkS55JFWDAcjs.developTarget; exports.dexp = _chunkXFYLA3ZOcjs.dexp; exports.dilateMask = _chunkMQDIP4CFcjs.dilateMask; exports.displayTransform = displayTransform; exports.distanceTransform = _chunkSS53NNZOcjs.distanceTransform; exports.dlog = _chunkXFYLA3ZOcjs.dlog; exports.documentContents = _chunkS55JFWDAcjs.documentContents; exports.documentProfile = documentProfile; exports.dodgeBurn = _chunkYF3YZZ6Gcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkYF3YZZ6Gcjs.dodgeBurnCurve; exports.downloadMaskImage = downloadMaskImage; exports.downloadPsd = downloadPsd; exports.dpow = _chunkXFYLA3ZOcjs.dpow; exports.dragWarpMeshPoint = _chunkQAUIZPYIcjs.dragWarpMeshPoint; exports.dropPlacement = dropPlacement; exports.dropZone = dropZone; exports.dsincos = _chunkXFYLA3ZOcjs.dsincos; exports.duplicateLayer = _chunkS55JFWDAcjs.duplicateLayer; exports.edgeBits = _chunkXFYLA3ZOcjs.edgeBits; exports.edgeWidth = _chunkSS53NNZOcjs.edgeWidth; exports.effectColorHex = _chunkB46UQUDCcjs.effectColorHex; exports.effectControlChange = effectControlChange; exports.effectLayerTiming = effectLayerTiming; exports.effectPixelsToSurface = effectPixelsToSurface; exports.effectReach = _chunkB46UQUDCcjs.effectReach; exports.effectiveLayerMask = _chunkS55JFWDAcjs.effectiveLayerMask; exports.effectiveProof = effectiveProof; exports.effectsFingerprint = _chunkB46UQUDCcjs.effectsFingerprint; exports.effectsMargin = _chunkB46UQUDCcjs.effectsMargin; exports.effectsScale = _chunkB46UQUDCcjs.effectsScale; exports.ellipsePoints = _chunkUC3PWFM3cjs.ellipsePoints; exports.ellipseSelection = _chunkUC3PWFM3cjs.ellipseSelection; exports.emptyHistogram = emptyHistogram; exports.emptySurface = _chunk474IQG74cjs.emptySurface; exports.encodeDeepSurface = _chunkS55JFWDAcjs.encodeDeepSurface; exports.encodePng = _chunkOLNIPTB3cjs.encodePng; exports.encodeRle = _chunkS55JFWDAcjs.encodeRle; exports.encodeSelectionRle = _chunkSS53NNZOcjs.encodeSelectionRle; exports.encodeSurface = _chunkS55JFWDAcjs.encodeSurface; exports.evalWarpMesh = _chunkQAUIZPYIcjs.evalWarpMesh; exports.evaluateAdjustmentLayers = _chunkS55JFWDAcjs.evaluateAdjustmentLayers; exports.exchangeRates = _chunkPQ3H2AANcjs.exchangeRates; exports.expNeg = _chunkXFYLA3ZOcjs.expNeg; exports.expandCoverage = _chunkSS53NNZOcjs.expandCoverage; exports.exportPsd = _chunkS55JFWDAcjs.exportPsd; exports.extractNormalizedLayerItems = extractNormalizedLayerItems; exports.featherCoverage = _chunkSS53NNZOcjs.featherCoverage; exports.fillRect = _chunk474IQG74cjs.fillRect; exports.filmPixel = _chunkXFYLA3ZOcjs.filmPixel; exports.filmReflectance = _chunkXFYLA3ZOcjs.filmReflectance; exports.filterMaskCoverage = _chunkS55JFWDAcjs.filterMaskCoverage; exports.findAdjustmentControl = findAdjustmentControl; exports.findLayer = _chunkB46UQUDCcjs.findLayer; exports.findLayerControl = findLayerControl; exports.findSky = _chunkUC3PWFM3cjs.findSky; exports.findSubject = _chunkUC3PWFM3cjs.findSubject; exports.findWebGpu = _chunkXFYLA3ZOcjs.findWebGpu; exports.finishTile = _chunk474IQG74cjs.finishTile; exports.fitParagraphRuns = _chunkQAUIZPYIcjs.fitParagraphRuns; exports.fitRuns = _chunkQAUIZPYIcjs.fitRuns; exports.flattenLayers = _chunkB46UQUDCcjs.flattenLayers; exports.flattenPath = _chunkS55JFWDAcjs.flattenPath; exports.flipCorners = _chunkS55JFWDAcjs.flipCorners; exports.flowField = _chunkXFYLA3ZOcjs.flowField; exports.focusArea = _chunkUC3PWFM3cjs.focusArea; exports.followLayerMove = _chunkS55JFWDAcjs.followLayerMove; exports.fontOf = _chunkQAUIZPYIcjs.fontOf; exports.forgetSelectAndMaskSettings = forgetSelectAndMaskSettings; exports.formatControlValue = formatControlValue; exports.fullSelection = _chunkSS53NNZOcjs.fullSelection; exports.gaussianBlur = _chunkK6PXS6DOcjs.gaussianBlur; exports.geometryHomography = _chunkS55JFWDAcjs.geometryHomography; exports.getAnnotationBounds = _chunkS55JFWDAcjs.getAnnotationBounds; exports.getControlPath = getControlPath; exports.getCropCursor = _chunkS55JFWDAcjs.getCropCursor; exports.getRotatedSize = _chunkS55JFWDAcjs.getRotatedSize; exports.getViewportMetrics = _chunkS55JFWDAcjs.getViewportMetrics; exports.getViewportProjection = _chunkS55JFWDAcjs.getViewportProjection; exports.globalImageCache = globalImageCache; exports.grabCutLabels = _chunkUC3PWFM3cjs.grabCutLabels; exports.gradientDabColor = _chunkPQ3H2AANcjs.gradientDabColor; exports.grainCatch = _chunkPQ3H2AANcjs.grainCatch; exports.grainHeights = _chunkPQ3H2AANcjs.grainHeights; exports.greyMorphology = _chunkSS53NNZOcjs.greyMorphology; exports.groupLayers = _chunkS55JFWDAcjs.groupLayers; exports.growSelection = growSelection; exports.guidePlanes = _chunkSS53NNZOcjs.guidePlanes; exports.guidedFilterColor = _chunkSS53NNZOcjs.guidedFilterColor; exports.handleMaskViewKey = handleMaskViewKey; exports.handlePaintShortcut = handlePaintShortcut; exports.handleQuickMaskKey = handleQuickMaskKey; exports.handleSelectionShortcut = handleSelectionShortcut; exports.hasActiveEffects = _chunkB46UQUDCcjs.hasActiveEffects; exports.hasEdgeUnmix = _chunkS55JFWDAcjs.hasEdgeUnmix; exports.hasLayersBelow = hasLayersBelow; exports.hasResampledLegacyMask = _chunkS55JFWDAcjs.hasResampledLegacyMask; exports.hasSoftBand = _chunkS55JFWDAcjs.hasSoftBand; exports.hasSurface = _chunkS55JFWDAcjs.hasSurface; exports.hasWarp = _chunkS55JFWDAcjs.hasWarp; exports.hash2 = _chunkPQ3H2AANcjs.hash2; exports.hashMaskContent = _chunkSS53NNZOcjs.hashMaskContent; exports.hashNoise = _chunkB46UQUDCcjs.hashNoise; exports.healPixels = _chunkYF3YZZ6Gcjs.healPixels; exports.hexToPaintRgb = _chunkPQ3H2AANcjs.hexToPaintRgb; exports.hexToRgb = _chunkS55JFWDAcjs.hexToRgb; exports.histogramPath = histogramPath; exports.hitTestAnnotation = _chunkS55JFWDAcjs.hitTestAnnotation; exports.hitTestCrop = _chunkS55JFWDAcjs.hitTestCrop; exports.hitTestCurvePoint = hitTestCurvePoint; exports.homographyFromAffine = _chunkQT26RHKKcjs.homographyFromAffine; exports.homographyFromPoints = _chunkQT26RHKKcjs.homographyFromPoints; exports.hslToRgb = _chunkS55JFWDAcjs.hslToRgb; exports.hueRange = hueRange; exports.hueRangeTables = _chunkS55JFWDAcjs.hueRangeTables; exports.hueRangeWeight = _chunkS55JFWDAcjs.hueRangeWeight; exports.hueSaturation = _chunkS55JFWDAcjs.hueSaturation; exports.identityCurve = _chunkS55JFWDAcjs.identityCurve; exports.identityLevels = _chunkS55JFWDAcjs.identityLevels; exports.identityTransform = _chunkS55JFWDAcjs.identityTransform; exports.identityWarpMesh = _chunkQAUIZPYIcjs.identityWarpMesh; exports.imageEditorStateMigrations = imageEditorStateMigrations; exports.imageLayerAppliedEffects = imageLayerAppliedEffects; exports.imagePanelTool = imagePanelTool; exports.imagePlaybackPanel = imagePlaybackPanel; exports.imageToCanvasPoint = _chunkS55JFWDAcjs.imageToCanvasPoint; exports.imageToolCanvasMode = imageToolCanvasMode; exports.imageToolForShortcut = imageToolForShortcut; exports.imageToolGroup = imageToolGroup; exports.imageToolLabel = imageToolLabel; exports.imageToolPanel = imageToolPanel; exports.importPsd = _chunkS55JFWDAcjs.importPsd; exports.inflate = _chunkXFM3OCHUcjs.inflate; exports.inflateRaw = _chunkXFM3OCHUcjs.inflateRaw; exports.insertCurvePoint = insertCurvePoint; exports.insertLayer = _chunkB46UQUDCcjs.insertLayer; exports.inspectMaskEdge = inspectMaskEdge; exports.instancesOf = _chunkS55JFWDAcjs.instancesOf; exports.invertHomography = _chunkQT26RHKKcjs.invertHomography; exports.invertMatrix3 = _chunkS55JFWDAcjs.invertMatrix3; exports.invertSelection = _chunkSS53NNZOcjs.invertSelection; exports.isActiveFilter = _chunkS55JFWDAcjs.isActiveFilter; exports.isActiveVectorMask = _chunkS55JFWDAcjs.isActiveVectorMask; exports.isAdjustmentKind = _chunkS55JFWDAcjs.isAdjustmentKind; exports.isBitDepth = _chunkOLNIPTB3cjs.isBitDepth; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isBrushstrokeBrush = _chunkPQ3H2AANcjs.isBrushstrokeBrush; exports.isColorRangePreset = isColorRangePreset; exports.isContentsDecoded = _chunkS55JFWDAcjs.isContentsDecoded; exports.isDefaultDepthMask = _chunkS55JFWDAcjs.isDefaultDepthMask; exports.isGradientPaint = _chunkPQ3H2AANcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkYF3YZZ6Gcjs.isIdentityCloneTransform; exports.isIdentityTransform = _chunkS55JFWDAcjs.isIdentityTransform; exports.isInterpolation = _chunkB46UQUDCcjs.isInterpolation; exports.isLayerEffectKind = _chunkB46UQUDCcjs.isLayerEffectKind; exports.isLayerLocked = _chunkB46UQUDCcjs.isLayerLocked; exports.isLegacyShape = _chunkS55JFWDAcjs.isLegacyShape; exports.isPaintTool = isPaintTool; exports.isPaintableLayer = _chunkS55JFWDAcjs.isPaintableLayer; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPathEditTool = isPathEditTool; exports.isPng = _chunkOLNIPTB3cjs.isPng; exports.isQuarterTurn = isQuarterTurn; exports.isQuarterTurnSwapped = _chunkS55JFWDAcjs.isQuarterTurnSwapped; exports.isRenderedLayer = _chunkS55JFWDAcjs.isRenderedLayer; exports.isRetouchPaintTool = isRetouchPaintTool; exports.isRetouchTool = isRetouchTool; exports.isSelectionEmpty = _chunkSS53NNZOcjs.isSelectionEmpty; exports.isSelectionMode = _chunkSS53NNZOcjs.isSelectionMode; exports.isSeparableBlendMode = _chunkOLNIPTB3cjs.isSeparableBlendMode; exports.isSmartSurfaceIncomplete = _chunkS55JFWDAcjs.isSmartSurfaceIncomplete; exports.isSpatialFilter = _chunkS55JFWDAcjs.isSpatialFilter; exports.isSrgb = isSrgb; exports.isTransformAnchor = _chunkS55JFWDAcjs.isTransformAnchor; exports.isValidWarp = _chunkS55JFWDAcjs.isValidWarp; exports.keepDeepSamples = _chunkOLNIPTB3cjs.keepDeepSamples; exports.keepMainPieces = _chunkUC3PWFM3cjs.keepMainPieces; exports.kelvinToTemperature = _chunkS55JFWDAcjs.kelvinToTemperature; exports.keysWeight = _chunkB46UQUDCcjs.keysWeight; exports.latticeViscosity = _chunkXFYLA3ZOcjs.latticeViscosity; exports.layerBadge = layerBadge; exports.layerEffectControls = layerEffectControls; exports.layerEffectFields = _chunkB46UQUDCcjs.layerEffectFields; exports.layerEffectLabel = _chunkB46UQUDCcjs.layerEffectLabel; exports.layerEffectsBadge = layerEffectsBadge; exports.layerEffectsOf = _chunkS55JFWDAcjs.layerEffectsOf; exports.layerEffectsPanel = layerEffectsPanel; exports.layerHasThumbnail = layerHasThumbnail; exports.layerLabel = layerLabel; exports.layerMaskCoverage = _chunkS55JFWDAcjs.layerMaskCoverage; exports.layerMaskFromSelection = _chunkS55JFWDAcjs.layerMaskFromSelection; exports.layerMaskKey = _chunkS55JFWDAcjs.layerMaskKey; exports.layerMaskSelection = _chunkS55JFWDAcjs.layerMaskSelection; exports.layerMenu = layerMenu; exports.layerName = _chunkS55JFWDAcjs.layerName; exports.layerPanelRows = layerPanelRows; exports.layerPanels = layerPanels; exports.layerThumbnailClick = layerThumbnailClick; exports.layerTree = _chunkS55JFWDAcjs.layerTree; exports.layerTypeLabel = _chunkS55JFWDAcjs.layerTypeLabel; exports.layerWarning = layerWarning; exports.layersFromLegacy = _chunkS55JFWDAcjs.layersFromLegacy; exports.layoutText = _chunkQAUIZPYIcjs.layoutText; exports.legacyAdjustmentLayer = _chunkS55JFWDAcjs.legacyAdjustmentLayer; exports.legacyMaskOf = _chunkS55JFWDAcjs.legacyMaskOf; exports.legacyView = _chunkS55JFWDAcjs.legacyView; exports.lerpPigment = _chunkOLNIPTB3cjs.lerpPigment; exports.lerpPigmentInto = _chunkOLNIPTB3cjs.lerpPigmentInto; exports.levelsValue = _chunkS55JFWDAcjs.levelsValue; exports.linearSrgbToXy = _chunkS55JFWDAcjs.linearSrgbToXy; exports.linearToSrgb = _chunkS55JFWDAcjs.linearToSrgb; exports.linearToSrgb8 = _chunkXFYLA3ZOcjs.linearToSrgb8; exports.liveComponent = _chunkS55JFWDAcjs.liveComponent; exports.liveShapeForDrag = liveShapeForDrag; exports.liveShapeSubpaths = _chunkS55JFWDAcjs.liveShapeSubpaths; exports.liveWire = liveWire; exports.loadImageEditorDocument = loadImageEditorDocument; exports.loadMixer = _chunkPQ3H2AANcjs.loadMixer; exports.loadOpenTypeFont = _chunkLCCMOWR7cjs.loadOpenTypeFont; exports.loadWetKernel = _chunkXFYLA3ZOcjs.loadWetKernel; exports.luma = _chunkYF3YZZ6Gcjs.luma; exports.magicWand = magicWand; exports.magneticAnchorSpacing = magneticAnchorSpacing; exports.mapCropHandle = _chunkS55JFWDAcjs.mapCropHandle; exports.mapLayer = _chunkB46UQUDCcjs.mapLayer; exports.mapSubpaths = _chunkS55JFWDAcjs.mapSubpaths; exports.maskBounds = _chunkMQDIP4CFcjs.maskBounds; exports.maskCoverageOverCanvas = _chunkS55JFWDAcjs.maskCoverageOverCanvas; exports.maskFileName = maskFileName; exports.maskNameFromFile = maskNameFromFile; exports.maskSummary = maskSummary; exports.maskThumbnailClick = maskThumbnailClick; exports.matrixFromCorners = _chunkS55JFWDAcjs.matrixFromCorners; exports.matrixFromParams = _chunkS55JFWDAcjs.matrixFromParams; exports.measureCanvasViewport = measureCanvasViewport; exports.membraneFill = _chunkMQDIP4CFcjs.membraneFill; exports.mergeLayerEffect = _chunkB46UQUDCcjs.mergeLayerEffect; exports.mergeShapeComponents = _chunkS55JFWDAcjs.mergeShapeComponents; exports.migrateSerializedImageEditorState = migrateSerializedImageEditorState; exports.migrateToLayeredState = migrateToLayeredState; exports.mix32 = _chunkPQ3H2AANcjs.mix32; exports.mixPigment8 = _chunkOLNIPTB3cjs.mixPigment8; exports.mixPigmentRgb = _chunkOLNIPTB3cjs.mixPigmentRgb; exports.mixPigments = _chunkOLNIPTB3cjs.mixPigments; exports.mixerLoadResult = mixerLoadResult; exports.mixerRates = _chunkPQ3H2AANcjs.mixerRates; exports.modifySelection = _chunkSS53NNZOcjs.modifySelection; exports.moveCurvePoint = moveCurvePoint; exports.moveLayer = _chunkS55JFWDAcjs.moveLayer; exports.moveSmartFilter = _chunkS55JFWDAcjs.moveSmartFilter; exports.moveWetSnapshot = _chunkXFYLA3ZOcjs.moveWetSnapshot; exports.mulMatrix3 = _chunkS55JFWDAcjs.mulMatrix3; exports.needsLegacyBase = needsLegacyBase; exports.neutralHueRange = _chunkS55JFWDAcjs.neutralHueRange; exports.newContentsId = _chunkS55JFWDAcjs.newContentsId; exports.newEffectId = _chunkB46UQUDCcjs.newEffectId; exports.newLayerId = _chunkS55JFWDAcjs.newLayerId; exports.newLayerOptions = newLayerOptions; exports.newPathId = newPathId; exports.normalizeAdjustmentLayer = _chunkS55JFWDAcjs.normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = _chunkS55JFWDAcjs.normalizeAdjustmentLayers; exports.normalizeAngle = _chunkS55JFWDAcjs.normalizeAngle; exports.normalizeBlendMode = _chunkOLNIPTB3cjs.normalizeBlendMode; exports.normalizeBlender = _chunkPQ3H2AANcjs.normalizeBlender; exports.normalizeBrush = _chunkPQ3H2AANcjs.normalizeBrush; exports.normalizeFilter = _chunkS55JFWDAcjs.normalizeFilter; exports.normalizeFlow = _chunkXFYLA3ZOcjs.normalizeFlow; exports.normalizeHexColor = _chunkPQ3H2AANcjs.normalizeHexColor; exports.normalizeLayerEffects = _chunkB46UQUDCcjs.normalizeLayerEffects; exports.normalizeLayerMask = _chunkS55JFWDAcjs.normalizeLayerMask; exports.normalizeLiveShape = _chunkS55JFWDAcjs.normalizeLiveShape; exports.normalizeMixer = _chunkPQ3H2AANcjs.normalizeMixer; exports.normalizePlacement = _chunkS55JFWDAcjs.normalizePlacement; exports.normalizeProcessVersion = _chunkS55JFWDAcjs.normalizeProcessVersion; exports.normalizeRect = _chunkUC3PWFM3cjs.normalizeRect; exports.normalizeRefineEdgeParams = _chunkSS53NNZOcjs.normalizeRefineEdgeParams; exports.normalizeRetouch = _chunkYF3YZZ6Gcjs.normalizeRetouch; exports.normalizeShapePaint = _chunkS55JFWDAcjs.normalizeShapePaint; exports.normalizeShapeStroke = _chunkS55JFWDAcjs.normalizeShapeStroke; exports.normalizeSmartFilter = _chunkS55JFWDAcjs.normalizeSmartFilter; exports.normalizeSmudge = _chunkPQ3H2AANcjs.normalizeSmudge; exports.normalizeStoredAdjustments = normalizeStoredAdjustments; exports.normalizeSubpaths = _chunkS55JFWDAcjs.normalizeSubpaths; exports.normalizeText = _chunkS55JFWDAcjs.normalizeText; exports.normalizeTilt = _chunkXFYLA3ZOcjs.normalizeTilt; exports.normalizeWetParams = _chunkXFYLA3ZOcjs.normalizeWetParams; exports.offsetLayer = _chunkS55JFWDAcjs.offsetLayer; exports.offsetShape = _chunkS55JFWDAcjs.offsetShape; exports.offsetSmartObject = _chunkS55JFWDAcjs.offsetSmartObject; exports.offsetVectorMask = _chunkS55JFWDAcjs.offsetVectorMask; exports.openMaskFile = openMaskFile; exports.openPsdFile = openPsdFile; exports.otsuThreshold = _chunkUC3PWFM3cjs.otsuThreshold; exports.packRgba = _chunk474IQG74cjs.packRgba; exports.packWetParams = _chunkXFYLA3ZOcjs.packWetParams; exports.paintGradientMappingFor = _chunkPQ3H2AANcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPQ3H2AANcjs.paintPathStroke; exports.paintSourceColor = _chunkPQ3H2AANcjs.paintSourceColor; exports.paintSourceCss = _chunkPQ3H2AANcjs.paintSourceCss; exports.paragraphRanges = _chunkQAUIZPYIcjs.paragraphRanges; exports.parseAdjustmentBlock = _chunkS55JFWDAcjs.parseAdjustmentBlock; exports.parseBlend = _chunkS55JFWDAcjs.parseBlend; exports.parseColor = parseColor; exports.parseCssColor = _chunkA2IS7EHEcjs.parseCssColor; exports.parseDataUrl = _chunkOLNIPTB3cjs.parseDataUrl; exports.parseEffectColor = _chunkB46UQUDCcjs.parseEffectColor; exports.parseLfx2 = _chunkS55JFWDAcjs.parseLfx2; exports.parseLrfx = _chunkS55JFWDAcjs.parseLrfx; exports.parseOpenTypeFont = _chunkLCCMOWR7cjs.parseOpenTypeFont; exports.parsePaintSource = _chunkPQ3H2AANcjs.parsePaintSource; exports.parsePatternBlock = _chunkS55JFWDAcjs.parsePatternBlock; exports.parseSelectionMode = _chunkSS53NNZOcjs.parseSelectionMode; exports.parseVersionedDescriptor = _chunkS55JFWDAcjs.parseVersionedDescriptor; exports.patchParagraphStyle = _chunkS55JFWDAcjs.patchParagraphStyle; exports.patchTextStyle = _chunkS55JFWDAcjs.patchTextStyle; exports.pathAnchorCount = pathAnchorCount; exports.pathBounds = pathBounds; exports.pathStrokeCoverage = _chunkPQ3H2AANcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkPQ3H2AANcjs.pathStrokeDabs; exports.pathSvgData = pathSvgData; exports.pathToSelection = pathToSelection; exports.perDabStrength = _chunkYF3YZZ6Gcjs.perDabStrength; exports.photoFilterMatrix = _chunkS55JFWDAcjs.photoFilterMatrix; exports.pigment8 = _chunkOLNIPTB3cjs.pigment8; exports.pigmentColor = _chunkXFYLA3ZOcjs.pigmentColor; exports.pigmentOf = _chunkXFYLA3ZOcjs.pigmentOf; exports.pixelLayerBounds = _chunkS55JFWDAcjs.pixelLayerBounds; exports.pixelLayers = _chunkS55JFWDAcjs.pixelLayers; exports.pixelPigment = _chunkXFYLA3ZOcjs.pixelPigment; exports.placeContents = _chunkS55JFWDAcjs.placeContents; exports.placeLayer = _chunkS55JFWDAcjs.placeLayer; exports.placementAt = _chunkS55JFWDAcjs.placementAt; exports.placementBounds = _chunkS55JFWDAcjs.placementBounds; exports.placementGeometry = _chunkS55JFWDAcjs.placementGeometry; exports.planImageToolPlayback = planImageToolPlayback; exports.planOutlineTrace = planOutlineTrace; exports.pngDataUrl = _chunkOLNIPTB3cjs.pngDataUrl; exports.pointerPressure = _chunkXFYLA3ZOcjs.pointerPressure; exports.pointerStrokeSample = _chunkXFYLA3ZOcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkXFYLA3ZOcjs.pointerStrokeSamples; exports.polygonCoverage = _chunkUC3PWFM3cjs.polygonCoverage; exports.polygonCoverageBox = _chunkUC3PWFM3cjs.polygonCoverageBox; exports.polygonSelection = _chunkUC3PWFM3cjs.polygonSelection; exports.posterizeValue = _chunkS55JFWDAcjs.posterizeValue; exports.presetWarp = _chunkS55JFWDAcjs.presetWarp; exports.previewStep = previewStep; exports.profileBytes = profileBytes; exports.projectImagePoint = _chunkS55JFWDAcjs.projectImagePoint; exports.projectImageRect = _chunkS55JFWDAcjs.projectImageRect; exports.projectMaskCoverage = _chunkS55JFWDAcjs.projectMaskCoverage; exports.projectQuarterTurn = projectQuarterTurn; exports.proxyOf = _chunkOLNIPTB3cjs.proxyOf; exports.psdBytesFromBase64 = psdBytesFromBase64; exports.psdFileName = psdFileName; exports.psdPatternToEffectPattern = _chunkS55JFWDAcjs.psdPatternToEffectPattern; exports.psdToLayers = _chunkS55JFWDAcjs.psdToLayers; exports.pullWarpMesh = _chunkQAUIZPYIcjs.pullWarpMesh; exports.put255 = _chunkPQ3H2AANcjs.put255; exports.quadFrameOverlay = quadFrameOverlay; exports.quickMaskPixels = quickMaskPixels; exports.quickSelectStroke = _chunkUC3PWFM3cjs.quickSelectStroke; exports.rand01 = _chunkPQ3H2AANcjs.rand01; exports.randSigned = _chunkPQ3H2AANcjs.randSigned; exports.rangeLightness = _chunkS55JFWDAcjs.rangeLightness; exports.rasterContents = _chunkS55JFWDAcjs.rasterContents; exports.rasterMaskFromLegacy = _chunkS55JFWDAcjs.rasterMaskFromLegacy; exports.rasterizeCoverage = _chunkS55JFWDAcjs.rasterizeCoverage; exports.rasterizeDab = _chunkPQ3H2AANcjs.rasterizeDab; exports.rasterizeSmartObject = _chunkS55JFWDAcjs.rasterizeSmartObject; exports.readAdjustmentControls = readAdjustmentControls; exports.readDeepRegion = _chunkOLNIPTB3cjs.readDeepRegion; exports.readEdgeColor = _chunkS55JFWDAcjs.readEdgeColor; exports.readPaintSource = _chunkPQ3H2AANcjs.readPaintSource; exports.readPaths = readPaths; exports.readPixel = _chunk474IQG74cjs.readPixel; exports.readPsd = _chunkS55JFWDAcjs.readPsd; exports.readRegion = _chunk474IQG74cjs.readRegion; exports.readShapeComponents = _chunkS55JFWDAcjs.readShapeComponents; exports.readSourceRegion = _chunkYF3YZZ6Gcjs.readSourceRegion; exports.rectSelection = _chunkUC3PWFM3cjs.rectSelection; exports.rectToQuad = _chunkQT26RHKKcjs.rectToQuad; exports.reduceSurface = _chunkB46UQUDCcjs.reduceSurface; exports.referencePoint = _chunkS55JFWDAcjs.referencePoint; exports.refineCoverage = _chunkSS53NNZOcjs.refineCoverage; exports.refineEdgeHalo = _chunkSS53NNZOcjs.refineEdgeHalo; exports.refineSelection = _chunkSS53NNZOcjs.refineSelection; exports.reflectanceToRgb = _chunkOLNIPTB3cjs.reflectanceToRgb; exports.removeAlpha = _chunkS55JFWDAcjs.removeAlpha; exports.removeCurvePoint = removeCurvePoint; exports.removeLayer = _chunkS55JFWDAcjs.removeLayer; exports.removeLayerEffect = _chunkS55JFWDAcjs.removeLayerEffect; exports.removeLayerFilter = _chunkS55JFWDAcjs.removeLayerFilter; exports.removePaintGradientStop = _chunkPQ3H2AANcjs.removePaintGradientStop; exports.removeSmartFilter = _chunkS55JFWDAcjs.removeSmartFilter; exports.renderBrushstroke = _chunkPQ3H2AANcjs.renderBrushstroke; exports.renderLayerEffects = _chunkB46UQUDCcjs.renderLayerEffects; exports.renderLayeredBase = renderLayeredBase; exports.renderShape = _chunkS55JFWDAcjs.renderShape; exports.renderShapeRect = _chunkS55JFWDAcjs.renderShapeRect; exports.renderSmartObject = _chunkS55JFWDAcjs.renderSmartObject; exports.renderText = _chunkS55JFWDAcjs.renderText; exports.replaceContents = _chunkS55JFWDAcjs.replaceContents; exports.replaceTextRange = _chunkS55JFWDAcjs.replaceTextRange; exports.requireLayer = _chunkS55JFWDAcjs.requireLayer; exports.requireOperation = _chunkS55JFWDAcjs.requireOperation; exports.requireShapeLayer = _chunkS55JFWDAcjs.requireShapeLayer; exports.requireSmartObject = _chunkS55JFWDAcjs.requireSmartObject; exports.requireTypeLayer = _chunkS55JFWDAcjs.requireTypeLayer; exports.requireUnlocked = _chunkS55JFWDAcjs.requireUnlocked; exports.rerender = _chunkS55JFWDAcjs.rerender; exports.rerenderShape = _chunkS55JFWDAcjs.rerenderShape; exports.rerenderText = _chunkS55JFWDAcjs.rerenderText; exports.resizePixels = resizePixels; exports.resizeSelection = _chunkSS53NNZOcjs.resizeSelection; exports.resizeWarpMesh = _chunkQAUIZPYIcjs.resizeWarpMesh; exports.resolveExternalAssets = _chunkS55JFWDAcjs.resolveExternalAssets; exports.resolveMosaicRegionBounds = resolveMosaicRegionBounds; exports.resolvePaintGradient = _chunkPQ3H2AANcjs.resolvePaintGradient; exports.resolveProfile = resolveProfile; exports.resolveVectorMasks = _chunkS55JFWDAcjs.resolveVectorMasks; exports.restyleRange = _chunkQAUIZPYIcjs.restyleRange; exports.retouchFilter = _chunkYF3YZZ6Gcjs.retouchFilter; exports.reversePaintGradient = _chunkPQ3H2AANcjs.reversePaintGradient; exports.rgbToGray = _chunkS55JFWDAcjs.rgbToGray; exports.rgbToHsl = _chunkS55JFWDAcjs.rgbToHsl; exports.rgbToReflectance = _chunkOLNIPTB3cjs.rgbToReflectance; exports.rgbUnitToHex = rgbUnitToHex; exports.rgbaViewOfGrey = _chunkYF3YZZ6Gcjs.rgbaViewOfGrey; exports.runLayerFilters = _chunkS55JFWDAcjs.runLayerFilters; exports.runLayerFiltersFloat = _chunkS55JFWDAcjs.runLayerFiltersFloat; exports.runLayerMenuAction = runLayerMenuAction; exports.runSelectionJob = _chunkUC3PWFM3cjs.runSelectionJob; exports.sameCanvasViewport = sameCanvasViewport; exports.sampleLut = _chunkS55JFWDAcjs.sampleLut; exports.sampleToneLut = _chunkS55JFWDAcjs.sampleToneLut; exports.saturationOf = _chunkYF3YZZ6Gcjs.saturationOf; exports.scaleLayerEffect = _chunkB46UQUDCcjs.scaleLayerEffect; exports.scalePaintGradient = _chunkPQ3H2AANcjs.scalePaintGradient; exports.seamlessClone = _chunkMQDIP4CFcjs.seamlessClone; exports.seedFromString = _chunkPQ3H2AANcjs.seedFromString; exports.segmentToSelection = segmentToSelection; exports.segmentationOutlines = segmentationOutlines; exports.segmentsToSelection = segmentsToSelection; exports.selectObjectIn = _chunkUC3PWFM3cjs.selectObjectIn; exports.selectSimilar = selectSimilar; exports.selectionArea = _chunkSS53NNZOcjs.selectionArea; exports.selectionDiffPixels = selectionDiffPixels; exports.selectionFromCoverage = _chunkSS53NNZOcjs.selectionFromCoverage; exports.selectionFromPixels = _chunkSS53NNZOcjs.selectionFromPixels; exports.selectionFromRegion = _chunkSS53NNZOcjs.selectionFromRegion; exports.selectionFromTiles = _chunkSS53NNZOcjs.selectionFromTiles; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.selectionOutline = selectionOutline; exports.selectionOutlinePaths = selectionOutlinePaths; exports.selectionRing = selectionRing; exports.selectionToCoverage = _chunkSS53NNZOcjs.selectionToCoverage; exports.selectionToPixels = _chunkSS53NNZOcjs.selectionToPixels; exports.selectionToSubpaths = selectionToSubpaths; exports.selectionUncertainty = selectionUncertainty; exports.selectionValueAt = _chunkSS53NNZOcjs.selectionValueAt; exports.serializeChannels = serializeChannels; exports.serializeColorMode = serializeColorMode; exports.serializeColorProfile = serializeColorProfile; exports.serializeContents = _chunkS55JFWDAcjs.serializeContents; exports.serializeEffects = _chunkS55JFWDAcjs.serializeEffects; exports.serializeLayer = _chunkS55JFWDAcjs.serializeLayer; exports.serializeLayers = _chunkS55JFWDAcjs.serializeLayers; exports.serializeLayersExternal = _chunkS55JFWDAcjs.serializeLayersExternal; exports.serializeMask = _chunkUC3PWFM3cjs.serializeMask; exports.serializePaths = serializePaths; exports.serializePatterns = _chunkS55JFWDAcjs.serializePatterns; exports.serializeSelection = _chunkSS53NNZOcjs.serializeSelection; exports.setCloneTransformValue = setCloneTransformValue; exports.setControlPath = setControlPath; exports.setLayerEffects = _chunkS55JFWDAcjs.setLayerEffects; exports.setLayerEffectsEnabled = _chunkS55JFWDAcjs.setLayerEffectsEnabled; exports.setLayerMask = _chunkS55JFWDAcjs.setLayerMask; exports.setLayerProperties = _chunkS55JFWDAcjs.setLayerProperties; exports.setLum = _chunkOLNIPTB3cjs.setLum; exports.setPigmentColor = _chunkOLNIPTB3cjs.setPigmentColor; exports.setRetouchChoice = setRetouchChoice; exports.setSmartFilterMask = _chunkS55JFWDAcjs.setSmartFilterMask; exports.setSmartFiltersEnabled = _chunkS55JFWDAcjs.setSmartFiltersEnabled; exports.setSmartPlacement = _chunkS55JFWDAcjs.setSmartPlacement; exports.shadeTile = _chunkXFYLA3ZOcjs.shadeTile; exports.shapeAsPixelLayer = _chunkS55JFWDAcjs.shapeAsPixelLayer; exports.shapeFromAnnotation = _chunkS55JFWDAcjs.shapeFromAnnotation; exports.shapeGeometryBounds = _chunkS55JFWDAcjs.shapeGeometryBounds; exports.shapeLayers = _chunkS55JFWDAcjs.shapeLayers; exports.shapeOutline = _chunkS55JFWDAcjs.shapeOutline; exports.shapeRenderClip = _chunkS55JFWDAcjs.shapeRenderClip; exports.shiftCoverage = _chunkSS53NNZOcjs.shiftCoverage; exports.simplifyPixelPath = simplifyPixelPath; exports.skinToneRange = skinToneRange; exports.slicSuperpixels = _chunkUC3PWFM3cjs.slicSuperpixels; exports.smartFilterRows = smartFilterRows; exports.smartObjectLayers = _chunkS55JFWDAcjs.smartObjectLayers; exports.smoothCoverage = _chunkSS53NNZOcjs.smoothCoverage; exports.smoothPoints = _chunkPQ3H2AANcjs.smoothPoints; exports.smoothnessWeights = _chunkUC3PWFM3cjs.smoothnessWeights; exports.smudgeEffect = _chunkYF3YZZ6Gcjs.smudgeEffect; exports.snapPolygonToEdges = snapPolygonToEdges; exports.snapTo45 = snapTo45; exports.snapToEdge = snapToEdge; exports.softMaskToSelection = _chunkUC3PWFM3cjs.softMaskToSelection; exports.solidPaint = _chunkPQ3H2AANcjs.solidPaint; exports.solidSurface = _chunk474IQG74cjs.solidSurface; exports.solveMembrane = _chunkMQDIP4CFcjs.solveMembrane; exports.spliceRuns = _chunkQAUIZPYIcjs.spliceRuns; exports.splitOverlayAnnotations = splitOverlayAnnotations; exports.sponge = _chunkYF3YZZ6Gcjs.sponge; exports.spongeEffect = _chunkYF3YZZ6Gcjs.spongeEffect; exports.spotHealPixels = _chunkYF3YZZ6Gcjs.spotHealPixels; exports.spotHealWindow = _chunkYF3YZZ6Gcjs.spotHealWindow; exports.srgb8ToLab = srgb8ToLab; exports.srgbByteToLinear = _chunkXFYLA3ZOcjs.srgbByteToLinear; exports.srgbDecode = _chunkOLNIPTB3cjs.srgbDecode; exports.srgbEncode = _chunkOLNIPTB3cjs.srgbEncode; exports.srgbToLinear = _chunkS55JFWDAcjs.srgbToLinear; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.startMarchingAnts = startMarchingAnts; exports.startSelectionWorker = _chunkUC3PWFM3cjs.startSelectionWorker; exports.stepSlotTs = _chunkXFYLA3ZOcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPQ3H2AANcjs.strokeGrainCatch; exports.styleAt = _chunkQAUIZPYIcjs.styleAt; exports.subpathsToSvgPath = subpathsToSvgPath; exports.sumHistograms = sumHistograms; exports.superpixelSaliency = _chunkUC3PWFM3cjs.superpixelSaliency; exports.surfaceBytes = _chunk474IQG74cjs.surfaceBytes; exports.surfaceDepth = _chunkOLNIPTB3cjs.surfaceDepth; exports.surfaceFromDeepPixels = _chunkOLNIPTB3cjs.surfaceFromDeepPixels; exports.surfaceFromPixels = _chunk474IQG74cjs.surfaceFromPixels; exports.surfacesEqual = _chunk474IQG74cjs.surfacesEqual; exports.tempTintToXy = _chunkS55JFWDAcjs.tempTintToXy; exports.temperatureToKelvin = _chunkS55JFWDAcjs.temperatureToKelvin; exports.textIndexAt = _chunkQAUIZPYIcjs.textIndexAt; exports.textMatrix = _chunkS55JFWDAcjs.textMatrix; exports.textOrientation = _chunkS55JFWDAcjs.textOrientation; exports.textOutlines = _chunkS55JFWDAcjs.textOutlines; exports.textRange = _chunkS55JFWDAcjs.textRange; exports.tileCoord = _chunk474IQG74cjs.tileCoord; exports.tileKey = _chunk474IQG74cjs.tileKey; exports.tileRect = _chunk474IQG74cjs.tileRect; exports.tileSamples = _chunkOLNIPTB3cjs.tileSamples; exports.tileSamples16 = _chunkOLNIPTB3cjs.tileSamples16; exports.tileSamples32 = _chunkOLNIPTB3cjs.tileSamples32; exports.tilesInRect = _chunk474IQG74cjs.tilesInRect; exports.tipFalloff = _chunkPQ3H2AANcjs.tipFalloff; exports.tipReach = _chunkPQ3H2AANcjs.tipReach; exports.tipShape = _chunkPQ3H2AANcjs.tipShape; exports.to16From32 = _chunkOLNIPTB3cjs.to16From32; exports.to16From8 = _chunkOLNIPTB3cjs.to16From8; exports.to32From16 = _chunkOLNIPTB3cjs.to32From16; exports.to32From8 = _chunkOLNIPTB3cjs.to32From8; exports.to8From16 = _chunkOLNIPTB3cjs.to8From16; exports.to8From32 = _chunkOLNIPTB3cjs.to8From32; exports.toHex = toHex; exports.toTextSpace = _chunkS55JFWDAcjs.toTextSpace; exports.toneCurve = _chunkS55JFWDAcjs.toneCurve; exports.toneLuts = _chunkS55JFWDAcjs.toneLuts; exports.toneOf = _chunkYF3YZZ6Gcjs.toneOf; exports.toneRange = toneRange; exports.transformHomography = _chunkS55JFWDAcjs.transformHomography; exports.transformMap = _chunkS55JFWDAcjs.transformMap; exports.transformShapeComponents = _chunkS55JFWDAcjs.transformShapeComponents; exports.transformSurface = _chunkB46UQUDCcjs.transformSurface; exports.transformTypeLayer = _chunkS55JFWDAcjs.transformTypeLayer; exports.transformVectorMask = _chunkS55JFWDAcjs.transformVectorMask; exports.transformedBounds = _chunkB46UQUDCcjs.transformedBounds; exports.transformedBox = _chunkS55JFWDAcjs.transformedBox; exports.transformedPoint = _chunkS55JFWDAcjs.transformedPoint; exports.translateLayer = _chunkS55JFWDAcjs.translateLayer; exports.translateSurface = _chunk474IQG74cjs.translateSurface; exports.typeAsPixelLayer = _chunkS55JFWDAcjs.typeAsPixelLayer; exports.typeFrame = _chunkS55JFWDAcjs.typeFrame; exports.typeFromAnnotation = _chunkS55JFWDAcjs.typeFromAnnotation; exports.typeLayerAt = typeLayerAt; exports.typeLayerName = _chunkS55JFWDAcjs.typeLayerName; exports.ungroupLayer = _chunkS55JFWDAcjs.ungroupLayer; exports.uniformTile = _chunk474IQG74cjs.uniformTile; exports.unionRect = _chunkS55JFWDAcjs.unionRect; exports.unprojectCanvasPoint = _chunkS55JFWDAcjs.unprojectCanvasPoint; exports.updateLayerEffect = _chunkS55JFWDAcjs.updateLayerEffect; exports.updateLayerFilter = _chunkS55JFWDAcjs.updateLayerFilter; exports.updateLayerMaskProps = _chunkS55JFWDAcjs.updateLayerMaskProps; exports.updatePaintGradientStop = _chunkPQ3H2AANcjs.updatePaintGradientStop; exports.updateShapeLayer = _chunkS55JFWDAcjs.updateShapeLayer; exports.updateSmartFilter = _chunkS55JFWDAcjs.updateSmartFilter; exports.updateTypeLayer = _chunkS55JFWDAcjs.updateTypeLayer; exports.upscaleRegion = _chunkUC3PWFM3cjs.upscaleRegion; exports.userErrorMessage = _chunkS55JFWDAcjs.userErrorMessage; exports.uvToXy = _chunkS55JFWDAcjs.uvToXy; exports.validateEffectGradient = _chunkB46UQUDCcjs.validateEffectGradient; exports.validateLayerEffect = _chunkB46UQUDCcjs.validateLayerEffect; exports.validateLayerEffects = _chunkB46UQUDCcjs.validateLayerEffects; exports.vectorMaskBounds = _chunkS55JFWDAcjs.vectorMaskBounds; exports.vectorMaskCoverage = _chunkS55JFWDAcjs.vectorMaskCoverage; exports.vectorMaskThumbnail = _chunkS55JFWDAcjs.vectorMaskThumbnail; exports.vectorMaskThumbnailClick = vectorMaskThumbnailClick; exports.versionedDescriptorBytes = _chunkS55JFWDAcjs.versionedDescriptorBytes; exports.vibranceLinear = _chunkS55JFWDAcjs.vibranceLinear; exports.vibrancePixel = _chunkS55JFWDAcjs.vibrancePixel; exports.walkDabs = _chunkPQ3H2AANcjs.walkDabs; exports.warpMeshEditPoints = _chunkQAUIZPYIcjs.warpMeshEditPoints; exports.warpMeshGridCurves = _chunkQAUIZPYIcjs.warpMeshGridCurves; exports.warpMeshParamAt = _chunkQAUIZPYIcjs.warpMeshParamAt; exports.warpPresetMesh = _chunkQAUIZPYIcjs.warpPresetMesh; exports.warpSurface = _chunkB46UQUDCcjs.warpSurface; exports.watchCanvasViewport = watchCanvasViewport; exports.wbMatrix = _chunkS55JFWDAcjs.wbMatrix; exports.wetGpuSupport = _chunkXFYLA3ZOcjs.wetGpuSupport; exports.wetSimdSupported = _chunkXFYLA3ZOcjs.wetSimdSupported; exports.wetSupport = _chunkXFYLA3ZOcjs.wetSupport; exports.whiteBalanceFromSample = _chunkS55JFWDAcjs.whiteBalanceFromSample; exports.whiteBalanceMatrix = _chunkS55JFWDAcjs.whiteBalanceMatrix; exports.withBackgroundOpacity = withBackgroundOpacity; exports.withFilterMaskSurface = _chunkS55JFWDAcjs.withFilterMaskSurface; exports.withImagePlayback = withImagePlayback; exports.withNewIds = _chunkS55JFWDAcjs.withNewIds; exports.workImage = _chunkUC3PWFM3cjs.workImage; exports.workLuma = _chunkUC3PWFM3cjs.workLuma; exports.workPlanes = _chunkUC3PWFM3cjs.workPlanes; exports.writeAdjustmentBlock = _chunkS55JFWDAcjs.writeAdjustmentBlock; exports.writeDeepRegion = _chunkOLNIPTB3cjs.writeDeepRegion; exports.writeLfx2 = _chunkS55JFWDAcjs.writeLfx2; exports.writePatternBlock = _chunkS55JFWDAcjs.writePatternBlock; exports.writePsd = _chunkS55JFWDAcjs.writePsd; exports.writeRegion = _chunk474IQG74cjs.writeRegion; exports.xyToTempTint = _chunkS55JFWDAcjs.xyToTempTint; exports.xyToUv = _chunkS55JFWDAcjs.xyToUv;
23317
+ exports.ADJUSTMENT_KEYS = _chunkS55JFWDAcjs.ADJUSTMENT_KEYS; exports.ADJUSTMENT_KINDS = _chunkS55JFWDAcjs.ADJUSTMENT_KINDS; exports.ADJUSTMENT_LAYER_CONTROLS = ADJUSTMENT_LAYER_CONTROLS; exports.ADJUSTMENT_LAYER_OPACITY_CONTROL = ADJUSTMENT_LAYER_OPACITY_CONTROL; exports.ADJUSTMENT_LUT_SIZE = _chunkS55JFWDAcjs.ADJUSTMENT_LUT_SIZE; exports.ANCHOR_FRACTION = _chunkS55JFWDAcjs.ANCHOR_FRACTION; exports.AS_SHOT_KELVIN = _chunkS55JFWDAcjs.AS_SHOT_KELVIN; exports.BACKGROUND_LAYER_ID = _chunkS55JFWDAcjs.BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = _chunkS55JFWDAcjs.BACKGROUND_LAYER_NAME; exports.BIT_DEPTHS = _chunkOLNIPTB3cjs.BIT_DEPTHS; exports.BIT_DEPTH_OPTIONS = BIT_DEPTH_OPTIONS; exports.BLEND_MODES = _chunkOLNIPTB3cjs.BLEND_MODES; exports.BLUR_FILTER_ID = _chunkS55JFWDAcjs.BLUR_FILTER_ID; exports.BODY_SCATTER = _chunkXFYLA3ZOcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BRUSH_OPTION_CONTROLS = BRUSH_OPTION_CONTROLS; exports.BUILTIN_PROFILES = _chunkBROJYMWUcjs.BUILTIN_PROFILES; exports.BrushstrokeCache = _chunkPQ3H2AANcjs.BrushstrokeCache; exports.CANVAS_SIZE_PRESETS = CANVAS_SIZE_PRESETS; exports.CLONE_TRANSFORM_CONTROLS = CLONE_TRANSFORM_CONTROLS; exports.COLOR_MODE_OPTIONS = COLOR_MODE_OPTIONS; exports.COLOR_RANGE_PRESETS = COLOR_RANGE_PRESETS; exports.COLOR_RANGE_PRESET_LABELS = COLOR_RANGE_PRESET_LABELS; exports.CONTENT_AWARE_FILL_SAMPLING = CONTENT_AWARE_FILL_SAMPLING; exports.CONTENT_AWARE_FILL_TOOLS = CONTENT_AWARE_FILL_TOOLS; exports.ColorGmm = _chunkKALCIDWHcjs.ColorGmm; exports.ContentAwareFillSession = ContentAwareFillSession; exports.CoverageMap = _chunkPQ3H2AANcjs.CoverageMap; exports.D50 = _chunkS55JFWDAcjs.D50; exports.D65 = _chunkS55JFWDAcjs.D65; exports.DEFAULT_ADJUSTMENTS = DEFAULT_ADJUSTMENTS; exports.DEFAULT_AUTO_LEADING = _chunkQAUIZPYIcjs.DEFAULT_AUTO_LEADING; exports.DEFAULT_BLENDER = _chunkPQ3H2AANcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkPQ3H2AANcjs.DEFAULT_BRUSH; exports.DEFAULT_CANVAS_VIEWPORT = DEFAULT_CANVAS_VIEWPORT; exports.DEFAULT_CHANNEL_COLOR = DEFAULT_CHANNEL_COLOR; exports.DEFAULT_CONTENT_AWARE_FILL_SETTINGS = DEFAULT_CONTENT_AWARE_FILL_SETTINGS; exports.DEFAULT_DEPTH_MASK = DEFAULT_DEPTH_MASK; exports.DEFAULT_FLOW = _chunkXFYLA3ZOcjs.DEFAULT_FLOW; exports.DEFAULT_GLOBAL_LIGHT = _chunkB46UQUDCcjs.DEFAULT_GLOBAL_LIGHT; exports.DEFAULT_MITER_LIMIT = _chunkS55JFWDAcjs.DEFAULT_MITER_LIMIT; exports.DEFAULT_MIXER = _chunkPQ3H2AANcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PROOF = DEFAULT_PROOF; exports.DEFAULT_REFINE_EDGE_PARAMS = _chunkSS53NNZOcjs.DEFAULT_REFINE_EDGE_PARAMS; exports.DEFAULT_RETOUCH = _chunk2ONK3ERDcjs.DEFAULT_RETOUCH; exports.DEFAULT_SELECTION_TOOL_OPTIONS = DEFAULT_SELECTION_TOOL_OPTIONS; exports.DEFAULT_SELECT_AND_MASK_SETTINGS = DEFAULT_SELECT_AND_MASK_SETTINGS; exports.DEFAULT_SHAPE_TOOL_OPTIONS = DEFAULT_SHAPE_TOOL_OPTIONS; exports.DEFAULT_SMUDGE = _chunkPQ3H2AANcjs.DEFAULT_SMUDGE; exports.DEFAULT_TEXT_STYLE = _chunkQAUIZPYIcjs.DEFAULT_TEXT_STYLE; exports.DEFAULT_TRANSFORM = DEFAULT_TRANSFORM; exports.DEFAULT_TYPE_TOOL_OPTIONS = DEFAULT_TYPE_TOOL_OPTIONS; exports.DEFAULT_WET_PAPER = _chunkXFYLA3ZOcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkXFYLA3ZOcjs.DEFAULT_WET_PARAMS; exports.DEPTH_MASK_CONTROLS = DEPTH_MASK_CONTROLS; exports.DEVELOP_FILTER_ID = _chunkS55JFWDAcjs.DEVELOP_FILTER_ID; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkK6PXS6DOcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.DRY_EPS = _chunkXFYLA3ZOcjs.DRY_EPS; exports.DabWalker = _chunkPQ3H2AANcjs.DabWalker; exports.EDGE_COLOR_RADIUS = _chunkS55JFWDAcjs.EDGE_COLOR_RADIUS; exports.EFFECT_LAYER_USES = EFFECT_LAYER_USES; exports.EMPTY_DISTANCE = _chunkSS53NNZOcjs.EMPTY_DISTANCE; exports.EMPTY_MIXER_LOAD = _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkXFYLA3ZOcjs.EX; exports.EY = _chunkXFYLA3ZOcjs.EY; exports.EdgeMap = EdgeMap; exports.FLAG_ALIVE = _chunkXFYLA3ZOcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkXFYLA3ZOcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkXFYLA3ZOcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkXFYLA3ZOcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkXFYLA3ZOcjs.FLAG_TOP; exports.FLAG_WET = _chunkXFYLA3ZOcjs.FLAG_WET; exports.FLAT = _chunkXFYLA3ZOcjs.FLAT; exports.FREE_INTERVAL = _chunkXFYLA3ZOcjs.FREE_INTERVAL; exports.FREE_TRANSFORM_CONTENTS = FREE_TRANSFORM_CONTENTS; exports.FREE_TRANSFORM_FIELDS = FREE_TRANSFORM_FIELDS; exports.FREE_TRANSFORM_MODES = _chunkS55JFWDAcjs.FREE_TRANSFORM_MODES; exports.FREE_TRANSFORM_MODE_OPTIONS = FREE_TRANSFORM_MODE_OPTIONS; exports.FreeTransformSession = FreeTransformSession; exports.FreeTransformTool = FreeTransformTool; exports.GAMMA = _chunkKALCIDWHcjs.GAMMA; exports.GRAIN_PATTERNS = _chunkPQ3H2AANcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPQ3H2AANcjs.GRAIN_TILE; exports.GUIDED_FILTER_EPS = _chunkSS53NNZOcjs.GUIDED_FILTER_EPS; exports.GridGraph = _chunkKALCIDWHcjs.GridGraph; exports.HIDE = _chunkXFYLA3ZOcjs.HIDE; exports.HISTOGRAM_BINS = HISTOGRAM_BINS; exports.HUE_RANGE_LABELS = _chunkS55JFWDAcjs.HUE_RANGE_LABELS; exports.HUE_RANGE_PRESETS = HUE_RANGE_PRESETS; exports.IDENTITY_CLONE_TRANSFORM = _chunk2ONK3ERDcjs.IDENTITY_CLONE_TRANSFORM; exports.IDENTITY_MATRIX3 = _chunkS55JFWDAcjs.IDENTITY_MATRIX3; exports.IMAGE_ADJUSTMENT_CONTROLS = IMAGE_ADJUSTMENT_CONTROLS; exports.IMAGE_CROP_PRESETS = IMAGE_CROP_PRESETS; exports.IMAGE_EDITOR_SCHEMA_VERSION = IMAGE_EDITOR_SCHEMA_VERSION; exports.IMAGE_EDITOR_STATE_VERSION = IMAGE_EDITOR_STATE_VERSION; exports.IMAGE_EFFECT_PLACES = IMAGE_EFFECT_PLACES; exports.IMAGE_FILTER_PRESETS = IMAGE_FILTER_PRESETS; exports.IMAGE_PLAYBACK_KIND = IMAGE_PLAYBACK_KIND; exports.IMAGE_TOOL_GROUPS = IMAGE_TOOL_GROUPS; exports.IMAGE_TOOL_SHORTCUTS = IMAGE_TOOL_SHORTCUTS; exports.INTENTS = _chunkBROJYMWUcjs.INTENTS; exports.INTENT_OPTIONS = INTENT_OPTIONS; exports.INTERPOLATIONS = _chunkB46UQUDCcjs.INTERPOLATIONS; exports.ImageEditorController = ImageEditorController; exports.ImageEditorRenderer = ImageEditorRenderer; exports.ImageEffectsEngine = ImageEffectsEngine; exports.LATEST_PROCESS_VERSION = _chunkS55JFWDAcjs.LATEST_PROCESS_VERSION; exports.LAYERED_SCHEMA_VERSION = _chunkS55JFWDAcjs.LAYERED_SCHEMA_VERSION; exports.LAYER_EFFECT_KINDS = _chunkB46UQUDCcjs.LAYER_EFFECT_KINDS; exports.LAYER_EFFECT_MENU = LAYER_EFFECT_MENU; exports.LEGACY_PROCESS_VERSION = _chunkS55JFWDAcjs.LEGACY_PROCESS_VERSION; exports.LIVE_SHAPE_KINDS = _chunkS55JFWDAcjs.LIVE_SHAPE_KINDS; exports.LUMA_709 = _chunkS55JFWDAcjs.LUMA_709; exports.LayerCompositor = _chunkS55JFWDAcjs.LayerCompositor; exports.LayerEffectError = _chunkB46UQUDCcjs.LayerEffectError; exports.LayerOperationError = _chunkS55JFWDAcjs.LayerOperationError; exports.MARCHING_ANTS_STEP_MS = MARCHING_ANTS_STEP_MS; exports.MASK_EDGE_THRESHOLDS = MASK_EDGE_THRESHOLDS; exports.MASK_FILE_ACCEPT = MASK_FILE_ACCEPT; exports.MAX_BATCH = _chunkXFYLA3ZOcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkPQ3H2AANcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_BACKING_SIDE = MAX_CANVAS_BACKING_SIDE; exports.MAX_EFFECT_ANIMATION_MS = _chunkS55JFWDAcjs.MAX_EFFECT_ANIMATION_MS; exports.MAX_EFFECT_REACH = _chunkB46UQUDCcjs.MAX_EFFECT_REACH; exports.MAX_KELVIN = _chunkS55JFWDAcjs.MAX_KELVIN; exports.MAX_TILT_ACCEL = _chunkXFYLA3ZOcjs.MAX_TILT_ACCEL; exports.MAX_TRANSFORM_PIXELS = _chunkB46UQUDCcjs.MAX_TRANSFORM_PIXELS; exports.MAX_WET_LANES = _chunkXFYLA3ZOcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkXFYLA3ZOcjs.MAX_WET_SLOTS; exports.MIN_KELVIN = _chunkS55JFWDAcjs.MIN_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = _chunkS55JFWDAcjs.MIRED_PER_TEMPERATURE_UNIT; exports.MIXER_DRAIN = _chunkPQ3H2AANcjs.MIXER_DRAIN; exports.MIXER_MIXING_OPTIONS = MIXER_MIXING_OPTIONS; exports.MIXER_OPTION_CONTROLS = MIXER_OPTION_CONTROLS; exports.MIXER_PICKUP_RATE = _chunkPQ3H2AANcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkPQ3H2AANcjs.MIXING_MODELS; exports.MixerStroke = _chunkPQ3H2AANcjs.MixerStroke; exports.OPP = _chunkXFYLA3ZOcjs.OPP; exports.PAINTERLY_BLEND_MODES = _chunkOLNIPTB3cjs.PAINTERLY_BLEND_MODES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkPQ3H2AANcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkPQ3H2AANcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAINT_TOOLS = PAINT_TOOLS; exports.PAPER_CAPACITY = _chunkXFYLA3ZOcjs.PAPER_CAPACITY; exports.PARAGRAPH_STYLE_FIELDS = _chunkS55JFWDAcjs.PARAGRAPH_STYLE_FIELDS; exports.PARAM = _chunkXFYLA3ZOcjs.PARAM; exports.PARAM_FLOATS = _chunkXFYLA3ZOcjs.PARAM_FLOATS; exports.PASTE_MODES = PASTE_MODES; exports.PATH_EDIT_TOOLS = PATH_EDIT_TOOLS; exports.PATTERN_BLOCK_KEYS = _chunkS55JFWDAcjs.PATTERN_BLOCK_KEYS; exports.PIGMENT_BANDS = _chunkOLNIPTB3cjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkXFYLA3ZOcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkXFYLA3ZOcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunkOLNIPTB3cjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkXFYLA3ZOcjs.PLANE; exports.PLANE_BYTES = _chunkXFYLA3ZOcjs.PLANE_BYTES; exports.PREVIEW_SIZE = PREVIEW_SIZE; exports.PROOF_PROFILE_OPTIONS = PROOF_PROFILE_OPTIONS; exports.PSD_BLEND_KEYS = _chunkS55JFWDAcjs.PSD_BLEND_KEYS; exports.PSD_FILE_ACCEPT = PSD_FILE_ACCEPT; exports.P_D0 = _chunkXFYLA3ZOcjs.P_D0; exports.P_EDGE = _chunkXFYLA3ZOcjs.P_EDGE; exports.P_FX = _chunkXFYLA3ZOcjs.P_FX; exports.P_FY = _chunkXFYLA3ZOcjs.P_FY; exports.P_H = _chunkXFYLA3ZOcjs.P_H; exports.P_P0 = _chunkXFYLA3ZOcjs.P_P0; exports.P_RHO = _chunkXFYLA3ZOcjs.P_RHO; exports.P_SW = _chunkXFYLA3ZOcjs.P_SW; exports.P_UX = _chunkXFYLA3ZOcjs.P_UX; exports.P_UY = _chunkXFYLA3ZOcjs.P_UY; exports.PaintExchange = _chunkPQ3H2AANcjs.PaintExchange; exports.PaintGesture = PaintGesture; exports.PaintGradientSampler = _chunkPQ3H2AANcjs.PaintGradientSampler; exports.PaintSourceError = _chunkPQ3H2AANcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaperGrain = _chunkPQ3H2AANcjs.PaperGrain; exports.PathEditGesture = PathEditGesture; exports.PatternPlacement = _chunkB46UQUDCcjs.PatternPlacement; exports.PatternTile = _chunkB46UQUDCcjs.PatternTile; exports.PsdError = _chunkS55JFWDAcjs.PsdError; exports.QUICK_MASK_TARGET = QUICK_MASK_TARGET; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.REFINE_EDIT_KINDS = _chunkKALCIDWHcjs.REFINE_EDIT_KINDS; exports.REFINE_OUTPUTS = REFINE_OUTPUTS; exports.RETOUCH_CHOICES = RETOUCH_CHOICES; exports.RETOUCH_OPTION_CONTROLS = RETOUCH_OPTION_CONTROLS; exports.RETOUCH_SAMPLES = _chunk2ONK3ERDcjs.RETOUCH_SAMPLES; exports.RETOUCH_TOGGLES = RETOUCH_TOGGLES; exports.RETOUCH_TOOLS = RETOUCH_TOOLS; exports.RegionPixelSource = _chunk2ONK3ERDcjs.RegionPixelSource; exports.RetouchDabStroke = _chunk2ONK3ERDcjs.RetouchDabStroke; exports.SELECTION_MODES = _chunkSS53NNZOcjs.SELECTION_MODES; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.SELECTION_MODIFY_OPS = _chunkSS53NNZOcjs.SELECTION_MODIFY_OPS; exports.SELECTION_TOOLS = SELECTION_TOOLS; exports.SELECT_AND_MASK_TOOLS = SELECT_AND_MASK_TOOLS; exports.SELECT_AND_MASK_VIEWS = SELECT_AND_MASK_VIEWS; exports.SET_PLANES = _chunkXFYLA3ZOcjs.SET_PLANES; exports.SHADOW_AMBIENT = _chunkOLNIPTB3cjs.SHADOW_AMBIENT; exports.SHAPE_KIND_LABELS = SHAPE_KIND_LABELS; exports.SHAPE_OPERATIONS = _chunkS55JFWDAcjs.SHAPE_OPERATIONS; exports.SHAPE_RENDER_MARGIN = _chunkS55JFWDAcjs.SHAPE_RENDER_MARGIN; exports.SLOT_BYTES = _chunkXFYLA3ZOcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkXFYLA3ZOcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkXFYLA3ZOcjs.SLOT_SIDE; exports.SMART_RENDER_MARGIN = _chunkS55JFWDAcjs.SMART_RENDER_MARGIN; exports.SPOT_HEAL_TYPES = _chunk2ONK3ERDcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkXFYLA3ZOcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkXFYLA3ZOcjs.STRIP; exports.SUPPORTED_ADJUSTMENT_KEYS = _chunkS55JFWDAcjs.SUPPORTED_ADJUSTMENT_KEYS; exports.SelectAndMaskSession = SelectAndMaskSession; exports.SelectionGesture = SelectionGesture; exports.SelectionWorkerClient = _chunkKALCIDWHcjs.SelectionWorkerClient; exports.ShapeDrawGesture = ShapeDrawGesture; exports.SmudgeTip = _chunkPQ3H2AANcjs.SmudgeTip; exports.StrokeCoverage = _chunkPQ3H2AANcjs.StrokeCoverage; exports.SurfaceDraft = _chunk474IQG74cjs.SurfaceDraft; exports.TEXT_ALIGNS = _chunkS55JFWDAcjs.TEXT_ALIGNS; exports.TEXT_ORIENTATIONS = _chunkS55JFWDAcjs.TEXT_ORIENTATIONS; exports.TEXT_RENDER_MARGIN = _chunkS55JFWDAcjs.TEXT_RENDER_MARGIN; exports.TEXT_STYLE_FIELDS = _chunkS55JFWDAcjs.TEXT_STYLE_FIELDS; exports.TILE = _chunk474IQG74cjs.TILE; exports.TILE_SHIFT = _chunk474IQG74cjs.TILE_SHIFT; exports.TINT_SCALE = _chunkS55JFWDAcjs.TINT_SCALE; exports.TIP_GRADIENT_STEPS = _chunkPQ3H2AANcjs.TIP_GRADIENT_STEPS; exports.TONE_LUT_SIZE = _chunkS55JFWDAcjs.TONE_LUT_SIZE; exports.TONE_RANGES = _chunk2ONK3ERDcjs.TONE_RANGES; exports.TONE_RANGE_PRESETS = TONE_RANGE_PRESETS; exports.TRANSFORM_ANCHORS = _chunkS55JFWDAcjs.TRANSFORM_ANCHORS; exports.TRANSFORM_ROTATE_HANDLE_OFFSET = TRANSFORM_ROTATE_HANDLE_OFFSET; exports.TextEditSession = TextEditSession; exports.TileMedium = _chunkPQ3H2AANcjs.TileMedium; exports.TilePixelSource = _chunk2ONK3ERDcjs.TilePixelSource; exports.TileableNoise = _chunkPQ3H2AANcjs.TileableNoise; exports.TiledSurface = _chunk474IQG74cjs.TiledSurface; exports.TransformTooLargeError = _chunkB46UQUDCcjs.TransformTooLargeError; exports.TransformedPixelSource = _chunk2ONK3ERDcjs.TransformedPixelSource; exports.TypeToolGesture = TypeToolGesture; exports.UNITS = _chunkKALCIDWHcjs.UNITS; exports.U_MAX = _chunkXFYLA3ZOcjs.U_MAX; exports.VIBRANCE_GREY = _chunkS55JFWDAcjs.VIBRANCE_GREY; exports.W9 = _chunkXFYLA3ZOcjs.W9; exports.WARP_GRID_OPTIONS = WARP_GRID_OPTIONS; exports.WARP_STYLES = _chunkQAUIZPYIcjs.WARP_STYLES; exports.WARP_STYLE_LABELS = _chunkQAUIZPYIcjs.WARP_STYLE_LABELS; exports.WARP_STYLE_OPTIONS = WARP_STYLE_OPTIONS; exports.WET_FLOW_KINDS = _chunkXFYLA3ZOcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkXFYLA3ZOcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkXFYLA3ZOcjs.WET_TILE; exports.WGSL_HALO = _chunkXFYLA3ZOcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkXFYLA3ZOcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkXFYLA3ZOcjs.WGSL_STEP; exports.WORKING_SPACE_OPTIONS = WORKING_SPACE_OPTIONS; exports.WORK_PATH_NAME = WORK_PATH_NAME; exports.WORK_SIZE = _chunkKALCIDWHcjs.WORK_SIZE; exports.WetGpuEngine = _chunkXFYLA3ZOcjs.WetGpuEngine; exports.WetMedium = _chunkXFYLA3ZOcjs.WetMedium; exports.WetWorkerPool = _chunkXFYLA3ZOcjs.WetWorkerPool; exports.WetWorld = _chunkXFYLA3ZOcjs.WetWorld; exports.WetWorldError = _chunkXFYLA3ZOcjs.WetWorldError; exports.XYZ_D50_TO_SRGB = _chunkS55JFWDAcjs.XYZ_D50_TO_SRGB; exports.ZlibError = _chunkXFM3OCHUcjs.ZlibError; exports.activeAdjustmentLayers = _chunkS55JFWDAcjs.activeAdjustmentLayers; exports.activeEffectSmartFilters = _chunkS55JFWDAcjs.activeEffectSmartFilters; exports.activeLayerAfterRemoval = _chunkS55JFWDAcjs.activeLayerAfterRemoval; exports.activeSmartFilters = _chunkS55JFWDAcjs.activeSmartFilters; exports.addLayerEffect = _chunkS55JFWDAcjs.addLayerEffect; exports.addLayerFilter = _chunkS55JFWDAcjs.addLayerFilter; exports.addLayerOfKind = addLayerOfKind; exports.addPaintGradientStop = _chunkPQ3H2AANcjs.addPaintGradientStop; exports.addSmartFilter = _chunkS55JFWDAcjs.addSmartFilter; exports.addToHistogram = addToHistogram; exports.adjustmentKindLabel = _chunkS55JFWDAcjs.adjustmentKindLabel; exports.adjustmentLayersKey = _chunkS55JFWDAcjs.adjustmentLayersKey; exports.adjustmentNodeAsLayer = _chunkS55JFWDAcjs.adjustmentNodeAsLayer; exports.adjustmentNodeFromLegacy = _chunkS55JFWDAcjs.adjustmentNodeFromLegacy; exports.adler32 = _chunkXFM3OCHUcjs.adler32; exports.agentDragDraft = agentDragDraft; exports.anchorPoint = _chunkS55JFWDAcjs.anchorPoint; exports.annotationBlend = _chunkS55JFWDAcjs.annotationBlend; exports.annotationLayerFor = _chunkS55JFWDAcjs.annotationLayerFor; exports.annotationLayerName = _chunkS55JFWDAcjs.annotationLayerName; exports.annotationOfLayer = _chunkS55JFWDAcjs.annotationOfLayer; exports.annotationOfShape = _chunkS55JFWDAcjs.annotationOfShape; exports.annotationOfType = _chunkS55JFWDAcjs.annotationOfType; exports.applyAdjustmentLayers = _chunkS55JFWDAcjs.applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = _chunkS55JFWDAcjs.applyAdjustmentLayersFloat; exports.applyAdjustments = _chunkS55JFWDAcjs.applyAdjustments; exports.applyBoxBlur = _chunkS55JFWDAcjs.applyBoxBlur; exports.applyBoxBlurFloat = _chunkS55JFWDAcjs.applyBoxBlurFloat; exports.applyDepthMask = _chunkS55JFWDAcjs.applyDepthMask; exports.applyEdgeUnmix = _chunkS55JFWDAcjs.applyEdgeUnmix; exports.applyHomography = _chunkQT26RHKKcjs.applyHomography; exports.applyImageProjectionToContext = _chunkS55JFWDAcjs.applyImageProjectionToContext; exports.applyLegacyAdjustments = _chunkS55JFWDAcjs.applyLegacyAdjustments; exports.applyLegacyFloat = _chunkS55JFWDAcjs.applyLegacyFloat; exports.applyMatrix3 = _chunkS55JFWDAcjs.applyMatrix3; exports.applyOutputStage = applyOutputStage; exports.applyParams = _chunkS55JFWDAcjs.applyParams; exports.applyProcess2Adjustments = _chunkS55JFWDAcjs.applyProcess2Adjustments; exports.applyProcess2Float = _chunkS55JFWDAcjs.applyProcess2Float; exports.applyRefineEdits = _chunkKALCIDWHcjs.applyRefineEdits; exports.applyRegionBlur = applyRegionBlur; exports.applyRegionMosaic = applyRegionMosaic; exports.applyRetouchToTile = _chunk2ONK3ERDcjs.applyRetouchToTile; exports.applyShapeOptions = applyShapeOptions; exports.applySmartFilters = _chunkS55JFWDAcjs.applySmartFilters; exports.applyStrokeToDeepTile = _chunkPQ3H2AANcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkPQ3H2AANcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunk2ONK3ERDcjs.applyToneToDeepTile; exports.backgroundLayer = _chunkS55JFWDAcjs.backgroundLayer; exports.base64ToBytes = _chunkOLNIPTB3cjs.base64ToBytes; exports.baseProjection = baseProjection; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blackWhiteGray = _chunkS55JFWDAcjs.blackWhiteGray; exports.blendChannel = _chunkOLNIPTB3cjs.blendChannel; exports.blendImageData = _chunkOLNIPTB3cjs.blendImageData; exports.blendLum = _chunkOLNIPTB3cjs.blendLum; exports.blendPixel = _chunkOLNIPTB3cjs.blendPixel; exports.blendRadius = _chunkPQ3H2AANcjs.blendRadius; exports.blendRgb = _chunkOLNIPTB3cjs.blendRgb; exports.blendTile = _chunkB46UQUDCcjs.blendTile; exports.blenderDab = _chunkPQ3H2AANcjs.blenderDab; exports.blurFilter = _chunkS55JFWDAcjs.blurFilter; exports.borderCoverage = _chunkSS53NNZOcjs.borderCoverage; exports.boxBlur = _chunkKALCIDWHcjs.boxBlur; exports.boxBlurPixels = _chunk2ONK3ERDcjs.boxBlurPixels; exports.boxFrameHit = boxFrameHit; exports.boxFrameOverlay = boxFrameOverlay; exports.boxMean = _chunkSS53NNZOcjs.boxMean; exports.boxPointOf = _chunkS55JFWDAcjs.boxPointOf; exports.boxQuad = _chunkQT26RHKKcjs.boxQuad; exports.boxToCurvePoint = boxToCurvePoint; exports.bradfordAdaptation = _chunkS55JFWDAcjs.bradfordAdaptation; exports.brushStrokeMask = _chunkKALCIDWHcjs.brushStrokeMask; exports.brushstrokeDataUrl = _chunkPQ3H2AANcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkPQ3H2AANcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkPQ3H2AANcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkPQ3H2AANcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkPQ3H2AANcjs.brushstrokeToCanvas; exports.buildLayerMaskPlanes = _chunkS55JFWDAcjs.buildLayerMaskPlanes; exports.buildToneLut = _chunkS55JFWDAcjs.buildToneLut; exports.builtinPattern = _chunkB46UQUDCcjs.builtinPattern; exports.builtinPatternIds = _chunkB46UQUDCcjs.builtinPatternIds; exports.bytesToBase64 = _chunkOLNIPTB3cjs.bytesToBase64; exports.calculateCropDrag = _chunkS55JFWDAcjs.calculateCropDrag; exports.canShareMemory = _chunkXFYLA3ZOcjs.canShareMemory; exports.canvasCompositeOperation = _chunkOLNIPTB3cjs.canvasCompositeOperation; exports.canvasToImagePoint = _chunkS55JFWDAcjs.canvasToImagePoint; exports.caretAt = _chunkQAUIZPYIcjs.caretAt; exports.changedTiles = _chunkB46UQUDCcjs.changedTiles; exports.channelThumbnail = channelThumbnail; exports.checkEffectAnimation = checkEffectAnimation; exports.checkEffectTime = checkEffectTime; exports.checkImageEffectPlace = checkImageEffectPlace; exports.clampControlValue = clampControlValue; exports.clampCropToImage = _chunkS55JFWDAcjs.clampCropToImage; exports.cleanMixer = _chunkPQ3H2AANcjs.cleanMixer; exports.cloneSamplePoint = _chunk2ONK3ERDcjs.cloneSamplePoint; exports.cloneSourceLabel = cloneSourceLabel; exports.cloneTransformView = cloneTransformView; exports.collectTiles = _chunk474IQG74cjs.collectTiles; exports.colorBalanceChannel = _chunkS55JFWDAcjs.colorBalanceChannel; exports.colorModePlanes = colorModePlanes; exports.colorModePlanes16 = colorModePlanes16; exports.colorPanelView = colorPanelView; exports.colorRange = colorRange; exports.colorRangePreset = colorRangePreset; exports.combineSelections = _chunkSS53NNZOcjs.combineSelections; exports.compareSelectionMasks = compareSelectionMasks; exports.compileAdjustmentLayer = _chunkS55JFWDAcjs.compileAdjustmentLayer; exports.componentPath = _chunkS55JFWDAcjs.componentPath; exports.componentsCoverage = _chunkS55JFWDAcjs.componentsCoverage; exports.compositeDeep = _chunkS55JFWDAcjs.compositeDeep; exports.compositeSurfaceOver = _chunkB46UQUDCcjs.compositeSurfaceOver; exports.computeHistogram = computeHistogram; exports.computeSelectionBounds = _chunkSS53NNZOcjs.computeSelectionBounds; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.contentBounds = _chunk474IQG74cjs.contentBounds; exports.contentsBox = _chunkS55JFWDAcjs.contentsBox; exports.contentsSurface = _chunkS55JFWDAcjs.contentsSurface; exports.contractCoverage = _chunkSS53NNZOcjs.contractCoverage; exports.controlPosition = controlPosition; exports.controlTrackBackground = controlTrackBackground; exports.convertColorFields = convertColorFields; exports.convertHex = convertHex; exports.convertSurfaceColors = convertSurfaceColors; exports.convertSurfaceDepth = _chunkOLNIPTB3cjs.convertSurfaceDepth; exports.convertToSmartObject = _chunkS55JFWDAcjs.convertToSmartObject; exports.copySmartObject = _chunkS55JFWDAcjs.copySmartObject; exports.cornersFromMatrix = _chunkS55JFWDAcjs.cornersFromMatrix; exports.coverageTileCoord = _chunkPQ3H2AANcjs.coverageTileCoord; exports.coverageToByte = _chunkSS53NNZOcjs.coverageToByte; exports.coveringRect = coveringRect; exports.createAdjustmentLayer = _chunkS55JFWDAcjs.createAdjustmentLayer; exports.createBlenderScratch = _chunkPQ3H2AANcjs.createBlenderScratch; exports.createCanvasTextShaper = _chunkQAUIZPYIcjs.createCanvasTextShaper; exports.createGradientSampler = createGradientSampler; exports.createImageCaptureSurface = createImageCaptureSurface; exports.createImageColorTools = createImageColorTools; exports.createImageEditTools = createImageEditTools; exports.createImageEditorDocument = createImageEditorDocument; exports.createImageEditorToolProvider = createImageEditorToolProvider; exports.createImageEffectTools = createImageEffectTools; exports.createImageEffectsToolProvider = createImageEffectsToolProvider; exports.createImageLayerTools = createImageLayerTools; exports.createImagePaintTools = createImagePaintTools; exports.createImagePlaybackLocator = createImagePlaybackLocator; exports.createImagePsdTools = createImagePsdTools; exports.createImageRetouchTools = createImageRetouchTools; exports.createImageSegmentationToolProvider = createImageSegmentationToolProvider; exports.createImageSelectionTools = createImageSelectionTools; exports.createImageShapeTools = createImageShapeTools; exports.createImageSmartObjectTools = createImageSmartObjectTools; exports.createImageSubjectSelectionTool = createImageSubjectSelectionTool; exports.createImageTransformTools = createImageTransformTools; exports.createImageTypeTools = createImageTypeTools; exports.createMetricTextShaper = _chunkQAUIZPYIcjs.createMetricTextShaper; exports.createOutlineTextShaper = _chunkQAUIZPYIcjs.createOutlineTextShaper; exports.createPigment = _chunkOLNIPTB3cjs.createPigment; exports.createPigmentTools = _chunkXFYLA3ZOcjs.createPigmentTools; exports.createSelectionMask = _chunkSS53NNZOcjs.createSelectionMask; exports.createShapeLayer = _chunkS55JFWDAcjs.createShapeLayer; exports.createTypeLayer = _chunkS55JFWDAcjs.createTypeLayer; exports.createWetGpuEngine = _chunkXFYLA3ZOcjs.createWetGpuEngine; exports.cssFont = _chunkQAUIZPYIcjs.cssFont; exports.cssFontFamily = _chunkQAUIZPYIcjs.cssFontFamily; exports.curveLut = _chunkB46UQUDCcjs.curveLut; exports.curveLutFromLevels = _chunkS55JFWDAcjs.curveLutFromLevels; exports.curvePointToBox = curvePointToBox; exports.curveSvgPath = curveSvgPath; exports.dabCoverage = _chunkPQ3H2AANcjs.dabCoverage; exports.dabRect = _chunkPQ3H2AANcjs.dabRect; exports.decodeDeepSurface = _chunkS55JFWDAcjs.decodeDeepSurface; exports.decodeLayerChannel = _chunkS55JFWDAcjs.decodeLayerChannel; exports.decodeLayerMask = _chunkS55JFWDAcjs.decodeLayerMask; exports.decodeMergedImage = _chunkS55JFWDAcjs.decodeMergedImage; exports.decodePlanes = _chunkS55JFWDAcjs.decodePlanes; exports.decodePng = _chunkOLNIPTB3cjs.decodePng; exports.decodePngDataUrl = _chunkS55JFWDAcjs.decodePngDataUrl; exports.decodeSelectionRle = _chunkSS53NNZOcjs.decodeSelectionRle; exports.decontaminateColors = _chunkSS53NNZOcjs.decontaminateColors; exports.deepBytes = _chunkOLNIPTB3cjs.deepBytes; exports.deepTile = _chunkOLNIPTB3cjs.deepTile; exports.defaultActiveLayerId = _chunkS55JFWDAcjs.defaultActiveLayerId; exports.defaultAdjustmentParams = _chunkS55JFWDAcjs.defaultAdjustmentParams; exports.defaultEffectGradient = _chunkB46UQUDCcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkB46UQUDCcjs.defaultLayerEffect; exports.defaultShapeName = _chunkS55JFWDAcjs.defaultShapeName; exports.deflate = _chunkXFM3OCHUcjs.deflate; exports.deflateRaw = _chunkXFM3OCHUcjs.deflateRaw; exports.depthMaskAlpha = _chunkS55JFWDAcjs.depthMaskAlpha; exports.depthOf = _chunkOLNIPTB3cjs.depthOf; exports.depthRasterMask = _chunkS55JFWDAcjs.depthRasterMask; exports.describeChannel = describeChannel; exports.describeLayer = describeLayer; exports.describeLayerEffects = describeLayerEffects; exports.describeSelection = describeSelection; exports.describeTransform = _chunkS55JFWDAcjs.describeTransform; exports.deserializeChannels = deserializeChannels; exports.deserializeColorMode = deserializeColorMode; exports.deserializeColorProfile = deserializeColorProfile; exports.deserializeEffects = _chunkS55JFWDAcjs.deserializeEffects; exports.deserializeLayer = _chunkS55JFWDAcjs.deserializeLayer; exports.deserializeLayers = _chunkS55JFWDAcjs.deserializeLayers; exports.deserializeMask = _chunkKALCIDWHcjs.deserializeMask; exports.deserializePatterns = _chunkS55JFWDAcjs.deserializePatterns; exports.deserializeSelection = _chunkSS53NNZOcjs.deserializeSelection; exports.despillEdge = _chunkS55JFWDAcjs.despillEdge; exports.developFilter = _chunkS55JFWDAcjs.developFilter; exports.developFromAdjustments = _chunkS55JFWDAcjs.developFromAdjustments; exports.developTarget = _chunkS55JFWDAcjs.developTarget; exports.dexp = _chunkXFYLA3ZOcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.displayTransform = displayTransform; exports.distanceTransform = _chunkSS53NNZOcjs.distanceTransform; exports.dlog = _chunkXFYLA3ZOcjs.dlog; exports.documentContents = _chunkS55JFWDAcjs.documentContents; exports.documentProfile = documentProfile; exports.dodgeBurn = _chunk2ONK3ERDcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk2ONK3ERDcjs.dodgeBurnCurve; exports.downloadMaskImage = downloadMaskImage; exports.downloadPsd = downloadPsd; exports.dpow = _chunkXFYLA3ZOcjs.dpow; exports.dragWarpMeshPoint = _chunkQAUIZPYIcjs.dragWarpMeshPoint; exports.dropPlacement = dropPlacement; exports.dropZone = dropZone; exports.dsincos = _chunkXFYLA3ZOcjs.dsincos; exports.duplicateLayer = _chunkS55JFWDAcjs.duplicateLayer; exports.edgeBits = _chunkXFYLA3ZOcjs.edgeBits; exports.edgeWidth = _chunkSS53NNZOcjs.edgeWidth; exports.effectColorHex = _chunkB46UQUDCcjs.effectColorHex; exports.effectControlChange = effectControlChange; exports.effectLayerTiming = effectLayerTiming; exports.effectPixelsToSurface = effectPixelsToSurface; exports.effectReach = _chunkB46UQUDCcjs.effectReach; exports.effectiveLayerMask = _chunkS55JFWDAcjs.effectiveLayerMask; exports.effectiveProof = effectiveProof; exports.effectsFingerprint = _chunkB46UQUDCcjs.effectsFingerprint; exports.effectsMargin = _chunkB46UQUDCcjs.effectsMargin; exports.effectsScale = _chunkB46UQUDCcjs.effectsScale; exports.ellipsePoints = _chunkKALCIDWHcjs.ellipsePoints; exports.ellipseSelection = _chunkKALCIDWHcjs.ellipseSelection; exports.emptyHistogram = emptyHistogram; exports.emptySurface = _chunk474IQG74cjs.emptySurface; exports.encodeDeepSurface = _chunkS55JFWDAcjs.encodeDeepSurface; exports.encodePng = _chunkOLNIPTB3cjs.encodePng; exports.encodeRle = _chunkS55JFWDAcjs.encodeRle; exports.encodeSelectionRle = _chunkSS53NNZOcjs.encodeSelectionRle; exports.encodeSurface = _chunkS55JFWDAcjs.encodeSurface; exports.evalWarpMesh = _chunkQAUIZPYIcjs.evalWarpMesh; exports.evaluateAdjustmentLayers = _chunkS55JFWDAcjs.evaluateAdjustmentLayers; exports.exchangeRates = _chunkPQ3H2AANcjs.exchangeRates; exports.expNeg = _chunkXFYLA3ZOcjs.expNeg; exports.expandCoverage = _chunkSS53NNZOcjs.expandCoverage; exports.exportPsd = _chunkS55JFWDAcjs.exportPsd; exports.extractNormalizedLayerItems = extractNormalizedLayerItems; exports.featherCoverage = _chunkSS53NNZOcjs.featherCoverage; exports.fillRect = _chunk474IQG74cjs.fillRect; exports.filmPixel = _chunkXFYLA3ZOcjs.filmPixel; exports.filmReflectance = _chunkXFYLA3ZOcjs.filmReflectance; exports.filterMaskCoverage = _chunkS55JFWDAcjs.filterMaskCoverage; exports.findAdjustmentControl = findAdjustmentControl; exports.findLayer = _chunkB46UQUDCcjs.findLayer; exports.findLayerControl = findLayerControl; exports.findSky = _chunkKALCIDWHcjs.findSky; exports.findSubject = _chunkKALCIDWHcjs.findSubject; exports.findWebGpu = _chunkXFYLA3ZOcjs.findWebGpu; exports.finishTile = _chunk474IQG74cjs.finishTile; exports.fitParagraphRuns = _chunkQAUIZPYIcjs.fitParagraphRuns; exports.fitRuns = _chunkQAUIZPYIcjs.fitRuns; exports.flattenLayers = _chunkB46UQUDCcjs.flattenLayers; exports.flattenPath = _chunkS55JFWDAcjs.flattenPath; exports.flipCorners = _chunkS55JFWDAcjs.flipCorners; exports.flowField = _chunkXFYLA3ZOcjs.flowField; exports.focusArea = _chunkKALCIDWHcjs.focusArea; exports.followLayerMove = _chunkS55JFWDAcjs.followLayerMove; exports.fontOf = _chunkQAUIZPYIcjs.fontOf; exports.forgetSelectAndMaskSettings = forgetSelectAndMaskSettings; exports.formatControlValue = formatControlValue; exports.fullSelection = _chunkSS53NNZOcjs.fullSelection; exports.gaussianBlur = _chunkK6PXS6DOcjs.gaussianBlur; exports.geometryHomography = _chunkS55JFWDAcjs.geometryHomography; exports.getAnnotationBounds = _chunkS55JFWDAcjs.getAnnotationBounds; exports.getControlPath = getControlPath; exports.getCropCursor = _chunkS55JFWDAcjs.getCropCursor; exports.getRotatedSize = _chunkS55JFWDAcjs.getRotatedSize; exports.getViewportMetrics = _chunkS55JFWDAcjs.getViewportMetrics; exports.getViewportProjection = _chunkS55JFWDAcjs.getViewportProjection; exports.globalImageCache = globalImageCache; exports.grabCutLabels = _chunkKALCIDWHcjs.grabCutLabels; exports.gradientDabColor = _chunkPQ3H2AANcjs.gradientDabColor; exports.grainCatch = _chunkPQ3H2AANcjs.grainCatch; exports.grainHeights = _chunkPQ3H2AANcjs.grainHeights; exports.greyMorphology = _chunkSS53NNZOcjs.greyMorphology; exports.groupLayers = _chunkS55JFWDAcjs.groupLayers; exports.growSelection = growSelection; exports.guidePlanes = _chunkSS53NNZOcjs.guidePlanes; exports.guidedFilterColor = _chunkSS53NNZOcjs.guidedFilterColor; exports.handleMaskViewKey = handleMaskViewKey; exports.handlePaintShortcut = handlePaintShortcut; exports.handleQuickMaskKey = handleQuickMaskKey; exports.handleSelectionShortcut = handleSelectionShortcut; exports.hasActiveEffects = _chunkB46UQUDCcjs.hasActiveEffects; exports.hasEdgeUnmix = _chunkS55JFWDAcjs.hasEdgeUnmix; exports.hasLayersBelow = hasLayersBelow; exports.hasResampledLegacyMask = _chunkS55JFWDAcjs.hasResampledLegacyMask; exports.hasSoftBand = _chunkS55JFWDAcjs.hasSoftBand; exports.hasSurface = _chunkS55JFWDAcjs.hasSurface; exports.hasWarp = _chunkS55JFWDAcjs.hasWarp; exports.hash2 = _chunkPQ3H2AANcjs.hash2; exports.hashMaskContent = _chunkSS53NNZOcjs.hashMaskContent; exports.hashNoise = _chunkB46UQUDCcjs.hashNoise; exports.healPixels = _chunk2ONK3ERDcjs.healPixels; exports.hexToPaintRgb = _chunkPQ3H2AANcjs.hexToPaintRgb; exports.hexToRgb = _chunkS55JFWDAcjs.hexToRgb; exports.histogramPath = histogramPath; exports.hitTestAnnotation = _chunkS55JFWDAcjs.hitTestAnnotation; exports.hitTestCrop = _chunkS55JFWDAcjs.hitTestCrop; exports.hitTestCurvePoint = hitTestCurvePoint; exports.homographyFromAffine = _chunkQT26RHKKcjs.homographyFromAffine; exports.homographyFromPoints = _chunkQT26RHKKcjs.homographyFromPoints; exports.hslToRgb = _chunkS55JFWDAcjs.hslToRgb; exports.hueRange = hueRange; exports.hueRangeTables = _chunkS55JFWDAcjs.hueRangeTables; exports.hueRangeWeight = _chunkS55JFWDAcjs.hueRangeWeight; exports.hueSaturation = _chunkS55JFWDAcjs.hueSaturation; exports.identityCurve = _chunkS55JFWDAcjs.identityCurve; exports.identityLevels = _chunkS55JFWDAcjs.identityLevels; exports.identityTransform = _chunkS55JFWDAcjs.identityTransform; exports.identityWarpMesh = _chunkQAUIZPYIcjs.identityWarpMesh; exports.imageEditorStateMigrations = imageEditorStateMigrations; exports.imageLayerAppliedEffects = imageLayerAppliedEffects; exports.imagePanelTool = imagePanelTool; exports.imagePlaybackPanel = imagePlaybackPanel; exports.imageToCanvasPoint = _chunkS55JFWDAcjs.imageToCanvasPoint; exports.imageToolCanvasMode = imageToolCanvasMode; exports.imageToolForShortcut = imageToolForShortcut; exports.imageToolGroup = imageToolGroup; exports.imageToolLabel = imageToolLabel; exports.imageToolPanel = imageToolPanel; exports.importPsd = _chunkS55JFWDAcjs.importPsd; exports.inflate = _chunkXFM3OCHUcjs.inflate; exports.inflateRaw = _chunkXFM3OCHUcjs.inflateRaw; exports.insertCurvePoint = insertCurvePoint; exports.insertLayer = _chunkB46UQUDCcjs.insertLayer; exports.inspectMaskEdge = inspectMaskEdge; exports.instancesOf = _chunkS55JFWDAcjs.instancesOf; exports.invertHomography = _chunkQT26RHKKcjs.invertHomography; exports.invertMatrix3 = _chunkS55JFWDAcjs.invertMatrix3; exports.invertSelection = _chunkSS53NNZOcjs.invertSelection; exports.isActiveFilter = _chunkS55JFWDAcjs.isActiveFilter; exports.isActiveVectorMask = _chunkS55JFWDAcjs.isActiveVectorMask; exports.isAdjustmentKind = _chunkS55JFWDAcjs.isAdjustmentKind; exports.isBitDepth = _chunkOLNIPTB3cjs.isBitDepth; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isBrushstrokeBrush = _chunkPQ3H2AANcjs.isBrushstrokeBrush; exports.isColorRangePreset = isColorRangePreset; exports.isContentsDecoded = _chunkS55JFWDAcjs.isContentsDecoded; exports.isDefaultDepthMask = _chunkS55JFWDAcjs.isDefaultDepthMask; exports.isGradientPaint = _chunkPQ3H2AANcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunk2ONK3ERDcjs.isIdentityCloneTransform; exports.isIdentityTransform = _chunkS55JFWDAcjs.isIdentityTransform; exports.isInterpolation = _chunkB46UQUDCcjs.isInterpolation; exports.isLayerEffectKind = _chunkB46UQUDCcjs.isLayerEffectKind; exports.isLayerLocked = _chunkB46UQUDCcjs.isLayerLocked; exports.isLegacyShape = _chunkS55JFWDAcjs.isLegacyShape; exports.isPaintTool = isPaintTool; exports.isPaintableLayer = _chunkS55JFWDAcjs.isPaintableLayer; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPathEditTool = isPathEditTool; exports.isPng = _chunkOLNIPTB3cjs.isPng; exports.isQuarterTurn = isQuarterTurn; exports.isQuarterTurnSwapped = _chunkS55JFWDAcjs.isQuarterTurnSwapped; exports.isRenderedLayer = _chunkS55JFWDAcjs.isRenderedLayer; exports.isRetouchPaintTool = isRetouchPaintTool; exports.isRetouchTool = isRetouchTool; exports.isSelectionEmpty = _chunkSS53NNZOcjs.isSelectionEmpty; exports.isSelectionMode = _chunkSS53NNZOcjs.isSelectionMode; exports.isSeparableBlendMode = _chunkOLNIPTB3cjs.isSeparableBlendMode; exports.isSmartSurfaceIncomplete = _chunkS55JFWDAcjs.isSmartSurfaceIncomplete; exports.isSpatialFilter = _chunkS55JFWDAcjs.isSpatialFilter; exports.isSrgb = isSrgb; exports.isTransformAnchor = _chunkS55JFWDAcjs.isTransformAnchor; exports.isValidWarp = _chunkS55JFWDAcjs.isValidWarp; exports.keepDeepSamples = _chunkOLNIPTB3cjs.keepDeepSamples; exports.keepMainPieces = _chunkKALCIDWHcjs.keepMainPieces; exports.kelvinToTemperature = _chunkS55JFWDAcjs.kelvinToTemperature; exports.keysWeight = _chunkB46UQUDCcjs.keysWeight; exports.latticeViscosity = _chunkXFYLA3ZOcjs.latticeViscosity; exports.layerBadge = layerBadge; exports.layerEffectControls = layerEffectControls; exports.layerEffectFields = _chunkB46UQUDCcjs.layerEffectFields; exports.layerEffectLabel = _chunkB46UQUDCcjs.layerEffectLabel; exports.layerEffectsBadge = layerEffectsBadge; exports.layerEffectsOf = _chunkS55JFWDAcjs.layerEffectsOf; exports.layerEffectsPanel = layerEffectsPanel; exports.layerHasThumbnail = layerHasThumbnail; exports.layerLabel = layerLabel; exports.layerMaskCoverage = _chunkS55JFWDAcjs.layerMaskCoverage; exports.layerMaskFromSelection = _chunkS55JFWDAcjs.layerMaskFromSelection; exports.layerMaskKey = _chunkS55JFWDAcjs.layerMaskKey; exports.layerMaskSelection = _chunkS55JFWDAcjs.layerMaskSelection; exports.layerMenu = layerMenu; exports.layerName = _chunkS55JFWDAcjs.layerName; exports.layerPanelRows = layerPanelRows; exports.layerPanels = layerPanels; exports.layerThumbnailClick = layerThumbnailClick; exports.layerTree = _chunkS55JFWDAcjs.layerTree; exports.layerTypeLabel = _chunkS55JFWDAcjs.layerTypeLabel; exports.layerWarning = layerWarning; exports.layersFromLegacy = _chunkS55JFWDAcjs.layersFromLegacy; exports.layoutText = _chunkQAUIZPYIcjs.layoutText; exports.legacyAdjustmentLayer = _chunkS55JFWDAcjs.legacyAdjustmentLayer; exports.legacyMaskOf = _chunkS55JFWDAcjs.legacyMaskOf; exports.legacyView = _chunkS55JFWDAcjs.legacyView; exports.lerpPigment = _chunkOLNIPTB3cjs.lerpPigment; exports.lerpPigmentInto = _chunkOLNIPTB3cjs.lerpPigmentInto; exports.levelsValue = _chunkS55JFWDAcjs.levelsValue; exports.linearSrgbToXy = _chunkS55JFWDAcjs.linearSrgbToXy; exports.linearToSrgb = _chunkS55JFWDAcjs.linearToSrgb; exports.linearToSrgb8 = _chunkXFYLA3ZOcjs.linearToSrgb8; exports.liveComponent = _chunkS55JFWDAcjs.liveComponent; exports.liveShapeForDrag = liveShapeForDrag; exports.liveShapeSubpaths = _chunkS55JFWDAcjs.liveShapeSubpaths; exports.liveWire = liveWire; exports.loadImageEditorDocument = loadImageEditorDocument; exports.loadMixer = _chunkPQ3H2AANcjs.loadMixer; exports.loadOpenTypeFont = _chunkLCCMOWR7cjs.loadOpenTypeFont; exports.loadWetKernel = _chunkXFYLA3ZOcjs.loadWetKernel; exports.luma = _chunk2ONK3ERDcjs.luma; exports.magicWand = magicWand; exports.magneticAnchorSpacing = magneticAnchorSpacing; exports.mapCropHandle = _chunkS55JFWDAcjs.mapCropHandle; exports.mapLayer = _chunkB46UQUDCcjs.mapLayer; exports.mapSubpaths = _chunkS55JFWDAcjs.mapSubpaths; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.maskCoverageOverCanvas = _chunkS55JFWDAcjs.maskCoverageOverCanvas; exports.maskFileName = maskFileName; exports.maskNameFromFile = maskNameFromFile; exports.maskSummary = maskSummary; exports.maskThumbnailClick = maskThumbnailClick; exports.matrixFromCorners = _chunkS55JFWDAcjs.matrixFromCorners; exports.matrixFromParams = _chunkS55JFWDAcjs.matrixFromParams; exports.measureCanvasViewport = measureCanvasViewport; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mergeLayerEffect = _chunkB46UQUDCcjs.mergeLayerEffect; exports.mergeShapeComponents = _chunkS55JFWDAcjs.mergeShapeComponents; exports.migrateSerializedImageEditorState = migrateSerializedImageEditorState; exports.migrateToLayeredState = migrateToLayeredState; exports.mix32 = _chunkPQ3H2AANcjs.mix32; exports.mixPigment8 = _chunkOLNIPTB3cjs.mixPigment8; exports.mixPigmentRgb = _chunkOLNIPTB3cjs.mixPigmentRgb; exports.mixPigments = _chunkOLNIPTB3cjs.mixPigments; exports.mixerLoadResult = mixerLoadResult; exports.mixerRates = _chunkPQ3H2AANcjs.mixerRates; exports.modifySelection = _chunkSS53NNZOcjs.modifySelection; exports.moveCurvePoint = moveCurvePoint; exports.moveLayer = _chunkS55JFWDAcjs.moveLayer; exports.moveSmartFilter = _chunkS55JFWDAcjs.moveSmartFilter; exports.moveWetSnapshot = _chunkXFYLA3ZOcjs.moveWetSnapshot; exports.mulMatrix3 = _chunkS55JFWDAcjs.mulMatrix3; exports.needsLegacyBase = needsLegacyBase; exports.neutralHueRange = _chunkS55JFWDAcjs.neutralHueRange; exports.newContentsId = _chunkS55JFWDAcjs.newContentsId; exports.newEffectId = _chunkB46UQUDCcjs.newEffectId; exports.newLayerId = _chunkS55JFWDAcjs.newLayerId; exports.newLayerOptions = newLayerOptions; exports.newPathId = newPathId; exports.normalizeAdjustmentLayer = _chunkS55JFWDAcjs.normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = _chunkS55JFWDAcjs.normalizeAdjustmentLayers; exports.normalizeAngle = _chunkS55JFWDAcjs.normalizeAngle; exports.normalizeBlendMode = _chunkOLNIPTB3cjs.normalizeBlendMode; exports.normalizeBlender = _chunkPQ3H2AANcjs.normalizeBlender; exports.normalizeBrush = _chunkPQ3H2AANcjs.normalizeBrush; exports.normalizeFilter = _chunkS55JFWDAcjs.normalizeFilter; exports.normalizeFlow = _chunkXFYLA3ZOcjs.normalizeFlow; exports.normalizeHexColor = _chunkPQ3H2AANcjs.normalizeHexColor; exports.normalizeLayerEffects = _chunkB46UQUDCcjs.normalizeLayerEffects; exports.normalizeLayerMask = _chunkS55JFWDAcjs.normalizeLayerMask; exports.normalizeLiveShape = _chunkS55JFWDAcjs.normalizeLiveShape; exports.normalizeMixer = _chunkPQ3H2AANcjs.normalizeMixer; exports.normalizePlacement = _chunkS55JFWDAcjs.normalizePlacement; exports.normalizeProcessVersion = _chunkS55JFWDAcjs.normalizeProcessVersion; exports.normalizeRect = _chunkKALCIDWHcjs.normalizeRect; exports.normalizeRefineEdgeParams = _chunkSS53NNZOcjs.normalizeRefineEdgeParams; exports.normalizeRetouch = _chunk2ONK3ERDcjs.normalizeRetouch; exports.normalizeShapePaint = _chunkS55JFWDAcjs.normalizeShapePaint; exports.normalizeShapeStroke = _chunkS55JFWDAcjs.normalizeShapeStroke; exports.normalizeSmartFilter = _chunkS55JFWDAcjs.normalizeSmartFilter; exports.normalizeSmudge = _chunkPQ3H2AANcjs.normalizeSmudge; exports.normalizeStoredAdjustments = normalizeStoredAdjustments; exports.normalizeSubpaths = _chunkS55JFWDAcjs.normalizeSubpaths; exports.normalizeText = _chunkS55JFWDAcjs.normalizeText; exports.normalizeTilt = _chunkXFYLA3ZOcjs.normalizeTilt; exports.normalizeWetParams = _chunkXFYLA3ZOcjs.normalizeWetParams; exports.offsetLayer = _chunkS55JFWDAcjs.offsetLayer; exports.offsetShape = _chunkS55JFWDAcjs.offsetShape; exports.offsetSmartObject = _chunkS55JFWDAcjs.offsetSmartObject; exports.offsetVectorMask = _chunkS55JFWDAcjs.offsetVectorMask; exports.openMaskFile = openMaskFile; exports.openPsdFile = openPsdFile; exports.otsuThreshold = _chunkKALCIDWHcjs.otsuThreshold; exports.packRgba = _chunk474IQG74cjs.packRgba; exports.packWetParams = _chunkXFYLA3ZOcjs.packWetParams; exports.paintGradientMappingFor = _chunkPQ3H2AANcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPQ3H2AANcjs.paintPathStroke; exports.paintSourceColor = _chunkPQ3H2AANcjs.paintSourceColor; exports.paintSourceCss = _chunkPQ3H2AANcjs.paintSourceCss; exports.paragraphRanges = _chunkQAUIZPYIcjs.paragraphRanges; exports.parseAdjustmentBlock = _chunkS55JFWDAcjs.parseAdjustmentBlock; exports.parseBlend = _chunkS55JFWDAcjs.parseBlend; exports.parseColor = parseColor; exports.parseCssColor = _chunkA2IS7EHEcjs.parseCssColor; exports.parseDataUrl = _chunkOLNIPTB3cjs.parseDataUrl; exports.parseEffectColor = _chunkB46UQUDCcjs.parseEffectColor; exports.parseLfx2 = _chunkS55JFWDAcjs.parseLfx2; exports.parseLrfx = _chunkS55JFWDAcjs.parseLrfx; exports.parseOpenTypeFont = _chunkLCCMOWR7cjs.parseOpenTypeFont; exports.parsePaintSource = _chunkPQ3H2AANcjs.parsePaintSource; exports.parsePatternBlock = _chunkS55JFWDAcjs.parsePatternBlock; exports.parseSelectionMode = _chunkSS53NNZOcjs.parseSelectionMode; exports.parseVersionedDescriptor = _chunkS55JFWDAcjs.parseVersionedDescriptor; exports.patchParagraphStyle = _chunkS55JFWDAcjs.patchParagraphStyle; exports.patchTextStyle = _chunkS55JFWDAcjs.patchTextStyle; exports.pathAnchorCount = pathAnchorCount; exports.pathBounds = pathBounds; exports.pathStrokeCoverage = _chunkPQ3H2AANcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkPQ3H2AANcjs.pathStrokeDabs; exports.pathSvgData = pathSvgData; exports.pathToSelection = pathToSelection; exports.perDabStrength = _chunk2ONK3ERDcjs.perDabStrength; exports.photoFilterMatrix = _chunkS55JFWDAcjs.photoFilterMatrix; exports.pigment8 = _chunkOLNIPTB3cjs.pigment8; exports.pigmentColor = _chunkXFYLA3ZOcjs.pigmentColor; exports.pigmentOf = _chunkXFYLA3ZOcjs.pigmentOf; exports.pixelLayerBounds = _chunkS55JFWDAcjs.pixelLayerBounds; exports.pixelLayers = _chunkS55JFWDAcjs.pixelLayers; exports.pixelPigment = _chunkXFYLA3ZOcjs.pixelPigment; exports.placeContents = _chunkS55JFWDAcjs.placeContents; exports.placeLayer = _chunkS55JFWDAcjs.placeLayer; exports.placementAt = _chunkS55JFWDAcjs.placementAt; exports.placementBounds = _chunkS55JFWDAcjs.placementBounds; exports.placementGeometry = _chunkS55JFWDAcjs.placementGeometry; exports.planImageToolPlayback = planImageToolPlayback; exports.planOutlineTrace = planOutlineTrace; exports.pngDataUrl = _chunkOLNIPTB3cjs.pngDataUrl; exports.pointerPressure = _chunkXFYLA3ZOcjs.pointerPressure; exports.pointerStrokeSample = _chunkXFYLA3ZOcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkXFYLA3ZOcjs.pointerStrokeSamples; exports.polygonCoverage = _chunkKALCIDWHcjs.polygonCoverage; exports.polygonCoverageBox = _chunkKALCIDWHcjs.polygonCoverageBox; exports.polygonSelection = _chunkKALCIDWHcjs.polygonSelection; exports.posterizeValue = _chunkS55JFWDAcjs.posterizeValue; exports.presetWarp = _chunkS55JFWDAcjs.presetWarp; exports.previewStep = previewStep; exports.profileBytes = profileBytes; exports.projectImagePoint = _chunkS55JFWDAcjs.projectImagePoint; exports.projectImageRect = _chunkS55JFWDAcjs.projectImageRect; exports.projectMaskCoverage = _chunkS55JFWDAcjs.projectMaskCoverage; exports.projectQuarterTurn = projectQuarterTurn; exports.proxyOf = _chunkOLNIPTB3cjs.proxyOf; exports.psdBytesFromBase64 = psdBytesFromBase64; exports.psdFileName = psdFileName; exports.psdPatternToEffectPattern = _chunkS55JFWDAcjs.psdPatternToEffectPattern; exports.psdToLayers = _chunkS55JFWDAcjs.psdToLayers; exports.pullWarpMesh = _chunkQAUIZPYIcjs.pullWarpMesh; exports.put255 = _chunkPQ3H2AANcjs.put255; exports.quadFrameOverlay = quadFrameOverlay; exports.quickMaskPixels = quickMaskPixels; exports.quickSelectStroke = _chunkKALCIDWHcjs.quickSelectStroke; exports.rand01 = _chunkPQ3H2AANcjs.rand01; exports.randSigned = _chunkPQ3H2AANcjs.randSigned; exports.rangeLightness = _chunkS55JFWDAcjs.rangeLightness; exports.rasterContents = _chunkS55JFWDAcjs.rasterContents; exports.rasterMaskFromLegacy = _chunkS55JFWDAcjs.rasterMaskFromLegacy; exports.rasterizeCoverage = _chunkS55JFWDAcjs.rasterizeCoverage; exports.rasterizeDab = _chunkPQ3H2AANcjs.rasterizeDab; exports.rasterizeSmartObject = _chunkS55JFWDAcjs.rasterizeSmartObject; exports.readAdjustmentControls = readAdjustmentControls; exports.readDeepRegion = _chunkOLNIPTB3cjs.readDeepRegion; exports.readEdgeColor = _chunkS55JFWDAcjs.readEdgeColor; exports.readPaintSource = _chunkPQ3H2AANcjs.readPaintSource; exports.readPaths = readPaths; exports.readPixel = _chunk474IQG74cjs.readPixel; exports.readPsd = _chunkS55JFWDAcjs.readPsd; exports.readRegion = _chunk474IQG74cjs.readRegion; exports.readShapeComponents = _chunkS55JFWDAcjs.readShapeComponents; exports.readSourceRegion = _chunk2ONK3ERDcjs.readSourceRegion; exports.rectSelection = _chunkKALCIDWHcjs.rectSelection; exports.rectToQuad = _chunkQT26RHKKcjs.rectToQuad; exports.reduceSurface = _chunkB46UQUDCcjs.reduceSurface; exports.referencePoint = _chunkS55JFWDAcjs.referencePoint; exports.refineCoverage = _chunkSS53NNZOcjs.refineCoverage; exports.refineEdgeHalo = _chunkSS53NNZOcjs.refineEdgeHalo; exports.refineSelection = _chunkSS53NNZOcjs.refineSelection; exports.reflectanceToRgb = _chunkOLNIPTB3cjs.reflectanceToRgb; exports.removeAlpha = _chunkS55JFWDAcjs.removeAlpha; exports.removeCurvePoint = removeCurvePoint; exports.removeLayer = _chunkS55JFWDAcjs.removeLayer; exports.removeLayerEffect = _chunkS55JFWDAcjs.removeLayerEffect; exports.removeLayerFilter = _chunkS55JFWDAcjs.removeLayerFilter; exports.removePaintGradientStop = _chunkPQ3H2AANcjs.removePaintGradientStop; exports.removeSmartFilter = _chunkS55JFWDAcjs.removeSmartFilter; exports.renderBrushstroke = _chunkPQ3H2AANcjs.renderBrushstroke; exports.renderLayerEffects = _chunkB46UQUDCcjs.renderLayerEffects; exports.renderLayeredBase = renderLayeredBase; exports.renderShape = _chunkS55JFWDAcjs.renderShape; exports.renderShapeRect = _chunkS55JFWDAcjs.renderShapeRect; exports.renderSmartObject = _chunkS55JFWDAcjs.renderSmartObject; exports.renderText = _chunkS55JFWDAcjs.renderText; exports.replaceContents = _chunkS55JFWDAcjs.replaceContents; exports.replaceTextRange = _chunkS55JFWDAcjs.replaceTextRange; exports.requireLayer = _chunkS55JFWDAcjs.requireLayer; exports.requireOperation = _chunkS55JFWDAcjs.requireOperation; exports.requireShapeLayer = _chunkS55JFWDAcjs.requireShapeLayer; exports.requireSmartObject = _chunkS55JFWDAcjs.requireSmartObject; exports.requireTypeLayer = _chunkS55JFWDAcjs.requireTypeLayer; exports.requireUnlocked = _chunkS55JFWDAcjs.requireUnlocked; exports.rerender = _chunkS55JFWDAcjs.rerender; exports.rerenderShape = _chunkS55JFWDAcjs.rerenderShape; exports.rerenderText = _chunkS55JFWDAcjs.rerenderText; exports.resizePixels = resizePixels; exports.resizeSelection = _chunkSS53NNZOcjs.resizeSelection; exports.resizeWarpMesh = _chunkQAUIZPYIcjs.resizeWarpMesh; exports.resolveExternalAssets = _chunkS55JFWDAcjs.resolveExternalAssets; exports.resolveMosaicRegionBounds = resolveMosaicRegionBounds; exports.resolvePaintGradient = _chunkPQ3H2AANcjs.resolvePaintGradient; exports.resolveProfile = resolveProfile; exports.resolveVectorMasks = _chunkS55JFWDAcjs.resolveVectorMasks; exports.restyleRange = _chunkQAUIZPYIcjs.restyleRange; exports.retouchFilter = _chunk2ONK3ERDcjs.retouchFilter; exports.reversePaintGradient = _chunkPQ3H2AANcjs.reversePaintGradient; exports.rgbToGray = _chunkS55JFWDAcjs.rgbToGray; exports.rgbToHsl = _chunkS55JFWDAcjs.rgbToHsl; exports.rgbToReflectance = _chunkOLNIPTB3cjs.rgbToReflectance; exports.rgbUnitToHex = rgbUnitToHex; exports.rgbaViewOfGrey = _chunk2ONK3ERDcjs.rgbaViewOfGrey; exports.runLayerFilters = _chunkS55JFWDAcjs.runLayerFilters; exports.runLayerFiltersFloat = _chunkS55JFWDAcjs.runLayerFiltersFloat; exports.runLayerMenuAction = runLayerMenuAction; exports.runSelectionJob = _chunkKALCIDWHcjs.runSelectionJob; exports.sameCanvasViewport = sameCanvasViewport; exports.sampleLut = _chunkS55JFWDAcjs.sampleLut; exports.sampleToneLut = _chunkS55JFWDAcjs.sampleToneLut; exports.saturationOf = _chunk2ONK3ERDcjs.saturationOf; exports.scaleLayerEffect = _chunkB46UQUDCcjs.scaleLayerEffect; exports.scalePaintGradient = _chunkPQ3H2AANcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunkPQ3H2AANcjs.seedFromString; exports.segmentToSelection = segmentToSelection; exports.segmentationOutlines = segmentationOutlines; exports.segmentsToSelection = segmentsToSelection; exports.selectObjectIn = _chunkKALCIDWHcjs.selectObjectIn; exports.selectSimilar = selectSimilar; exports.selectionArea = _chunkSS53NNZOcjs.selectionArea; exports.selectionDiffPixels = selectionDiffPixels; exports.selectionFromCoverage = _chunkSS53NNZOcjs.selectionFromCoverage; exports.selectionFromPixels = _chunkSS53NNZOcjs.selectionFromPixels; exports.selectionFromRegion = _chunkSS53NNZOcjs.selectionFromRegion; exports.selectionFromTiles = _chunkSS53NNZOcjs.selectionFromTiles; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.selectionOutline = selectionOutline; exports.selectionOutlinePaths = selectionOutlinePaths; exports.selectionRing = selectionRing; exports.selectionToCoverage = _chunkSS53NNZOcjs.selectionToCoverage; exports.selectionToPixels = _chunkSS53NNZOcjs.selectionToPixels; exports.selectionToSubpaths = selectionToSubpaths; exports.selectionUncertainty = selectionUncertainty; exports.selectionValueAt = _chunkSS53NNZOcjs.selectionValueAt; exports.serializeChannels = serializeChannels; exports.serializeColorMode = serializeColorMode; exports.serializeColorProfile = serializeColorProfile; exports.serializeContents = _chunkS55JFWDAcjs.serializeContents; exports.serializeEffects = _chunkS55JFWDAcjs.serializeEffects; exports.serializeLayer = _chunkS55JFWDAcjs.serializeLayer; exports.serializeLayers = _chunkS55JFWDAcjs.serializeLayers; exports.serializeLayersExternal = _chunkS55JFWDAcjs.serializeLayersExternal; exports.serializeMask = _chunkKALCIDWHcjs.serializeMask; exports.serializePaths = serializePaths; exports.serializePatterns = _chunkS55JFWDAcjs.serializePatterns; exports.serializeSelection = _chunkSS53NNZOcjs.serializeSelection; exports.setCloneTransformValue = setCloneTransformValue; exports.setControlPath = setControlPath; exports.setLayerEffects = _chunkS55JFWDAcjs.setLayerEffects; exports.setLayerEffectsEnabled = _chunkS55JFWDAcjs.setLayerEffectsEnabled; exports.setLayerMask = _chunkS55JFWDAcjs.setLayerMask; exports.setLayerProperties = _chunkS55JFWDAcjs.setLayerProperties; exports.setLum = _chunkOLNIPTB3cjs.setLum; exports.setPigmentColor = _chunkOLNIPTB3cjs.setPigmentColor; exports.setRetouchChoice = setRetouchChoice; exports.setSmartFilterMask = _chunkS55JFWDAcjs.setSmartFilterMask; exports.setSmartFiltersEnabled = _chunkS55JFWDAcjs.setSmartFiltersEnabled; exports.setSmartPlacement = _chunkS55JFWDAcjs.setSmartPlacement; exports.shadeTile = _chunkXFYLA3ZOcjs.shadeTile; exports.shapeAsPixelLayer = _chunkS55JFWDAcjs.shapeAsPixelLayer; exports.shapeFromAnnotation = _chunkS55JFWDAcjs.shapeFromAnnotation; exports.shapeGeometryBounds = _chunkS55JFWDAcjs.shapeGeometryBounds; exports.shapeLayers = _chunkS55JFWDAcjs.shapeLayers; exports.shapeOutline = _chunkS55JFWDAcjs.shapeOutline; exports.shapeRenderClip = _chunkS55JFWDAcjs.shapeRenderClip; exports.shiftCoverage = _chunkSS53NNZOcjs.shiftCoverage; exports.simplifyPixelPath = simplifyPixelPath; exports.skinToneRange = skinToneRange; exports.slicSuperpixels = _chunkKALCIDWHcjs.slicSuperpixels; exports.smartFilterRows = smartFilterRows; exports.smartObjectLayers = _chunkS55JFWDAcjs.smartObjectLayers; exports.smoothCoverage = _chunkSS53NNZOcjs.smoothCoverage; exports.smoothPoints = _chunkPQ3H2AANcjs.smoothPoints; exports.smoothnessWeights = _chunkKALCIDWHcjs.smoothnessWeights; exports.smudgeEffect = _chunk2ONK3ERDcjs.smudgeEffect; exports.snapPolygonToEdges = snapPolygonToEdges; exports.snapTo45 = snapTo45; exports.snapToEdge = snapToEdge; exports.softMaskToSelection = _chunkKALCIDWHcjs.softMaskToSelection; exports.solidPaint = _chunkPQ3H2AANcjs.solidPaint; exports.solidSurface = _chunk474IQG74cjs.solidSurface; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.spliceRuns = _chunkQAUIZPYIcjs.spliceRuns; exports.splitOverlayAnnotations = splitOverlayAnnotations; exports.sponge = _chunk2ONK3ERDcjs.sponge; exports.spongeEffect = _chunk2ONK3ERDcjs.spongeEffect; exports.spotHealPixels = _chunk2ONK3ERDcjs.spotHealPixels; exports.spotHealWindow = _chunk2ONK3ERDcjs.spotHealWindow; exports.srgb8ToLab = srgb8ToLab; exports.srgbByteToLinear = _chunkXFYLA3ZOcjs.srgbByteToLinear; exports.srgbDecode = _chunkOLNIPTB3cjs.srgbDecode; exports.srgbEncode = _chunkOLNIPTB3cjs.srgbEncode; exports.srgbToLinear = _chunkS55JFWDAcjs.srgbToLinear; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.startMarchingAnts = startMarchingAnts; exports.startSelectionWorker = _chunkKALCIDWHcjs.startSelectionWorker; exports.stepSlotTs = _chunkXFYLA3ZOcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPQ3H2AANcjs.strokeGrainCatch; exports.styleAt = _chunkQAUIZPYIcjs.styleAt; exports.subpathsToSvgPath = subpathsToSvgPath; exports.sumHistograms = sumHistograms; exports.superpixelSaliency = _chunkKALCIDWHcjs.superpixelSaliency; exports.surfaceBytes = _chunk474IQG74cjs.surfaceBytes; exports.surfaceDepth = _chunkOLNIPTB3cjs.surfaceDepth; exports.surfaceFromDeepPixels = _chunkOLNIPTB3cjs.surfaceFromDeepPixels; exports.surfaceFromPixels = _chunk474IQG74cjs.surfaceFromPixels; exports.surfacesEqual = _chunk474IQG74cjs.surfacesEqual; exports.tempTintToXy = _chunkS55JFWDAcjs.tempTintToXy; exports.temperatureToKelvin = _chunkS55JFWDAcjs.temperatureToKelvin; exports.textIndexAt = _chunkQAUIZPYIcjs.textIndexAt; exports.textMatrix = _chunkS55JFWDAcjs.textMatrix; exports.textOrientation = _chunkS55JFWDAcjs.textOrientation; exports.textOutlines = _chunkS55JFWDAcjs.textOutlines; exports.textRange = _chunkS55JFWDAcjs.textRange; exports.tileCoord = _chunk474IQG74cjs.tileCoord; exports.tileKey = _chunk474IQG74cjs.tileKey; exports.tileRect = _chunk474IQG74cjs.tileRect; exports.tileSamples = _chunkOLNIPTB3cjs.tileSamples; exports.tileSamples16 = _chunkOLNIPTB3cjs.tileSamples16; exports.tileSamples32 = _chunkOLNIPTB3cjs.tileSamples32; exports.tilesInRect = _chunk474IQG74cjs.tilesInRect; exports.tipFalloff = _chunkPQ3H2AANcjs.tipFalloff; exports.tipReach = _chunkPQ3H2AANcjs.tipReach; exports.tipShape = _chunkPQ3H2AANcjs.tipShape; exports.to16From32 = _chunkOLNIPTB3cjs.to16From32; exports.to16From8 = _chunkOLNIPTB3cjs.to16From8; exports.to32From16 = _chunkOLNIPTB3cjs.to32From16; exports.to32From8 = _chunkOLNIPTB3cjs.to32From8; exports.to8From16 = _chunkOLNIPTB3cjs.to8From16; exports.to8From32 = _chunkOLNIPTB3cjs.to8From32; exports.toHex = toHex; exports.toTextSpace = _chunkS55JFWDAcjs.toTextSpace; exports.toneCurve = _chunkS55JFWDAcjs.toneCurve; exports.toneLuts = _chunkS55JFWDAcjs.toneLuts; exports.toneOf = _chunk2ONK3ERDcjs.toneOf; exports.toneRange = toneRange; exports.transformHomography = _chunkS55JFWDAcjs.transformHomography; exports.transformMap = _chunkS55JFWDAcjs.transformMap; exports.transformShapeComponents = _chunkS55JFWDAcjs.transformShapeComponents; exports.transformSurface = _chunkB46UQUDCcjs.transformSurface; exports.transformTypeLayer = _chunkS55JFWDAcjs.transformTypeLayer; exports.transformVectorMask = _chunkS55JFWDAcjs.transformVectorMask; exports.transformedBounds = _chunkB46UQUDCcjs.transformedBounds; exports.transformedBox = _chunkS55JFWDAcjs.transformedBox; exports.transformedPoint = _chunkS55JFWDAcjs.transformedPoint; exports.translateLayer = _chunkS55JFWDAcjs.translateLayer; exports.translateSurface = _chunk474IQG74cjs.translateSurface; exports.typeAsPixelLayer = _chunkS55JFWDAcjs.typeAsPixelLayer; exports.typeFrame = _chunkS55JFWDAcjs.typeFrame; exports.typeFromAnnotation = _chunkS55JFWDAcjs.typeFromAnnotation; exports.typeLayerAt = typeLayerAt; exports.typeLayerName = _chunkS55JFWDAcjs.typeLayerName; exports.ungroupLayer = _chunkS55JFWDAcjs.ungroupLayer; exports.uniformTile = _chunk474IQG74cjs.uniformTile; exports.unionRect = _chunkS55JFWDAcjs.unionRect; exports.unprojectCanvasPoint = _chunkS55JFWDAcjs.unprojectCanvasPoint; exports.updateLayerEffect = _chunkS55JFWDAcjs.updateLayerEffect; exports.updateLayerFilter = _chunkS55JFWDAcjs.updateLayerFilter; exports.updateLayerMaskProps = _chunkS55JFWDAcjs.updateLayerMaskProps; exports.updatePaintGradientStop = _chunkPQ3H2AANcjs.updatePaintGradientStop; exports.updateShapeLayer = _chunkS55JFWDAcjs.updateShapeLayer; exports.updateSmartFilter = _chunkS55JFWDAcjs.updateSmartFilter; exports.updateTypeLayer = _chunkS55JFWDAcjs.updateTypeLayer; exports.upscaleRegion = _chunkKALCIDWHcjs.upscaleRegion; exports.userErrorMessage = _chunkS55JFWDAcjs.userErrorMessage; exports.uvToXy = _chunkS55JFWDAcjs.uvToXy; exports.validateEffectGradient = _chunkB46UQUDCcjs.validateEffectGradient; exports.validateLayerEffect = _chunkB46UQUDCcjs.validateLayerEffect; exports.validateLayerEffects = _chunkB46UQUDCcjs.validateLayerEffects; exports.vectorMaskBounds = _chunkS55JFWDAcjs.vectorMaskBounds; exports.vectorMaskCoverage = _chunkS55JFWDAcjs.vectorMaskCoverage; exports.vectorMaskThumbnail = _chunkS55JFWDAcjs.vectorMaskThumbnail; exports.vectorMaskThumbnailClick = vectorMaskThumbnailClick; exports.versionedDescriptorBytes = _chunkS55JFWDAcjs.versionedDescriptorBytes; exports.vibranceLinear = _chunkS55JFWDAcjs.vibranceLinear; exports.vibrancePixel = _chunkS55JFWDAcjs.vibrancePixel; exports.walkDabs = _chunkPQ3H2AANcjs.walkDabs; exports.warpMeshEditPoints = _chunkQAUIZPYIcjs.warpMeshEditPoints; exports.warpMeshGridCurves = _chunkQAUIZPYIcjs.warpMeshGridCurves; exports.warpMeshParamAt = _chunkQAUIZPYIcjs.warpMeshParamAt; exports.warpPresetMesh = _chunkQAUIZPYIcjs.warpPresetMesh; exports.warpSurface = _chunkB46UQUDCcjs.warpSurface; exports.watchCanvasViewport = watchCanvasViewport; exports.wbMatrix = _chunkS55JFWDAcjs.wbMatrix; exports.wetGpuSupport = _chunkXFYLA3ZOcjs.wetGpuSupport; exports.wetSimdSupported = _chunkXFYLA3ZOcjs.wetSimdSupported; exports.wetSupport = _chunkXFYLA3ZOcjs.wetSupport; exports.whiteBalanceFromSample = _chunkS55JFWDAcjs.whiteBalanceFromSample; exports.whiteBalanceMatrix = _chunkS55JFWDAcjs.whiteBalanceMatrix; exports.withBackgroundOpacity = withBackgroundOpacity; exports.withFilterMaskSurface = _chunkS55JFWDAcjs.withFilterMaskSurface; exports.withImagePlayback = withImagePlayback; exports.withNewIds = _chunkS55JFWDAcjs.withNewIds; exports.workImage = _chunkKALCIDWHcjs.workImage; exports.workLuma = _chunkKALCIDWHcjs.workLuma; exports.workPlanes = _chunkKALCIDWHcjs.workPlanes; exports.writeAdjustmentBlock = _chunkS55JFWDAcjs.writeAdjustmentBlock; exports.writeDeepRegion = _chunkOLNIPTB3cjs.writeDeepRegion; exports.writeLfx2 = _chunkS55JFWDAcjs.writeLfx2; exports.writePatternBlock = _chunkS55JFWDAcjs.writePatternBlock; exports.writePsd = _chunkS55JFWDAcjs.writePsd; exports.writeRegion = _chunk474IQG74cjs.writeRegion; exports.xyToTempTint = _chunkS55JFWDAcjs.xyToTempTint; exports.xyToUv = _chunkS55JFWDAcjs.xyToUv;