@pixerate/editor 0.213.0 → 0.214.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.
@@ -1048,7 +1048,7 @@ var MARCHING_ANTS_STEP_MS = 100;
1048
1048
  function prefersReducedMotion() {
1049
1049
  try {
1050
1050
  return typeof matchMedia === "function" && matchMedia("(prefers-reduced-motion: reduce)").matches;
1051
- } catch (e2) {
1051
+ } catch (e3) {
1052
1052
  return false;
1053
1053
  }
1054
1054
  }
@@ -1262,7 +1262,7 @@ var ImageCache = (_class = class {constructor() { _class.prototype.__init.call(t
1262
1262
  Object.defineProperty(img, "naturalWidth", { value: 800, configurable: true });
1263
1263
  Object.defineProperty(img, "naturalHeight", { value: 600, configurable: true });
1264
1264
  Object.defineProperty(img, "complete", { value: true, configurable: true });
1265
- } catch (e3) {
1265
+ } catch (e4) {
1266
1266
  }
1267
1267
  this.cache.set(src, img);
1268
1268
  resolve(img);
@@ -1471,7 +1471,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1471
1471
  ctx.clip();
1472
1472
  if (maskView.mode === "gray") this.drawMaskGray(ctx, mask);
1473
1473
  else this.drawMaskOverlay(ctx, mask, { color: [255, 0, 0], opacity: 0.5, indicates: "masked" });
1474
- } catch (e4) {
1474
+ } catch (e5) {
1475
1475
  }
1476
1476
  ctx.restore();
1477
1477
  }
@@ -1486,7 +1486,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1486
1486
  ctx.rect(region.x, region.y, region.width, region.height);
1487
1487
  ctx.clip();
1488
1488
  for (const c of shownChannels) this.drawMaskOverlay(ctx, c.mask, { color: hexRgb(c.color), opacity: c.opacity, indicates: c.indicates });
1489
- } catch (e5) {
1489
+ } catch (e6) {
1490
1490
  }
1491
1491
  ctx.restore();
1492
1492
  }
@@ -1504,7 +1504,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1504
1504
  else if (_optionalChain([shownSel, 'optionalAccess', _19 => _19.bounds]) && display === "quickMask") this.drawQuickMask(ctx, shownSel);
1505
1505
  else if (_optionalChain([shownSel, 'optionalAccess', _20 => _20.bounds]) && display === "ants") this.drawAnts(ctx, shownSel, projection.scale / u, _nullishCoalesce(options.antsOffset, () => ( 0)));
1506
1506
  if (_optionalChain([options, 'access', _21 => _21.draftSelectionPath, 'optionalAccess', _22 => _22.length])) this.drawDraftPath(ctx, options.draftSelectionPath, projection.scale / u);
1507
- } catch (e6) {
1507
+ } catch (e7) {
1508
1508
  }
1509
1509
  ctx.restore();
1510
1510
  }
@@ -1522,7 +1522,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1522
1522
  ctx.lineWidth = px2;
1523
1523
  ctx.strokeStyle = "#ffffff";
1524
1524
  ctx.stroke();
1525
- } catch (e7) {
1525
+ } catch (e8) {
1526
1526
  }
1527
1527
  ctx.restore();
1528
1528
  }
@@ -1543,7 +1543,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1543
1543
  ctx.lineWidth = u;
1544
1544
  ctx.strokeStyle = "#ffffff";
1545
1545
  ctx.stroke();
1546
- } catch (e8) {
1546
+ } catch (e9) {
1547
1547
  }
1548
1548
  ctx.restore();
1549
1549
  }
@@ -1582,7 +1582,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1582
1582
  ctx.strokeStyle = "#111827";
1583
1583
  ctx.stroke();
1584
1584
  }
1585
- } catch (e9) {
1585
+ } catch (e10) {
1586
1586
  }
1587
1587
  ctx.restore();
1588
1588
  }
@@ -1648,7 +1648,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1648
1648
  ctx.lineWidth = 1.5 * u;
1649
1649
  ctx.strokeStyle = OVERLAY_HANDLE_EDGE;
1650
1650
  ctx.stroke();
1651
- } catch (e10) {
1651
+ } catch (e11) {
1652
1652
  }
1653
1653
  ctx.restore();
1654
1654
  }
@@ -1705,7 +1705,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1705
1705
  ctx.setLineDash([4 * u, 3 * u]);
1706
1706
  ctx.strokeRect(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
1707
1707
  }
1708
- } catch (e11) {
1708
+ } catch (e12) {
1709
1709
  }
1710
1710
  ctx.restore();
1711
1711
  }
@@ -1773,7 +1773,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1773
1773
  _chunkH65IBXFIcjs.applyDepthMask.call(void 0, imageData, maskData, depthMask);
1774
1774
  }
1775
1775
  }
1776
- } catch (e12) {
1776
+ } catch (e13) {
1777
1777
  }
1778
1778
  }
1779
1779
  _optionalChain([onPixels, 'optionalCall', _27 => _27(imageData)]);
@@ -1835,14 +1835,14 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1835
1835
  this.depthMaps.set(key2, { width, height, data: data.data });
1836
1836
  this.assetVersion++;
1837
1837
  }
1838
- } catch (e13) {
1838
+ } catch (e14) {
1839
1839
  }
1840
1840
  }
1841
1841
  if (l.type === "annotation" && l.annotation.type === "image" && !this.imageCache.peek(l.annotation.src)) {
1842
1842
  try {
1843
1843
  await this.imageCache.get(l.annotation.src);
1844
1844
  this.assetVersion++;
1845
- } catch (e14) {
1845
+ } catch (e15) {
1846
1846
  }
1847
1847
  }
1848
1848
  }
@@ -1870,7 +1870,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
1870
1870
  this.drawAnnotationShape(ctx, annotation, img);
1871
1871
  ctx.setTransform(1, 0, 0, 1, 0, 0);
1872
1872
  return new Uint8ClampedArray(ctx.getImageData(0, 0, rect2.width, rect2.height).data);
1873
- } catch (e15) {
1873
+ } catch (e16) {
1874
1874
  return null;
1875
1875
  }
1876
1876
  }
@@ -2124,7 +2124,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
2124
2124
  _chunkOLNIPTB3cjs.blendImageData.call(void 0, backdrop, source, _chunkOLNIPTB3cjs.normalizeBlendMode.call(void 0, ann.blend));
2125
2125
  lctx.setTransform(1, 0, 0, 1, 0, 0);
2126
2126
  lctx.putImageData(backdrop, 0, 0);
2127
- } catch (e16) {
2127
+ } catch (e17) {
2128
2128
  return false;
2129
2129
  }
2130
2130
  ctx.save();
@@ -2140,7 +2140,7 @@ var ImageEditorRenderer = (_class2 = class {constructor() { _class2.prototype.__
2140
2140
  if (ann.type === "image") {
2141
2141
  try {
2142
2142
  img = await this.imageCache.get(ann.src);
2143
- } catch (e17) {
2143
+ } catch (e18) {
2144
2144
  }
2145
2145
  }
2146
2146
  this.drawAnnotationShape(ctx, ann, img);
@@ -2566,6 +2566,423 @@ function hexRgb(hex) {
2566
2566
  return [v >> 16 & 255, v >> 8 & 255, v & 255];
2567
2567
  }
2568
2568
 
2569
+ // src/image-editor/selection/inspect.ts
2570
+ var MASK_EDGE_THRESHOLDS = { halo: 0.35, alignment: 0.5, jaggedness: 15, soft: 0.9 };
2571
+ var STRONG_EDGE = 0.1;
2572
+ function toLab(r, g, b) {
2573
+ const lin = (v) => {
2574
+ v /= 255;
2575
+ return v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
2576
+ };
2577
+ const R = lin(r);
2578
+ const G = lin(g);
2579
+ const B = lin(b);
2580
+ const f = (t) => t > 8856e-6 ? Math.cbrt(t) : 7.787 * t + 16 / 116;
2581
+ const x = f((0.4124 * R + 0.3576 * G + 0.1805 * B) / 0.95047);
2582
+ const y = f(0.2126 * R + 0.7152 * G + 0.0722 * B);
2583
+ const z = f((0.0193 * R + 0.1192 * G + 0.9505 * B) / 1.08883);
2584
+ return [116 * y - 16, 500 * (x - y), 200 * (y - z)];
2585
+ }
2586
+ var dist = (a, b) => Math.hypot(a[0] - b[0], a[1] - b[1], a[2] - b[2]);
2587
+ var r3 = (v) => Math.round(v * 1e3) / 1e3;
2588
+ function inspectMaskEdge(mask, image, options = {}) {
2589
+ const b = mask.bounds;
2590
+ if (!b) throw new Error("The mask is empty: there is no edge to inspect.");
2591
+ const minArea = Math.max(1, _nullishCoalesce(options.minArea, () => ( 16)));
2592
+ const W = mask.width;
2593
+ const H = mask.height;
2594
+ const a = mask.data;
2595
+ const alpha = (x, y) => x < 0 || y < 0 || x >= W || y >= H ? 0 : a[y * W + x];
2596
+ const img = image.data;
2597
+ const rgb = (x, y) => {
2598
+ const ix = x - image.x;
2599
+ const iy = y - image.y;
2600
+ if (ix < 0 || iy < 0 || ix >= image.width || iy >= image.height) return null;
2601
+ const i = (iy * image.width + ix) * 4;
2602
+ if (img[i + 3] < 128) return null;
2603
+ return [img[i], img[i + 1], img[i + 2]];
2604
+ };
2605
+ const premul = (x, y, c) => {
2606
+ const ix = Math.min(image.width - 1, Math.max(0, x - image.x));
2607
+ const iy = Math.min(image.height - 1, Math.max(0, y - image.y));
2608
+ const i = (iy * image.width + ix) * 4;
2609
+ return img[i + c] * img[i + 3] / 255;
2610
+ };
2611
+ const gradCache = /* @__PURE__ */ new Map();
2612
+ const gradient = (x, y) => {
2613
+ const k = y * W + x;
2614
+ const hit = gradCache.get(k);
2615
+ if (hit !== void 0) return hit;
2616
+ let best = 0;
2617
+ for (let c = 0; c < 3; c++) {
2618
+ const p = (dx, dy) => premul(x + dx, y + dy, c);
2619
+ const gx = p(1, -1) + 2 * p(1, 0) + p(1, 1) - p(-1, -1) - 2 * p(-1, 0) - p(-1, 1);
2620
+ const gy = p(-1, 1) + 2 * p(0, 1) + p(1, 1) - p(-1, -1) - 2 * p(0, -1) - p(1, -1);
2621
+ best = Math.max(best, Math.hypot(gx, gy) / 1020);
2622
+ }
2623
+ gradCache.set(k, best);
2624
+ return best;
2625
+ };
2626
+ const B = Math.min(256, Math.max(24, Math.round(Math.max(W, H) / 12)));
2627
+ const BW = Math.ceil(W / B);
2628
+ const blocks = /* @__PURE__ */ new Map();
2629
+ const block = (x, y) => {
2630
+ const k = Math.floor(y / B) * BW + Math.floor(x / B);
2631
+ let blk = blocks.get(k);
2632
+ if (!blk) blocks.set(k, blk = { edge: 0, aligned: 0, halo: 0, haloN: 0, turn: 0, len: 0, x0: Infinity, y0: Infinity, x1: -Infinity, y1: -Infinity });
2633
+ return blk;
2634
+ };
2635
+ const grow = (blk, x, y) => {
2636
+ blk.x0 = Math.min(blk.x0, x);
2637
+ blk.y0 = Math.min(blk.y0, y);
2638
+ blk.x1 = Math.max(blk.x1, x);
2639
+ blk.y1 = Math.max(blk.y1, y);
2640
+ };
2641
+ const x0 = Math.max(0, b.x - 1);
2642
+ const y0 = Math.max(0, b.y - 1);
2643
+ const x1 = Math.min(W, b.x + b.width + 1);
2644
+ const y1 = Math.min(H, b.y + b.height + 1);
2645
+ let area = 0;
2646
+ let edgeLength = 0;
2647
+ let aligned = 0;
2648
+ let haloSum = 0;
2649
+ let haloN = 0;
2650
+ let band = 0;
2651
+ let soft = 0;
2652
+ for (let y = y0; y < y1; y++) {
2653
+ for (let x = x0; x < x1; x++) {
2654
+ const v = a[y * W + x];
2655
+ if (v >= 128) area++;
2656
+ let lo = false;
2657
+ let hi = false;
2658
+ for (let dy = -1; dy <= 1; dy++) {
2659
+ for (let dx = -1; dx <= 1; dx++) {
2660
+ const nx = x + dx;
2661
+ const ny = y + dy;
2662
+ if (nx < 0 || ny < 0 || nx >= W || ny >= H) continue;
2663
+ if (a[ny * W + nx] >= 128) hi = true;
2664
+ else lo = true;
2665
+ }
2666
+ }
2667
+ const partial = v > 0 && v < 255;
2668
+ if (hi && lo || partial) {
2669
+ band++;
2670
+ if (partial) soft++;
2671
+ }
2672
+ if (v < 128) continue;
2673
+ const inCanvasLow = (nx, ny) => nx >= 0 && ny >= 0 && nx < W && ny < H && a[ny * W + nx] < 128;
2674
+ if (!(inCanvasLow(x - 1, y) || inCanvasLow(x + 1, y) || inCanvasLow(x, y - 1) || inCanvasLow(x, y + 1))) continue;
2675
+ edgeLength++;
2676
+ const blk = block(x, y);
2677
+ blk.edge++;
2678
+ grow(blk, x, y);
2679
+ let strong = false;
2680
+ for (let dy = -2; dy <= 2 && !strong; dy++) {
2681
+ for (let dx = -2; dx <= 2 && !strong; dx++) {
2682
+ const nx = x + dx;
2683
+ const ny = y + dy;
2684
+ if (nx >= 0 && ny >= 0 && nx < W && ny < H && gradient(nx, ny) >= STRONG_EDGE) strong = true;
2685
+ }
2686
+ }
2687
+ if (strong) {
2688
+ aligned++;
2689
+ blk.aligned++;
2690
+ }
2691
+ const s = (dx, dy) => alpha(Math.min(W - 1, Math.max(0, x + dx)), Math.min(H - 1, Math.max(0, y + dy)));
2692
+ const gx = s(1, -1) + 2 * s(1, 0) + s(1, 1) - s(-1, -1) - 2 * s(-1, 0) - s(-1, 1);
2693
+ const gy = s(-1, 1) + 2 * s(0, 1) + s(1, 1) - s(-1, -1) - 2 * s(0, -1) - s(1, -1);
2694
+ const len = Math.hypot(gx, gy);
2695
+ if (len < 1e-6) continue;
2696
+ const ux = gx / len;
2697
+ const uy = gy / len;
2698
+ const at = (d) => rgb(Math.round(x + ux * d), Math.round(y + uy * d));
2699
+ const ring = at(1.5);
2700
+ const deep = at(5);
2701
+ const out = at(-3);
2702
+ if (!ring || !deep || !out) continue;
2703
+ const labOut = toLab(...out);
2704
+ const span = dist(toLab(...deep), labOut);
2705
+ if (span < 10) continue;
2706
+ const h = Math.min(1, Math.max(0, 1 - dist(toLab(...ring), labOut) / span));
2707
+ haloSum += h;
2708
+ haloN++;
2709
+ blk.halo += h;
2710
+ blk.haloN++;
2711
+ }
2712
+ }
2713
+ let turnExcess = 0;
2714
+ let outline = 0;
2715
+ for (const loop of traceLoops(a, W, H, x0 - 1, y0 - 1, x1 + 1, y1 + 1)) {
2716
+ const pts = resample(loop, 2);
2717
+ const n = pts.length;
2718
+ if (n < 6) continue;
2719
+ const L = n * 2;
2720
+ let total = 0;
2721
+ let net = 0;
2722
+ const turns = [];
2723
+ for (let i = 0; i < n; i++) {
2724
+ const p0 = pts[(i + n - 1) % n];
2725
+ const p1 = pts[i];
2726
+ const p2 = pts[(i + 1) % n];
2727
+ let d = Math.atan2(p2[1] - p1[1], p2[0] - p1[0]) - Math.atan2(p1[1] - p0[1], p1[0] - p0[0]);
2728
+ while (d > Math.PI) d -= 2 * Math.PI;
2729
+ while (d <= -Math.PI) d += 2 * Math.PI;
2730
+ turns.push(d);
2731
+ total += Math.abs(d);
2732
+ net += d;
2733
+ }
2734
+ const closure = Math.abs(net);
2735
+ turnExcess += Math.max(0, total - closure);
2736
+ outline += L;
2737
+ for (let i = 0; i < n; i++) {
2738
+ const [px2, py] = pts[i];
2739
+ if (px2 < 0 || py < 0 || px2 >= W || py >= H) continue;
2740
+ const blk = block(Math.floor(px2), Math.floor(py));
2741
+ blk.turn += Math.abs(turns[i]) - closure / n;
2742
+ blk.len += 2;
2743
+ }
2744
+ }
2745
+ const jaggedness = outline ? 100 * turnExcess / outline : 0;
2746
+ const { holes, islands } = regions(a, W, H, b, minArea);
2747
+ const haloScore = haloN ? haloSum / haloN : 0;
2748
+ const edgeAlignment = edgeLength ? aligned / edgeLength : 0;
2749
+ const softFraction = band ? soft / band : 0;
2750
+ const T2 = MASK_EDGE_THRESHOLDS;
2751
+ const candidates = [];
2752
+ const pad = (r) => {
2753
+ const px0 = Math.max(0, r.x - 8);
2754
+ const py0 = Math.max(0, r.y - 8);
2755
+ return { x: px0, y: py0, width: Math.min(W, r.x + r.width + 8) - px0, height: Math.min(H, r.y + r.height + 8) - py0 };
2756
+ };
2757
+ for (const blk of blocks.values()) {
2758
+ if (blk.edge < 8) continue;
2759
+ const bounds = pad({ x: blk.x0, y: blk.y0, width: blk.x1 - blk.x0 + 1, height: blk.y1 - blk.y0 + 1 });
2760
+ const opts = [];
2761
+ if (blk.haloN >= 8) {
2762
+ const h = blk.halo / blk.haloN;
2763
+ if (h >= T2.halo) opts.push({ severity: h, reason: `halo ${r3(h)}: the colour just inside the edge matches the background` });
2764
+ }
2765
+ const al = blk.aligned / blk.edge;
2766
+ if (al < T2.alignment) opts.push({ severity: (1 - al) * 0.9, reason: `alignment ${r3(al)}: the edge is off the image's edges` });
2767
+ if (blk.len >= 16) {
2768
+ const j = 100 * Math.max(0, blk.turn) / blk.len;
2769
+ if (j >= T2.jaggedness) opts.push({ severity: Math.min(1, j / (4 * T2.jaggedness)), reason: `jaggedness ${r3(j)}: the outline zigzags` });
2770
+ }
2771
+ const top = opts.sort((p, q) => q.severity - p.severity)[0];
2772
+ if (top) candidates.push({ ...top, bounds });
2773
+ }
2774
+ const imageArea = W * H;
2775
+ for (const r of holes.largest) candidates.push({ severity: Math.min(0.95, 0.5 + r.area / (0.01 * imageArea)), bounds: pad(r.bounds), reason: `hole of ${r.area} px inside the selection` });
2776
+ for (const r of islands.largest) candidates.push({ severity: Math.min(0.95, 0.5 + r.area / (0.01 * imageArea)), bounds: pad(r.bounds), reason: `island of ${r.area} px apart from the main selection` });
2777
+ const worst = candidates.sort((p, q) => q.severity - p.severity).slice(0, 5).map(({ bounds, reason }) => ({ bounds, reason }));
2778
+ const issues = [];
2779
+ if (haloScore >= T2.halo)
2780
+ issues.push(`Halo (haloScore ${r3(haloScore)} \u2265 ${T2.halo}): background colour is left inside the edge. Contract the edge (modify_selection contract 1\u20132 px, or refine_selection shiftEdge -20 to -40), or decontaminate on a new-layer output.`);
2781
+ if (edgeLength >= 16 && edgeAlignment < T2.alignment)
2782
+ issues.push(`Off the image's edges (edgeAlignment ${r3(edgeAlignment)} < ${T2.alignment}): much of the edge does not follow edges in the image. Rebuild it with select_subject, select_object or quick_select, or refine_selection with a larger radius.`);
2783
+ if (jaggedness >= T2.jaggedness) issues.push(`Jagged (jaggedness ${r3(jaggedness)} \u2265 ${T2.jaggedness}): the outline zigzags. Smooth it (refine_selection smooth 20\u201340, or modify_selection smooth).`);
2784
+ if (softFraction >= T2.soft && edgeAlignment >= T2.alignment)
2785
+ issues.push(`Very soft (softFraction ${r3(softFraction)} \u2265 ${T2.soft}): almost the whole edge is partly selected. If the subject has hard edges, raise refine_selection contrast or lower feather.`);
2786
+ if (holes.count) issues.push(`${holes.count} hole(s) (${holes.totalArea} px) inside the selection. If they belong to the subject, fill them (quick_select or select_polygon with mode add).`);
2787
+ if (islands.count) issues.push(`${islands.count} island(s) (${islands.totalArea} px) apart from the main selection. If they are stray, remove them (select_polygon or quick_select with mode subtract).`);
2788
+ return {
2789
+ area,
2790
+ bounds: { ...b },
2791
+ edgeLength,
2792
+ haloScore: r3(haloScore),
2793
+ edgeAlignment: r3(edgeAlignment),
2794
+ jaggedness: r3(jaggedness),
2795
+ softFraction: r3(softFraction),
2796
+ holes,
2797
+ islands,
2798
+ worst,
2799
+ issues
2800
+ };
2801
+ }
2802
+ function traceLoops(a, W, H, rx0, ry0, rx1, ry1) {
2803
+ const w = rx1 - rx0;
2804
+ const h = ry1 - ry0;
2805
+ const f = (i, j) => {
2806
+ const x = rx0 + i;
2807
+ const y = ry0 + j;
2808
+ return x < 0 || y < 0 || x >= W || y >= H ? 0 : a[y * W + x];
2809
+ };
2810
+ const on = (i, j) => f(i, j) >= 128;
2811
+ const V = w * h;
2812
+ const point = (id) => {
2813
+ const vertical = id >= V;
2814
+ const k = vertical ? id - V : id;
2815
+ const i = k % w;
2816
+ const j = (k - i) / w;
2817
+ const p = f(i, j);
2818
+ const q = vertical ? f(i, j + 1) : f(i + 1, j);
2819
+ const t = q === p ? 0.5 : Math.min(1, Math.max(0, (127.5 - p) / (q - p)));
2820
+ return vertical ? [rx0 + i, ry0 + j + t] : [rx0 + i + t, ry0 + j];
2821
+ };
2822
+ const segs = [];
2823
+ const touch = /* @__PURE__ */ new Map();
2824
+ const add2 = (e1, e2) => {
2825
+ const s = segs.length / 2;
2826
+ segs.push(e1, e2);
2827
+ for (const e of [e1, e2]) {
2828
+ const list = touch.get(e);
2829
+ if (list) list.push(s);
2830
+ else touch.set(e, [s]);
2831
+ }
2832
+ };
2833
+ for (let j = 0; j < h - 1; j++) {
2834
+ for (let i = 0; i < w - 1; i++) {
2835
+ const c = (on(i, j) ? 1 : 0) | (on(i + 1, j) ? 2 : 0) | (on(i + 1, j + 1) ? 4 : 0) | (on(i, j + 1) ? 8 : 0);
2836
+ if (c === 0 || c === 15) continue;
2837
+ const top = j * w + i;
2838
+ const bottom = (j + 1) * w + i;
2839
+ const left = V + j * w + i;
2840
+ const right = V + j * w + i + 1;
2841
+ const centre = (f(i, j) + f(i + 1, j) + f(i + 1, j + 1) + f(i, j + 1)) / 4 >= 128;
2842
+ switch (c) {
2843
+ case 1:
2844
+ case 14:
2845
+ add2(left, top);
2846
+ break;
2847
+ case 2:
2848
+ case 13:
2849
+ add2(top, right);
2850
+ break;
2851
+ case 3:
2852
+ case 12:
2853
+ add2(left, right);
2854
+ break;
2855
+ case 4:
2856
+ case 11:
2857
+ add2(right, bottom);
2858
+ break;
2859
+ case 6:
2860
+ case 9:
2861
+ add2(top, bottom);
2862
+ break;
2863
+ case 7:
2864
+ case 8:
2865
+ add2(left, bottom);
2866
+ break;
2867
+ case 5:
2868
+ if (centre) {
2869
+ add2(top, right);
2870
+ add2(left, bottom);
2871
+ } else {
2872
+ add2(left, top);
2873
+ add2(right, bottom);
2874
+ }
2875
+ break;
2876
+ case 10:
2877
+ if (centre) {
2878
+ add2(left, top);
2879
+ add2(right, bottom);
2880
+ } else {
2881
+ add2(top, right);
2882
+ add2(left, bottom);
2883
+ }
2884
+ break;
2885
+ }
2886
+ }
2887
+ }
2888
+ const used = new Uint8Array(segs.length / 2);
2889
+ const loops = [];
2890
+ for (let s0 = 0; s0 < used.length; s0++) {
2891
+ if (used[s0]) continue;
2892
+ const loop = [];
2893
+ let s = s0;
2894
+ let from = segs[s * 2];
2895
+ while (!used[s]) {
2896
+ used[s] = 1;
2897
+ loop.push(point(from));
2898
+ const to = segs[s * 2] === from ? segs[s * 2 + 1] : segs[s * 2];
2899
+ const next = touch.get(to).find((t) => !used[t]);
2900
+ from = to;
2901
+ if (next === void 0) break;
2902
+ s = next;
2903
+ }
2904
+ loops.push(loop);
2905
+ }
2906
+ return loops;
2907
+ }
2908
+ function resample(loop, step) {
2909
+ const n = loop.length;
2910
+ if (n < 2) return [];
2911
+ const out = [loop[0]];
2912
+ let carry = 0;
2913
+ for (let i = 0; i < n; i++) {
2914
+ const [ax, ay] = loop[i];
2915
+ const [bx, by] = loop[(i + 1) % n];
2916
+ const seg = Math.hypot(bx - ax, by - ay);
2917
+ let t = step - carry;
2918
+ while (t <= seg) {
2919
+ out.push([ax + (bx - ax) * t / seg, ay + (by - ay) * t / seg]);
2920
+ t += step;
2921
+ }
2922
+ carry = seg - (t - step);
2923
+ }
2924
+ if (out.length > 1 && Math.hypot(out[out.length - 1][0] - out[0][0], out[out.length - 1][1] - out[0][1]) < step / 2) out.pop();
2925
+ return out;
2926
+ }
2927
+ function regions(a, W, H, b, minArea) {
2928
+ const x0 = b.x - 1;
2929
+ const y0 = b.y - 1;
2930
+ const w = b.width + 2;
2931
+ const h = b.height + 2;
2932
+ const on = (i, j) => {
2933
+ const x = x0 + i;
2934
+ const y = y0 + j;
2935
+ return x >= 0 && y >= 0 && x < W && y < H && a[y * W + x] >= 128;
2936
+ };
2937
+ const label = new Int32Array(w * h);
2938
+ const stack = new Int32Array(w * h);
2939
+ const found = [];
2940
+ const N4 = [[1, 0], [-1, 0], [0, 1], [0, -1]];
2941
+ const N8 = [...N4, [1, 1], [1, -1], [-1, 1], [-1, -1]];
2942
+ for (let start = 0; start < w * h; start++) {
2943
+ if (label[start]) continue;
2944
+ const si = start % w;
2945
+ const sj = (start - si) / w;
2946
+ const fg = on(si, sj);
2947
+ const id = found.length + 1;
2948
+ const r = { fg, area: 0, bx0: si, by0: sj, bx1: si, by1: sj, outer: false };
2949
+ let top = 0;
2950
+ stack[top++] = start;
2951
+ label[start] = id;
2952
+ while (top) {
2953
+ const k = stack[--top];
2954
+ const i = k % w;
2955
+ const j = (k - i) / w;
2956
+ r.area++;
2957
+ if (i < r.bx0) r.bx0 = i;
2958
+ if (i > r.bx1) r.bx1 = i;
2959
+ if (j < r.by0) r.by0 = j;
2960
+ if (j > r.by1) r.by1 = j;
2961
+ if (i === 0 || j === 0 || i === w - 1 || j === h - 1) r.outer = true;
2962
+ for (const [dx, dy] of fg ? N8 : N4) {
2963
+ const ni = i + dx;
2964
+ const nj = j + dy;
2965
+ if (ni < 0 || nj < 0 || ni >= w || nj >= h) continue;
2966
+ const nk = nj * w + ni;
2967
+ if (label[nk] || on(ni, nj) !== fg) continue;
2968
+ label[nk] = id;
2969
+ stack[top++] = nk;
2970
+ }
2971
+ }
2972
+ found.push(r);
2973
+ }
2974
+ const box = (r) => ({ x: x0 + r.bx0, y: y0 + r.by0, width: r.bx1 - r.bx0 + 1, height: r.by1 - r.by0 + 1 });
2975
+ const summarize = (list) => {
2976
+ const kept = list.filter((r) => r.area >= minArea).sort((p, q) => q.area - p.area);
2977
+ return { count: kept.length, totalArea: kept.reduce((s, r) => s + r.area, 0), largest: kept.slice(0, 10).map((r) => ({ area: r.area, bounds: box(r) })) };
2978
+ };
2979
+ const pieces = found.filter((r) => r.fg).sort((p, q) => q.area - p.area);
2980
+ return {
2981
+ holes: summarize(found.filter((r) => !r.fg && !r.outer)),
2982
+ islands: summarize(pieces.slice(1))
2983
+ };
2984
+ }
2985
+
2569
2986
  // src/image-editor/selection/path.ts
2570
2987
  function selectionToSubpaths(mask, options = {}) {
2571
2988
  const b = mask.bounds;
@@ -2854,19 +3271,19 @@ function liveWire(map, from, to, band) {
2854
3271
  }
2855
3272
  }
2856
3273
  const scale = maxStrength > 0 ? 1 / maxStrength : 0;
2857
- const dist = new Float64Array(n).fill(Infinity);
3274
+ const dist2 = new Float64Array(n).fill(Infinity);
2858
3275
  const prev = new Int32Array(n).fill(-1);
2859
3276
  const done = new Uint8Array(n);
2860
3277
  const start = (ay - ry0) * w + (ax - rx0);
2861
3278
  const goal = (by - ry0) * w + (bx - rx0);
2862
- dist[start] = 0;
3279
+ dist2[start] = 0;
2863
3280
  const heap = new Heap();
2864
3281
  heap.push(start, 0);
2865
3282
  while (heap.size) {
2866
3283
  const p = heap.topId;
2867
3284
  const d = heap.topKey;
2868
3285
  heap.pop();
2869
- if (done[p] || d > dist[p]) continue;
3286
+ if (done[p] || d > dist2[p]) continue;
2870
3287
  done[p] = 1;
2871
3288
  if (p === goal) break;
2872
3289
  const x = p % w;
@@ -2887,8 +3304,8 @@ function liveWire(map, from, to, band) {
2887
3304
  const fZ = 1 - zero[q];
2888
3305
  const cost = (W_ZERO * fZ + W_GRADIENT * fG + W_DIRECTION * fD + 0.01) * step;
2889
3306
  const nd = d + cost;
2890
- if (nd < dist[q]) {
2891
- dist[q] = nd;
3307
+ if (nd < dist2[q]) {
3308
+ dist2[q] = nd;
2892
3309
  prev[q] = p;
2893
3310
  heap.push(q, nd);
2894
3311
  }
@@ -3328,14 +3745,14 @@ var TextEditSession = (_class7 = class {
3328
3745
  if (!this.text.trim().length) {
3329
3746
  try {
3330
3747
  this.controller.removeLayer(this.layerId);
3331
- } catch (e18) {
3748
+ } catch (e19) {
3332
3749
  }
3333
3750
  return false;
3334
3751
  }
3335
3752
  if (this.layer.name === "Text" && this.changed) {
3336
3753
  try {
3337
3754
  this.controller.setLayerProperties(this.layerId, { name: _chunkH65IBXFIcjs.typeLayerName.call(void 0, this.text) }, false);
3338
- } catch (e19) {
3755
+ } catch (e20) {
3339
3756
  }
3340
3757
  }
3341
3758
  return true;
@@ -3604,8 +4021,8 @@ function colorRange(pixels, samples, options = {}) {
3604
4021
  const d = Math.max(Math.abs(data[p] - s.c[0]), Math.abs(data[p + 1] - s.c[1]), Math.abs(data[p + 2] - s.c[2]));
3605
4022
  let k = Math.min(1, Math.max(0, 1 - d / f));
3606
4023
  if (k > 0 && radius !== void 0 && s.at) {
3607
- const dist = Math.hypot(x - s.at.x, y - s.at.y);
3608
- k *= Math.min(1, Math.max(0, 1 - dist / radius));
4024
+ const dist2 = Math.hypot(x - s.at.x, y - s.at.y);
4025
+ k *= Math.min(1, Math.max(0, 1 - dist2 / radius));
3609
4026
  }
3610
4027
  if (k > best) best = k;
3611
4028
  }
@@ -4652,7 +5069,7 @@ function isSrgb(doc) {
4652
5069
  if (!doc || doc.builtin === "srgb") return true;
4653
5070
  try {
4654
5071
  return _chunkBROJYMWUcjs.sameColors.call(void 0, resolveProfile(doc), _chunkBROJYMWUcjs.srgbProfile.call(void 0, ), _chunkBROJYMWUcjs.builtinProfile.call(void 0, "lab-d50"));
4655
- } catch (e20) {
5072
+ } catch (e21) {
4656
5073
  return false;
4657
5074
  }
4658
5075
  }
@@ -4966,15 +5383,15 @@ var PaintStrokeSession = (_class11 = class {
4966
5383
  return;
4967
5384
  }
4968
5385
  const stroke = this.stroke;
4969
- const regions = /* @__PURE__ */ new Map();
5386
+ const regions2 = /* @__PURE__ */ new Map();
4970
5387
  for (const r of rects) {
4971
5388
  for (const t of _chunk474IQG74cjs.tilesInRect.call(void 0, { x: r.x - this.apply.offset.x, y: r.y - this.apply.offset.y, width: r.width, height: r.height })) {
4972
5389
  const key2 = _chunk474IQG74cjs.tileKey.call(void 0, t.tx, t.ty);
4973
- const cur = regions.get(key2);
4974
- regions.set(key2, { tx: t.tx, ty: t.ty, r: cur ? _chunkH65IBXFIcjs.unionRect.call(void 0, cur.r, r) : r });
5390
+ const cur = regions2.get(key2);
5391
+ regions2.set(key2, { tx: t.tx, ty: t.ty, r: cur ? _chunkH65IBXFIcjs.unionRect.call(void 0, cur.r, r) : r });
4975
5392
  }
4976
5393
  }
4977
- for (const [key2, { tx, ty, r }] of regions) {
5394
+ for (const [key2, { tx, ty, r }] of regions2) {
4978
5395
  if (this.deep) {
4979
5396
  const rt = this.retouch;
4980
5397
  const paint = _optionalChain([rt, 'optionalAccess', _125 => _125.kind]) === "coverage" ? rt.paint() : null;
@@ -5291,7 +5708,7 @@ var ImageEditorController = (_class12 = class {
5291
5708
  if (_optionalChain([options, 'access', _154 => _154.initialState, 'optionalAccess', _155 => _155.selection])) {
5292
5709
  try {
5293
5710
  this.state.selection = normalizeSelection(_chunkQYLWG22Ncjs.deserializeSelection.call(void 0, options.initialState.selection));
5294
- } catch (e21) {
5711
+ } catch (e22) {
5295
5712
  }
5296
5713
  }
5297
5714
  if (_optionalChain([options, 'access', _156 => _156.initialState, 'optionalAccess', _157 => _157.channels])) {
@@ -5337,7 +5754,7 @@ var ImageEditorController = (_class12 = class {
5337
5754
  height: img.naturalHeight || img.height || 600
5338
5755
  }
5339
5756
  };
5340
- } catch (e22) {
5757
+ } catch (e23) {
5341
5758
  return { sourceUrl: src, element: null, dimensions: { ...this.state.imageDimensions } };
5342
5759
  }
5343
5760
  }
@@ -5411,7 +5828,7 @@ var ImageEditorController = (_class12 = class {
5411
5828
  try {
5412
5829
  const r = _chunkH65IBXFIcjs.rerender.call(void 0, l, canvas);
5413
5830
  if (all || !_chunkH65IBXFIcjs.isSmartSurfaceIncomplete.call(void 0, r.surface)) next2 = r;
5414
- } catch (e23) {
5831
+ } catch (e24) {
5415
5832
  }
5416
5833
  }
5417
5834
  if (next2 !== l) {
@@ -5734,7 +6151,7 @@ var ImageEditorController = (_class12 = class {
5734
6151
  this.displayFor = [s.colorProfile, s.proofSetup, s.colorMode];
5735
6152
  try {
5736
6153
  this.renderer.setDisplayTransform(displayTransform(s.colorProfile, effectiveProof(s.proofSetup, s.colorMode)));
5737
- } catch (e24) {
6154
+ } catch (e25) {
5738
6155
  this.renderer.setDisplayTransform(null);
5739
6156
  }
5740
6157
  }
@@ -6267,7 +6684,7 @@ var ImageEditorController = (_class12 = class {
6267
6684
  const data = ctx.getImageData(0, 0, width, height);
6268
6685
  if (!_optionalChain([data, 'optionalAccess', _208 => _208.data]) || data.data.length < width * height * 4) return null;
6269
6686
  return { width, height, data: data.data };
6270
- } catch (e25) {
6687
+ } catch (e26) {
6271
6688
  return null;
6272
6689
  }
6273
6690
  }
@@ -6348,7 +6765,7 @@ var ImageEditorController = (_class12 = class {
6348
6765
  try {
6349
6766
  const bytes = _chunkOLNIPTB3cjs.base64ToBytes.call(void 0, trimmed);
6350
6767
  if (_chunkOLNIPTB3cjs.isPng.call(void 0, bytes)) png = bytes;
6351
- } catch (e26) {
6768
+ } catch (e27) {
6352
6769
  png = null;
6353
6770
  }
6354
6771
  }
@@ -6356,14 +6773,14 @@ var ImageEditorController = (_class12 = class {
6356
6773
  try {
6357
6774
  const d = _chunkOLNIPTB3cjs.decodePng.call(void 0, png);
6358
6775
  return { width: d.width, height: d.height, data: d.data };
6359
- } catch (e27) {
6776
+ } catch (e28) {
6360
6777
  }
6361
6778
  }
6362
6779
  const src = png ? `data:image/png;base64,${_chunkOLNIPTB3cjs.bytesToBase64.call(void 0, png)}` : trimmed;
6363
6780
  let img;
6364
6781
  try {
6365
6782
  img = await this.renderer.imageCache.get(src);
6366
- } catch (e28) {
6783
+ } catch (e29) {
6367
6784
  throw new (0, _chunkH65IBXFIcjs.LayerOperationError)("The image could not be decoded here. Pass a PNG (data URL or base64), or run in a browser for other formats and URLs.");
6368
6785
  }
6369
6786
  const w = img.naturalWidth || img.width;
@@ -7424,7 +7841,7 @@ var ImageEditorController = (_class12 = class {
7424
7841
  };
7425
7842
  this.state.layers = swap(this.state.layers);
7426
7843
  for (const e of [...this.undoStack, ...this.redoStack]) e.layers = swap(e.layers);
7427
- } catch (e29) {
7844
+ } catch (e30) {
7428
7845
  left.push(cid);
7429
7846
  }
7430
7847
  }
@@ -9128,7 +9545,7 @@ var ImageEditorController = (_class12 = class {
9128
9545
  this.samplePixels = base;
9129
9546
  this.samplePixelsOverride = false;
9130
9547
  }
9131
- } catch (e30) {
9548
+ } catch (e31) {
9132
9549
  base = null;
9133
9550
  }
9134
9551
  }
@@ -9668,10 +10085,48 @@ var ImageEditorController = (_class12 = class {
9668
10085
  if (!sel) return false;
9669
10086
  return this.setSelection(invert2 ? _chunkQYLWG22Ncjs.invertSelection.call(void 0, sel) : sel, mode);
9670
10087
  }
10088
+ /**
10089
+ * A measured report on a mask's edge (`inspect_mask_edge`): the selection (default), a layer's
10090
+ * painted mask or its vector mask (its path, without density or feather). Halo and alignment are
10091
+ * measured against the layer's own pixels for a pixel layer's masks, else the composite.
10092
+ * Read-only. Throws for an empty selection or a layer without that mask.
10093
+ */
10094
+ inspectMaskEdge(target = "selection", options = {}) {
10095
+ const { width, height } = this.naturalSize;
10096
+ let mask;
10097
+ let layer;
10098
+ if (target === "selection") {
10099
+ mask = this.getSelection();
10100
+ if (!_optionalChain([mask, 'optionalAccess', _401 => _401.bounds])) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)("Nothing is selected: make a selection first, or inspect a layer-mask or vector-mask with layerId.");
10101
+ } else if (target === "layer-mask" || target === "vector-mask") {
10102
+ if (!options.layerId) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`A ${target} needs layerId (see list_layers).`);
10103
+ layer = this.getLayer(options.layerId);
10104
+ if (!layer) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`There is no layer "${options.layerId}" (see list_layers).`);
10105
+ if (target === "layer-mask") {
10106
+ mask = this.layerMaskCoverage(layer.id);
10107
+ if (!mask) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`Layer "${layer.name || layer.id}" has no painted mask; add one with add_layer_mask, or inspect its vector-mask.`);
10108
+ } else {
10109
+ const { vm } = this.requireVectorMask(layer.id);
10110
+ mask = pathToSelection(vm.components, width, height, { fillRule: vm.fillRule });
10111
+ if (vm.inverted) mask = _chunkQYLWG22Ncjs.invertSelection.call(void 0, mask);
10112
+ }
10113
+ if (!mask.bounds) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`The ${target} of "${layer.name || layer.id}" hides everything: there is no edge to inspect.`);
10114
+ } else {
10115
+ throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`Unknown target "${String(target)}". Use selection, layer-mask or vector-mask.`);
10116
+ }
10117
+ const b = mask.bounds;
10118
+ const x = Math.max(0, b.x - 8);
10119
+ const y = Math.max(0, b.y - 8);
10120
+ const region = { x, y, width: Math.min(width, b.x + b.width + 8) - x, height: Math.min(height, b.y + b.height + 8) - y };
10121
+ const own = _optionalChain([layer, 'optionalAccess', _402 => _402.type]) === "pixel" ? this.getLayerPixels(layer.id) : null;
10122
+ const image = _nullishCoalesce(own, () => ( { ...this.compositePixels(region), x: region.x, y: region.y }));
10123
+ const report = inspectMaskEdge(mask, image, options);
10124
+ return { target, ...layer ? { layerId: layer.id } : {}, ...report };
10125
+ }
9671
10126
  /** A layer's painted mask over the canvas as a selection mask; null without one (or for a depth mask). */
9672
10127
  layerMaskCoverage(layerId) {
9673
10128
  const layer = this.getLayer(layerId);
9674
- if (!_optionalChain([layer, 'optionalAccess', _401 => _401.mask]) || layer.mask.source) return null;
10129
+ if (!_optionalChain([layer, 'optionalAccess', _403 => _403.mask]) || layer.mask.source) return null;
9675
10130
  const { width, height } = this.naturalSize;
9676
10131
  const ox = layer.type === "pixel" ? layer.offset.x : 0;
9677
10132
  const oy = layer.type === "pixel" ? layer.offset.y : 0;
@@ -9706,7 +10161,7 @@ var ImageEditorController = (_class12 = class {
9706
10161
  this.state.layers = _chunkUOGKSVRQcjs.mapLayer.call(void 0, this.state.layers, target.id, (l) => {
9707
10162
  const next = { ...l };
9708
10163
  if (_chunkH65IBXFIcjs.isDefaultDepthMask.call(void 0, merged)) {
9709
- if (_optionalChain([next, 'access', _402 => _402.mask, 'optionalAccess', _403 => _403.source])) delete next.mask;
10164
+ if (_optionalChain([next, 'access', _404 => _404.mask, 'optionalAccess', _405 => _405.source])) delete next.mask;
9710
10165
  } else next.mask = _chunkH65IBXFIcjs.depthRasterMask.call(void 0, merged);
9711
10166
  return next;
9712
10167
  });
@@ -9716,7 +10171,7 @@ var ImageEditorController = (_class12 = class {
9716
10171
  resetDepthMask() {
9717
10172
  this.recordHistory();
9718
10173
  const target = this.developLayer();
9719
- if (_optionalChain([target, 'optionalAccess', _404 => _404.mask, 'optionalAccess', _405 => _405.source])) {
10174
+ if (_optionalChain([target, 'optionalAccess', _406 => _406.mask, 'optionalAccess', _407 => _407.source])) {
9720
10175
  this.state.layers = _chunkUOGKSVRQcjs.mapLayer.call(void 0, this.state.layers, target.id, (l) => {
9721
10176
  const next = { ...l };
9722
10177
  delete next.mask;
@@ -9728,7 +10183,7 @@ var ImageEditorController = (_class12 = class {
9728
10183
  // --- Annotations & Layers ---
9729
10184
  /** The layer showing annotation `id`: an annotation layer, or a shape layer migrated from it. */
9730
10185
  annotationLayer(id) {
9731
- return _chunkUOGKSVRQcjs.flattenLayers.call(void 0, this.state.layers).find((l) => (l.type === "annotation" || l.type === "shape" || l.type === "type") && _optionalChain([_chunkH65IBXFIcjs.annotationOfLayer.call(void 0, l), 'optionalAccess', _406 => _406.id]) === id);
10186
+ return _chunkUOGKSVRQcjs.flattenLayers.call(void 0, this.state.layers).find((l) => (l.type === "annotation" || l.type === "shape" || l.type === "type") && _optionalChain([_chunkH65IBXFIcjs.annotationOfLayer.call(void 0, l), 'optionalAccess', _408 => _408.id]) === id);
9732
10187
  }
9733
10188
  /** What migrating an annotation needs: the canvas size, patterns and the text shaper. */
9734
10189
  annotationEnv() {
@@ -9746,7 +10201,7 @@ var ImageEditorController = (_class12 = class {
9746
10201
  const fullAnnotation = { ...annotation, id };
9747
10202
  const layer = _chunkH65IBXFIcjs.annotationLayerFor.call(void 0, fullAnnotation, this.annotationEnv());
9748
10203
  const loc = placement.aboveId ? _chunkUOGKSVRQcjs.findLayer.call(void 0, this.state.layers, placement.aboveId) : null;
9749
- this.state.layers = loc ? _chunkUOGKSVRQcjs.insertLayer.call(void 0, this.state.layers, layer, _nullishCoalesce(_optionalChain([loc, 'access', _407 => _407.parent, 'optionalAccess', _408 => _408.id]), () => ( null)), loc.index + 1) : _chunkUOGKSVRQcjs.insertLayer.call(void 0, this.state.layers, layer, null);
10204
+ this.state.layers = loc ? _chunkUOGKSVRQcjs.insertLayer.call(void 0, this.state.layers, layer, _nullishCoalesce(_optionalChain([loc, 'access', _409 => _409.parent, 'optionalAccess', _410 => _410.id]), () => ( null)), loc.index + 1) : _chunkUOGKSVRQcjs.insertLayer.call(void 0, this.state.layers, layer, null);
9750
10205
  this.state.selectedAnnotationId = id;
9751
10206
  this.notify();
9752
10207
  return id;
@@ -9869,11 +10324,11 @@ var ImageEditorController = (_class12 = class {
9869
10324
  await this.renderer.renderToCanvas(targetCanvas, source, this.state, {
9870
10325
  ...options,
9871
10326
  // The clone source follows the brush cursor (both editors pass it).
9872
- cloneSourceMarker: _optionalChain([options, 'optionalAccess', _409 => _409.cloneSourceMarker]) !== void 0 ? options.cloneSourceMarker : _optionalChain([options, 'optionalAccess', _410 => _410.brushCursor]) ? this.cloneSourceMarker(options.brushCursor) : null,
10327
+ cloneSourceMarker: _optionalChain([options, 'optionalAccess', _411 => _411.cloneSourceMarker]) !== void 0 ? options.cloneSourceMarker : _optionalChain([options, 'optionalAccess', _412 => _412.brushCursor]) ? this.cloneSourceMarker(options.brushCursor) : null,
9873
10328
  dirty: dirty === "all" ? void 0 : dirty,
9874
10329
  checkpointLayerId: this.state.activeLayerId
9875
10330
  });
9876
- } catch (e31) {
10331
+ } catch (e32) {
9877
10332
  }
9878
10333
  }
9879
10334
  async renderExport(options) {
@@ -9882,7 +10337,7 @@ var ImageEditorController = (_class12 = class {
9882
10337
  return this.renderer.createCanvas(1, 1);
9883
10338
  }
9884
10339
  this.syncViews();
9885
- if (_optionalChain([options, 'optionalAccess', _411 => _411.layerIds])) {
10340
+ if (_optionalChain([options, 'optionalAccess', _413 => _413.layerIds])) {
9886
10341
  const keep = new Set(options.layerIds);
9887
10342
  const layers = _chunkUOGKSVRQcjs.flattenLayers.call(void 0, this.state.layers).filter((l) => keep.has(l.id));
9888
10343
  return this.renderer.renderExport(source, { ...this.state, layers }, options);
@@ -9928,7 +10383,7 @@ var ImageEditorController = (_class12 = class {
9928
10383
  try {
9929
10384
  if (mime === "image/png") return _chunkBROJYMWUcjs.writePngIcc.call(void 0, bytes, icc, this.getColorProfile().name);
9930
10385
  if (mime === "image/jpeg") return _chunkBROJYMWUcjs.writeJpegIcc.call(void 0, bytes, icc);
9931
- } catch (e32) {
10386
+ } catch (e33) {
9932
10387
  }
9933
10388
  return bytes;
9934
10389
  }
@@ -10036,7 +10491,7 @@ var ImageEditorController = (_class12 = class {
10036
10491
  let px2 = await this.decodeImage(newDataUrl);
10037
10492
  if (px2.width !== width || px2.height !== height) px2 = resizePixels(px2, width, height);
10038
10493
  const data = new Uint8ClampedArray(px2.data);
10039
- const sel = _optionalChain([this, 'access', _412 => _412.state, 'access', _413 => _413.selection, 'optionalAccess', _414 => _414.bounds]) ? this.state.selection : null;
10494
+ const sel = _optionalChain([this, 'access', _414 => _414.state, 'access', _415 => _415.selection, 'optionalAccess', _416 => _416.bounds]) ? this.state.selection : null;
10040
10495
  if (sel) for (let p = 0, i = 3; p < width * height; p++, i += 4) data[i] = Math.round(data[i] * sel.data[p] / 255);
10041
10496
  return this.addPixelLayer({ name: "Inpaint", pixels: { width, height, data } });
10042
10497
  }
@@ -10083,7 +10538,7 @@ var ImageEditorController = (_class12 = class {
10083
10538
  }
10084
10539
  /** Font families the shaper offers (generic families at least). */
10085
10540
  listFonts() {
10086
- return _nullishCoalesce(_optionalChain([this, 'access', _415 => _415.getTextShaper, 'call', _416 => _416(), 'optionalAccess', _417 => _417.families, 'optionalCall', _418 => _418()]), () => ( ["sans-serif", "serif", "monospace"]));
10541
+ return _nullishCoalesce(_optionalChain([this, 'access', _417 => _417.getTextShaper, 'call', _418 => _418(), 'optionalAccess', _419 => _419.families, 'optionalCall', _420 => _420()]), () => ( ["sans-serif", "serif", "monospace"]));
10087
10542
  }
10088
10543
  typeInfo(id) {
10089
10544
  const layer = _chunkH65IBXFIcjs.requireTypeLayer.call(void 0, this.state.layers, id);
@@ -10157,8 +10612,8 @@ var ImageEditorController = (_class12 = class {
10157
10612
  const layer = this.layoutTypeLayer({ ...init, text, orientation: vertical ? "vertical" : "horizontal" });
10158
10613
  const { width, height } = this.naturalSize;
10159
10614
  const b = _chunk474IQG74cjs.contentBounds.call(void 0, layer.surface);
10160
- const x0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _419 => _419.x]), () => ( 0)));
10161
- const y0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _420 => _420.y]), () => ( 0)));
10615
+ const x0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _421 => _421.x]), () => ( 0)));
10616
+ const y0 = Math.max(0, _nullishCoalesce(_optionalChain([b, 'optionalAccess', _422 => _422.y]), () => ( 0)));
10162
10617
  const x1 = Math.min(width, b ? b.x + b.width : 0);
10163
10618
  const y1 = Math.min(height, b ? b.y + b.height : 0);
10164
10619
  let mask;
@@ -10335,7 +10790,7 @@ var ImageEditorController = (_class12 = class {
10335
10790
  if (colors.size > 1) warnings.push("The text had several colours; the shape takes the first one.");
10336
10791
  const missing = _chunkQAUIZPYIcjs.layoutText.call(void 0, layer, shaper).missingFonts;
10337
10792
  if (missing.length) warnings.push(`Missing fonts were drawn with a fallback: ${missing.join(", ")}.`);
10338
- const first = _nullishCoalesce(_optionalChain([layer, 'access', _421 => _421.runs, 'access', _422 => _422.find, 'call', _423 => _423((r) => r.length > 0), 'optionalAccess', _424 => _424.style]), () => ( _chunkQAUIZPYIcjs.DEFAULT_TEXT_STYLE));
10793
+ const first = _nullishCoalesce(_optionalChain([layer, 'access', _423 => _423.runs, 'access', _424 => _424.find, 'call', _425 => _425((r) => r.length > 0), 'optionalAccess', _426 => _426.style]), () => ( _chunkQAUIZPYIcjs.DEFAULT_TEXT_STYLE));
10339
10794
  const fill = first.opacity !== void 0 && first.opacity !== 1 ? { type: "color", color: first.color, opacity: first.opacity } : { type: "color", color: first.color };
10340
10795
  const shape = _chunkH65IBXFIcjs.createShapeLayer.call(void 0, { components: [{ op: "combine", subpaths }], fill, stroke: null, name: layer.name }, this.shapeEnv(), layer.id);
10341
10796
  const keep = { visible: layer.visible, opacity: layer.opacity, blend: layer.blend };
@@ -10368,7 +10823,7 @@ var ImageEditorController = (_class12 = class {
10368
10823
  // --- Shape layers ---
10369
10824
  /** What shape rendering needs: the canvas size and the document's patterns. */
10370
10825
  shapeEnv() {
10371
- return { ...this.naturalSize, pattern: (id) => _nullishCoalesce(_optionalChain([this, 'access', _425 => _425.state, 'access', _426 => _426.patterns, 'optionalAccess', _427 => _427.find, 'call', _428 => _428((p) => p.id === id)]), () => ( null)) };
10826
+ return { ...this.naturalSize, pattern: (id) => _nullishCoalesce(_optionalChain([this, 'access', _427 => _427.state, 'access', _428 => _428.patterns, 'optionalAccess', _429 => _429.find, 'call', _430 => _430((p) => p.id === id)]), () => ( null)) };
10372
10827
  }
10373
10828
  /** One component from tool or UI input (validated). */
10374
10829
  componentFrom(spec, path) {
@@ -10411,9 +10866,9 @@ var ImageEditorController = (_class12 = class {
10411
10866
  * open path) and stroked with `stroke`. Goes above the active layer unless placed. Returns its id.
10412
10867
  */
10413
10868
  addShapeLayer(init) {
10414
- const specs = _optionalChain([init, 'access', _429 => _429.components, 'optionalAccess', _430 => _430.length]) ? init.components : [init];
10415
- if (_optionalChain([init, 'access', _431 => _431.components, 'optionalAccess', _432 => _432.length]) && (init.shape !== void 0 || init.subpaths !== void 0)) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)("Give components, or shape / subpaths, not both.");
10416
- const components = specs.map((c, i) => this.componentFrom(c, _optionalChain([init, 'access', _433 => _433.components, 'optionalAccess', _434 => _434.length]) ? `components[${i}].` : ""));
10869
+ const specs = _optionalChain([init, 'access', _431 => _431.components, 'optionalAccess', _432 => _432.length]) ? init.components : [init];
10870
+ if (_optionalChain([init, 'access', _433 => _433.components, 'optionalAccess', _434 => _434.length]) && (init.shape !== void 0 || init.subpaths !== void 0)) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)("Give components, or shape / subpaths, not both.");
10871
+ const components = specs.map((c, i) => this.componentFrom(c, _optionalChain([init, 'access', _435 => _435.components, 'optionalAccess', _436 => _436.length]) ? `components[${i}].` : ""));
10417
10872
  const stroke = init.stroke ? _chunkH65IBXFIcjs.normalizeShapeStroke.call(void 0, init.stroke, "stroke") : null;
10418
10873
  const openOnly = components.every((c) => !c.live && c.subpaths.every((sp) => !sp.closed));
10419
10874
  const fill = init.fill === void 0 ? stroke && openOnly ? null : _chunkH65IBXFIcjs.normalizeShapePaint.call(void 0, this.state.paint.foreground, "fill") : init.fill === null ? null : _chunkH65IBXFIcjs.normalizeShapePaint.call(void 0, init.fill, "fill");
@@ -10524,7 +10979,7 @@ var ImageEditorController = (_class12 = class {
10524
10979
  if (layer.locks) next.locks = layer.locks;
10525
10980
  if (this.state.selectedAnnotationId === layer.annotation.id) this.state.selectedAnnotationId = null;
10526
10981
  } else if (layer.type === "pixel") {
10527
- if (!_optionalChain([layer, 'access', _435 => _435.filters, 'optionalAccess', _436 => _436.length])) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`Layer "${layer.name || id}" is already pixels with no filters to bake.`);
10982
+ if (!_optionalChain([layer, 'access', _437 => _437.filters, 'optionalAccess', _438 => _438.length])) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`Layer "${layer.name || id}" is already pixels with no filters to bake.`);
10528
10983
  _chunkH65IBXFIcjs.requireUnlocked.call(void 0, layer, "pixels", "rasterize it");
10529
10984
  const spatial = layer.filters.some((f) => f.enabled && f.kind === "blur");
10530
10985
  const content = { ...layer, visible: true, opacity: 1, blend: "normal" };
@@ -10543,7 +10998,7 @@ var ImageEditorController = (_class12 = class {
10543
10998
  return this.rasterizeSmartObject(id);
10544
10999
  } else if (layer.type === "shape" || layer.type === "type") {
10545
11000
  next = layer.type === "shape" ? _chunkH65IBXFIcjs.shapeAsPixelLayer.call(void 0, layer) : _chunkH65IBXFIcjs.typeAsPixelLayer.call(void 0, layer);
10546
- if (this.state.selectedAnnotationId && this.state.selectedAnnotationId === _optionalChain([layer, 'access', _437 => _437.annotation, 'optionalAccess', _438 => _438.id])) this.state.selectedAnnotationId = null;
11001
+ if (this.state.selectedAnnotationId && this.state.selectedAnnotationId === _optionalChain([layer, 'access', _439 => _439.annotation, 'optionalAccess', _440 => _440.id])) this.state.selectedAnnotationId = null;
10547
11002
  } else {
10548
11003
  throw new (0, _chunkH65IBXFIcjs.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.`);
10549
11004
  }
@@ -10557,8 +11012,8 @@ var ImageEditorController = (_class12 = class {
10557
11012
  const doc = this.state.colorProfile;
10558
11013
  const p = resolveProfile(doc);
10559
11014
  const m = this.state.colorMode;
10560
- const out = { name: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _439 => _439.name]), () => ( p.description)), builtin: doc ? _nullishCoalesce(doc.builtin, () => ( null)) : "srgb", colorSpace: p.colorSpace, srgb: isSrgb(doc), mode: _nullishCoalesce(_optionalChain([m, 'optionalAccess', _440 => _440.mode]), () => ( "rgb")) };
10561
- if (_optionalChain([m, 'optionalAccess', _441 => _441.mode]) === "cmyk") out.cmykProfile = { name: m.profile.name, builtin: _nullishCoalesce(m.profile.builtin, () => ( null)), intent: m.intent };
11015
+ const out = { name: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _441 => _441.name]), () => ( p.description)), builtin: doc ? _nullishCoalesce(doc.builtin, () => ( null)) : "srgb", colorSpace: p.colorSpace, srgb: isSrgb(doc), mode: _nullishCoalesce(_optionalChain([m, 'optionalAccess', _442 => _442.mode]), () => ( "rgb")) };
11016
+ if (_optionalChain([m, 'optionalAccess', _443 => _443.mode]) === "cmyk") out.cmykProfile = { name: m.profile.name, builtin: _nullishCoalesce(m.profile.builtin, () => ( null)), intent: m.intent };
10562
11017
  return out;
10563
11018
  }
10564
11019
  /**
@@ -10648,7 +11103,7 @@ var ImageEditorController = (_class12 = class {
10648
11103
  const textEnv = this.textEnv();
10649
11104
  const walk = (layers) => layers.map((l) => {
10650
11105
  let next2 = l;
10651
- if (_optionalChain([l, 'access', _442 => _442.effects, 'optionalAccess', _443 => _443.items, 'access', _444 => _444.length])) next2 = { ...next2, effects: convertColorFields(l.effects, hex) };
11106
+ if (_optionalChain([l, 'access', _444 => _444.effects, 'optionalAccess', _445 => _445.items, 'access', _446 => _446.length])) next2 = { ...next2, effects: convertColorFields(l.effects, hex) };
10652
11107
  if (l.type === "group") {
10653
11108
  if (next2 !== l) converted.push(l.id);
10654
11109
  return { ...next2, children: walk(l.children) };
@@ -10662,7 +11117,7 @@ var ImageEditorController = (_class12 = class {
10662
11117
  const recoloured = { ...next2, runs: convertColorFields(l.runs, hex) };
10663
11118
  try {
10664
11119
  next2 = _chunkH65IBXFIcjs.rerenderText.call(void 0, recoloured, textEnv);
10665
- } catch (e33) {
11120
+ } catch (e34) {
10666
11121
  next2 = { ...recoloured, surface: convertSurfaceColors(l.surface, t) };
10667
11122
  }
10668
11123
  } else if (l.type === "annotation") next2 = { ...next2, annotation: convertColorFields(l.annotation, hex) };
@@ -10717,7 +11172,7 @@ var ImageEditorController = (_class12 = class {
10717
11172
  }
10718
11173
  if (src.colorSpace !== "rgb") throw new (0, _chunkH65IBXFIcjs.LayerOperationError)("Colours are given as #rrggbb, so the source profile must be RGB.");
10719
11174
  const t = _chunkBROJYMWUcjs.Transform.create(src, dst, { intent: _nullishCoalesce(options.intent, () => ( "relative")), bpc: _nullishCoalesce(options.bpc, () => ( true)) });
10720
- const toLab = _chunkBROJYMWUcjs.Transform.create(src, _chunkBROJYMWUcjs.builtinProfile.call(void 0, "lab-d50"), { intent: "relative", bpc: false });
11175
+ const toLab2 = _chunkBROJYMWUcjs.Transform.create(src, _chunkBROJYMWUcjs.builtinProfile.call(void 0, "lab-d50"), { intent: "relative", bpc: false });
10721
11176
  return colors.map((input) => {
10722
11177
  const m = /^#?([0-9a-f]{6})$/i.exec(input.trim());
10723
11178
  if (!m) throw new (0, _chunkH65IBXFIcjs.LayerOperationError)(`Invalid colour "${input}"; use #rrggbb.`);
@@ -10727,7 +11182,7 @@ var ImageEditorController = (_class12 = class {
10727
11182
  t.eval(rgb, out);
10728
11183
  const values = Array.from(out.subarray(0, t.outputs), (v) => Math.round(Math.min(1, Math.max(0, v)) * 1e4) / 1e4);
10729
11184
  const l = new Float32Array(3);
10730
- toLab.eval(rgb, l);
11185
+ toLab2.eval(rgb, l);
10731
11186
  const lab = [Math.round(l[0] * 1e4) / 100, Math.round((l[1] * 255 - 128) * 100) / 100, Math.round((l[2] * 255 - 128) * 100) / 100];
10732
11187
  const res = { input, values, lab };
10733
11188
  if (dst.colorSpace === "rgb") res.hex = `#${values.map((v) => Math.round(v * 255).toString(16).padStart(2, "0")).join("")}`;
@@ -10836,8 +11291,8 @@ var ImageEditorController = (_class12 = class {
10836
11291
  else delete s.bitDepth;
10837
11292
  delete s.colorProfile;
10838
11293
  delete s.colorMode;
10839
- if (_optionalChain([result, 'access', _445 => _445.sourceMode, 'optionalAccess', _446 => _446.mode]) === "cmyk") s.colorMode = { mode: "cmyk", profile: result.sourceMode.profile, intent: "relative" };
10840
- else if (_optionalChain([result, 'access', _447 => _447.sourceMode, 'optionalAccess', _448 => _448.mode]) === "lab") s.colorMode = { mode: "lab" };
11294
+ if (_optionalChain([result, 'access', _447 => _447.sourceMode, 'optionalAccess', _448 => _448.mode]) === "cmyk") s.colorMode = { mode: "cmyk", profile: result.sourceMode.profile, intent: "relative" };
11295
+ else if (_optionalChain([result, 'access', _449 => _449.sourceMode, 'optionalAccess', _450 => _450.mode]) === "lab") s.colorMode = { mode: "lab" };
10841
11296
  else if (result.iccProfile) {
10842
11297
  try {
10843
11298
  const doc = documentProfile(result.iccProfile);
@@ -10901,7 +11356,7 @@ var ImageEditorController = (_class12 = class {
10901
11356
  const compositor = new (0, _chunkH65IBXFIcjs.LayerCompositor)();
10902
11357
  const bakeMask = (layer) => {
10903
11358
  const mask = layer.mask;
10904
- if (!_optionalChain([mask, 'optionalAccess', _449 => _449.source])) return mask;
11359
+ if (!_optionalChain([mask, 'optionalAccess', _451 => _451.source])) return mask;
10905
11360
  add2("Parametric (depth) masks were baked into pixel masks", layer.name);
10906
11361
  const plain3 = { ...layer, mask: { ...mask, density: 1, feather: 0, enabled: true } };
10907
11362
  const ox = layer.type === "pixel" ? layer.offset.x : 0;
@@ -10918,7 +11373,7 @@ var ImageEditorController = (_class12 = class {
10918
11373
  };
10919
11374
  const prepare = async (layer) => {
10920
11375
  const p = await prepareLayer(layer);
10921
- if (_optionalChain([p, 'optionalAccess', _450 => _450.blend]) === "pigment") add2("The Pigment blend mode has no PSD equivalent and was written as Normal", layer.name);
11376
+ if (_optionalChain([p, 'optionalAccess', _452 => _452.blend]) === "pigment") add2("The Pigment blend mode has no PSD equivalent and was written as Normal", layer.name);
10922
11377
  return p;
10923
11378
  };
10924
11379
  const prepareLayer = async (layer) => {
@@ -10961,7 +11416,7 @@ var ImageEditorController = (_class12 = class {
10961
11416
  return out2;
10962
11417
  }
10963
11418
  if (layer.type === "shape" || layer.type === "type") {
10964
- if (layer.type === "type" && _optionalChain([layer, 'access', _451 => _451.missingFonts, 'optionalAccess', _452 => _452.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);
11419
+ if (layer.type === "type" && _optionalChain([layer, 'access', _453 => _453.missingFonts, 'optionalAccess', _454 => _454.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);
10965
11420
  const out2 = { ...layer };
10966
11421
  const mask2 = bakeMask(layer);
10967
11422
  if (mask2) out2.mask = mask2;
@@ -10980,7 +11435,7 @@ var ImageEditorController = (_class12 = class {
10980
11435
  out.surface = this.surfaceOf(layer);
10981
11436
  delete out.source;
10982
11437
  }
10983
- const active = _nullishCoalesce(_optionalChain([layer, 'access', _453 => _453.filters, 'optionalAccess', _454 => _454.filter, 'call', _455 => _455(_chunkH65IBXFIcjs.isActiveFilter)]), () => ( []));
11438
+ const active = _nullishCoalesce(_optionalChain([layer, 'access', _455 => _455.filters, 'optionalAccess', _456 => _456.filter, 'call', _457 => _457(_chunkH65IBXFIcjs.isActiveFilter)]), () => ( []));
10984
11439
  if (active.length) {
10985
11440
  add2("Layer filters (develop, blur) were baked into the pixels", layer.name);
10986
11441
  const content = { ...out, visible: true, opacity: 1, blend: "normal" };
@@ -10991,7 +11446,7 @@ var ImageEditorController = (_class12 = class {
10991
11446
  const data = compositor.composite([content], canvas, sources);
10992
11447
  out = { ...out, surface: _chunk474IQG74cjs.surfaceFromPixels.call(void 0, { width, height, data }, 4, -layer.offset.x, -layer.offset.y) };
10993
11448
  }
10994
- if (_optionalChain([layer, 'access', _456 => _456.filters, 'optionalAccess', _457 => _457.some, 'call', _458 => _458((f) => !f.enabled)])) add2("Disabled layer filters were left out", layer.name);
11449
+ if (_optionalChain([layer, 'access', _458 => _458.filters, 'optionalAccess', _459 => _459.some, 'call', _460 => _460((f) => !f.enabled)])) add2("Disabled layer filters were left out", layer.name);
10995
11450
  delete out.filters;
10996
11451
  const mask = bakeMask(layer);
10997
11452
  if (mask) out.mask = mask;
@@ -11055,7 +11510,7 @@ var ImageEditorController = (_class12 = class {
11055
11510
  );
11056
11511
  }
11057
11512
  layers = resizeLegacyMasks(layers, prev, next.dimensions);
11058
- const env = { ...next.dimensions, pattern: (pid) => _nullishCoalesce(_optionalChain([this, 'access', _459 => _459.state, 'access', _460 => _460.patterns, 'optionalAccess', _461 => _461.find, 'call', _462 => _462((p) => p.id === pid)]), () => ( null)) };
11513
+ const env = { ...next.dimensions, pattern: (pid) => _nullishCoalesce(_optionalChain([this, 'access', _461 => _461.state, 'access', _462 => _462.patterns, 'optionalAccess', _463 => _463.find, 'call', _464 => _464((p) => p.id === pid)]), () => ( null)) };
11059
11514
  for (const l of _chunkUOGKSVRQcjs.flattenLayers.call(void 0, layers)) {
11060
11515
  if (l.type === "annotation") {
11061
11516
  layers = _chunkUOGKSVRQcjs.mapLayer.call(void 0, layers, l.id, () => ({ ...l, annotation: scaleAnnotation(l.annotation, sx, sy) }));
@@ -11064,7 +11519,7 @@ var ImageEditorController = (_class12 = class {
11064
11519
  const scaled = a ? scaleAnnotation(a, sx, sy) : null;
11065
11520
  const fromAnnotation = scaled ? _chunkH65IBXFIcjs.shapeFromAnnotation.call(void 0, scaled) : null;
11066
11521
  const m = [sx, 0, 0, sy, 0, 0];
11067
- const components = _nullishCoalesce(_optionalChain([fromAnnotation, 'optionalAccess', _463 => _463.components]), () => ( _chunkH65IBXFIcjs.transformShapeComponents.call(void 0, l.components, (p) => ({ x: p.x * sx, y: p.y * sy }), m)));
11522
+ const components = _nullishCoalesce(_optionalChain([fromAnnotation, 'optionalAccess', _465 => _465.components]), () => ( _chunkH65IBXFIcjs.transformShapeComponents.call(void 0, l.components, (p) => ({ x: p.x * sx, y: p.y * sy }), m)));
11068
11523
  const moved = { ...l, components, ...fromAnnotation ? { fill: fromAnnotation.fill, stroke: fromAnnotation.stroke } : {} };
11069
11524
  if (scaled && fromAnnotation) moved.annotation = scaled;
11070
11525
  else delete moved.annotation;
@@ -11082,7 +11537,7 @@ var ImageEditorController = (_class12 = class {
11082
11537
  this.notify();
11083
11538
  }
11084
11539
  toJSON(options) {
11085
- const root = _optionalChain([this, 'access', _464 => _464.contentsStack, 'access', _465 => _465[0], 'optionalAccess', _466 => _466.saved]);
11540
+ const root = _optionalChain([this, 'access', _466 => _466.contentsStack, 'access', _467 => _467[0], 'optionalAccess', _468 => _468.saved]);
11086
11541
  const current = this.state;
11087
11542
  const element = this.imageElement;
11088
11543
  if (root) {
@@ -11093,9 +11548,9 @@ var ImageEditorController = (_class12 = class {
11093
11548
  let out;
11094
11549
  try {
11095
11550
  out = this.serializeState();
11096
- if (_optionalChain([this, 'access', _467 => _467.state, 'access', _468 => _468.selection, 'optionalAccess', _469 => _469.bounds])) out.selection = _chunkQYLWG22Ncjs.serializeSelection.call(void 0, this.state.selection);
11097
- if (_optionalChain([this, 'access', _470 => _470.state, 'access', _471 => _471.channels, 'optionalAccess', _472 => _472.length])) out.channels = serializeChannels(this.state.channels);
11098
- if (_optionalChain([this, 'access', _473 => _473.state, 'access', _474 => _474.paths, 'optionalAccess', _475 => _475.length])) out.paths = serializePaths(this.state.paths);
11551
+ if (_optionalChain([this, 'access', _469 => _469.state, 'access', _470 => _470.selection, 'optionalAccess', _471 => _471.bounds])) out.selection = _chunkQYLWG22Ncjs.serializeSelection.call(void 0, this.state.selection);
11552
+ if (_optionalChain([this, 'access', _472 => _472.state, 'access', _473 => _473.channels, 'optionalAccess', _474 => _474.length])) out.channels = serializeChannels(this.state.channels);
11553
+ if (_optionalChain([this, 'access', _475 => _475.state, 'access', _476 => _476.paths, 'optionalAccess', _477 => _477.length])) out.paths = serializePaths(this.state.paths);
11099
11554
  } finally {
11100
11555
  if (root) {
11101
11556
  this.state = current;
@@ -11130,7 +11585,7 @@ var ImageEditorController = (_class12 = class {
11130
11585
  if (data.selection) {
11131
11586
  try {
11132
11587
  selection = normalizeSelection(_chunkQYLWG22Ncjs.deserializeSelection.call(void 0, data.selection));
11133
- } catch (e34) {
11588
+ } catch (e35) {
11134
11589
  selection = null;
11135
11590
  }
11136
11591
  }
@@ -11213,10 +11668,10 @@ var ImageEditorController = (_class12 = class {
11213
11668
  serializeState() {
11214
11669
  const { width, height } = this.naturalSize;
11215
11670
  const view = _chunkH65IBXFIcjs.legacyView.call(void 0, this.stack(), width, height, null);
11216
- if (view.exact && !this.state.globalLight && !_optionalChain([this, 'access', _476 => _476.state, 'access', _477 => _477.patterns, 'optionalAccess', _478 => _478.length]) && this.bitDepth === 8 && !this.state.colorProfile && !this.state.colorMode) {
11671
+ if (view.exact && !this.state.globalLight && !_optionalChain([this, 'access', _478 => _478.state, 'access', _479 => _479.patterns, 'optionalAccess', _480 => _480.length]) && this.bitDepth === 8 && !this.state.colorProfile && !this.state.colorMode) {
11217
11672
  return {
11218
11673
  // States without adjustment layers keep schema 1, so they round-trip unchanged.
11219
- version: _optionalChain([view, 'access', _479 => _479.adjustments, 'access', _480 => _480.layers, 'optionalAccess', _481 => _481.length]) ? 2 : 1,
11674
+ version: _optionalChain([view, 'access', _481 => _481.adjustments, 'access', _482 => _482.layers, 'optionalAccess', _483 => _483.length]) ? 2 : 1,
11220
11675
  crop: this.state.crop ? { ...this.state.crop } : null,
11221
11676
  transform: { ...this.state.transform },
11222
11677
  adjustments: serializeAdjustments(view.adjustments),
@@ -11241,7 +11696,7 @@ var ImageEditorController = (_class12 = class {
11241
11696
  };
11242
11697
  if (this.state.legacyOutputBlur !== void 0) out.legacyOutputBlur = this.state.legacyOutputBlur;
11243
11698
  if (this.state.globalLight) out.globalLight = { ...this.state.globalLight };
11244
- if (_optionalChain([this, 'access', _482 => _482.state, 'access', _483 => _483.patterns, 'optionalAccess', _484 => _484.length])) out.patterns = _chunkH65IBXFIcjs.serializePatterns.call(void 0, this.state.patterns);
11699
+ if (_optionalChain([this, 'access', _484 => _484.state, 'access', _485 => _485.patterns, 'optionalAccess', _486 => _486.length])) out.patterns = _chunkH65IBXFIcjs.serializePatterns.call(void 0, this.state.patterns);
11245
11700
  if (smartContents) out.smartContents = smartContents;
11246
11701
  if (this.state.bitDepth === 16 || this.state.bitDepth === 32) out.bitDepth = this.state.bitDepth;
11247
11702
  if (this.state.colorProfile) out.colorProfile = serializeColorProfile(this.state.colorProfile);
@@ -11251,7 +11706,7 @@ var ImageEditorController = (_class12 = class {
11251
11706
  }, _class12);
11252
11707
  function serializeAdjustments(adjustments) {
11253
11708
  const out = { ...adjustments };
11254
- if (_optionalChain([out, 'access', _485 => _485.layers, 'optionalAccess', _486 => _486.length])) out.layers = JSON.parse(JSON.stringify(out.layers));
11709
+ if (_optionalChain([out, 'access', _487 => _487.layers, 'optionalAccess', _488 => _488.length])) out.layers = JSON.parse(JSON.stringify(out.layers));
11255
11710
  else delete out.layers;
11256
11711
  if (_chunkH65IBXFIcjs.normalizeProcessVersion.call(void 0, out.process) === _chunkH65IBXFIcjs.LEGACY_PROCESS_VERSION) {
11257
11712
  delete out.process;
@@ -11287,11 +11742,11 @@ function withDevelop(layer, partial) {
11287
11742
  return { ...layer, filters };
11288
11743
  }
11289
11744
  function withBlur(layer, radius) {
11290
- const existing = _optionalChain([layer, 'access', _487 => _487.filters, 'optionalAccess', _488 => _488.find, 'call', _489 => _489((f) => f.kind === "blur")]);
11745
+ const existing = _optionalChain([layer, 'access', _489 => _489.filters, 'optionalAccess', _490 => _490.find, 'call', _491 => _491((f) => f.kind === "blur")]);
11291
11746
  const filters = (_nullishCoalesce(layer.filters, () => ( []))).filter((f) => f.kind !== "blur");
11292
11747
  if (radius > 0) {
11293
11748
  filters.push({
11294
- id: _nullishCoalesce(_optionalChain([existing, 'optionalAccess', _490 => _490.id]), () => ( (layer.source === "document" ? _chunkH65IBXFIcjs.BLUR_FILTER_ID : _chunkH65IBXFIcjs.newLayerId.call(void 0, "flt")))),
11749
+ id: _nullishCoalesce(_optionalChain([existing, 'optionalAccess', _492 => _492.id]), () => ( (layer.source === "document" ? _chunkH65IBXFIcjs.BLUR_FILTER_ID : _chunkH65IBXFIcjs.newLayerId.call(void 0, "flt")))),
11295
11750
  kind: "blur",
11296
11751
  enabled: true,
11297
11752
  radius
@@ -11387,7 +11842,7 @@ function collectStateTiles(layers, into) {
11387
11842
  if (l.type === "shape" || l.type === "type") _chunk474IQG74cjs.collectTiles.call(void 0, l.surface, into);
11388
11843
  if (l.type === "smart") {
11389
11844
  _chunk474IQG74cjs.collectTiles.call(void 0, l.surface, into);
11390
- if (_optionalChain([l, 'access', _491 => _491.smartFilters, 'optionalAccess', _492 => _492.mask])) _chunk474IQG74cjs.collectTiles.call(void 0, l.smartFilters.mask.surface, into);
11845
+ if (_optionalChain([l, 'access', _493 => _493.smartFilters, 'optionalAccess', _494 => _494.mask])) _chunk474IQG74cjs.collectTiles.call(void 0, l.smartFilters.mask.surface, into);
11391
11846
  if (l.contents.raster) _chunk474IQG74cjs.collectTiles.call(void 0, l.contents.raster, into);
11392
11847
  if (l.contents.document) collectStateTiles(l.contents.document.layers, into);
11393
11848
  }
@@ -11419,7 +11874,7 @@ function pixelsOnly(layers) {
11419
11874
  for (const l of layers) {
11420
11875
  if (l.type === "adjustment") continue;
11421
11876
  if (l.type === "group") out.push({ ...l, children: pixelsOnly(l.children) });
11422
- else if (l.type === "pixel" && _optionalChain([l, 'access', _493 => _493.filters, 'optionalAccess', _494 => _494.length])) {
11877
+ else if (l.type === "pixel" && _optionalChain([l, 'access', _495 => _495.filters, 'optionalAccess', _496 => _496.length])) {
11423
11878
  const p = { ...l };
11424
11879
  delete p.filters;
11425
11880
  out.push(p);
@@ -11485,7 +11940,7 @@ function toHex(c) {
11485
11940
  return "#" + [c[0], c[1], c[2]].map((v) => Math.round(v).toString(16).padStart(2, "0")).join("");
11486
11941
  }
11487
11942
  function normalizeSelection(mask) {
11488
- return _optionalChain([mask, 'optionalAccess', _495 => _495.bounds]) ? mask : null;
11943
+ return _optionalChain([mask, 'optionalAccess', _497 => _497.bounds]) ? mask : null;
11489
11944
  }
11490
11945
  function sameSelection(a, b) {
11491
11946
  if (a.width !== b.width || a.height !== b.height) return false;
@@ -11639,7 +12094,7 @@ function loadImageEditorDocument(input) {
11639
12094
  if (typeof input === "string") {
11640
12095
  try {
11641
12096
  parsed = JSON.parse(input);
11642
- } catch (e35) {
12097
+ } catch (e36) {
11643
12098
  parsed = input;
11644
12099
  }
11645
12100
  }
@@ -11695,7 +12150,7 @@ function loadImageEditorDocument(input) {
11695
12150
  }
11696
12151
  const state = { version: 1, ...result.value };
11697
12152
  if (isV2) {
11698
- if (_optionalChain([state, 'access', _496 => _496.adjustments, 'access', _497 => _497.layers, 'optionalAccess', _498 => _498.length])) state.version = 2;
12153
+ if (_optionalChain([state, 'access', _498 => _498.adjustments, 'access', _499 => _499.layers, 'optionalAccess', _500 => _500.length])) state.version = 2;
11699
12154
  result.report.version = 2;
11700
12155
  }
11701
12156
  if (state.selection === void 0) delete state.selection;
@@ -11903,7 +12358,7 @@ function findAdjustmentControl(id) {
11903
12358
  }
11904
12359
  function findLayerControl(kind, id) {
11905
12360
  if (id === "opacity") return ADJUSTMENT_LAYER_OPACITY_CONTROL;
11906
- return _optionalChain([ADJUSTMENT_LAYER_CONTROLS, 'access', _499 => _499[kind], 'optionalAccess', _500 => _500.find, 'call', _501 => _501((c) => c.id === id)]);
12361
+ return _optionalChain([ADJUSTMENT_LAYER_CONTROLS, 'access', _501 => _501[kind], 'optionalAccess', _502 => _502.find, 'call', _503 => _503((c) => c.id === id)]);
11907
12362
  }
11908
12363
  function clampControlValue(spec, v) {
11909
12364
  if (typeof v !== "number" || !Number.isFinite(v)) return spec.default;
@@ -12376,7 +12831,7 @@ function summary(controller) {
12376
12831
  const area = _chunkQYLWG22Ncjs.selectionArea.call(void 0, sel);
12377
12832
  return {
12378
12833
  empty: !sel,
12379
- bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _502 => _502.bounds]), () => ( null)),
12834
+ bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _504 => _504.bounds]), () => ( null)),
12380
12835
  /** Σ coverage in pixels. */
12381
12836
  area: Math.round(area),
12382
12837
  percent: Math.round(area / Math.max(1, width * height) * 1e4) / 100,
@@ -12399,6 +12854,26 @@ function createImageSelectionTools(controller) {
12399
12854
  annotations: { title: "Read the selection", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
12400
12855
  handler: () => summary(controller)
12401
12856
  };
12857
+ const inspectEdge = {
12858
+ name: "inspect_mask_edge",
12859
+ title: "Inspect a mask edge",
12860
+ description: "Measures the edge of the selection (default), a layer's painted mask (layer-mask) or its vector mask (vector-mask), so you can check it without looking. Returns haloScore 0-1 (background colour left just inside the edge; worse above 0.35), edgeAlignment 0-1 (share of the edge on strong image edges; worse below 0.5), jaggedness (outline turning in radians per 100 px beyond what closing it needs; smooth outlines score under 3, worse above 15), softFraction 0-1 (share of edge pixels partly selected), holes and islands (count, total area, the 10 largest with bounds), worst (up to 5 regions with a reason, ready for capture_view rect) and issues (findings with a suggested fix; empty when clean). Measures a pixel layer's masks against its own pixels, otherwise the composite. Read-only: inspect, fix the issues, inspect again.",
12861
+ inputSchema: {
12862
+ type: "object",
12863
+ properties: {
12864
+ target: { type: "string", enum: ["selection", "layer-mask", "vector-mask"], description: "What to inspect (default selection). layer-mask and vector-mask need layerId." },
12865
+ layerId: { type: "string", description: "The layer whose mask to inspect (see list_layers); only with layer-mask or vector-mask." },
12866
+ minArea: { type: "number", minimum: 1, maximum: 1e6, description: "Holes and islands smaller than this many pixels are left out (default 16)." }
12867
+ },
12868
+ additionalProperties: false
12869
+ },
12870
+ annotations: { title: "Inspect a mask edge", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
12871
+ handler: ({ target, layerId, minArea }) => {
12872
+ const t = _nullishCoalesce(target, () => ( "selection"));
12873
+ if (t === "selection" && layerId !== void 0) throw new Error("layerId is only for target layer-mask or vector-mask; leave it out to inspect the selection.");
12874
+ return controller.inspectMaskEdge(t, { layerId, minArea });
12875
+ }
12876
+ };
12402
12877
  const selectRegion = {
12403
12878
  name: "select_region",
12404
12879
  title: "Select a region",
@@ -12452,7 +12927,7 @@ function createImageSelectionTools(controller) {
12452
12927
  break;
12453
12928
  }
12454
12929
  case "polygon": {
12455
- const list = Array.isArray(points) ? points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _503 => _503.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _504 => _504.y]), NaN) })) : [];
12930
+ const list = Array.isArray(points) ? points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _505 => _505.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _506 => _506.y]), NaN) })) : [];
12456
12931
  if (list.length < 3 || !list.every((p) => Number.isFinite(p.x) && Number.isFinite(p.y))) {
12457
12932
  throw new Error("polygon needs points: at least 3 { x, y } vertices.");
12458
12933
  }
@@ -12580,7 +13055,7 @@ function createImageSelectionTools(controller) {
12580
13055
  },
12581
13056
  annotations: writeAnnotations("Refine the selection edge"),
12582
13057
  handler: async (params) => {
12583
- 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', _505 => _505.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _506 => _506.y]), NaN) })) }) : [];
13058
+ 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', _507 => _507.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _508 => _508.y]), NaN) })) }) : [];
12584
13059
  for (const e of edits) {
12585
13060
  if (e.kind === "object") {
12586
13061
  if (!e.rect === !e.point) throw new Error("An object edit takes rect (a box around the object) or point (on it).");
@@ -12744,7 +13219,7 @@ function createImageSelectionTools(controller) {
12744
13219
  },
12745
13220
  annotations: writeAnnotations("Select a polygon (lasso)", true),
12746
13221
  handler: async (args) => {
12747
- const list = Array.isArray(args.points) ? args.points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _507 => _507.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _508 => _508.y]), NaN) })) : [];
13222
+ const list = Array.isArray(args.points) ? args.points.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _509 => _509.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _510 => _510.y]), NaN) })) : [];
12748
13223
  if (list.length < 3 || !list.every((p) => Number.isFinite(p.x) && Number.isFinite(p.y))) {
12749
13224
  throw new Error("points needs at least 3 { x, y } vertices in natural image pixels.");
12750
13225
  }
@@ -12781,7 +13256,7 @@ function createImageSelectionTools(controller) {
12781
13256
  },
12782
13257
  annotations: writeAnnotations("Quick Selection"),
12783
13258
  handler: async (args, context) => {
12784
- const strokes = Array.isArray(args.strokes) ? args.strokes.map((s) => Array.isArray(s) ? s.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _509 => _509.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _510 => _510.y]), NaN) })) : []) : [];
13259
+ const strokes = Array.isArray(args.strokes) ? args.strokes.map((s) => Array.isArray(s) ? s.map((p) => ({ x: num2(_optionalChain([p, 'optionalAccess', _511 => _511.x]), NaN), y: num2(_optionalChain([p, 'optionalAccess', _512 => _512.y]), NaN) })) : []) : [];
12785
13260
  if (!strokes.length || strokes.some((s) => !s.length || !s.every((p) => Number.isFinite(p.x) && Number.isFinite(p.y)))) {
12786
13261
  throw new Error("strokes needs at least one stroke of { x, y } points in natural image pixels.");
12787
13262
  }
@@ -12790,7 +13265,7 @@ function createImageSelectionTools(controller) {
12790
13265
  mode: _chunkQYLWG22Ncjs.parseSelectionMode.call(void 0, args.mode),
12791
13266
  sampleAllLayers: args.sampleAllLayers,
12792
13267
  enhanceEdge: args.enhanceEdge,
12793
- signal: _optionalChain([context, 'optionalAccess', _511 => _511.signal])
13268
+ signal: _optionalChain([context, 'optionalAccess', _513 => _513.signal])
12794
13269
  });
12795
13270
  return summary(controller);
12796
13271
  }
@@ -12828,7 +13303,7 @@ function createImageSelectionTools(controller) {
12828
13303
  sampleAllLayers: args.sampleAllLayers,
12829
13304
  enhanceEdge: args.enhanceEdge,
12830
13305
  useModel: args.useModel,
12831
- signal: _optionalChain([context, 'optionalAccess', _512 => _512.signal])
13306
+ signal: _optionalChain([context, 'optionalAccess', _514 => _514.signal])
12832
13307
  };
12833
13308
  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);
12834
13309
  return { ...summary(controller), method };
@@ -12857,7 +13332,7 @@ function createImageSelectionTools(controller) {
12857
13332
  softness: args.softness === void 0 ? void 0 : num2(args.softness, 4),
12858
13333
  mode: _chunkQYLWG22Ncjs.parseSelectionMode.call(void 0, args.mode),
12859
13334
  sampleAllLayers: args.sampleAllLayers,
12860
- signal: _optionalChain([context, 'optionalAccess', _513 => _513.signal])
13335
+ signal: _optionalChain([context, 'optionalAccess', _515 => _515.signal])
12861
13336
  });
12862
13337
  return { ...summary(controller), noiseLevel };
12863
13338
  }
@@ -12885,7 +13360,7 @@ function createImageSelectionTools(controller) {
12885
13360
  mode: _chunkQYLWG22Ncjs.parseSelectionMode.call(void 0, args.mode),
12886
13361
  sampleAllLayers: args.sampleAllLayers,
12887
13362
  useModel: args.useModel,
12888
- signal: _optionalChain([context, 'optionalAccess', _514 => _514.signal])
13363
+ signal: _optionalChain([context, 'optionalAccess', _516 => _516.signal])
12889
13364
  });
12890
13365
  return { ...summary(controller), method, ...note ? { note } : {} };
12891
13366
  }
@@ -12983,7 +13458,7 @@ function createImageSelectionTools(controller) {
12983
13458
  await controller.selectColorRangePreset(args.preset, { ...common, falloff: num2(args.fuzziness, 20) });
12984
13459
  } else {
12985
13460
  const samples = args.samples.map((s, i) => {
12986
- if (typeof _optionalChain([s, 'optionalAccess', _515 => _515.color]) !== "string" || !/^#?[0-9a-f]{6}$/i.test(s.color.trim())) throw new Error(`samples[${i}].color must be #rrggbb.`);
13461
+ if (typeof _optionalChain([s, 'optionalAccess', _517 => _517.color]) !== "string" || !/^#?[0-9a-f]{6}$/i.test(s.color.trim())) throw new Error(`samples[${i}].color must be #rrggbb.`);
12987
13462
  const at = typeof s.x === "number" && typeof s.y === "number" ? { x: s.x, y: s.y } : void 0;
12988
13463
  return at ? { color: s.color, at } : { color: s.color };
12989
13464
  });
@@ -13225,7 +13700,7 @@ function createImageSelectionTools(controller) {
13225
13700
  annotations: writeAnnotations("Content-Aware Fill"),
13226
13701
  handler: async (args, context) => {
13227
13702
  if (!controller.getSelection()) throw new Error("Nothing is selected; select what to remove first.");
13228
- const rects = (v) => Array.isArray(v) ? v.map((r) => ({ x: num2(_optionalChain([r, 'optionalAccess', _516 => _516.x]), NaN), y: num2(_optionalChain([r, 'optionalAccess', _517 => _517.y]), NaN), width: num2(_optionalChain([r, 'optionalAccess', _518 => _518.width]), NaN), height: num2(_optionalChain([r, 'optionalAccess', _519 => _519.height]), NaN) })) : void 0;
13703
+ const rects = (v) => Array.isArray(v) ? v.map((r) => ({ x: num2(_optionalChain([r, 'optionalAccess', _518 => _518.x]), NaN), y: num2(_optionalChain([r, 'optionalAccess', _519 => _519.y]), NaN), width: num2(_optionalChain([r, 'optionalAccess', _520 => _520.width]), NaN), height: num2(_optionalChain([r, 'optionalAccess', _521 => _521.height]), NaN) })) : void 0;
13229
13704
  return controller.contentAwareFillAsync({
13230
13705
  output: args.output,
13231
13706
  sampleRadius: args.sampleRadius,
@@ -13234,7 +13709,7 @@ function createImageSelectionTools(controller) {
13234
13709
  sampleRects: rects(args.sampleRects),
13235
13710
  excludeRects: rects(args.excludeRects),
13236
13711
  samplingChannelId: typeof args.samplingChannelId === "string" ? args.samplingChannelId : void 0,
13237
- signal: _optionalChain([context, 'optionalAccess', _520 => _520.signal])
13712
+ signal: _optionalChain([context, 'optionalAccess', _522 => _522.signal])
13238
13713
  });
13239
13714
  }
13240
13715
  };
@@ -13444,6 +13919,7 @@ function createImageSelectionTools(controller) {
13444
13919
  };
13445
13920
  return [
13446
13921
  getSelection,
13922
+ inspectEdge,
13447
13923
  selectAll,
13448
13924
  deselect,
13449
13925
  invert2,
@@ -13512,13 +13988,13 @@ function createImageSubjectSelectionTool(controller) {
13512
13988
  handler: async ({ target, maxSegments, mode, feather, enhanceEdge }, context) => {
13513
13989
  if (target !== void 0 && typeof target !== "string") throw new Error("target must be a description in words.");
13514
13990
  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).");
13515
- const perform = _optionalChain([context, 'optionalAccess', _521 => _521.perform]);
13991
+ const perform = _optionalChain([context, 'optionalAccess', _523 => _523.perform]);
13516
13992
  const { segments, method, note } = await controller.selectSubject(String(_nullishCoalesce(target, () => ( ""))), {
13517
13993
  mode: _chunkQYLWG22Ncjs.parseSelectionMode.call(void 0, mode),
13518
13994
  feather: num2(feather, 0),
13519
13995
  maxSegments: typeof maxSegments === "number" ? Math.max(1, Math.round(maxSegments)) : void 0,
13520
13996
  enhanceEdge: enhanceEdge === true,
13521
- signal: _optionalChain([context, 'optionalAccess', _522 => _522.signal]),
13997
+ signal: _optionalChain([context, 'optionalAccess', _524 => _524.signal]),
13522
13998
  // Under playback the cursor traces what the model found, as a lasso, before it is selected.
13523
13999
  beforeApply: perform ? (outlines) => perform(planOutlineTrace(outlines)) : void 0
13524
14000
  });
@@ -13596,7 +14072,7 @@ async function renderImageRegion(controller, request) {
13596
14072
  const maskView = maskViewCanvas(controller, document);
13597
14073
  if (maskView) context.drawImage(maskView, rect2.x, rect2.y, rect2.width, rect2.height, 0, 0, out.width, out.height);
13598
14074
  const selection = state.selection;
13599
- if (_optionalChain([selection, 'optionalAccess', _523 => _523.bounds]) && selection.width === state.imageDimensions.width && selection.height === state.imageDimensions.height) {
14075
+ if (_optionalChain([selection, 'optionalAccess', _525 => _525.bounds]) && selection.width === state.imageDimensions.width && selection.height === state.imageDimensions.height) {
13600
14076
  const shade = selectionShade(selection, document);
13601
14077
  if (shade) context.drawImage(shade, rect2.x, rect2.y, rect2.width, rect2.height, 0, 0, out.width, out.height);
13602
14078
  }
@@ -13621,7 +14097,7 @@ function createImageCaptureSurface(controller) {
13621
14097
  return {
13622
14098
  units: "image pixels",
13623
14099
  content: whole,
13624
- selection: () => ({ rect: _nullishCoalesce(_optionalChain([controller, 'access', _524 => _524.getState, 'call', _525 => _525(), 'access', _526 => _526.selection, 'optionalAccess', _527 => _527.bounds]), () => ( null)) }),
14100
+ selection: () => ({ rect: _nullishCoalesce(_optionalChain([controller, 'access', _526 => _526.getState, 'call', _527 => _527(), 'access', _528 => _528.selection, 'optionalAccess', _529 => _529.bounds]), () => ( null)) }),
13625
14101
  overlays: "a shade over unselected pixels, the crop box outline and a layer mask view (set_mask_view)",
13626
14102
  maxScale: 8,
13627
14103
  render: (request) => renderImageRegion(controller, request)
@@ -13955,7 +14431,7 @@ function describeLayer(layer, activeId, boundsOf) {
13955
14431
  out.bounds = boundsOf(layer);
13956
14432
  out.fillOpacity = round3(_nullishCoalesce(layer.fillOpacity, () => ( 1)));
13957
14433
  out.shape = {
13958
- components: layer.components.map((c) => ({ op: c.op, kind: _nullishCoalesce(_optionalChain([c, 'access', _528 => _528.live, 'optionalAccess', _529 => _529.kind]), () => ( "path")) })),
14434
+ components: layer.components.map((c) => ({ op: c.op, kind: _nullishCoalesce(_optionalChain([c, 'access', _530 => _530.live, 'optionalAccess', _531 => _531.kind]), () => ( "path")) })),
13959
14435
  fill: layer.fill ? layer.fill.type : null,
13960
14436
  stroke: layer.stroke ? { width: layer.stroke.width, paint: layer.stroke.paint.type } : null
13961
14437
  };
@@ -13978,8 +14454,8 @@ function describeLayer(layer, activeId, boundsOf) {
13978
14454
  out.bounds = boundsOf(layer);
13979
14455
  out.fillOpacity = round3(_nullishCoalesce(layer.fillOpacity, () => ( 1)));
13980
14456
  out.contents = { id: layer.contents.id, name: layer.contents.name, kind: layer.contents.kind, width: layer.contents.width, height: layer.contents.height };
13981
- out.smartFilters = (_nullishCoalesce(_optionalChain([layer, 'access', _530 => _530.smartFilters, 'optionalAccess', _531 => _531.filters]), () => ( []))).map((f) => ({ id: f.id, kind: f.kind, enabled: f.enabled }));
13982
- out.filterMask = maskSummary(_optionalChain([layer, 'access', _532 => _532.smartFilters, 'optionalAccess', _533 => _533.mask]));
14457
+ out.smartFilters = (_nullishCoalesce(_optionalChain([layer, 'access', _532 => _532.smartFilters, 'optionalAccess', _533 => _533.filters]), () => ( []))).map((f) => ({ id: f.id, kind: f.kind, enabled: f.enabled }));
14458
+ out.filterMask = maskSummary(_optionalChain([layer, 'access', _534 => _534.smartFilters, 'optionalAccess', _535 => _535.mask]));
13983
14459
  break;
13984
14460
  }
13985
14461
  return out;
@@ -14007,7 +14483,7 @@ function createImageLayerTools(controller) {
14007
14483
  if (!loc) return null;
14008
14484
  return {
14009
14485
  ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)),
14010
- parentId: _nullishCoalesce(_optionalChain([loc, 'access', _534 => _534.parent, 'optionalAccess', _535 => _535.id]), () => ( null)),
14486
+ parentId: _nullishCoalesce(_optionalChain([loc, 'access', _536 => _536.parent, 'optionalAccess', _537 => _537.id]), () => ( null)),
14011
14487
  index: loc.index
14012
14488
  };
14013
14489
  };
@@ -14330,7 +14806,7 @@ function createImageLayerTools(controller) {
14330
14806
  if (view !== "gray" && view !== "overlay" && view !== "off") throw new Error(`Unknown view "${String(view)}". Use gray, overlay or off.`);
14331
14807
  const id = view === "off" || layerId === void 0 ? void 0 : exists(layerId);
14332
14808
  const shown = controller.setMaskView(view, id);
14333
- return { view: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _536 => _536.mode]), () => ( "off")), layerId: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _537 => _537.layerId]), () => ( null)) };
14809
+ return { view: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _538 => _538.mode]), () => ( "off")), layerId: _nullishCoalesce(_optionalChain([shown, 'optionalAccess', _539 => _539.layerId]), () => ( null)) };
14334
14810
  }
14335
14811
  };
14336
14812
  const maskProps = {
@@ -14882,12 +15358,12 @@ var SelectionGesture = (_class13 = class {
14882
15358
  size: _nullishCoalesce(options.quickSize, () => ( 30)),
14883
15359
  grow: q.mode === "add",
14884
15360
  enhanceEdge: _nullishCoalesce(options.quickEnhance, () => ( false)),
14885
- selection: q.mode === "add" && _optionalChain([q, 'access', _538 => _538.base, 'optionalAccess', _539 => _539.bounds]) ? _chunkL52VMQZScjs.serializeMask.call(void 0, q.base) : null
15361
+ selection: q.mode === "add" && _optionalChain([q, 'access', _540 => _540.base, 'optionalAccess', _541 => _541.bounds]) ? _chunkL52VMQZScjs.serializeMask.call(void 0, q.base) : null
14886
15362
  },
14887
15363
  pixels
14888
15364
  );
14889
15365
  if (this.quick === q) this.controller.setSelectionPreview(_chunkQYLWG22Ncjs.combineSelections.call(void 0, q.base, mask, q.mode));
14890
- } catch (e36) {
15366
+ } catch (e37) {
14891
15367
  break;
14892
15368
  }
14893
15369
  } while (q.dirty && this.quick === q);
@@ -15093,7 +15569,7 @@ var SelectionGesture = (_class13 = class {
15093
15569
  this.start = null;
15094
15570
  this.current = null;
15095
15571
  this.points = [];
15096
- const strokeMode = _nullishCoalesce(_optionalChain([this, 'access', _540 => _540.quick, 'optionalAccess', _541 => _541.mode]), () => ( (mode === "replace" && this.controller.getSelection() ? "add" : mode)));
15572
+ const strokeMode = _nullishCoalesce(_optionalChain([this, 'access', _542 => _542.quick, 'optionalAccess', _543 => _543.mode]), () => ( (mode === "replace" && this.controller.getSelection() ? "add" : mode)));
15097
15573
  this.quick = null;
15098
15574
  this.pending = this.controller.quickSelect([stroke], {
15099
15575
  size: _nullishCoalesce(options.quickSize, () => ( 30)),
@@ -15254,7 +15730,7 @@ function handleSelectionShortcut(controller, e, onError) {
15254
15730
  try {
15255
15731
  fn();
15256
15732
  } catch (err) {
15257
- _optionalChain([onError, 'optionalCall', _542 => _542(err instanceof Error ? err.message : String(err))]);
15733
+ _optionalChain([onError, 'optionalCall', _544 => _544(err instanceof Error ? err.message : String(err))]);
15258
15734
  }
15259
15735
  return true;
15260
15736
  };
@@ -15269,9 +15745,9 @@ function handleMaskViewKey(controller, e) {
15269
15745
  if (e.ctrlKey || e.metaKey || e.altKey || e.key !== "\\") return false;
15270
15746
  const id = controller.getState().activeLayerId;
15271
15747
  const layer = id ? controller.getLayer(id) : null;
15272
- if (!_optionalChain([layer, 'optionalAccess', _543 => _543.mask]) || layer.mask.source) return false;
15748
+ if (!_optionalChain([layer, 'optionalAccess', _545 => _545.mask]) || layer.mask.source) return false;
15273
15749
  const view = controller.getMaskView();
15274
- controller.setMaskView(_optionalChain([view, 'optionalAccess', _544 => _544.layerId]) === layer.id && view.mode === "overlay" ? "off" : "overlay", layer.id);
15750
+ controller.setMaskView(_optionalChain([view, 'optionalAccess', _546 => _546.layerId]) === layer.id && view.mode === "overlay" ? "off" : "overlay", layer.id);
15275
15751
  return true;
15276
15752
  }
15277
15753
  function handleQuickMaskKey(controller, e) {
@@ -15485,7 +15961,7 @@ var PaintGesture = (_class14 = class {
15485
15961
  const layer = this.controller.getActiveLayer();
15486
15962
  if (!layer) throw new Error("Select a layer to move in the Layers panel.");
15487
15963
  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.`);
15488
- if (_optionalChain([layer, 'access', _545 => _545.locks, 'optionalAccess', _546 => _546.all]) || _optionalChain([layer, 'access', _547 => _547.locks, 'optionalAccess', _548 => _548.position])) throw new Error(`Layer "${layer.name}" has its position locked.`);
15964
+ if (_optionalChain([layer, 'access', _547 => _547.locks, 'optionalAccess', _548 => _548.all]) || _optionalChain([layer, 'access', _549 => _549.locks, 'optionalAccess', _550 => _550.position])) throw new Error(`Layer "${layer.name}" has its position locked.`);
15489
15965
  const origin = layer.type === "pixel" ? { ...layer.offset } : layer.type === "smart" ? { ...layer.placement.corners[0] } : (() => {
15490
15966
  const b = _chunkH65IBXFIcjs.shapeGeometryBounds.call(void 0, layer);
15491
15967
  return b ? { x: b.x, y: b.y } : { x: 0, y: 0 };
@@ -15542,7 +16018,7 @@ var PaintGesture = (_class14 = class {
15542
16018
  this.move = null;
15543
16019
  }
15544
16020
  cancel() {
15545
- _optionalChain([this, 'access', _549 => _549.stroke, 'optionalAccess', _550 => _550.cancel, 'call', _551 => _551()]);
16021
+ _optionalChain([this, 'access', _551 => _551.stroke, 'optionalAccess', _552 => _552.cancel, 'call', _553 => _553()]);
15546
16022
  this.stroke = null;
15547
16023
  this.move = null;
15548
16024
  }
@@ -15777,7 +16253,7 @@ function profileArg(v) {
15777
16253
  if (s.startsWith("icc:")) {
15778
16254
  try {
15779
16255
  return _chunkOLNIPTB3cjs.base64ToBytes.call(void 0, s.slice(4));
15780
- } catch (e37) {
16256
+ } catch (e38) {
15781
16257
  throw new (0, _chunkH65IBXFIcjs.LayerOperationError)("The icc: value is not valid base64.");
15782
16258
  }
15783
16259
  }
@@ -16623,7 +17099,7 @@ function createImageSmartObjectTools(controller) {
16623
17099
  const layerSummary = (id) => {
16624
17100
  const s = controller.getState();
16625
17101
  const loc = _chunkUOGKSVRQcjs.findLayer.call(void 0, s.layers, id);
16626
- return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _552 => _552.parent, 'optionalAccess', _553 => _553.id]), () => ( null)), index: loc.index } : null;
17102
+ return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _554 => _554.parent, 'optionalAccess', _555 => _555.id]), () => ( null)), index: loc.index } : null;
16627
17103
  };
16628
17104
  const getSmart = {
16629
17105
  name: "get_smart_object",
@@ -17180,7 +17656,7 @@ function createImageShapeTools(controller) {
17180
17656
  const layerSummary = (id) => {
17181
17657
  const s = controller.getState();
17182
17658
  const loc = _chunkUOGKSVRQcjs.findLayer.call(void 0, s.layers, id);
17183
- return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _554 => _554.parent, 'optionalAccess', _555 => _555.id]), () => ( null)), index: loc.index } : null;
17659
+ return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _556 => _556.parent, 'optionalAccess', _557 => _557.id]), () => ( null)), index: loc.index } : null;
17184
17660
  };
17185
17661
  const get = {
17186
17662
  name: "get_shape_layer",
@@ -17411,7 +17887,7 @@ function createImageShapeTools(controller) {
17411
17887
  const mode = args.mode;
17412
17888
  controller.pathToSelection(_nullishCoalesce(fromPathId(args), () => ( pathSpec(args))), { feather: args.feather, antiAlias: args.antiAlias, mode });
17413
17889
  const sel = controller.getSelection();
17414
- return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _556 => _556.bounds]), () => ( null)), area: Math.round(sel ? _chunkQYLWG22Ncjs.selectionArea.call(void 0, sel) : 0) };
17890
+ return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _558 => _558.bounds]), () => ( null)), area: Math.round(sel ? _chunkQYLWG22Ncjs.selectionArea.call(void 0, sel) : 0) };
17415
17891
  }
17416
17892
  };
17417
17893
  const getVectorMask = {
@@ -17443,7 +17919,7 @@ function createImageShapeTools(controller) {
17443
17919
  handler: (args) => {
17444
17920
  const id = layerArg(args.layerId);
17445
17921
  const spec = _nullishCoalesce(fromPathId(args), () => ( pathSpec(args)));
17446
- const hasPath = _optionalChain([spec, 'access', _557 => _557.components, 'optionalAccess', _558 => _558.length]) || spec.shape !== void 0 || spec.subpaths !== void 0;
17922
+ const hasPath = _optionalChain([spec, 'access', _559 => _559.components, 'optionalAccess', _560 => _560.length]) || spec.shape !== void 0 || spec.subpaths !== void 0;
17447
17923
  const from = _nullishCoalesce(args.from, () => ( (hasPath ? "path" : "reveal-all")));
17448
17924
  if (from !== "selection" && TRACE_KEYS.some((k) => args[k] !== void 0)) throw new Error("tolerance, cornerRoundness and minArea apply only to from selection.");
17449
17925
  controller.addVectorMask(id, from, spec, traceOptions(args));
@@ -17551,7 +18027,7 @@ function createImageShapeTools(controller) {
17551
18027
  annotations: { title: "Add a document path", ...WRITE8 },
17552
18028
  handler: (args) => {
17553
18029
  const spec = pathSpec(args);
17554
- if (!_optionalChain([spec, 'access', _559 => _559.components, 'optionalAccess', _560 => _560.length]) && spec.shape === void 0 && spec.subpaths === void 0) throw new Error("Give the path as shape, subpaths or components.");
18030
+ if (!_optionalChain([spec, 'access', _561 => _561.components, 'optionalAccess', _562 => _562.length]) && spec.shape === void 0 && spec.subpaths === void 0) throw new Error("Give the path as shape, subpaths or components.");
17555
18031
  return { path: pathSummary(controller.addPath({ ...spec, name: args.name }).id) };
17556
18032
  }
17557
18033
  };
@@ -17695,7 +18171,7 @@ function createImageTypeTools(controller) {
17695
18171
  const layerSummary = (id) => {
17696
18172
  const s = controller.getState();
17697
18173
  const loc = _chunkUOGKSVRQcjs.findLayer.call(void 0, s.layers, id);
17698
- return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _561 => _561.parent, 'optionalAccess', _562 => _562.id]), () => ( null)), index: loc.index } : null;
18174
+ return loc ? { ...describeLayer(loc.layer, s.activeLayerId, (x) => controller.getLayerBounds(x.id)), parentId: _nullishCoalesce(_optionalChain([loc, 'access', _563 => _563.parent, 'optionalAccess', _564 => _564.id]), () => ( null)), index: loc.index } : null;
17699
18175
  };
17700
18176
  const range = (args) => ({ start: args.start, end: args.end });
17701
18177
  const listFonts = {
@@ -17704,7 +18180,7 @@ function createImageTypeTools(controller) {
17704
18180
  description: "Returns the font families type layers can use here (generic families such as sans-serif always work). Changes nothing.",
17705
18181
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
17706
18182
  annotations: { title: "List fonts", ...READ11 },
17707
- handler: () => ({ families: controller.listFonts(), shaper: _nullishCoalesce(_optionalChain([controller, 'access', _563 => _563.getTextShaper, 'call', _564 => _564(), 'optionalAccess', _565 => _565.id]), () => ( null)) })
18183
+ handler: () => ({ families: controller.listFonts(), shaper: _nullishCoalesce(_optionalChain([controller, 'access', _565 => _565.getTextShaper, 'call', _566 => _566(), 'optionalAccess', _567 => _567.id]), () => ( null)) })
17708
18184
  };
17709
18185
  const get = {
17710
18186
  name: "get_text_layer",
@@ -17860,7 +18336,7 @@ function createImageTypeTools(controller) {
17860
18336
  const init = pick2(args, ["text", "x", "y", "orientation", "box", "style", "paragraph", "rotation", "mode", "feather", "antiAlias"]);
17861
18337
  controller.selectTextShape(init);
17862
18338
  const sel = controller.getSelection();
17863
- return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _566 => _566.bounds]), () => ( null)), area: Math.round(sel ? _chunkQYLWG22Ncjs.selectionArea.call(void 0, sel) : 0) };
18339
+ return { empty: !sel, bounds: _nullishCoalesce(_optionalChain([sel, 'optionalAccess', _568 => _568.bounds]), () => ( null)), area: Math.round(sel ? _chunkQYLWG22Ncjs.selectionArea.call(void 0, sel) : 0) };
17864
18340
  }
17865
18341
  };
17866
18342
  return [listFonts, get, add2, setText, setStyle, setParagraph, setFrame, setOrientation, toShape, typeMask];
@@ -18039,7 +18515,7 @@ function createImageEditorToolProvider(controller, options = {}) {
18039
18515
  for (const ref of [aboveId, parentId]) {
18040
18516
  if (ref !== void 0 && !controller.getLayer(ref)) throw new Error(`Unknown layer "${ref}". Call list_layers for ids.`);
18041
18517
  }
18042
- if (parentId !== void 0 && _optionalChain([controller, 'access', _567 => _567.getLayer, 'call', _568 => _568(parentId), 'optionalAccess', _569 => _569.type]) !== "group") throw new Error(`Layer "${parentId}" is not a group.`);
18518
+ if (parentId !== void 0 && _optionalChain([controller, 'access', _569 => _569.getLayer, 'call', _570 => _570(parentId), 'optionalAccess', _571 => _571.type]) !== "group") throw new Error(`Layer "${parentId}" is not a group.`);
18043
18519
  const id = controller.addAdjustmentLayer({ kind, params, opacity, blend, name, aboveId, parentId, useSelection: useSelection !== false });
18044
18520
  const layer = controller.getAdjustmentLayer(id);
18045
18521
  return { layer: JSON.parse(JSON.stringify(layer)), index: controller.getAdjustmentLayers().findIndex((l) => l.id === id), masked: Boolean(layer.mask) };
@@ -18337,7 +18813,7 @@ var SelectAndMaskSession = (_class15 = class {
18337
18813
  if (!ids.length) return null;
18338
18814
  try {
18339
18815
  return this.controller.compositePixels(void 0, { layerIds: ids });
18340
- } catch (e38) {
18816
+ } catch (e39) {
18341
18817
  return null;
18342
18818
  }
18343
18819
  }
@@ -18374,7 +18850,7 @@ var SelectAndMaskSession = (_class15 = class {
18374
18850
  const h = Math.max(1, Math.round(px2.height * s));
18375
18851
  this.previewPixels = scalePixels(px2, w, h);
18376
18852
  this.belowPreview = this.below ? scalePixels(this.below, w, h) : null;
18377
- this.baseMask = _optionalChain([this, 'access', _570 => _570.base, 'optionalAccess', _571 => _571.bounds]) ? s === 1 ? this.base : _chunkQYLWG22Ncjs.resizeSelection.call(void 0, this.base, w, h) : null;
18853
+ this.baseMask = _optionalChain([this, 'access', _572 => _572.base, 'optionalAccess', _573 => _573.bounds]) ? s === 1 ? this.base : _chunkQYLWG22Ncjs.resizeSelection.call(void 0, this.base, w, h) : null;
18378
18854
  }
18379
18855
  /**
18380
18856
  * Recomputes the preview mask from the base selection, the strokes and the settings: at once on
@@ -18392,7 +18868,7 @@ var SelectAndMaskSession = (_class15 = class {
18392
18868
  const edits = [...this.editsList, ...this.live ? [this.live] : []].map((e) => scaleEdit(e, scale));
18393
18869
  try {
18394
18870
  const { selection, refineBrush } = _chunkL52VMQZScjs.applyRefineEdits.call(void 0, px2, this.baseMask, edits, px2.width, px2.height);
18395
- this.previewMask = _optionalChain([selection, 'optionalAccess', _572 => _572.bounds]) ? _chunkL52VMQZScjs.refineSelection.call(void 0, px2, selection, scaleParams(this.settingsValue.params, scale), refineBrush) : null;
18871
+ this.previewMask = _optionalChain([selection, 'optionalAccess', _574 => _574.bounds]) ? _chunkL52VMQZScjs.refineSelection.call(void 0, px2, selection, scaleParams(this.settingsValue.params, scale), refineBrush) : null;
18396
18872
  this.error = null;
18397
18873
  } catch (err) {
18398
18874
  this.previewMask = null;
@@ -18498,7 +18974,7 @@ var SelectAndMaskSession = (_class15 = class {
18498
18974
  break;
18499
18975
  }
18500
18976
  case "on-layers": {
18501
- const under = _optionalChain([this, 'access', _573 => _573.belowPreview, 'optionalAccess', _574 => _574.data]);
18977
+ const under = _optionalChain([this, 'access', _575 => _575.belowPreview, 'optionalAccess', _576 => _576.data]);
18502
18978
  let ur = checker;
18503
18979
  let ug = checker;
18504
18980
  let ub = checker;
@@ -18677,10 +19153,10 @@ function resolveMosaicRegionBounds(region, imgWidth, imgHeight) {
18677
19153
  if (x1 <= x0 || y1 <= y0) return null;
18678
19154
  return { x0, y0, x1, y1 };
18679
19155
  }
18680
- function applyRegionMosaic(imageData, regions, blockSize = 12) {
19156
+ function applyRegionMosaic(imageData, regions2, blockSize = 12) {
18681
19157
  const { data, width, height } = imageData;
18682
19158
  const step = Math.max(2, Math.round(blockSize));
18683
- for (const region of regions) {
19159
+ for (const region of regions2) {
18684
19160
  const bounds = resolveMosaicRegionBounds(region, width, height);
18685
19161
  if (!bounds) continue;
18686
19162
  const { x0, y0, x1, y1 } = bounds;
@@ -18722,10 +19198,10 @@ function applyRegionMosaic(imageData, regions, blockSize = 12) {
18722
19198
  }
18723
19199
  return imageData;
18724
19200
  }
18725
- function applyRegionBlur(imageData, regions, radius = 10) {
19201
+ function applyRegionBlur(imageData, regions2, radius = 10) {
18726
19202
  const { data, width, height } = imageData;
18727
19203
  const rad = Math.max(1, Math.min(64, Math.round(radius)));
18728
- for (const region of regions) {
19204
+ for (const region of regions2) {
18729
19205
  const bounds = resolveMosaicRegionBounds(region, width, height);
18730
19206
  if (!bounds) continue;
18731
19207
  const { x0, y0, x1, y1 } = bounds;
@@ -18794,7 +19270,7 @@ function maskThumbnailClick(controller, layer, e) {
18794
19270
  } else if (e.altKey && !layer.mask.source) {
18795
19271
  const mode = e.shiftKey ? "overlay" : "gray";
18796
19272
  const view = controller.getMaskView();
18797
- controller.setMaskView(_optionalChain([view, 'optionalAccess', _575 => _575.layerId]) === layer.id && view.mode === mode ? "off" : mode, layer.id);
19273
+ controller.setMaskView(_optionalChain([view, 'optionalAccess', _577 => _577.layerId]) === layer.id && view.mode === mode ? "off" : mode, layer.id);
18798
19274
  } else if (e.shiftKey) {
18799
19275
  controller.setLayerMaskProps(layer.id, { enabled: layer.mask.enabled === false });
18800
19276
  } else {
@@ -18858,7 +19334,7 @@ function layerHasThumbnail(layer) {
18858
19334
  return layer.type === "pixel" || layer.type === "shape" || layer.type === "type";
18859
19335
  }
18860
19336
  function layerWarning(layer) {
18861
- if (layer.type === "type" && _optionalChain([layer, 'access', _576 => _576.missingFonts, 'optionalAccess', _577 => _577.length])) {
19337
+ if (layer.type === "type" && _optionalChain([layer, 'access', _578 => _578.missingFonts, 'optionalAccess', _579 => _579.length])) {
18862
19338
  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."}`;
18863
19339
  }
18864
19340
  return null;
@@ -18881,16 +19357,16 @@ function layerMenu(controller) {
18881
19357
  const siblings = loc ? loc.parent ? loc.parent.children : s.layers : [];
18882
19358
  const below = loc ? siblings[loc.index - 1] : void 0;
18883
19359
  const hasSel = controller.hasSelection;
18884
- const isPixel = _optionalChain([active, 'optionalAccess', _578 => _578.type]) === "pixel";
18885
- const hasOwnPixels = _optionalChain([active, 'optionalAccess', _579 => _579.type]) === "pixel" || _optionalChain([active, 'optionalAccess', _580 => _580.type]) === "shape" || _optionalChain([active, 'optionalAccess', _581 => _581.type]) === "type" || _optionalChain([active, 'optionalAccess', _582 => _582.type]) === "smart";
19360
+ const isPixel = _optionalChain([active, 'optionalAccess', _580 => _580.type]) === "pixel";
19361
+ const hasOwnPixels = _optionalChain([active, 'optionalAccess', _581 => _581.type]) === "pixel" || _optionalChain([active, 'optionalAccess', _582 => _582.type]) === "shape" || _optionalChain([active, 'optionalAccess', _583 => _583.type]) === "type" || _optionalChain([active, 'optionalAccess', _584 => _584.type]) === "smart";
18886
19362
  return [
18887
19363
  { action: "new-layer", label: "New Layer", enabled: true },
18888
19364
  { action: "new-group", label: "New Group", enabled: true },
18889
19365
  { action: "duplicate", label: "Duplicate Layer", enabled: Boolean(active) },
18890
19366
  { action: "delete", label: "Delete Layer", enabled: Boolean(active) },
18891
19367
  { action: "group-selected", label: "Group Layer", enabled: Boolean(active) },
18892
- { action: "ungroup", label: "Ungroup", enabled: _optionalChain([active, 'optionalAccess', _583 => _583.type]) === "group" },
18893
- { action: "merge-down", label: "Merge Down", enabled: Boolean(_optionalChain([active, 'optionalAccess', _584 => _584.visible]) && _optionalChain([below, 'optionalAccess', _585 => _585.type]) === "pixel") },
19368
+ { action: "ungroup", label: "Ungroup", enabled: _optionalChain([active, 'optionalAccess', _585 => _585.type]) === "group" },
19369
+ { action: "merge-down", label: "Merge Down", enabled: Boolean(_optionalChain([active, 'optionalAccess', _586 => _586.visible]) && _optionalChain([below, 'optionalAccess', _587 => _587.type]) === "pixel") },
18894
19370
  { action: "merge-visible", label: "Merge Visible", enabled: s.layers.some((l) => l.visible) },
18895
19371
  { action: "flatten", label: "Flatten Image", enabled: s.layers.length > 0 },
18896
19372
  { action: "via-copy", label: "Layer via Copy", enabled: isPixel && hasSel },
@@ -18900,27 +19376,27 @@ function layerMenu(controller) {
18900
19376
  { action: "add-mask-hide-selection", label: "Add Mask Hiding Selection", enabled: Boolean(active) && hasSel },
18901
19377
  { action: "add-mask-transparency", label: "Add Mask from Transparency", enabled: hasOwnPixels },
18902
19378
  { action: "select-transparency", label: "Select Layer Pixels", enabled: hasOwnPixels },
18903
- { action: "apply-mask", label: "Apply Layer Mask", enabled: isPixel && Boolean(_optionalChain([active, 'optionalAccess', _586 => _586.mask])) },
18904
- { action: "delete-mask", label: "Delete Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _587 => _587.mask])) },
18905
- { action: "toggle-mask", label: _optionalChain([active, 'optionalAccess', _588 => _588.mask, 'optionalAccess', _589 => _589.enabled]) === false ? "Enable Layer Mask" : "Disable Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _590 => _590.mask])) },
18906
- { action: "toggle-mask-link", label: _optionalChain([active, 'optionalAccess', _591 => _591.mask, 'optionalAccess', _592 => _592.linked]) === false ? "Link Layer Mask" : "Unlink Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _593 => _593.mask]) && !active.mask.source) },
18907
- { action: "add-vector-mask", label: "Add Vector Mask (Reveal All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _594 => _594.mask, 'optionalAccess', _595 => _595.source])) },
18908
- { action: "add-vector-mask-hide", label: "Add Vector Mask (Hide All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _596 => _596.mask, 'optionalAccess', _597 => _597.source])) },
18909
- { action: "add-vector-mask-selection", label: "Add Vector Mask from Selection", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _598 => _598.mask, 'optionalAccess', _599 => _599.source])) && hasSel },
18910
- { action: "delete-vector-mask", label: "Delete Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _600 => _600.vectorMask])) },
18911
- { action: "toggle-vector-mask", label: _optionalChain([active, 'optionalAccess', _601 => _601.vectorMask, 'optionalAccess', _602 => _602.enabled]) === false ? "Enable Vector Mask" : "Disable Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _603 => _603.vectorMask])) },
18912
- { action: "rasterize-vector-mask", label: "Rasterize Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _604 => _604.vectorMask])) },
18913
- { action: "rasterize", label: "Rasterize Layer", enabled: _optionalChain([active, 'optionalAccess', _605 => _605.type]) === "annotation" || _optionalChain([active, 'optionalAccess', _606 => _606.type]) === "smart" || _optionalChain([active, 'optionalAccess', _607 => _607.type]) === "shape" || _optionalChain([active, 'optionalAccess', _608 => _608.type]) === "type" || isPixel && Boolean(_optionalChain([active, 'optionalAccess', _609 => _609.type]) === "pixel" && _optionalChain([active, 'access', _610 => _610.filters, 'optionalAccess', _611 => _611.length])) },
19379
+ { action: "apply-mask", label: "Apply Layer Mask", enabled: isPixel && Boolean(_optionalChain([active, 'optionalAccess', _588 => _588.mask])) },
19380
+ { action: "delete-mask", label: "Delete Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _589 => _589.mask])) },
19381
+ { action: "toggle-mask", label: _optionalChain([active, 'optionalAccess', _590 => _590.mask, 'optionalAccess', _591 => _591.enabled]) === false ? "Enable Layer Mask" : "Disable Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _592 => _592.mask])) },
19382
+ { action: "toggle-mask-link", label: _optionalChain([active, 'optionalAccess', _593 => _593.mask, 'optionalAccess', _594 => _594.linked]) === false ? "Link Layer Mask" : "Unlink Layer Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _595 => _595.mask]) && !active.mask.source) },
19383
+ { action: "add-vector-mask", label: "Add Vector Mask (Reveal All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _596 => _596.mask, 'optionalAccess', _597 => _597.source])) },
19384
+ { action: "add-vector-mask-hide", label: "Add Vector Mask (Hide All)", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _598 => _598.mask, 'optionalAccess', _599 => _599.source])) },
19385
+ { action: "add-vector-mask-selection", label: "Add Vector Mask from Selection", enabled: Boolean(active && active.type !== "shape" && !_optionalChain([active, 'access', _600 => _600.mask, 'optionalAccess', _601 => _601.source])) && hasSel },
19386
+ { action: "delete-vector-mask", label: "Delete Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _602 => _602.vectorMask])) },
19387
+ { action: "toggle-vector-mask", label: _optionalChain([active, 'optionalAccess', _603 => _603.vectorMask, 'optionalAccess', _604 => _604.enabled]) === false ? "Enable Vector Mask" : "Disable Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _605 => _605.vectorMask])) },
19388
+ { action: "rasterize-vector-mask", label: "Rasterize Vector Mask", enabled: Boolean(_optionalChain([active, 'optionalAccess', _606 => _606.vectorMask])) },
19389
+ { action: "rasterize", label: "Rasterize Layer", enabled: _optionalChain([active, 'optionalAccess', _607 => _607.type]) === "annotation" || _optionalChain([active, 'optionalAccess', _608 => _608.type]) === "smart" || _optionalChain([active, 'optionalAccess', _609 => _609.type]) === "shape" || _optionalChain([active, 'optionalAccess', _610 => _610.type]) === "type" || isPixel && Boolean(_optionalChain([active, 'optionalAccess', _611 => _611.type]) === "pixel" && _optionalChain([active, 'access', _612 => _612.filters, 'optionalAccess', _613 => _613.length])) },
18914
19390
  { action: "convert-smart", label: "Convert to Smart Object", enabled: Boolean(active && active.type !== "annotation") },
18915
- { action: "edit-contents", label: "Edit Contents", enabled: _optionalChain([active, 'optionalAccess', _612 => _612.type]) === "smart" },
18916
- { action: "smart-via-copy", label: "New Smart Object via Copy", enabled: _optionalChain([active, 'optionalAccess', _613 => _613.type]) === "smart" },
18917
- { action: "add-filter-mask", label: "Add Smart Filter Mask", enabled: _optionalChain([active, 'optionalAccess', _614 => _614.type]) === "smart" && !_optionalChain([active, 'access', _615 => _615.smartFilters, 'optionalAccess', _616 => _616.mask]) },
18918
- { action: "toggle-clip", label: _optionalChain([active, 'optionalAccess', _617 => _617.clipped]) ? "Release Clipping Mask" : "Create Clipping Mask", enabled: Boolean(loc && loc.index > 0) }
19391
+ { action: "edit-contents", label: "Edit Contents", enabled: _optionalChain([active, 'optionalAccess', _614 => _614.type]) === "smart" },
19392
+ { action: "smart-via-copy", label: "New Smart Object via Copy", enabled: _optionalChain([active, 'optionalAccess', _615 => _615.type]) === "smart" },
19393
+ { action: "add-filter-mask", label: "Add Smart Filter Mask", enabled: _optionalChain([active, 'optionalAccess', _616 => _616.type]) === "smart" && !_optionalChain([active, 'access', _617 => _617.smartFilters, 'optionalAccess', _618 => _618.mask]) },
19394
+ { action: "toggle-clip", label: _optionalChain([active, 'optionalAccess', _619 => _619.clipped]) ? "Release Clipping Mask" : "Create Clipping Mask", enabled: Boolean(loc && loc.index > 0) }
18919
19395
  ];
18920
19396
  }
18921
19397
  async function runLayerMenuAction(controller, action) {
18922
19398
  const active = controller.getActiveLayer();
18923
- const id = _optionalChain([active, 'optionalAccess', _618 => _618.id]);
19399
+ const id = _optionalChain([active, 'optionalAccess', _620 => _620.id]);
18924
19400
  try {
18925
19401
  switch (action) {
18926
19402
  case "new-layer":
@@ -18976,10 +19452,10 @@ async function runLayerMenuAction(controller, action) {
18976
19452
  if (id) controller.removeLayerMask(id);
18977
19453
  break;
18978
19454
  case "toggle-mask":
18979
- if (id && _optionalChain([active, 'optionalAccess', _619 => _619.mask])) controller.setLayerMaskProps(id, { enabled: active.mask.enabled === false });
19455
+ if (id && _optionalChain([active, 'optionalAccess', _621 => _621.mask])) controller.setLayerMaskProps(id, { enabled: active.mask.enabled === false });
18980
19456
  break;
18981
19457
  case "toggle-mask-link":
18982
- if (id && _optionalChain([active, 'optionalAccess', _620 => _620.mask])) controller.setLayerMaskProps(id, { linked: active.mask.linked === false });
19458
+ if (id && _optionalChain([active, 'optionalAccess', _622 => _622.mask])) controller.setLayerMaskProps(id, { linked: active.mask.linked === false });
18983
19459
  break;
18984
19460
  case "add-vector-mask":
18985
19461
  case "add-vector-mask-hide":
@@ -18992,7 +19468,7 @@ async function runLayerMenuAction(controller, action) {
18992
19468
  if (id) controller.removeVectorMask(id);
18993
19469
  break;
18994
19470
  case "toggle-vector-mask":
18995
- if (id && _optionalChain([active, 'optionalAccess', _621 => _621.vectorMask])) controller.setVectorMaskProps(id, { enabled: active.vectorMask.enabled === false });
19471
+ if (id && _optionalChain([active, 'optionalAccess', _623 => _623.vectorMask])) controller.setVectorMaskProps(id, { enabled: active.vectorMask.enabled === false });
18996
19472
  break;
18997
19473
  case "rasterize-vector-mask":
18998
19474
  if (id) controller.rasterizeVectorMask(id);
@@ -19013,7 +19489,7 @@ async function runLayerMenuAction(controller, action) {
19013
19489
  if (id) controller.setSmartFilterMask(id, "reveal-all");
19014
19490
  break;
19015
19491
  case "toggle-clip":
19016
- if (id) controller.setLayerProperties(id, { clipped: !_optionalChain([active, 'optionalAccess', _622 => _622.clipped]) });
19492
+ if (id) controller.setLayerProperties(id, { clipped: !_optionalChain([active, 'optionalAccess', _624 => _624.clipped]) });
19017
19493
  break;
19018
19494
  }
19019
19495
  return null;
@@ -19023,7 +19499,7 @@ async function runLayerMenuAction(controller, action) {
19023
19499
  }
19024
19500
  function smartFilterRows(layer) {
19025
19501
  if (layer.type !== "smart") return [];
19026
- const list = _nullishCoalesce(_optionalChain([layer, 'access', _623 => _623.smartFilters, 'optionalAccess', _624 => _624.filters]), () => ( []));
19502
+ const list = _nullishCoalesce(_optionalChain([layer, 'access', _625 => _625.smartFilters, 'optionalAccess', _626 => _626.filters]), () => ( []));
19027
19503
  const rows = list.map((f, index) => ({
19028
19504
  filter: f,
19029
19505
  index,
@@ -19049,8 +19525,8 @@ function extractNormalizedLayerItems(controller, fallbackImageUrl = "") {
19049
19525
  };
19050
19526
  collectSerialized(_nullishCoalesce(serialized.layers, () => ( [])));
19051
19527
  const sLayerMap = new Map(allSerializedLayers.map((sl) => [sl.id, sl]));
19052
- const imgW = _optionalChain([state, 'access', _625 => _625.imageDimensions, 'optionalAccess', _626 => _626.width]) || 1;
19053
- const imgH = _optionalChain([state, 'access', _627 => _627.imageDimensions, 'optionalAccess', _628 => _628.height]) || 1;
19528
+ const imgW = _optionalChain([state, 'access', _627 => _627.imageDimensions, 'optionalAccess', _628 => _628.width]) || 1;
19529
+ const imgH = _optionalChain([state, 'access', _629 => _629.imageDimensions, 'optionalAccess', _630 => _630.height]) || 1;
19054
19530
  return ctrlLayers.map((l) => {
19055
19531
  const bounds = controller.getLayerBounds(l.id) || {
19056
19532
  x: 0,
@@ -19059,8 +19535,8 @@ function extractNormalizedLayerItems(controller, fallbackImageUrl = "") {
19059
19535
  height: imgH
19060
19536
  };
19061
19537
  const sLayer = sLayerMap.get(l.id);
19062
- const assetKey = _optionalChain([sLayer, 'optionalAccess', _629 => _629.asset]);
19063
- const layerDataUrl = assetKey && assets[assetKey] || assets[l.id] || (_optionalChain([sLayer, 'optionalAccess', _630 => _630.source]) === "document" ? fallbackImageUrl : "");
19538
+ const assetKey = _optionalChain([sLayer, 'optionalAccess', _631 => _631.asset]);
19539
+ const layerDataUrl = assetKey && assets[assetKey] || assets[l.id] || (_optionalChain([sLayer, 'optionalAccess', _632 => _632.source]) === "document" ? fallbackImageUrl : "");
19064
19540
  return {
19065
19541
  id: l.id,
19066
19542
  name: l.name || "Untitled Layer",
@@ -19114,9 +19590,9 @@ async function addLayerOfKind(controller, id, init) {
19114
19590
  const cx = Math.round(canvas.width / 2);
19115
19591
  const cy = Math.round(canvas.height / 2);
19116
19592
  return controller.addTextLayer({
19117
- text: _optionalChain([init, 'optionalAccess', _631 => _631.text]) || "New Text",
19118
- x: typeof _optionalChain([init, 'optionalAccess', _632 => _632.x]) === "number" ? init.x : cx - 100,
19119
- y: typeof _optionalChain([init, 'optionalAccess', _633 => _633.y]) === "number" ? init.y : cy,
19593
+ text: _optionalChain([init, 'optionalAccess', _633 => _633.text]) || "New Text",
19594
+ x: typeof _optionalChain([init, 'optionalAccess', _634 => _634.x]) === "number" ? init.x : cx - 100,
19595
+ y: typeof _optionalChain([init, 'optionalAccess', _635 => _635.y]) === "number" ? init.y : cy,
19120
19596
  ...init
19121
19597
  });
19122
19598
  }
@@ -19129,10 +19605,10 @@ async function addLayerOfKind(controller, id, init) {
19129
19605
  return controller.addShapeLayer({
19130
19606
  shape: {
19131
19607
  kind: "rect",
19132
- x: typeof _optionalChain([init, 'optionalAccess', _634 => _634.x]) === "number" ? init.x : cx - Math.round(w / 2),
19133
- y: typeof _optionalChain([init, 'optionalAccess', _635 => _635.y]) === "number" ? init.y : cy - Math.round(h / 2),
19134
- width: typeof _optionalChain([init, 'optionalAccess', _636 => _636.width]) === "number" ? init.width : w,
19135
- height: typeof _optionalChain([init, 'optionalAccess', _637 => _637.height]) === "number" ? init.height : h
19608
+ x: typeof _optionalChain([init, 'optionalAccess', _636 => _636.x]) === "number" ? init.x : cx - Math.round(w / 2),
19609
+ y: typeof _optionalChain([init, 'optionalAccess', _637 => _637.y]) === "number" ? init.y : cy - Math.round(h / 2),
19610
+ width: typeof _optionalChain([init, 'optionalAccess', _638 => _638.width]) === "number" ? init.width : w,
19611
+ height: typeof _optionalChain([init, 'optionalAccess', _639 => _639.height]) === "number" ? init.height : h
19136
19612
  },
19137
19613
  name: "Rectangle",
19138
19614
  ...init
@@ -19147,10 +19623,10 @@ async function addLayerOfKind(controller, id, init) {
19147
19623
  return controller.addShapeLayer({
19148
19624
  shape: {
19149
19625
  kind: "ellipse",
19150
- x: typeof _optionalChain([init, 'optionalAccess', _638 => _638.x]) === "number" ? init.x : cx - Math.round(w / 2),
19151
- y: typeof _optionalChain([init, 'optionalAccess', _639 => _639.y]) === "number" ? init.y : cy - Math.round(h / 2),
19152
- width: typeof _optionalChain([init, 'optionalAccess', _640 => _640.width]) === "number" ? init.width : w,
19153
- height: typeof _optionalChain([init, 'optionalAccess', _641 => _641.height]) === "number" ? init.height : h
19626
+ x: typeof _optionalChain([init, 'optionalAccess', _640 => _640.x]) === "number" ? init.x : cx - Math.round(w / 2),
19627
+ y: typeof _optionalChain([init, 'optionalAccess', _641 => _641.y]) === "number" ? init.y : cy - Math.round(h / 2),
19628
+ width: typeof _optionalChain([init, 'optionalAccess', _642 => _642.width]) === "number" ? init.width : w,
19629
+ height: typeof _optionalChain([init, 'optionalAccess', _643 => _643.height]) === "number" ? init.height : h
19154
19630
  },
19155
19631
  name: "Ellipse",
19156
19632
  ...init
@@ -19211,18 +19687,18 @@ function layerEffectsPanel(layer) {
19211
19687
  if (!layer) return { ...empty, available: false, reason: "Select a layer to add a layer style." };
19212
19688
  if (layer.type === "adjustment") return { ...empty, available: false, reason: "Adjustment layers cannot have a layer style." };
19213
19689
  const fx = layer.effects;
19214
- const readOnly = Boolean(_optionalChain([layer, 'access', _642 => _642.locks, 'optionalAccess', _643 => _643.all]));
19690
+ const readOnly = Boolean(_optionalChain([layer, 'access', _644 => _644.locks, 'optionalAccess', _645 => _645.all]));
19215
19691
  return {
19216
19692
  available: true,
19217
19693
  readOnly,
19218
19694
  reason: readOnly ? "The layer is locked; unlock it to change its layer style." : void 0,
19219
- enabled: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _644 => _644.enabled]), () => ( true)),
19220
- scale: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _645 => _645.scale]), () => ( 1)),
19221
- rows: (_nullishCoalesce(_optionalChain([fx, 'optionalAccess', _646 => _646.items]), () => ( []))).map((e) => ({ id: e.id, kind: e.kind, label: _chunkUOGKSVRQcjs.layerEffectLabel.call(void 0, e.kind), enabled: e.enabled }))
19695
+ enabled: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _646 => _646.enabled]), () => ( true)),
19696
+ scale: _nullishCoalesce(_optionalChain([fx, 'optionalAccess', _647 => _647.scale]), () => ( 1)),
19697
+ rows: (_nullishCoalesce(_optionalChain([fx, 'optionalAccess', _648 => _648.items]), () => ( []))).map((e) => ({ id: e.id, kind: e.kind, label: _chunkUOGKSVRQcjs.layerEffectLabel.call(void 0, e.kind), enabled: e.enabled }))
19222
19698
  };
19223
19699
  }
19224
19700
  function layerEffectsBadge(layer) {
19225
- if (!_optionalChain([layer, 'access', _647 => _647.effects, 'optionalAccess', _648 => _648.items, 'access', _649 => _649.length])) return null;
19701
+ if (!_optionalChain([layer, 'access', _649 => _649.effects, 'optionalAccess', _650 => _650.items, 'access', _651 => _651.length])) return null;
19226
19702
  return _chunkUOGKSVRQcjs.hasActiveEffects.call(void 0, layer.effects) ? "on" : "off";
19227
19703
  }
19228
19704
  var LAYER_EFFECT_MENU = _chunkUOGKSVRQcjs.LAYER_EFFECT_KINDS.map((kind) => ({ kind, label: _chunkUOGKSVRQcjs.layerEffectLabel.call(void 0, kind) }));
@@ -19267,8 +19743,8 @@ function fillControls(f, allowPattern, patterns) {
19267
19743
  }
19268
19744
  function gradientControls(prefix, g) {
19269
19745
  return [
19270
- { key: `${prefix}.stops.0.color`, label: "Start colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _650 => _650.stops, 'access', _651 => _651[0], 'optionalAccess', _652 => _652.color]), () => ( "#000000")) },
19271
- { key: `${prefix}.stops.last.color`, label: "End colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _653 => _653.stops, 'access', _654 => _654[g.stops.length - 1], 'optionalAccess', _655 => _655.color]), () => ( "#ffffff")) },
19746
+ { key: `${prefix}.stops.0.color`, label: "Start colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _652 => _652.stops, 'access', _653 => _653[0], 'optionalAccess', _654 => _654.color]), () => ( "#000000")) },
19747
+ { key: `${prefix}.stops.last.color`, label: "End colour", type: "color", value: _nullishCoalesce(_optionalChain([g, 'access', _655 => _655.stops, 'access', _656 => _656[g.stops.length - 1], 'optionalAccess', _657 => _657.color]), () => ( "#ffffff")) },
19272
19748
  { key: `${prefix}.style`, label: "Style", type: "select", value: g.style, options: opt(["linear", "Linear"], ["radial", "Radial"], ["angle", "Angle"], ["reflected", "Reflected"], ["diamond", "Diamond"]) },
19273
19749
  { key: `${prefix}.angle`, label: "Angle", type: "range", min: -180, max: 180, step: 1, value: g.angle, unit: "\xB0" },
19274
19750
  { key: `${prefix}.scale`, label: "Scale", type: "range", min: 0.1, max: 1.5, step: 0.01, value: g.scale, percent: true, unit: "%" },
@@ -19360,19 +19836,19 @@ function layerEffectControls(e, patterns = []) {
19360
19836
  }
19361
19837
  function fillOfType(current, type, patterns) {
19362
19838
  if (type === "gradient") return { type: "gradient", gradient: _chunkUOGKSVRQcjs.defaultEffectGradient.call(void 0, ) };
19363
- if (type === "pattern") return { type: "pattern", patternId: _nullishCoalesce(_optionalChain([patterns, 'access', _656 => _656[0], 'optionalAccess', _657 => _657.id]), () => ( "checker")), scale: 1 };
19839
+ if (type === "pattern") return { type: "pattern", patternId: _nullishCoalesce(_optionalChain([patterns, 'access', _658 => _658[0], 'optionalAccess', _659 => _659.id]), () => ( "checker")), scale: 1 };
19364
19840
  return { type: "color", color: current.type === "color" ? current.color : "#000000" };
19365
19841
  }
19366
19842
  function effectControlChange(effect, key2, value, patterns = []) {
19367
19843
  const [top, ...rest] = key2.split(".");
19368
19844
  if (top === "fill" && rest[0] === "type") return { fill: fillOfType(effect.fill, String(value), patterns) };
19369
19845
  if (top === "patternId" && !rest.length) {
19370
- const name = _optionalChain([patternOptions, 'call', _658 => _658(patterns), 'access', _659 => _659.find, 'call', _660 => _660((o) => o.value === value), 'optionalAccess', _661 => _661.label]);
19846
+ const name = _optionalChain([patternOptions, 'call', _660 => _660(patterns), 'access', _661 => _661.find, 'call', _662 => _662((o) => o.value === value), 'optionalAccess', _663 => _663.label]);
19371
19847
  return name ? { patternId: value, name } : { patternId: value };
19372
19848
  }
19373
19849
  if (!rest.length) return { [top]: value };
19374
19850
  if (top === "fill" && rest[0] === "patternId") {
19375
- const name = _optionalChain([patternOptions, 'call', _662 => _662(patterns), 'access', _663 => _663.find, 'call', _664 => _664((o) => o.value === value), 'optionalAccess', _665 => _665.label]);
19851
+ const name = _optionalChain([patternOptions, 'call', _664 => _664(patterns), 'access', _665 => _665.find, 'call', _666 => _666((o) => o.value === value), 'optionalAccess', _667 => _667.label]);
19376
19852
  return { fill: { ...effect.fill, patternId: value, ...name ? { name } : {} } };
19377
19853
  }
19378
19854
  return { [top]: setPath(getPath(effect, top), rest, value) };
@@ -19399,7 +19875,7 @@ function colorPanelView(controller) {
19399
19875
  profileName: profile.name,
19400
19876
  workingSpace: profile.builtin,
19401
19877
  mode: profile.mode,
19402
- cmykProfileName: _nullishCoalesce(_optionalChain([profile, 'access', _666 => _666.cmykProfile, 'optionalAccess', _667 => _667.name]), () => ( null)),
19878
+ cmykProfileName: _nullishCoalesce(_optionalChain([profile, 'access', _668 => _668.cmykProfile, 'optionalAccess', _669 => _669.name]), () => ( null)),
19403
19879
  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
19404
19880
  };
19405
19881
  }
@@ -19607,7 +20083,7 @@ var FreeTransformTool = (_class16 = class {
19607
20083
  __init146() {this.error = null}
19608
20084
  __init147() {this.lastResult = null}
19609
20085
  get active() {
19610
- return Boolean(_optionalChain([this, 'access', _668 => _668.sessionRef, 'optionalAccess', _669 => _669.isOpen]));
20086
+ return Boolean(_optionalChain([this, 'access', _670 => _670.sessionRef, 'optionalAccess', _671 => _671.isOpen]));
19611
20087
  }
19612
20088
  get session() {
19613
20089
  return this.active ? this.sessionRef : null;
@@ -19616,7 +20092,7 @@ var FreeTransformTool = (_class16 = class {
19616
20092
  return this.modeValue;
19617
20093
  }
19618
20094
  get interpolation() {
19619
- return _nullishCoalesce(_optionalChain([this, 'access', _670 => _670.sessionRef, 'optionalAccess', _671 => _671.interpolation]), () => ( "bicubic"));
20095
+ return _nullishCoalesce(_optionalChain([this, 'access', _672 => _672.sessionRef, 'optionalAccess', _673 => _673.interpolation]), () => ( "bicubic"));
19620
20096
  }
19621
20097
  /** Whether the open transform has changed anything yet (a commit would add an undo step). */
19622
20098
  get modified() {
@@ -19635,7 +20111,7 @@ var FreeTransformTool = (_class16 = class {
19635
20111
  };
19636
20112
  }
19637
20113
  changed() {
19638
- _optionalChain([this, 'access', _672 => _672.options, 'access', _673 => _673.onChange, 'optionalCall', _674 => _674()]);
20114
+ _optionalChain([this, 'access', _674 => _674.options, 'access', _675 => _675.onChange, 'optionalCall', _676 => _676()]);
19639
20115
  for (const l of this.listeners) l();
19640
20116
  }
19641
20117
  /** Opens a Free Transform (default: the selected pixels of the active layer, or the whole layer). Returns an error message or `null`. */
@@ -20028,7 +20504,7 @@ var FreeTransformTool = (_class16 = class {
20028
20504
  }
20029
20505
  /** Abandons the transform and restores everything. */
20030
20506
  cancel() {
20031
- _optionalChain([this, 'access', _675 => _675.sessionRef, 'optionalAccess', _676 => _676.cancel, 'call', _677 => _677()]);
20507
+ _optionalChain([this, 'access', _677 => _677.sessionRef, 'optionalAccess', _678 => _678.cancel, 'call', _679 => _679()]);
20032
20508
  this.sessionRef = null;
20033
20509
  this.corners = null;
20034
20510
  this.mesh = null;
@@ -20084,7 +20560,7 @@ function imageLayerAppliedEffects(layer) {
20084
20560
  const ref = (r) => ({ effect: r.effect, ...r.name ? { name: r.name } : {}, ...r.provider ? { provider: r.provider } : {} });
20085
20561
  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 } : {} });
20086
20562
  if (layer.type === "smart")
20087
- (_nullishCoalesce(_optionalChain([layer, 'access', _678 => _678.smartFilters, 'optionalAccess', _679 => _679.filters]), () => ( []))).forEach((f, index) => {
20563
+ (_nullishCoalesce(_optionalChain([layer, 'access', _680 => _680.smartFilters, 'optionalAccess', _681 => _681.filters]), () => ( []))).forEach((f, index) => {
20088
20564
  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 });
20089
20565
  });
20090
20566
  return out;
@@ -20241,7 +20717,7 @@ var OTHER_TOOL_LABELS = {
20241
20717
  watermark: "Watermark"
20242
20718
  };
20243
20719
  function imageToolLabel(tool) {
20244
- return _nullishCoalesce(_nullishCoalesce(_optionalChain([PAINT_TOOLS, 'access', _680 => _680.find, 'call', _681 => _681((t) => t.id === tool), 'optionalAccess', _682 => _682.label]), () => ( OTHER_TOOL_LABELS[tool])), () => ( tool));
20720
+ return _nullishCoalesce(_nullishCoalesce(_optionalChain([PAINT_TOOLS, 'access', _682 => _682.find, 'call', _683 => _683((t) => t.id === tool), 'optionalAccess', _684 => _684.label]), () => ( OTHER_TOOL_LABELS[tool])), () => ( tool));
20245
20721
  }
20246
20722
  var IMAGE_TOOL_SHORTCUTS = {
20247
20723
  ...Object.fromEntries(PAINT_TOOLS.filter((t) => t.shortcut).map((t) => [t.id, t.shortcut])),
@@ -20368,15 +20844,15 @@ var PathEditGesture = (_class17 = class {
20368
20844
  let cs;
20369
20845
  try {
20370
20846
  cs = this.controller.getPathEditComponents(target);
20371
- } catch (e39) {
20847
+ } catch (e40) {
20372
20848
  return null;
20373
20849
  }
20374
20850
  for (const k of [...this.selected]) {
20375
20851
  const r = parseKey(k);
20376
- if (!_optionalChain([cs, 'access', _683 => _683[r.component], 'optionalAccess', _684 => _684.subpaths, 'access', _685 => _685[r.subpath], 'optionalAccess', _686 => _686.anchors, 'access', _687 => _687[r.anchor]])) this.selected.delete(k);
20852
+ if (!_optionalChain([cs, 'access', _685 => _685[r.component], 'optionalAccess', _686 => _686.subpaths, 'access', _687 => _687[r.subpath], 'optionalAccess', _688 => _688.anchors, 'access', _689 => _689[r.anchor]])) this.selected.delete(k);
20377
20853
  }
20378
20854
  const d = this.drawing;
20379
- if (d && (!_optionalChain([cs, 'access', _688 => _688[d.component], 'optionalAccess', _689 => _689.subpaths, 'access', _690 => _690[d.subpath]]) || cs[d.component].subpaths[d.subpath].closed)) this.drawing = null;
20855
+ if (d && (!_optionalChain([cs, 'access', _690 => _690[d.component], 'optionalAccess', _691 => _691.subpaths, 'access', _692 => _692[d.subpath]]) || cs[d.component].subpaths[d.subpath].closed)) this.drawing = null;
20380
20856
  return cs;
20381
20857
  }
20382
20858
  anchorAt(cs, p) {
@@ -20711,11 +21187,11 @@ var PathEditGesture = (_class17 = class {
20711
21187
  let preview = null;
20712
21188
  const d = this.drawing;
20713
21189
  if (tool === "path-pen" && d && this.pointer && !this.drag) {
20714
- const sp = _optionalChain([cs, 'access', _691 => _691[d.component], 'optionalAccess', _692 => _692.subpaths, 'access', _693 => _693[d.subpath]]);
20715
- const last = _optionalChain([sp, 'optionalAccess', _694 => _694.anchors, 'access', _695 => _695[sp.anchors.length - 1]]);
21190
+ const sp = _optionalChain([cs, 'access', _693 => _693[d.component], 'optionalAccess', _694 => _694.subpaths, 'access', _695 => _695[d.subpath]]);
21191
+ const last = _optionalChain([sp, 'optionalAccess', _696 => _696.anchors, 'access', _697 => _697[sp.anchors.length - 1]]);
20716
21192
  if (last) preview = last.out ? [pt(last), pt(last.out), this.pointer, this.pointer] : [pt(last), this.pointer];
20717
21193
  }
20718
- const marquee = _optionalChain([this, 'access', _696 => _696.drag, 'optionalAccess', _697 => _697.kind]) === "marquee" ? rect(this.drag.start, this.drag.end) : null;
21194
+ const marquee = _optionalChain([this, 'access', _698 => _698.drag, 'optionalAccess', _699 => _699.kind]) === "marquee" ? rect(this.drag.start, this.drag.end) : null;
20719
21195
  return { curves, anchors, handles, marquee, preview };
20720
21196
  }
20721
21197
  }, _class17);
@@ -20797,8 +21273,8 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
20797
21273
  async open() {
20798
21274
  try {
20799
21275
  const { width, height } = this.controller.getState().imageDimensions;
20800
- const b = _optionalChain([this, 'access', _698 => _698.controller, 'access', _699 => _699.getSelection, 'call', _700 => _700(), 'optionalAccess', _701 => _701.bounds]);
20801
- this.margin = width * height <= _ContentAwareFillSession.WHOLE_IMAGE_PIXELS ? Math.max(width, height) : Math.max(256, 2 * Math.max(_nullishCoalesce(_optionalChain([b, 'optionalAccess', _702 => _702.width]), () => ( 0)), _nullishCoalesce(_optionalChain([b, 'optionalAccess', _703 => _703.height]), () => ( 0))));
21276
+ const b = _optionalChain([this, 'access', _700 => _700.controller, 'access', _701 => _701.getSelection, 'call', _702 => _702(), 'optionalAccess', _703 => _703.bounds]);
21277
+ this.margin = width * height <= _ContentAwareFillSession.WHOLE_IMAGE_PIXELS ? Math.max(width, height) : Math.max(256, 2 * Math.max(_nullishCoalesce(_optionalChain([b, 'optionalAccess', _704 => _704.width]), () => ( 0)), _nullishCoalesce(_optionalChain([b, 'optionalAccess', _705 => _705.height]), () => ( 0))));
20802
21278
  this.plan = this.controller.prepareContentAwareFill({ sampleRadius: this.margin });
20803
21279
  } catch (err) {
20804
21280
  this.error = err instanceof Error ? err.message : String(err);
@@ -20956,7 +21432,7 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
20956
21432
  this.dirty = false;
20957
21433
  try {
20958
21434
  const area = this.samplingMask();
20959
- if (!_optionalChain([area, 'optionalAccess', _704 => _704.bounds])) throw new Error("The sampling area is empty; paint where the fill may copy from.");
21435
+ if (!_optionalChain([area, 'optionalAccess', _706 => _706.bounds])) throw new Error("The sampling area is empty; paint where the fill may copy from.");
20960
21436
  const { plan, after } = await this.controller.previewContentAwareFill({ layerId: this.plan.layerId, samplingArea: area, seed: this.settingsValue.seed });
20961
21437
  const win = this.win;
20962
21438
  const out = Uint8ClampedArray.from(this.before);
@@ -21035,7 +21511,7 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
21035
21511
  /** OK: fills with this sampling area, seed and output as one undo step. */
21036
21512
  async commit(options = {}) {
21037
21513
  const area = this.samplingMask();
21038
- if (!this.plan || !_optionalChain([area, 'optionalAccess', _705 => _705.bounds])) throw new Error(_nullishCoalesce(this.error, () => ( "The sampling area is empty; paint where the fill may copy from.")));
21514
+ if (!this.plan || !_optionalChain([area, 'optionalAccess', _707 => _707.bounds])) throw new Error(_nullishCoalesce(this.error, () => ( "The sampling area is empty; paint where the fill may copy from.")));
21039
21515
  return this.controller.contentAwareFillAsync({ layerId: this.plan.layerId, samplingArea: area, seed: this.settingsValue.seed, output: this.settingsValue.output, signal: options.signal });
21040
21516
  }
21041
21517
  }, _class18.__initStatic(), _class18);
@@ -22140,4 +22616,6 @@ var ContentAwareFillSession = (_class18 = class _ContentAwareFillSession {
22140
22616
 
22141
22617
 
22142
22618
 
22143
- exports.ADJUSTMENT_KEYS = _chunkH65IBXFIcjs.ADJUSTMENT_KEYS; exports.ADJUSTMENT_KINDS = _chunkH65IBXFIcjs.ADJUSTMENT_KINDS; exports.ADJUSTMENT_LAYER_CONTROLS = ADJUSTMENT_LAYER_CONTROLS; exports.ADJUSTMENT_LAYER_OPACITY_CONTROL = ADJUSTMENT_LAYER_OPACITY_CONTROL; exports.ADJUSTMENT_LUT_SIZE = _chunkH65IBXFIcjs.ADJUSTMENT_LUT_SIZE; exports.ANCHOR_FRACTION = _chunkH65IBXFIcjs.ANCHOR_FRACTION; exports.AS_SHOT_KELVIN = _chunkH65IBXFIcjs.AS_SHOT_KELVIN; exports.BACKGROUND_LAYER_ID = _chunkH65IBXFIcjs.BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = _chunkH65IBXFIcjs.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 = _chunkH65IBXFIcjs.BLUR_FILTER_ID; exports.BODY_SCATTER = _chunkKWNMBMKGcjs.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 = _chunkL52VMQZScjs.ColorGmm; exports.ContentAwareFillSession = ContentAwareFillSession; exports.CoverageMap = _chunkPQ3H2AANcjs.CoverageMap; exports.D50 = _chunkH65IBXFIcjs.D50; exports.D65 = _chunkH65IBXFIcjs.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 = _chunkKWNMBMKGcjs.DEFAULT_FLOW; exports.DEFAULT_GLOBAL_LIGHT = _chunkUOGKSVRQcjs.DEFAULT_GLOBAL_LIGHT; exports.DEFAULT_MITER_LIMIT = _chunkH65IBXFIcjs.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 = _chunkL52VMQZScjs.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 = _chunkKWNMBMKGcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkKWNMBMKGcjs.DEFAULT_WET_PARAMS; exports.DEPTH_MASK_CONTROLS = DEPTH_MASK_CONTROLS; exports.DEVELOP_FILTER_ID = _chunkH65IBXFIcjs.DEVELOP_FILTER_ID; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkK6PXS6DOcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.DRY_EPS = _chunkKWNMBMKGcjs.DRY_EPS; exports.DabWalker = _chunkPQ3H2AANcjs.DabWalker; exports.EFFECT_LAYER_USES = EFFECT_LAYER_USES; exports.EMPTY_DISTANCE = _chunkQYLWG22Ncjs.EMPTY_DISTANCE; exports.EMPTY_MIXER_LOAD = _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkKWNMBMKGcjs.EX; exports.EY = _chunkKWNMBMKGcjs.EY; exports.EdgeMap = EdgeMap; exports.FLAG_ALIVE = _chunkKWNMBMKGcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkKWNMBMKGcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkKWNMBMKGcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkKWNMBMKGcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkKWNMBMKGcjs.FLAG_TOP; exports.FLAG_WET = _chunkKWNMBMKGcjs.FLAG_WET; exports.FLAT = _chunkKWNMBMKGcjs.FLAT; exports.FREE_INTERVAL = _chunkKWNMBMKGcjs.FREE_INTERVAL; exports.FREE_TRANSFORM_CONTENTS = FREE_TRANSFORM_CONTENTS; exports.FREE_TRANSFORM_FIELDS = FREE_TRANSFORM_FIELDS; exports.FREE_TRANSFORM_MODES = _chunkH65IBXFIcjs.FREE_TRANSFORM_MODES; exports.FREE_TRANSFORM_MODE_OPTIONS = FREE_TRANSFORM_MODE_OPTIONS; exports.FreeTransformSession = FreeTransformSession; exports.FreeTransformTool = FreeTransformTool; exports.GAMMA = _chunkL52VMQZScjs.GAMMA; exports.GRAIN_PATTERNS = _chunkPQ3H2AANcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPQ3H2AANcjs.GRAIN_TILE; exports.GUIDED_FILTER_EPS = _chunkL52VMQZScjs.GUIDED_FILTER_EPS; exports.GridGraph = _chunkL52VMQZScjs.GridGraph; exports.HIDE = _chunkKWNMBMKGcjs.HIDE; exports.HISTOGRAM_BINS = HISTOGRAM_BINS; exports.HUE_RANGE_LABELS = _chunkH65IBXFIcjs.HUE_RANGE_LABELS; exports.HUE_RANGE_PRESETS = HUE_RANGE_PRESETS; exports.IDENTITY_CLONE_TRANSFORM = _chunkYF3YZZ6Gcjs.IDENTITY_CLONE_TRANSFORM; exports.IDENTITY_MATRIX3 = _chunkH65IBXFIcjs.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 = _chunkUOGKSVRQcjs.INTERPOLATIONS; exports.ImageEditorController = ImageEditorController; exports.ImageEditorRenderer = ImageEditorRenderer; exports.ImageEffectsEngine = ImageEffectsEngine; exports.LATEST_PROCESS_VERSION = _chunkH65IBXFIcjs.LATEST_PROCESS_VERSION; exports.LAYERED_SCHEMA_VERSION = _chunkH65IBXFIcjs.LAYERED_SCHEMA_VERSION; exports.LAYER_EFFECT_KINDS = _chunkUOGKSVRQcjs.LAYER_EFFECT_KINDS; exports.LAYER_EFFECT_MENU = LAYER_EFFECT_MENU; exports.LEGACY_PROCESS_VERSION = _chunkH65IBXFIcjs.LEGACY_PROCESS_VERSION; exports.LIVE_SHAPE_KINDS = _chunkH65IBXFIcjs.LIVE_SHAPE_KINDS; exports.LUMA_709 = _chunkH65IBXFIcjs.LUMA_709; exports.LayerCompositor = _chunkH65IBXFIcjs.LayerCompositor; exports.LayerEffectError = _chunkUOGKSVRQcjs.LayerEffectError; exports.LayerOperationError = _chunkH65IBXFIcjs.LayerOperationError; exports.MARCHING_ANTS_STEP_MS = MARCHING_ANTS_STEP_MS; exports.MASK_FILE_ACCEPT = MASK_FILE_ACCEPT; exports.MAX_BATCH = _chunkKWNMBMKGcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkPQ3H2AANcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_BACKING_SIDE = MAX_CANVAS_BACKING_SIDE; exports.MAX_EFFECT_ANIMATION_MS = _chunkH65IBXFIcjs.MAX_EFFECT_ANIMATION_MS; exports.MAX_EFFECT_REACH = _chunkUOGKSVRQcjs.MAX_EFFECT_REACH; exports.MAX_KELVIN = _chunkH65IBXFIcjs.MAX_KELVIN; exports.MAX_TILT_ACCEL = _chunkKWNMBMKGcjs.MAX_TILT_ACCEL; exports.MAX_TRANSFORM_PIXELS = _chunkUOGKSVRQcjs.MAX_TRANSFORM_PIXELS; exports.MAX_WET_LANES = _chunkKWNMBMKGcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkKWNMBMKGcjs.MAX_WET_SLOTS; exports.MIN_KELVIN = _chunkH65IBXFIcjs.MIN_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = _chunkH65IBXFIcjs.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 = _chunkKWNMBMKGcjs.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 = _chunkKWNMBMKGcjs.PAPER_CAPACITY; exports.PARAGRAPH_STYLE_FIELDS = _chunkH65IBXFIcjs.PARAGRAPH_STYLE_FIELDS; exports.PARAM = _chunkKWNMBMKGcjs.PARAM; exports.PARAM_FLOATS = _chunkKWNMBMKGcjs.PARAM_FLOATS; exports.PASTE_MODES = PASTE_MODES; exports.PATH_EDIT_TOOLS = PATH_EDIT_TOOLS; exports.PATTERN_BLOCK_KEYS = _chunkH65IBXFIcjs.PATTERN_BLOCK_KEYS; exports.PIGMENT_BANDS = _chunkOLNIPTB3cjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkKWNMBMKGcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkKWNMBMKGcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunkOLNIPTB3cjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkKWNMBMKGcjs.PLANE; exports.PLANE_BYTES = _chunkKWNMBMKGcjs.PLANE_BYTES; exports.PREVIEW_SIZE = PREVIEW_SIZE; exports.PROOF_PROFILE_OPTIONS = PROOF_PROFILE_OPTIONS; exports.PSD_BLEND_KEYS = _chunkH65IBXFIcjs.PSD_BLEND_KEYS; exports.PSD_FILE_ACCEPT = PSD_FILE_ACCEPT; exports.P_D0 = _chunkKWNMBMKGcjs.P_D0; exports.P_EDGE = _chunkKWNMBMKGcjs.P_EDGE; exports.P_FX = _chunkKWNMBMKGcjs.P_FX; exports.P_FY = _chunkKWNMBMKGcjs.P_FY; exports.P_H = _chunkKWNMBMKGcjs.P_H; exports.P_P0 = _chunkKWNMBMKGcjs.P_P0; exports.P_RHO = _chunkKWNMBMKGcjs.P_RHO; exports.P_SW = _chunkKWNMBMKGcjs.P_SW; exports.P_UX = _chunkKWNMBMKGcjs.P_UX; exports.P_UY = _chunkKWNMBMKGcjs.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 = _chunkUOGKSVRQcjs.PatternPlacement; exports.PatternTile = _chunkUOGKSVRQcjs.PatternTile; exports.PsdError = _chunkH65IBXFIcjs.PsdError; exports.QUICK_MASK_TARGET = QUICK_MASK_TARGET; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.REFINE_EDIT_KINDS = _chunkL52VMQZScjs.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 = _chunkQYLWG22Ncjs.SELECTION_MODES; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.SELECTION_MODIFY_OPS = _chunkQYLWG22Ncjs.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 = _chunkKWNMBMKGcjs.SET_PLANES; exports.SHADOW_AMBIENT = _chunkOLNIPTB3cjs.SHADOW_AMBIENT; exports.SHAPE_KIND_LABELS = SHAPE_KIND_LABELS; exports.SHAPE_OPERATIONS = _chunkH65IBXFIcjs.SHAPE_OPERATIONS; exports.SHAPE_RENDER_MARGIN = _chunkH65IBXFIcjs.SHAPE_RENDER_MARGIN; exports.SLOT_BYTES = _chunkKWNMBMKGcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkKWNMBMKGcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkKWNMBMKGcjs.SLOT_SIDE; exports.SMART_RENDER_MARGIN = _chunkH65IBXFIcjs.SMART_RENDER_MARGIN; exports.SPOT_HEAL_TYPES = _chunkYF3YZZ6Gcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkKWNMBMKGcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkKWNMBMKGcjs.STRIP; exports.SUPPORTED_ADJUSTMENT_KEYS = _chunkH65IBXFIcjs.SUPPORTED_ADJUSTMENT_KEYS; exports.SelectAndMaskSession = SelectAndMaskSession; exports.SelectionGesture = SelectionGesture; exports.SelectionWorkerClient = _chunkL52VMQZScjs.SelectionWorkerClient; exports.ShapeDrawGesture = ShapeDrawGesture; exports.SmudgeTip = _chunkPQ3H2AANcjs.SmudgeTip; exports.StrokeCoverage = _chunkPQ3H2AANcjs.StrokeCoverage; exports.SurfaceDraft = _chunk474IQG74cjs.SurfaceDraft; exports.TEXT_ALIGNS = _chunkH65IBXFIcjs.TEXT_ALIGNS; exports.TEXT_ORIENTATIONS = _chunkH65IBXFIcjs.TEXT_ORIENTATIONS; exports.TEXT_RENDER_MARGIN = _chunkH65IBXFIcjs.TEXT_RENDER_MARGIN; exports.TEXT_STYLE_FIELDS = _chunkH65IBXFIcjs.TEXT_STYLE_FIELDS; exports.TILE = _chunk474IQG74cjs.TILE; exports.TILE_SHIFT = _chunk474IQG74cjs.TILE_SHIFT; exports.TINT_SCALE = _chunkH65IBXFIcjs.TINT_SCALE; exports.TIP_GRADIENT_STEPS = _chunkPQ3H2AANcjs.TIP_GRADIENT_STEPS; exports.TONE_LUT_SIZE = _chunkH65IBXFIcjs.TONE_LUT_SIZE; exports.TONE_RANGES = _chunkYF3YZZ6Gcjs.TONE_RANGES; exports.TONE_RANGE_PRESETS = TONE_RANGE_PRESETS; exports.TRANSFORM_ANCHORS = _chunkH65IBXFIcjs.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 = _chunkUOGKSVRQcjs.TransformTooLargeError; exports.TransformedPixelSource = _chunkYF3YZZ6Gcjs.TransformedPixelSource; exports.TypeToolGesture = TypeToolGesture; exports.UNITS = _chunkL52VMQZScjs.UNITS; exports.U_MAX = _chunkKWNMBMKGcjs.U_MAX; exports.VIBRANCE_GREY = _chunkH65IBXFIcjs.VIBRANCE_GREY; exports.W9 = _chunkKWNMBMKGcjs.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 = _chunkKWNMBMKGcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkKWNMBMKGcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkKWNMBMKGcjs.WET_TILE; exports.WGSL_HALO = _chunkKWNMBMKGcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkKWNMBMKGcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkKWNMBMKGcjs.WGSL_STEP; exports.WORKING_SPACE_OPTIONS = WORKING_SPACE_OPTIONS; exports.WORK_PATH_NAME = WORK_PATH_NAME; exports.WORK_SIZE = _chunkL52VMQZScjs.WORK_SIZE; exports.WetGpuEngine = _chunkKWNMBMKGcjs.WetGpuEngine; exports.WetMedium = _chunkKWNMBMKGcjs.WetMedium; exports.WetWorkerPool = _chunkKWNMBMKGcjs.WetWorkerPool; exports.WetWorld = _chunkKWNMBMKGcjs.WetWorld; exports.WetWorldError = _chunkKWNMBMKGcjs.WetWorldError; exports.XYZ_D50_TO_SRGB = _chunkH65IBXFIcjs.XYZ_D50_TO_SRGB; exports.ZlibError = _chunkXFM3OCHUcjs.ZlibError; exports.activeAdjustmentLayers = _chunkH65IBXFIcjs.activeAdjustmentLayers; exports.activeEffectSmartFilters = _chunkH65IBXFIcjs.activeEffectSmartFilters; exports.activeLayerAfterRemoval = _chunkH65IBXFIcjs.activeLayerAfterRemoval; exports.activeSmartFilters = _chunkH65IBXFIcjs.activeSmartFilters; exports.addLayerEffect = _chunkH65IBXFIcjs.addLayerEffect; exports.addLayerFilter = _chunkH65IBXFIcjs.addLayerFilter; exports.addLayerOfKind = addLayerOfKind; exports.addPaintGradientStop = _chunkPQ3H2AANcjs.addPaintGradientStop; exports.addSmartFilter = _chunkH65IBXFIcjs.addSmartFilter; exports.addToHistogram = addToHistogram; exports.adjustmentKindLabel = _chunkH65IBXFIcjs.adjustmentKindLabel; exports.adjustmentLayersKey = _chunkH65IBXFIcjs.adjustmentLayersKey; exports.adjustmentNodeAsLayer = _chunkH65IBXFIcjs.adjustmentNodeAsLayer; exports.adjustmentNodeFromLegacy = _chunkH65IBXFIcjs.adjustmentNodeFromLegacy; exports.adler32 = _chunkXFM3OCHUcjs.adler32; exports.agentDragDraft = agentDragDraft; exports.anchorPoint = _chunkH65IBXFIcjs.anchorPoint; exports.annotationBlend = _chunkH65IBXFIcjs.annotationBlend; exports.annotationLayerFor = _chunkH65IBXFIcjs.annotationLayerFor; exports.annotationLayerName = _chunkH65IBXFIcjs.annotationLayerName; exports.annotationOfLayer = _chunkH65IBXFIcjs.annotationOfLayer; exports.annotationOfShape = _chunkH65IBXFIcjs.annotationOfShape; exports.annotationOfType = _chunkH65IBXFIcjs.annotationOfType; exports.applyAdjustmentLayers = _chunkH65IBXFIcjs.applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = _chunkH65IBXFIcjs.applyAdjustmentLayersFloat; exports.applyAdjustments = _chunkH65IBXFIcjs.applyAdjustments; exports.applyBoxBlur = _chunkH65IBXFIcjs.applyBoxBlur; exports.applyBoxBlurFloat = _chunkH65IBXFIcjs.applyBoxBlurFloat; exports.applyDepthMask = _chunkH65IBXFIcjs.applyDepthMask; exports.applyHomography = _chunkQT26RHKKcjs.applyHomography; exports.applyImageProjectionToContext = _chunkH65IBXFIcjs.applyImageProjectionToContext; exports.applyLegacyAdjustments = _chunkH65IBXFIcjs.applyLegacyAdjustments; exports.applyLegacyFloat = _chunkH65IBXFIcjs.applyLegacyFloat; exports.applyMatrix3 = _chunkH65IBXFIcjs.applyMatrix3; exports.applyOutputStage = applyOutputStage; exports.applyParams = _chunkH65IBXFIcjs.applyParams; exports.applyProcess2Adjustments = _chunkH65IBXFIcjs.applyProcess2Adjustments; exports.applyProcess2Float = _chunkH65IBXFIcjs.applyProcess2Float; exports.applyRefineEdits = _chunkL52VMQZScjs.applyRefineEdits; exports.applyRegionBlur = applyRegionBlur; exports.applyRegionMosaic = applyRegionMosaic; exports.applyRetouchToTile = _chunkYF3YZZ6Gcjs.applyRetouchToTile; exports.applyShapeOptions = applyShapeOptions; exports.applySmartFilters = _chunkH65IBXFIcjs.applySmartFilters; exports.applyStrokeToDeepTile = _chunkPQ3H2AANcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkPQ3H2AANcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkYF3YZZ6Gcjs.applyToneToDeepTile; exports.backgroundLayer = _chunkH65IBXFIcjs.backgroundLayer; exports.base64ToBytes = _chunkOLNIPTB3cjs.base64ToBytes; exports.baseProjection = baseProjection; exports.bestOffset = _chunkMQDIP4CFcjs.bestOffset; exports.blackWhiteGray = _chunkH65IBXFIcjs.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 = _chunkUOGKSVRQcjs.blendTile; exports.blenderDab = _chunkPQ3H2AANcjs.blenderDab; exports.blurFilter = _chunkH65IBXFIcjs.blurFilter; exports.borderCoverage = _chunkQYLWG22Ncjs.borderCoverage; exports.boxBlur = _chunkL52VMQZScjs.boxBlur; exports.boxBlurPixels = _chunkYF3YZZ6Gcjs.boxBlurPixels; exports.boxFrameHit = boxFrameHit; exports.boxFrameOverlay = boxFrameOverlay; exports.boxMean = _chunkL52VMQZScjs.boxMean; exports.boxPointOf = _chunkH65IBXFIcjs.boxPointOf; exports.boxQuad = _chunkQT26RHKKcjs.boxQuad; exports.boxToCurvePoint = boxToCurvePoint; exports.bradfordAdaptation = _chunkH65IBXFIcjs.bradfordAdaptation; exports.brushStrokeMask = _chunkL52VMQZScjs.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 = _chunkH65IBXFIcjs.buildLayerMaskPlanes; exports.buildToneLut = _chunkH65IBXFIcjs.buildToneLut; exports.builtinPattern = _chunkUOGKSVRQcjs.builtinPattern; exports.builtinPatternIds = _chunkUOGKSVRQcjs.builtinPatternIds; exports.bytesToBase64 = _chunkOLNIPTB3cjs.bytesToBase64; exports.calculateCropDrag = _chunkH65IBXFIcjs.calculateCropDrag; exports.canShareMemory = _chunkKWNMBMKGcjs.canShareMemory; exports.canvasCompositeOperation = _chunkOLNIPTB3cjs.canvasCompositeOperation; exports.canvasToImagePoint = _chunkH65IBXFIcjs.canvasToImagePoint; exports.caretAt = _chunkQAUIZPYIcjs.caretAt; exports.changedTiles = _chunkUOGKSVRQcjs.changedTiles; exports.channelThumbnail = channelThumbnail; exports.checkEffectAnimation = checkEffectAnimation; exports.checkEffectTime = checkEffectTime; exports.checkImageEffectPlace = checkImageEffectPlace; exports.clampControlValue = clampControlValue; exports.clampCropToImage = _chunkH65IBXFIcjs.clampCropToImage; exports.cleanMixer = _chunkPQ3H2AANcjs.cleanMixer; exports.cloneSamplePoint = _chunkYF3YZZ6Gcjs.cloneSamplePoint; exports.cloneSourceLabel = cloneSourceLabel; exports.cloneTransformView = cloneTransformView; exports.collectTiles = _chunk474IQG74cjs.collectTiles; exports.colorBalanceChannel = _chunkH65IBXFIcjs.colorBalanceChannel; exports.colorModePlanes = colorModePlanes; exports.colorModePlanes16 = colorModePlanes16; exports.colorPanelView = colorPanelView; exports.colorRange = colorRange; exports.colorRangePreset = colorRangePreset; exports.combineSelections = _chunkQYLWG22Ncjs.combineSelections; exports.compileAdjustmentLayer = _chunkH65IBXFIcjs.compileAdjustmentLayer; exports.componentPath = _chunkH65IBXFIcjs.componentPath; exports.componentsCoverage = _chunkH65IBXFIcjs.componentsCoverage; exports.compositeDeep = _chunkH65IBXFIcjs.compositeDeep; exports.compositeSurfaceOver = _chunkUOGKSVRQcjs.compositeSurfaceOver; exports.computeHistogram = computeHistogram; exports.computeSelectionBounds = _chunkQYLWG22Ncjs.computeSelectionBounds; exports.contentAwareFill = _chunkMQDIP4CFcjs.contentAwareFill; exports.contentBounds = _chunk474IQG74cjs.contentBounds; exports.contentsBox = _chunkH65IBXFIcjs.contentsBox; exports.contentsSurface = _chunkH65IBXFIcjs.contentsSurface; exports.contractCoverage = _chunkQYLWG22Ncjs.contractCoverage; exports.controlPosition = controlPosition; exports.controlTrackBackground = controlTrackBackground; exports.convertColorFields = convertColorFields; exports.convertHex = convertHex; exports.convertSurfaceColors = convertSurfaceColors; exports.convertSurfaceDepth = _chunkOLNIPTB3cjs.convertSurfaceDepth; exports.convertToSmartObject = _chunkH65IBXFIcjs.convertToSmartObject; exports.copySmartObject = _chunkH65IBXFIcjs.copySmartObject; exports.cornersFromMatrix = _chunkH65IBXFIcjs.cornersFromMatrix; exports.coverageTileCoord = _chunkPQ3H2AANcjs.coverageTileCoord; exports.coverageToByte = _chunkQYLWG22Ncjs.coverageToByte; exports.coveringRect = coveringRect; exports.createAdjustmentLayer = _chunkH65IBXFIcjs.createAdjustmentLayer; exports.createBlenderScratch = _chunkPQ3H2AANcjs.createBlenderScratch; exports.createCanvasTextShaper = _chunkQAUIZPYIcjs.createCanvasTextShaper; 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 = _chunkKWNMBMKGcjs.createPigmentTools; exports.createSelectionMask = _chunkQYLWG22Ncjs.createSelectionMask; exports.createShapeLayer = _chunkH65IBXFIcjs.createShapeLayer; exports.createTypeLayer = _chunkH65IBXFIcjs.createTypeLayer; exports.createWetGpuEngine = _chunkKWNMBMKGcjs.createWetGpuEngine; exports.cssFont = _chunkQAUIZPYIcjs.cssFont; exports.cssFontFamily = _chunkQAUIZPYIcjs.cssFontFamily; exports.curveLut = _chunkUOGKSVRQcjs.curveLut; exports.curveLutFromLevels = _chunkH65IBXFIcjs.curveLutFromLevels; exports.curvePointToBox = curvePointToBox; exports.curveSvgPath = curveSvgPath; exports.dabCoverage = _chunkPQ3H2AANcjs.dabCoverage; exports.dabRect = _chunkPQ3H2AANcjs.dabRect; exports.decodeDeepSurface = _chunkH65IBXFIcjs.decodeDeepSurface; exports.decodeLayerChannel = _chunkH65IBXFIcjs.decodeLayerChannel; exports.decodeLayerMask = _chunkH65IBXFIcjs.decodeLayerMask; exports.decodeMergedImage = _chunkH65IBXFIcjs.decodeMergedImage; exports.decodePlanes = _chunkH65IBXFIcjs.decodePlanes; exports.decodePng = _chunkOLNIPTB3cjs.decodePng; exports.decodePngDataUrl = _chunkH65IBXFIcjs.decodePngDataUrl; exports.decodeSelectionRle = _chunkQYLWG22Ncjs.decodeSelectionRle; exports.decontaminateColors = _chunkL52VMQZScjs.decontaminateColors; exports.deepBytes = _chunkOLNIPTB3cjs.deepBytes; exports.deepTile = _chunkOLNIPTB3cjs.deepTile; exports.defaultActiveLayerId = _chunkH65IBXFIcjs.defaultActiveLayerId; exports.defaultAdjustmentParams = _chunkH65IBXFIcjs.defaultAdjustmentParams; exports.defaultEffectGradient = _chunkUOGKSVRQcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkUOGKSVRQcjs.defaultLayerEffect; exports.defaultShapeName = _chunkH65IBXFIcjs.defaultShapeName; exports.deflate = _chunkXFM3OCHUcjs.deflate; exports.deflateRaw = _chunkXFM3OCHUcjs.deflateRaw; exports.depthMaskAlpha = _chunkH65IBXFIcjs.depthMaskAlpha; exports.depthOf = _chunkOLNIPTB3cjs.depthOf; exports.depthRasterMask = _chunkH65IBXFIcjs.depthRasterMask; exports.describeChannel = describeChannel; exports.describeLayer = describeLayer; exports.describeLayerEffects = describeLayerEffects; exports.describeSelection = describeSelection; exports.describeTransform = _chunkH65IBXFIcjs.describeTransform; exports.deserializeChannels = deserializeChannels; exports.deserializeColorMode = deserializeColorMode; exports.deserializeColorProfile = deserializeColorProfile; exports.deserializeEffects = _chunkH65IBXFIcjs.deserializeEffects; exports.deserializeLayer = _chunkH65IBXFIcjs.deserializeLayer; exports.deserializeLayers = _chunkH65IBXFIcjs.deserializeLayers; exports.deserializeMask = _chunkL52VMQZScjs.deserializeMask; exports.deserializePatterns = _chunkH65IBXFIcjs.deserializePatterns; exports.deserializeSelection = _chunkQYLWG22Ncjs.deserializeSelection; exports.developFilter = _chunkH65IBXFIcjs.developFilter; exports.developFromAdjustments = _chunkH65IBXFIcjs.developFromAdjustments; exports.developTarget = _chunkH65IBXFIcjs.developTarget; exports.dexp = _chunkKWNMBMKGcjs.dexp; exports.dilateMask = _chunkMQDIP4CFcjs.dilateMask; exports.displayTransform = displayTransform; exports.distanceTransform = _chunkQYLWG22Ncjs.distanceTransform; exports.dlog = _chunkKWNMBMKGcjs.dlog; exports.documentContents = _chunkH65IBXFIcjs.documentContents; exports.documentProfile = documentProfile; exports.dodgeBurn = _chunkYF3YZZ6Gcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkYF3YZZ6Gcjs.dodgeBurnCurve; exports.downloadMaskImage = downloadMaskImage; exports.downloadPsd = downloadPsd; exports.dpow = _chunkKWNMBMKGcjs.dpow; exports.dragWarpMeshPoint = _chunkQAUIZPYIcjs.dragWarpMeshPoint; exports.dropPlacement = dropPlacement; exports.dropZone = dropZone; exports.dsincos = _chunkKWNMBMKGcjs.dsincos; exports.duplicateLayer = _chunkH65IBXFIcjs.duplicateLayer; exports.edgeBits = _chunkKWNMBMKGcjs.edgeBits; exports.edgeWidth = _chunkL52VMQZScjs.edgeWidth; exports.effectColorHex = _chunkUOGKSVRQcjs.effectColorHex; exports.effectControlChange = effectControlChange; exports.effectLayerTiming = effectLayerTiming; exports.effectPixelsToSurface = effectPixelsToSurface; exports.effectReach = _chunkUOGKSVRQcjs.effectReach; exports.effectiveLayerMask = _chunkH65IBXFIcjs.effectiveLayerMask; exports.effectiveProof = effectiveProof; exports.effectsFingerprint = _chunkUOGKSVRQcjs.effectsFingerprint; exports.effectsMargin = _chunkUOGKSVRQcjs.effectsMargin; exports.effectsScale = _chunkUOGKSVRQcjs.effectsScale; exports.ellipsePoints = _chunkL52VMQZScjs.ellipsePoints; exports.ellipseSelection = _chunkL52VMQZScjs.ellipseSelection; exports.emptyHistogram = emptyHistogram; exports.emptySurface = _chunk474IQG74cjs.emptySurface; exports.encodeDeepSurface = _chunkH65IBXFIcjs.encodeDeepSurface; exports.encodePng = _chunkOLNIPTB3cjs.encodePng; exports.encodeRle = _chunkH65IBXFIcjs.encodeRle; exports.encodeSelectionRle = _chunkQYLWG22Ncjs.encodeSelectionRle; exports.encodeSurface = _chunkH65IBXFIcjs.encodeSurface; exports.evalWarpMesh = _chunkQAUIZPYIcjs.evalWarpMesh; exports.evaluateAdjustmentLayers = _chunkH65IBXFIcjs.evaluateAdjustmentLayers; exports.exchangeRates = _chunkPQ3H2AANcjs.exchangeRates; exports.expNeg = _chunkKWNMBMKGcjs.expNeg; exports.expandCoverage = _chunkQYLWG22Ncjs.expandCoverage; exports.exportPsd = _chunkH65IBXFIcjs.exportPsd; exports.extractNormalizedLayerItems = extractNormalizedLayerItems; exports.featherCoverage = _chunkQYLWG22Ncjs.featherCoverage; exports.fillRect = _chunk474IQG74cjs.fillRect; exports.filmPixel = _chunkKWNMBMKGcjs.filmPixel; exports.filmReflectance = _chunkKWNMBMKGcjs.filmReflectance; exports.filterMaskCoverage = _chunkH65IBXFIcjs.filterMaskCoverage; exports.findAdjustmentControl = findAdjustmentControl; exports.findLayer = _chunkUOGKSVRQcjs.findLayer; exports.findLayerControl = findLayerControl; exports.findSky = _chunkL52VMQZScjs.findSky; exports.findSubject = _chunkL52VMQZScjs.findSubject; exports.findWebGpu = _chunkKWNMBMKGcjs.findWebGpu; exports.finishTile = _chunk474IQG74cjs.finishTile; exports.fitParagraphRuns = _chunkQAUIZPYIcjs.fitParagraphRuns; exports.fitRuns = _chunkQAUIZPYIcjs.fitRuns; exports.flattenLayers = _chunkUOGKSVRQcjs.flattenLayers; exports.flattenPath = _chunkH65IBXFIcjs.flattenPath; exports.flipCorners = _chunkH65IBXFIcjs.flipCorners; exports.flowField = _chunkKWNMBMKGcjs.flowField; exports.focusArea = _chunkL52VMQZScjs.focusArea; exports.followLayerMove = _chunkH65IBXFIcjs.followLayerMove; exports.fontOf = _chunkQAUIZPYIcjs.fontOf; exports.forgetSelectAndMaskSettings = forgetSelectAndMaskSettings; exports.formatControlValue = formatControlValue; exports.fullSelection = _chunkQYLWG22Ncjs.fullSelection; exports.gaussianBlur = _chunkK6PXS6DOcjs.gaussianBlur; exports.geometryHomography = _chunkH65IBXFIcjs.geometryHomography; exports.getAnnotationBounds = _chunkH65IBXFIcjs.getAnnotationBounds; exports.getControlPath = getControlPath; exports.getCropCursor = _chunkH65IBXFIcjs.getCropCursor; exports.getRotatedSize = _chunkH65IBXFIcjs.getRotatedSize; exports.getViewportMetrics = _chunkH65IBXFIcjs.getViewportMetrics; exports.getViewportProjection = _chunkH65IBXFIcjs.getViewportProjection; exports.globalImageCache = globalImageCache; exports.grabCutLabels = _chunkL52VMQZScjs.grabCutLabels; exports.gradientDabColor = _chunkPQ3H2AANcjs.gradientDabColor; exports.grainCatch = _chunkPQ3H2AANcjs.grainCatch; exports.grainHeights = _chunkPQ3H2AANcjs.grainHeights; exports.greyMorphology = _chunkQYLWG22Ncjs.greyMorphology; exports.groupLayers = _chunkH65IBXFIcjs.groupLayers; exports.growSelection = growSelection; exports.guidePlanes = _chunkL52VMQZScjs.guidePlanes; exports.guidedFilterColor = _chunkL52VMQZScjs.guidedFilterColor; exports.handleMaskViewKey = handleMaskViewKey; exports.handlePaintShortcut = handlePaintShortcut; exports.handleQuickMaskKey = handleQuickMaskKey; exports.handleSelectionShortcut = handleSelectionShortcut; exports.hasActiveEffects = _chunkUOGKSVRQcjs.hasActiveEffects; exports.hasLayersBelow = hasLayersBelow; exports.hasResampledLegacyMask = _chunkH65IBXFIcjs.hasResampledLegacyMask; exports.hasSurface = _chunkH65IBXFIcjs.hasSurface; exports.hasWarp = _chunkH65IBXFIcjs.hasWarp; exports.hash2 = _chunkPQ3H2AANcjs.hash2; exports.hashMaskContent = _chunkQYLWG22Ncjs.hashMaskContent; exports.hashNoise = _chunkUOGKSVRQcjs.hashNoise; exports.healPixels = _chunkYF3YZZ6Gcjs.healPixels; exports.hexToPaintRgb = _chunkPQ3H2AANcjs.hexToPaintRgb; exports.hexToRgb = _chunkH65IBXFIcjs.hexToRgb; exports.histogramPath = histogramPath; exports.hitTestAnnotation = _chunkH65IBXFIcjs.hitTestAnnotation; exports.hitTestCrop = _chunkH65IBXFIcjs.hitTestCrop; exports.hitTestCurvePoint = hitTestCurvePoint; exports.homographyFromAffine = _chunkQT26RHKKcjs.homographyFromAffine; exports.homographyFromPoints = _chunkQT26RHKKcjs.homographyFromPoints; exports.hslToRgb = _chunkH65IBXFIcjs.hslToRgb; exports.hueRange = hueRange; exports.hueRangeTables = _chunkH65IBXFIcjs.hueRangeTables; exports.hueRangeWeight = _chunkH65IBXFIcjs.hueRangeWeight; exports.hueSaturation = _chunkH65IBXFIcjs.hueSaturation; exports.identityCurve = _chunkH65IBXFIcjs.identityCurve; exports.identityLevels = _chunkH65IBXFIcjs.identityLevels; exports.identityTransform = _chunkH65IBXFIcjs.identityTransform; exports.identityWarpMesh = _chunkQAUIZPYIcjs.identityWarpMesh; exports.imageEditorStateMigrations = imageEditorStateMigrations; exports.imageLayerAppliedEffects = imageLayerAppliedEffects; exports.imagePanelTool = imagePanelTool; exports.imagePlaybackPanel = imagePlaybackPanel; exports.imageToCanvasPoint = _chunkH65IBXFIcjs.imageToCanvasPoint; exports.imageToolCanvasMode = imageToolCanvasMode; exports.imageToolForShortcut = imageToolForShortcut; exports.imageToolGroup = imageToolGroup; exports.imageToolLabel = imageToolLabel; exports.imageToolPanel = imageToolPanel; exports.importPsd = _chunkH65IBXFIcjs.importPsd; exports.inflate = _chunkXFM3OCHUcjs.inflate; exports.inflateRaw = _chunkXFM3OCHUcjs.inflateRaw; exports.insertCurvePoint = insertCurvePoint; exports.insertLayer = _chunkUOGKSVRQcjs.insertLayer; exports.instancesOf = _chunkH65IBXFIcjs.instancesOf; exports.invertHomography = _chunkQT26RHKKcjs.invertHomography; exports.invertMatrix3 = _chunkH65IBXFIcjs.invertMatrix3; exports.invertSelection = _chunkQYLWG22Ncjs.invertSelection; exports.isActiveFilter = _chunkH65IBXFIcjs.isActiveFilter; exports.isActiveVectorMask = _chunkH65IBXFIcjs.isActiveVectorMask; exports.isAdjustmentKind = _chunkH65IBXFIcjs.isAdjustmentKind; exports.isBitDepth = _chunkOLNIPTB3cjs.isBitDepth; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isBrushstrokeBrush = _chunkPQ3H2AANcjs.isBrushstrokeBrush; exports.isColorRangePreset = isColorRangePreset; exports.isContentsDecoded = _chunkH65IBXFIcjs.isContentsDecoded; exports.isDefaultDepthMask = _chunkH65IBXFIcjs.isDefaultDepthMask; exports.isGradientPaint = _chunkPQ3H2AANcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkYF3YZZ6Gcjs.isIdentityCloneTransform; exports.isIdentityTransform = _chunkH65IBXFIcjs.isIdentityTransform; exports.isInterpolation = _chunkUOGKSVRQcjs.isInterpolation; exports.isLayerEffectKind = _chunkUOGKSVRQcjs.isLayerEffectKind; exports.isLayerLocked = _chunkUOGKSVRQcjs.isLayerLocked; exports.isLegacyShape = _chunkH65IBXFIcjs.isLegacyShape; exports.isPaintTool = isPaintTool; exports.isPaintableLayer = _chunkH65IBXFIcjs.isPaintableLayer; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPathEditTool = isPathEditTool; exports.isPng = _chunkOLNIPTB3cjs.isPng; exports.isQuarterTurn = isQuarterTurn; exports.isQuarterTurnSwapped = _chunkH65IBXFIcjs.isQuarterTurnSwapped; exports.isRenderedLayer = _chunkH65IBXFIcjs.isRenderedLayer; exports.isRetouchPaintTool = isRetouchPaintTool; exports.isRetouchTool = isRetouchTool; exports.isSelectionEmpty = _chunkQYLWG22Ncjs.isSelectionEmpty; exports.isSelectionMode = _chunkQYLWG22Ncjs.isSelectionMode; exports.isSeparableBlendMode = _chunkOLNIPTB3cjs.isSeparableBlendMode; exports.isSmartSurfaceIncomplete = _chunkH65IBXFIcjs.isSmartSurfaceIncomplete; exports.isSpatialFilter = _chunkH65IBXFIcjs.isSpatialFilter; exports.isSrgb = isSrgb; exports.isTransformAnchor = _chunkH65IBXFIcjs.isTransformAnchor; exports.isValidWarp = _chunkH65IBXFIcjs.isValidWarp; exports.keepDeepSamples = _chunkOLNIPTB3cjs.keepDeepSamples; exports.keepMainPieces = _chunkL52VMQZScjs.keepMainPieces; exports.kelvinToTemperature = _chunkH65IBXFIcjs.kelvinToTemperature; exports.keysWeight = _chunkUOGKSVRQcjs.keysWeight; exports.latticeViscosity = _chunkKWNMBMKGcjs.latticeViscosity; exports.layerBadge = layerBadge; exports.layerEffectControls = layerEffectControls; exports.layerEffectFields = _chunkUOGKSVRQcjs.layerEffectFields; exports.layerEffectLabel = _chunkUOGKSVRQcjs.layerEffectLabel; exports.layerEffectsBadge = layerEffectsBadge; exports.layerEffectsOf = _chunkH65IBXFIcjs.layerEffectsOf; exports.layerEffectsPanel = layerEffectsPanel; exports.layerHasThumbnail = layerHasThumbnail; exports.layerLabel = layerLabel; exports.layerMaskCoverage = _chunkH65IBXFIcjs.layerMaskCoverage; exports.layerMaskFromSelection = _chunkH65IBXFIcjs.layerMaskFromSelection; exports.layerMaskKey = _chunkH65IBXFIcjs.layerMaskKey; exports.layerMaskSelection = _chunkH65IBXFIcjs.layerMaskSelection; exports.layerMenu = layerMenu; exports.layerName = _chunkH65IBXFIcjs.layerName; exports.layerPanelRows = layerPanelRows; exports.layerPanels = layerPanels; exports.layerThumbnailClick = layerThumbnailClick; exports.layerTree = _chunkH65IBXFIcjs.layerTree; exports.layerTypeLabel = _chunkH65IBXFIcjs.layerTypeLabel; exports.layerWarning = layerWarning; exports.layersFromLegacy = _chunkH65IBXFIcjs.layersFromLegacy; exports.layoutText = _chunkQAUIZPYIcjs.layoutText; exports.legacyAdjustmentLayer = _chunkH65IBXFIcjs.legacyAdjustmentLayer; exports.legacyMaskOf = _chunkH65IBXFIcjs.legacyMaskOf; exports.legacyView = _chunkH65IBXFIcjs.legacyView; exports.lerpPigment = _chunkOLNIPTB3cjs.lerpPigment; exports.lerpPigmentInto = _chunkOLNIPTB3cjs.lerpPigmentInto; exports.levelsValue = _chunkH65IBXFIcjs.levelsValue; exports.linearSrgbToXy = _chunkH65IBXFIcjs.linearSrgbToXy; exports.linearToSrgb = _chunkH65IBXFIcjs.linearToSrgb; exports.linearToSrgb8 = _chunkKWNMBMKGcjs.linearToSrgb8; exports.liveComponent = _chunkH65IBXFIcjs.liveComponent; exports.liveShapeForDrag = liveShapeForDrag; exports.liveShapeSubpaths = _chunkH65IBXFIcjs.liveShapeSubpaths; exports.liveWire = liveWire; exports.loadImageEditorDocument = loadImageEditorDocument; exports.loadMixer = _chunkPQ3H2AANcjs.loadMixer; exports.loadOpenTypeFont = _chunkLCCMOWR7cjs.loadOpenTypeFont; exports.loadWetKernel = _chunkKWNMBMKGcjs.loadWetKernel; exports.luma = _chunkYF3YZZ6Gcjs.luma; exports.magicWand = magicWand; exports.magneticAnchorSpacing = magneticAnchorSpacing; exports.mapCropHandle = _chunkH65IBXFIcjs.mapCropHandle; exports.mapLayer = _chunkUOGKSVRQcjs.mapLayer; exports.mapSubpaths = _chunkH65IBXFIcjs.mapSubpaths; exports.maskBounds = _chunkMQDIP4CFcjs.maskBounds; exports.maskFileName = maskFileName; exports.maskNameFromFile = maskNameFromFile; exports.maskSummary = maskSummary; exports.maskThumbnailClick = maskThumbnailClick; exports.matrixFromCorners = _chunkH65IBXFIcjs.matrixFromCorners; exports.matrixFromParams = _chunkH65IBXFIcjs.matrixFromParams; exports.measureCanvasViewport = measureCanvasViewport; exports.membraneFill = _chunkMQDIP4CFcjs.membraneFill; exports.mergeLayerEffect = _chunkUOGKSVRQcjs.mergeLayerEffect; exports.mergeShapeComponents = _chunkH65IBXFIcjs.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 = _chunkQYLWG22Ncjs.modifySelection; exports.moveCurvePoint = moveCurvePoint; exports.moveLayer = _chunkH65IBXFIcjs.moveLayer; exports.moveSmartFilter = _chunkH65IBXFIcjs.moveSmartFilter; exports.mulMatrix3 = _chunkH65IBXFIcjs.mulMatrix3; exports.needsLegacyBase = needsLegacyBase; exports.neutralHueRange = _chunkH65IBXFIcjs.neutralHueRange; exports.newContentsId = _chunkH65IBXFIcjs.newContentsId; exports.newEffectId = _chunkUOGKSVRQcjs.newEffectId; exports.newLayerId = _chunkH65IBXFIcjs.newLayerId; exports.newLayerOptions = newLayerOptions; exports.newPathId = newPathId; exports.normalizeAdjustmentLayer = _chunkH65IBXFIcjs.normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = _chunkH65IBXFIcjs.normalizeAdjustmentLayers; exports.normalizeAngle = _chunkH65IBXFIcjs.normalizeAngle; exports.normalizeBlendMode = _chunkOLNIPTB3cjs.normalizeBlendMode; exports.normalizeBlender = _chunkPQ3H2AANcjs.normalizeBlender; exports.normalizeBrush = _chunkPQ3H2AANcjs.normalizeBrush; exports.normalizeFilter = _chunkH65IBXFIcjs.normalizeFilter; exports.normalizeFlow = _chunkKWNMBMKGcjs.normalizeFlow; exports.normalizeHexColor = _chunkPQ3H2AANcjs.normalizeHexColor; exports.normalizeLayerEffects = _chunkUOGKSVRQcjs.normalizeLayerEffects; exports.normalizeLayerMask = _chunkH65IBXFIcjs.normalizeLayerMask; exports.normalizeLiveShape = _chunkH65IBXFIcjs.normalizeLiveShape; exports.normalizeMixer = _chunkPQ3H2AANcjs.normalizeMixer; exports.normalizePlacement = _chunkH65IBXFIcjs.normalizePlacement; exports.normalizeProcessVersion = _chunkH65IBXFIcjs.normalizeProcessVersion; exports.normalizeRect = _chunkL52VMQZScjs.normalizeRect; exports.normalizeRefineEdgeParams = _chunkL52VMQZScjs.normalizeRefineEdgeParams; exports.normalizeRetouch = _chunkYF3YZZ6Gcjs.normalizeRetouch; exports.normalizeShapePaint = _chunkH65IBXFIcjs.normalizeShapePaint; exports.normalizeShapeStroke = _chunkH65IBXFIcjs.normalizeShapeStroke; exports.normalizeSmartFilter = _chunkH65IBXFIcjs.normalizeSmartFilter; exports.normalizeSmudge = _chunkPQ3H2AANcjs.normalizeSmudge; exports.normalizeStoredAdjustments = normalizeStoredAdjustments; exports.normalizeSubpaths = _chunkH65IBXFIcjs.normalizeSubpaths; exports.normalizeText = _chunkH65IBXFIcjs.normalizeText; exports.normalizeTilt = _chunkKWNMBMKGcjs.normalizeTilt; exports.normalizeWetParams = _chunkKWNMBMKGcjs.normalizeWetParams; exports.offsetLayer = _chunkH65IBXFIcjs.offsetLayer; exports.offsetShape = _chunkH65IBXFIcjs.offsetShape; exports.offsetSmartObject = _chunkH65IBXFIcjs.offsetSmartObject; exports.offsetVectorMask = _chunkH65IBXFIcjs.offsetVectorMask; exports.openMaskFile = openMaskFile; exports.openPsdFile = openPsdFile; exports.otsuThreshold = _chunkL52VMQZScjs.otsuThreshold; exports.packRgba = _chunk474IQG74cjs.packRgba; exports.packWetParams = _chunkKWNMBMKGcjs.packWetParams; exports.paintGradientMappingFor = _chunkPQ3H2AANcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPQ3H2AANcjs.paintPathStroke; exports.paintSourceColor = _chunkPQ3H2AANcjs.paintSourceColor; exports.paintSourceCss = _chunkPQ3H2AANcjs.paintSourceCss; exports.paragraphRanges = _chunkQAUIZPYIcjs.paragraphRanges; exports.parseAdjustmentBlock = _chunkH65IBXFIcjs.parseAdjustmentBlock; exports.parseBlend = _chunkH65IBXFIcjs.parseBlend; exports.parseColor = parseColor; exports.parseCssColor = _chunkA2IS7EHEcjs.parseCssColor; exports.parseDataUrl = _chunkOLNIPTB3cjs.parseDataUrl; exports.parseEffectColor = _chunkUOGKSVRQcjs.parseEffectColor; exports.parseLfx2 = _chunkH65IBXFIcjs.parseLfx2; exports.parseLrfx = _chunkH65IBXFIcjs.parseLrfx; exports.parseOpenTypeFont = _chunkLCCMOWR7cjs.parseOpenTypeFont; exports.parsePaintSource = _chunkPQ3H2AANcjs.parsePaintSource; exports.parsePatternBlock = _chunkH65IBXFIcjs.parsePatternBlock; exports.parseSelectionMode = _chunkQYLWG22Ncjs.parseSelectionMode; exports.parseVersionedDescriptor = _chunkH65IBXFIcjs.parseVersionedDescriptor; exports.patchParagraphStyle = _chunkH65IBXFIcjs.patchParagraphStyle; exports.patchTextStyle = _chunkH65IBXFIcjs.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 = _chunkH65IBXFIcjs.photoFilterMatrix; exports.pigment8 = _chunkOLNIPTB3cjs.pigment8; exports.pigmentColor = _chunkKWNMBMKGcjs.pigmentColor; exports.pigmentOf = _chunkKWNMBMKGcjs.pigmentOf; exports.pixelLayerBounds = _chunkH65IBXFIcjs.pixelLayerBounds; exports.pixelLayers = _chunkH65IBXFIcjs.pixelLayers; exports.pixelPigment = _chunkKWNMBMKGcjs.pixelPigment; exports.placeContents = _chunkH65IBXFIcjs.placeContents; exports.placeLayer = _chunkH65IBXFIcjs.placeLayer; exports.placementAt = _chunkH65IBXFIcjs.placementAt; exports.placementBounds = _chunkH65IBXFIcjs.placementBounds; exports.placementGeometry = _chunkH65IBXFIcjs.placementGeometry; exports.planImageToolPlayback = planImageToolPlayback; exports.planOutlineTrace = planOutlineTrace; exports.pngDataUrl = _chunkOLNIPTB3cjs.pngDataUrl; exports.pointerPressure = _chunkKWNMBMKGcjs.pointerPressure; exports.pointerStrokeSample = _chunkKWNMBMKGcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkKWNMBMKGcjs.pointerStrokeSamples; exports.polygonCoverage = _chunkL52VMQZScjs.polygonCoverage; exports.polygonCoverageBox = _chunkL52VMQZScjs.polygonCoverageBox; exports.polygonSelection = _chunkL52VMQZScjs.polygonSelection; exports.posterizeValue = _chunkH65IBXFIcjs.posterizeValue; exports.presetWarp = _chunkH65IBXFIcjs.presetWarp; exports.previewStep = previewStep; exports.profileBytes = profileBytes; exports.projectImagePoint = _chunkH65IBXFIcjs.projectImagePoint; exports.projectImageRect = _chunkH65IBXFIcjs.projectImageRect; exports.projectMaskCoverage = _chunkH65IBXFIcjs.projectMaskCoverage; exports.projectQuarterTurn = projectQuarterTurn; exports.proxyOf = _chunkOLNIPTB3cjs.proxyOf; exports.psdBytesFromBase64 = psdBytesFromBase64; exports.psdFileName = psdFileName; exports.psdPatternToEffectPattern = _chunkH65IBXFIcjs.psdPatternToEffectPattern; exports.psdToLayers = _chunkH65IBXFIcjs.psdToLayers; exports.pullWarpMesh = _chunkQAUIZPYIcjs.pullWarpMesh; exports.put255 = _chunkPQ3H2AANcjs.put255; exports.quadFrameOverlay = quadFrameOverlay; exports.quickMaskPixels = quickMaskPixels; exports.quickSelectStroke = _chunkL52VMQZScjs.quickSelectStroke; exports.rand01 = _chunkPQ3H2AANcjs.rand01; exports.randSigned = _chunkPQ3H2AANcjs.randSigned; exports.rangeLightness = _chunkH65IBXFIcjs.rangeLightness; exports.rasterContents = _chunkH65IBXFIcjs.rasterContents; exports.rasterMaskFromLegacy = _chunkH65IBXFIcjs.rasterMaskFromLegacy; exports.rasterizeCoverage = _chunkH65IBXFIcjs.rasterizeCoverage; exports.rasterizeDab = _chunkPQ3H2AANcjs.rasterizeDab; exports.rasterizeSmartObject = _chunkH65IBXFIcjs.rasterizeSmartObject; exports.readAdjustmentControls = readAdjustmentControls; exports.readDeepRegion = _chunkOLNIPTB3cjs.readDeepRegion; exports.readPaintSource = _chunkPQ3H2AANcjs.readPaintSource; exports.readPaths = readPaths; exports.readPixel = _chunk474IQG74cjs.readPixel; exports.readPsd = _chunkH65IBXFIcjs.readPsd; exports.readRegion = _chunk474IQG74cjs.readRegion; exports.readShapeComponents = _chunkH65IBXFIcjs.readShapeComponents; exports.readSourceRegion = _chunkYF3YZZ6Gcjs.readSourceRegion; exports.rectSelection = _chunkL52VMQZScjs.rectSelection; exports.rectToQuad = _chunkQT26RHKKcjs.rectToQuad; exports.reduceSurface = _chunkUOGKSVRQcjs.reduceSurface; exports.referencePoint = _chunkH65IBXFIcjs.referencePoint; exports.refineCoverage = _chunkL52VMQZScjs.refineCoverage; exports.refineEdgeHalo = _chunkL52VMQZScjs.refineEdgeHalo; exports.refineSelection = _chunkL52VMQZScjs.refineSelection; exports.reflectanceToRgb = _chunkOLNIPTB3cjs.reflectanceToRgb; exports.removeAlpha = _chunkH65IBXFIcjs.removeAlpha; exports.removeCurvePoint = removeCurvePoint; exports.removeLayer = _chunkH65IBXFIcjs.removeLayer; exports.removeLayerEffect = _chunkH65IBXFIcjs.removeLayerEffect; exports.removeLayerFilter = _chunkH65IBXFIcjs.removeLayerFilter; exports.removePaintGradientStop = _chunkPQ3H2AANcjs.removePaintGradientStop; exports.removeSmartFilter = _chunkH65IBXFIcjs.removeSmartFilter; exports.renderBrushstroke = _chunkPQ3H2AANcjs.renderBrushstroke; exports.renderLayerEffects = _chunkUOGKSVRQcjs.renderLayerEffects; exports.renderLayeredBase = renderLayeredBase; exports.renderShape = _chunkH65IBXFIcjs.renderShape; exports.renderShapeRect = _chunkH65IBXFIcjs.renderShapeRect; exports.renderSmartObject = _chunkH65IBXFIcjs.renderSmartObject; exports.renderText = _chunkH65IBXFIcjs.renderText; exports.replaceContents = _chunkH65IBXFIcjs.replaceContents; exports.replaceTextRange = _chunkH65IBXFIcjs.replaceTextRange; exports.requireLayer = _chunkH65IBXFIcjs.requireLayer; exports.requireOperation = _chunkH65IBXFIcjs.requireOperation; exports.requireShapeLayer = _chunkH65IBXFIcjs.requireShapeLayer; exports.requireSmartObject = _chunkH65IBXFIcjs.requireSmartObject; exports.requireTypeLayer = _chunkH65IBXFIcjs.requireTypeLayer; exports.requireUnlocked = _chunkH65IBXFIcjs.requireUnlocked; exports.rerender = _chunkH65IBXFIcjs.rerender; exports.rerenderShape = _chunkH65IBXFIcjs.rerenderShape; exports.rerenderText = _chunkH65IBXFIcjs.rerenderText; exports.resizePixels = resizePixels; exports.resizeSelection = _chunkQYLWG22Ncjs.resizeSelection; exports.resizeWarpMesh = _chunkQAUIZPYIcjs.resizeWarpMesh; exports.resolveExternalAssets = _chunkH65IBXFIcjs.resolveExternalAssets; exports.resolveMosaicRegionBounds = resolveMosaicRegionBounds; exports.resolvePaintGradient = _chunkPQ3H2AANcjs.resolvePaintGradient; exports.resolveProfile = resolveProfile; exports.resolveVectorMasks = _chunkH65IBXFIcjs.resolveVectorMasks; exports.restyleRange = _chunkQAUIZPYIcjs.restyleRange; exports.retouchFilter = _chunkYF3YZZ6Gcjs.retouchFilter; exports.reversePaintGradient = _chunkPQ3H2AANcjs.reversePaintGradient; exports.rgbToGray = _chunkH65IBXFIcjs.rgbToGray; exports.rgbToHsl = _chunkH65IBXFIcjs.rgbToHsl; exports.rgbToReflectance = _chunkOLNIPTB3cjs.rgbToReflectance; exports.rgbUnitToHex = rgbUnitToHex; exports.rgbaViewOfGrey = _chunkYF3YZZ6Gcjs.rgbaViewOfGrey; exports.runLayerFilters = _chunkH65IBXFIcjs.runLayerFilters; exports.runLayerFiltersFloat = _chunkH65IBXFIcjs.runLayerFiltersFloat; exports.runLayerMenuAction = runLayerMenuAction; exports.runSelectionJob = _chunkL52VMQZScjs.runSelectionJob; exports.sameCanvasViewport = sameCanvasViewport; exports.sampleLut = _chunkH65IBXFIcjs.sampleLut; exports.sampleToneLut = _chunkH65IBXFIcjs.sampleToneLut; exports.saturationOf = _chunkYF3YZZ6Gcjs.saturationOf; exports.scaleLayerEffect = _chunkUOGKSVRQcjs.scaleLayerEffect; exports.scalePaintGradient = _chunkPQ3H2AANcjs.scalePaintGradient; exports.seamlessClone = _chunkMQDIP4CFcjs.seamlessClone; exports.seedFromString = _chunkPQ3H2AANcjs.seedFromString; exports.segmentToSelection = segmentToSelection; exports.segmentationOutlines = segmentationOutlines; exports.segmentsToSelection = segmentsToSelection; exports.selectObjectIn = _chunkL52VMQZScjs.selectObjectIn; exports.selectSimilar = selectSimilar; exports.selectionArea = _chunkQYLWG22Ncjs.selectionArea; exports.selectionFromCoverage = _chunkQYLWG22Ncjs.selectionFromCoverage; exports.selectionFromPixels = _chunkQYLWG22Ncjs.selectionFromPixels; exports.selectionFromRegion = _chunkQYLWG22Ncjs.selectionFromRegion; exports.selectionFromTiles = _chunkQYLWG22Ncjs.selectionFromTiles; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.selectionOutline = selectionOutline; exports.selectionRing = selectionRing; exports.selectionToCoverage = _chunkQYLWG22Ncjs.selectionToCoverage; exports.selectionToPixels = _chunkQYLWG22Ncjs.selectionToPixels; exports.selectionToSubpaths = selectionToSubpaths; exports.selectionValueAt = _chunkQYLWG22Ncjs.selectionValueAt; exports.serializeChannels = serializeChannels; exports.serializeColorMode = serializeColorMode; exports.serializeColorProfile = serializeColorProfile; exports.serializeContents = _chunkH65IBXFIcjs.serializeContents; exports.serializeEffects = _chunkH65IBXFIcjs.serializeEffects; exports.serializeLayer = _chunkH65IBXFIcjs.serializeLayer; exports.serializeLayers = _chunkH65IBXFIcjs.serializeLayers; exports.serializeLayersExternal = _chunkH65IBXFIcjs.serializeLayersExternal; exports.serializeMask = _chunkL52VMQZScjs.serializeMask; exports.serializePaths = serializePaths; exports.serializePatterns = _chunkH65IBXFIcjs.serializePatterns; exports.serializeSelection = _chunkQYLWG22Ncjs.serializeSelection; exports.setCloneTransformValue = setCloneTransformValue; exports.setControlPath = setControlPath; exports.setLayerEffects = _chunkH65IBXFIcjs.setLayerEffects; exports.setLayerEffectsEnabled = _chunkH65IBXFIcjs.setLayerEffectsEnabled; exports.setLayerMask = _chunkH65IBXFIcjs.setLayerMask; exports.setLayerProperties = _chunkH65IBXFIcjs.setLayerProperties; exports.setLum = _chunkOLNIPTB3cjs.setLum; exports.setPigmentColor = _chunkOLNIPTB3cjs.setPigmentColor; exports.setRetouchChoice = setRetouchChoice; exports.setSmartFilterMask = _chunkH65IBXFIcjs.setSmartFilterMask; exports.setSmartFiltersEnabled = _chunkH65IBXFIcjs.setSmartFiltersEnabled; exports.setSmartPlacement = _chunkH65IBXFIcjs.setSmartPlacement; exports.shadeTile = _chunkKWNMBMKGcjs.shadeTile; exports.shapeAsPixelLayer = _chunkH65IBXFIcjs.shapeAsPixelLayer; exports.shapeFromAnnotation = _chunkH65IBXFIcjs.shapeFromAnnotation; exports.shapeGeometryBounds = _chunkH65IBXFIcjs.shapeGeometryBounds; exports.shapeLayers = _chunkH65IBXFIcjs.shapeLayers; exports.shapeOutline = _chunkH65IBXFIcjs.shapeOutline; exports.shapeRenderClip = _chunkH65IBXFIcjs.shapeRenderClip; exports.shiftCoverage = _chunkQYLWG22Ncjs.shiftCoverage; exports.simplifyPixelPath = simplifyPixelPath; exports.skinToneRange = skinToneRange; exports.slicSuperpixels = _chunkL52VMQZScjs.slicSuperpixels; exports.smartFilterRows = smartFilterRows; exports.smartObjectLayers = _chunkH65IBXFIcjs.smartObjectLayers; exports.smoothCoverage = _chunkQYLWG22Ncjs.smoothCoverage; exports.smoothPoints = _chunkPQ3H2AANcjs.smoothPoints; exports.smoothnessWeights = _chunkL52VMQZScjs.smoothnessWeights; exports.smudgeEffect = _chunkYF3YZZ6Gcjs.smudgeEffect; exports.snapPolygonToEdges = snapPolygonToEdges; exports.snapTo45 = snapTo45; exports.snapToEdge = snapToEdge; exports.softMaskToSelection = _chunkL52VMQZScjs.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 = _chunkKWNMBMKGcjs.srgbByteToLinear; exports.srgbDecode = _chunkOLNIPTB3cjs.srgbDecode; exports.srgbEncode = _chunkOLNIPTB3cjs.srgbEncode; exports.srgbToLinear = _chunkH65IBXFIcjs.srgbToLinear; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.startMarchingAnts = startMarchingAnts; exports.startSelectionWorker = _chunkL52VMQZScjs.startSelectionWorker; exports.stepSlotTs = _chunkKWNMBMKGcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPQ3H2AANcjs.strokeGrainCatch; exports.styleAt = _chunkQAUIZPYIcjs.styleAt; exports.subpathsToSvgPath = subpathsToSvgPath; exports.sumHistograms = sumHistograms; exports.superpixelSaliency = _chunkL52VMQZScjs.superpixelSaliency; exports.surfaceBytes = _chunk474IQG74cjs.surfaceBytes; exports.surfaceDepth = _chunkOLNIPTB3cjs.surfaceDepth; exports.surfaceFromDeepPixels = _chunkOLNIPTB3cjs.surfaceFromDeepPixels; exports.surfaceFromPixels = _chunk474IQG74cjs.surfaceFromPixels; exports.surfacesEqual = _chunk474IQG74cjs.surfacesEqual; exports.tempTintToXy = _chunkH65IBXFIcjs.tempTintToXy; exports.temperatureToKelvin = _chunkH65IBXFIcjs.temperatureToKelvin; exports.textIndexAt = _chunkQAUIZPYIcjs.textIndexAt; exports.textMatrix = _chunkH65IBXFIcjs.textMatrix; exports.textOrientation = _chunkH65IBXFIcjs.textOrientation; exports.textOutlines = _chunkH65IBXFIcjs.textOutlines; exports.textRange = _chunkH65IBXFIcjs.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 = _chunkH65IBXFIcjs.toTextSpace; exports.toneCurve = _chunkH65IBXFIcjs.toneCurve; exports.toneLuts = _chunkH65IBXFIcjs.toneLuts; exports.toneOf = _chunkYF3YZZ6Gcjs.toneOf; exports.toneRange = toneRange; exports.transformHomography = _chunkH65IBXFIcjs.transformHomography; exports.transformMap = _chunkH65IBXFIcjs.transformMap; exports.transformShapeComponents = _chunkH65IBXFIcjs.transformShapeComponents; exports.transformSurface = _chunkUOGKSVRQcjs.transformSurface; exports.transformTypeLayer = _chunkH65IBXFIcjs.transformTypeLayer; exports.transformVectorMask = _chunkH65IBXFIcjs.transformVectorMask; exports.transformedBounds = _chunkUOGKSVRQcjs.transformedBounds; exports.transformedBox = _chunkH65IBXFIcjs.transformedBox; exports.transformedPoint = _chunkH65IBXFIcjs.transformedPoint; exports.translateLayer = _chunkH65IBXFIcjs.translateLayer; exports.translateSurface = _chunk474IQG74cjs.translateSurface; exports.typeAsPixelLayer = _chunkH65IBXFIcjs.typeAsPixelLayer; exports.typeFrame = _chunkH65IBXFIcjs.typeFrame; exports.typeFromAnnotation = _chunkH65IBXFIcjs.typeFromAnnotation; exports.typeLayerAt = typeLayerAt; exports.typeLayerName = _chunkH65IBXFIcjs.typeLayerName; exports.ungroupLayer = _chunkH65IBXFIcjs.ungroupLayer; exports.uniformTile = _chunk474IQG74cjs.uniformTile; exports.unionRect = _chunkH65IBXFIcjs.unionRect; exports.unprojectCanvasPoint = _chunkH65IBXFIcjs.unprojectCanvasPoint; exports.updateLayerEffect = _chunkH65IBXFIcjs.updateLayerEffect; exports.updateLayerFilter = _chunkH65IBXFIcjs.updateLayerFilter; exports.updateLayerMaskProps = _chunkH65IBXFIcjs.updateLayerMaskProps; exports.updatePaintGradientStop = _chunkPQ3H2AANcjs.updatePaintGradientStop; exports.updateShapeLayer = _chunkH65IBXFIcjs.updateShapeLayer; exports.updateSmartFilter = _chunkH65IBXFIcjs.updateSmartFilter; exports.updateTypeLayer = _chunkH65IBXFIcjs.updateTypeLayer; exports.upscaleRegion = _chunkL52VMQZScjs.upscaleRegion; exports.userErrorMessage = _chunkH65IBXFIcjs.userErrorMessage; exports.uvToXy = _chunkH65IBXFIcjs.uvToXy; exports.validateEffectGradient = _chunkUOGKSVRQcjs.validateEffectGradient; exports.validateLayerEffect = _chunkUOGKSVRQcjs.validateLayerEffect; exports.validateLayerEffects = _chunkUOGKSVRQcjs.validateLayerEffects; exports.vectorMaskBounds = _chunkH65IBXFIcjs.vectorMaskBounds; exports.vectorMaskCoverage = _chunkH65IBXFIcjs.vectorMaskCoverage; exports.vectorMaskThumbnail = _chunkH65IBXFIcjs.vectorMaskThumbnail; exports.vectorMaskThumbnailClick = vectorMaskThumbnailClick; exports.versionedDescriptorBytes = _chunkH65IBXFIcjs.versionedDescriptorBytes; exports.vibranceLinear = _chunkH65IBXFIcjs.vibranceLinear; exports.vibrancePixel = _chunkH65IBXFIcjs.vibrancePixel; exports.walkDabs = _chunkPQ3H2AANcjs.walkDabs; exports.warpMeshEditPoints = _chunkQAUIZPYIcjs.warpMeshEditPoints; exports.warpMeshGridCurves = _chunkQAUIZPYIcjs.warpMeshGridCurves; exports.warpMeshParamAt = _chunkQAUIZPYIcjs.warpMeshParamAt; exports.warpPresetMesh = _chunkQAUIZPYIcjs.warpPresetMesh; exports.warpSurface = _chunkUOGKSVRQcjs.warpSurface; exports.watchCanvasViewport = watchCanvasViewport; exports.wbMatrix = _chunkH65IBXFIcjs.wbMatrix; exports.wetGpuSupport = _chunkKWNMBMKGcjs.wetGpuSupport; exports.wetSimdSupported = _chunkKWNMBMKGcjs.wetSimdSupported; exports.wetSupport = _chunkKWNMBMKGcjs.wetSupport; exports.whiteBalanceFromSample = _chunkH65IBXFIcjs.whiteBalanceFromSample; exports.whiteBalanceMatrix = _chunkH65IBXFIcjs.whiteBalanceMatrix; exports.withBackgroundOpacity = withBackgroundOpacity; exports.withFilterMaskSurface = _chunkH65IBXFIcjs.withFilterMaskSurface; exports.withImagePlayback = withImagePlayback; exports.withNewIds = _chunkH65IBXFIcjs.withNewIds; exports.workImage = _chunkL52VMQZScjs.workImage; exports.workLuma = _chunkL52VMQZScjs.workLuma; exports.workPlanes = _chunkL52VMQZScjs.workPlanes; exports.writeAdjustmentBlock = _chunkH65IBXFIcjs.writeAdjustmentBlock; exports.writeDeepRegion = _chunkOLNIPTB3cjs.writeDeepRegion; exports.writeLfx2 = _chunkH65IBXFIcjs.writeLfx2; exports.writePatternBlock = _chunkH65IBXFIcjs.writePatternBlock; exports.writePsd = _chunkH65IBXFIcjs.writePsd; exports.writeRegion = _chunk474IQG74cjs.writeRegion; exports.xyToTempTint = _chunkH65IBXFIcjs.xyToTempTint; exports.xyToUv = _chunkH65IBXFIcjs.xyToUv;
22619
+
22620
+
22621
+ exports.ADJUSTMENT_KEYS = _chunkH65IBXFIcjs.ADJUSTMENT_KEYS; exports.ADJUSTMENT_KINDS = _chunkH65IBXFIcjs.ADJUSTMENT_KINDS; exports.ADJUSTMENT_LAYER_CONTROLS = ADJUSTMENT_LAYER_CONTROLS; exports.ADJUSTMENT_LAYER_OPACITY_CONTROL = ADJUSTMENT_LAYER_OPACITY_CONTROL; exports.ADJUSTMENT_LUT_SIZE = _chunkH65IBXFIcjs.ADJUSTMENT_LUT_SIZE; exports.ANCHOR_FRACTION = _chunkH65IBXFIcjs.ANCHOR_FRACTION; exports.AS_SHOT_KELVIN = _chunkH65IBXFIcjs.AS_SHOT_KELVIN; exports.BACKGROUND_LAYER_ID = _chunkH65IBXFIcjs.BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = _chunkH65IBXFIcjs.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 = _chunkH65IBXFIcjs.BLUR_FILTER_ID; exports.BODY_SCATTER = _chunkKWNMBMKGcjs.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 = _chunkL52VMQZScjs.ColorGmm; exports.ContentAwareFillSession = ContentAwareFillSession; exports.CoverageMap = _chunkPQ3H2AANcjs.CoverageMap; exports.D50 = _chunkH65IBXFIcjs.D50; exports.D65 = _chunkH65IBXFIcjs.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 = _chunkKWNMBMKGcjs.DEFAULT_FLOW; exports.DEFAULT_GLOBAL_LIGHT = _chunkUOGKSVRQcjs.DEFAULT_GLOBAL_LIGHT; exports.DEFAULT_MITER_LIMIT = _chunkH65IBXFIcjs.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 = _chunkL52VMQZScjs.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 = _chunkKWNMBMKGcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkKWNMBMKGcjs.DEFAULT_WET_PARAMS; exports.DEPTH_MASK_CONTROLS = DEPTH_MASK_CONTROLS; exports.DEVELOP_FILTER_ID = _chunkH65IBXFIcjs.DEVELOP_FILTER_ID; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkK6PXS6DOcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.DRY_EPS = _chunkKWNMBMKGcjs.DRY_EPS; exports.DabWalker = _chunkPQ3H2AANcjs.DabWalker; exports.EFFECT_LAYER_USES = EFFECT_LAYER_USES; exports.EMPTY_DISTANCE = _chunkQYLWG22Ncjs.EMPTY_DISTANCE; exports.EMPTY_MIXER_LOAD = _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkKWNMBMKGcjs.EX; exports.EY = _chunkKWNMBMKGcjs.EY; exports.EdgeMap = EdgeMap; exports.FLAG_ALIVE = _chunkKWNMBMKGcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkKWNMBMKGcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkKWNMBMKGcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkKWNMBMKGcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkKWNMBMKGcjs.FLAG_TOP; exports.FLAG_WET = _chunkKWNMBMKGcjs.FLAG_WET; exports.FLAT = _chunkKWNMBMKGcjs.FLAT; exports.FREE_INTERVAL = _chunkKWNMBMKGcjs.FREE_INTERVAL; exports.FREE_TRANSFORM_CONTENTS = FREE_TRANSFORM_CONTENTS; exports.FREE_TRANSFORM_FIELDS = FREE_TRANSFORM_FIELDS; exports.FREE_TRANSFORM_MODES = _chunkH65IBXFIcjs.FREE_TRANSFORM_MODES; exports.FREE_TRANSFORM_MODE_OPTIONS = FREE_TRANSFORM_MODE_OPTIONS; exports.FreeTransformSession = FreeTransformSession; exports.FreeTransformTool = FreeTransformTool; exports.GAMMA = _chunkL52VMQZScjs.GAMMA; exports.GRAIN_PATTERNS = _chunkPQ3H2AANcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPQ3H2AANcjs.GRAIN_TILE; exports.GUIDED_FILTER_EPS = _chunkL52VMQZScjs.GUIDED_FILTER_EPS; exports.GridGraph = _chunkL52VMQZScjs.GridGraph; exports.HIDE = _chunkKWNMBMKGcjs.HIDE; exports.HISTOGRAM_BINS = HISTOGRAM_BINS; exports.HUE_RANGE_LABELS = _chunkH65IBXFIcjs.HUE_RANGE_LABELS; exports.HUE_RANGE_PRESETS = HUE_RANGE_PRESETS; exports.IDENTITY_CLONE_TRANSFORM = _chunkYF3YZZ6Gcjs.IDENTITY_CLONE_TRANSFORM; exports.IDENTITY_MATRIX3 = _chunkH65IBXFIcjs.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 = _chunkUOGKSVRQcjs.INTERPOLATIONS; exports.ImageEditorController = ImageEditorController; exports.ImageEditorRenderer = ImageEditorRenderer; exports.ImageEffectsEngine = ImageEffectsEngine; exports.LATEST_PROCESS_VERSION = _chunkH65IBXFIcjs.LATEST_PROCESS_VERSION; exports.LAYERED_SCHEMA_VERSION = _chunkH65IBXFIcjs.LAYERED_SCHEMA_VERSION; exports.LAYER_EFFECT_KINDS = _chunkUOGKSVRQcjs.LAYER_EFFECT_KINDS; exports.LAYER_EFFECT_MENU = LAYER_EFFECT_MENU; exports.LEGACY_PROCESS_VERSION = _chunkH65IBXFIcjs.LEGACY_PROCESS_VERSION; exports.LIVE_SHAPE_KINDS = _chunkH65IBXFIcjs.LIVE_SHAPE_KINDS; exports.LUMA_709 = _chunkH65IBXFIcjs.LUMA_709; exports.LayerCompositor = _chunkH65IBXFIcjs.LayerCompositor; exports.LayerEffectError = _chunkUOGKSVRQcjs.LayerEffectError; exports.LayerOperationError = _chunkH65IBXFIcjs.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 = _chunkKWNMBMKGcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkPQ3H2AANcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_BACKING_SIDE = MAX_CANVAS_BACKING_SIDE; exports.MAX_EFFECT_ANIMATION_MS = _chunkH65IBXFIcjs.MAX_EFFECT_ANIMATION_MS; exports.MAX_EFFECT_REACH = _chunkUOGKSVRQcjs.MAX_EFFECT_REACH; exports.MAX_KELVIN = _chunkH65IBXFIcjs.MAX_KELVIN; exports.MAX_TILT_ACCEL = _chunkKWNMBMKGcjs.MAX_TILT_ACCEL; exports.MAX_TRANSFORM_PIXELS = _chunkUOGKSVRQcjs.MAX_TRANSFORM_PIXELS; exports.MAX_WET_LANES = _chunkKWNMBMKGcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkKWNMBMKGcjs.MAX_WET_SLOTS; exports.MIN_KELVIN = _chunkH65IBXFIcjs.MIN_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = _chunkH65IBXFIcjs.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 = _chunkKWNMBMKGcjs.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 = _chunkKWNMBMKGcjs.PAPER_CAPACITY; exports.PARAGRAPH_STYLE_FIELDS = _chunkH65IBXFIcjs.PARAGRAPH_STYLE_FIELDS; exports.PARAM = _chunkKWNMBMKGcjs.PARAM; exports.PARAM_FLOATS = _chunkKWNMBMKGcjs.PARAM_FLOATS; exports.PASTE_MODES = PASTE_MODES; exports.PATH_EDIT_TOOLS = PATH_EDIT_TOOLS; exports.PATTERN_BLOCK_KEYS = _chunkH65IBXFIcjs.PATTERN_BLOCK_KEYS; exports.PIGMENT_BANDS = _chunkOLNIPTB3cjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkKWNMBMKGcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunkOLNIPTB3cjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkKWNMBMKGcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunkOLNIPTB3cjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkKWNMBMKGcjs.PLANE; exports.PLANE_BYTES = _chunkKWNMBMKGcjs.PLANE_BYTES; exports.PREVIEW_SIZE = PREVIEW_SIZE; exports.PROOF_PROFILE_OPTIONS = PROOF_PROFILE_OPTIONS; exports.PSD_BLEND_KEYS = _chunkH65IBXFIcjs.PSD_BLEND_KEYS; exports.PSD_FILE_ACCEPT = PSD_FILE_ACCEPT; exports.P_D0 = _chunkKWNMBMKGcjs.P_D0; exports.P_EDGE = _chunkKWNMBMKGcjs.P_EDGE; exports.P_FX = _chunkKWNMBMKGcjs.P_FX; exports.P_FY = _chunkKWNMBMKGcjs.P_FY; exports.P_H = _chunkKWNMBMKGcjs.P_H; exports.P_P0 = _chunkKWNMBMKGcjs.P_P0; exports.P_RHO = _chunkKWNMBMKGcjs.P_RHO; exports.P_SW = _chunkKWNMBMKGcjs.P_SW; exports.P_UX = _chunkKWNMBMKGcjs.P_UX; exports.P_UY = _chunkKWNMBMKGcjs.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 = _chunkUOGKSVRQcjs.PatternPlacement; exports.PatternTile = _chunkUOGKSVRQcjs.PatternTile; exports.PsdError = _chunkH65IBXFIcjs.PsdError; exports.QUICK_MASK_TARGET = QUICK_MASK_TARGET; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.REFINE_EDIT_KINDS = _chunkL52VMQZScjs.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 = _chunkQYLWG22Ncjs.SELECTION_MODES; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.SELECTION_MODIFY_OPS = _chunkQYLWG22Ncjs.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 = _chunkKWNMBMKGcjs.SET_PLANES; exports.SHADOW_AMBIENT = _chunkOLNIPTB3cjs.SHADOW_AMBIENT; exports.SHAPE_KIND_LABELS = SHAPE_KIND_LABELS; exports.SHAPE_OPERATIONS = _chunkH65IBXFIcjs.SHAPE_OPERATIONS; exports.SHAPE_RENDER_MARGIN = _chunkH65IBXFIcjs.SHAPE_RENDER_MARGIN; exports.SLOT_BYTES = _chunkKWNMBMKGcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkKWNMBMKGcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkKWNMBMKGcjs.SLOT_SIDE; exports.SMART_RENDER_MARGIN = _chunkH65IBXFIcjs.SMART_RENDER_MARGIN; exports.SPOT_HEAL_TYPES = _chunkYF3YZZ6Gcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkKWNMBMKGcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkKWNMBMKGcjs.STRIP; exports.SUPPORTED_ADJUSTMENT_KEYS = _chunkH65IBXFIcjs.SUPPORTED_ADJUSTMENT_KEYS; exports.SelectAndMaskSession = SelectAndMaskSession; exports.SelectionGesture = SelectionGesture; exports.SelectionWorkerClient = _chunkL52VMQZScjs.SelectionWorkerClient; exports.ShapeDrawGesture = ShapeDrawGesture; exports.SmudgeTip = _chunkPQ3H2AANcjs.SmudgeTip; exports.StrokeCoverage = _chunkPQ3H2AANcjs.StrokeCoverage; exports.SurfaceDraft = _chunk474IQG74cjs.SurfaceDraft; exports.TEXT_ALIGNS = _chunkH65IBXFIcjs.TEXT_ALIGNS; exports.TEXT_ORIENTATIONS = _chunkH65IBXFIcjs.TEXT_ORIENTATIONS; exports.TEXT_RENDER_MARGIN = _chunkH65IBXFIcjs.TEXT_RENDER_MARGIN; exports.TEXT_STYLE_FIELDS = _chunkH65IBXFIcjs.TEXT_STYLE_FIELDS; exports.TILE = _chunk474IQG74cjs.TILE; exports.TILE_SHIFT = _chunk474IQG74cjs.TILE_SHIFT; exports.TINT_SCALE = _chunkH65IBXFIcjs.TINT_SCALE; exports.TIP_GRADIENT_STEPS = _chunkPQ3H2AANcjs.TIP_GRADIENT_STEPS; exports.TONE_LUT_SIZE = _chunkH65IBXFIcjs.TONE_LUT_SIZE; exports.TONE_RANGES = _chunkYF3YZZ6Gcjs.TONE_RANGES; exports.TONE_RANGE_PRESETS = TONE_RANGE_PRESETS; exports.TRANSFORM_ANCHORS = _chunkH65IBXFIcjs.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 = _chunkUOGKSVRQcjs.TransformTooLargeError; exports.TransformedPixelSource = _chunkYF3YZZ6Gcjs.TransformedPixelSource; exports.TypeToolGesture = TypeToolGesture; exports.UNITS = _chunkL52VMQZScjs.UNITS; exports.U_MAX = _chunkKWNMBMKGcjs.U_MAX; exports.VIBRANCE_GREY = _chunkH65IBXFIcjs.VIBRANCE_GREY; exports.W9 = _chunkKWNMBMKGcjs.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 = _chunkKWNMBMKGcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkKWNMBMKGcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkKWNMBMKGcjs.WET_TILE; exports.WGSL_HALO = _chunkKWNMBMKGcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkKWNMBMKGcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkKWNMBMKGcjs.WGSL_STEP; exports.WORKING_SPACE_OPTIONS = WORKING_SPACE_OPTIONS; exports.WORK_PATH_NAME = WORK_PATH_NAME; exports.WORK_SIZE = _chunkL52VMQZScjs.WORK_SIZE; exports.WetGpuEngine = _chunkKWNMBMKGcjs.WetGpuEngine; exports.WetMedium = _chunkKWNMBMKGcjs.WetMedium; exports.WetWorkerPool = _chunkKWNMBMKGcjs.WetWorkerPool; exports.WetWorld = _chunkKWNMBMKGcjs.WetWorld; exports.WetWorldError = _chunkKWNMBMKGcjs.WetWorldError; exports.XYZ_D50_TO_SRGB = _chunkH65IBXFIcjs.XYZ_D50_TO_SRGB; exports.ZlibError = _chunkXFM3OCHUcjs.ZlibError; exports.activeAdjustmentLayers = _chunkH65IBXFIcjs.activeAdjustmentLayers; exports.activeEffectSmartFilters = _chunkH65IBXFIcjs.activeEffectSmartFilters; exports.activeLayerAfterRemoval = _chunkH65IBXFIcjs.activeLayerAfterRemoval; exports.activeSmartFilters = _chunkH65IBXFIcjs.activeSmartFilters; exports.addLayerEffect = _chunkH65IBXFIcjs.addLayerEffect; exports.addLayerFilter = _chunkH65IBXFIcjs.addLayerFilter; exports.addLayerOfKind = addLayerOfKind; exports.addPaintGradientStop = _chunkPQ3H2AANcjs.addPaintGradientStop; exports.addSmartFilter = _chunkH65IBXFIcjs.addSmartFilter; exports.addToHistogram = addToHistogram; exports.adjustmentKindLabel = _chunkH65IBXFIcjs.adjustmentKindLabel; exports.adjustmentLayersKey = _chunkH65IBXFIcjs.adjustmentLayersKey; exports.adjustmentNodeAsLayer = _chunkH65IBXFIcjs.adjustmentNodeAsLayer; exports.adjustmentNodeFromLegacy = _chunkH65IBXFIcjs.adjustmentNodeFromLegacy; exports.adler32 = _chunkXFM3OCHUcjs.adler32; exports.agentDragDraft = agentDragDraft; exports.anchorPoint = _chunkH65IBXFIcjs.anchorPoint; exports.annotationBlend = _chunkH65IBXFIcjs.annotationBlend; exports.annotationLayerFor = _chunkH65IBXFIcjs.annotationLayerFor; exports.annotationLayerName = _chunkH65IBXFIcjs.annotationLayerName; exports.annotationOfLayer = _chunkH65IBXFIcjs.annotationOfLayer; exports.annotationOfShape = _chunkH65IBXFIcjs.annotationOfShape; exports.annotationOfType = _chunkH65IBXFIcjs.annotationOfType; exports.applyAdjustmentLayers = _chunkH65IBXFIcjs.applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = _chunkH65IBXFIcjs.applyAdjustmentLayersFloat; exports.applyAdjustments = _chunkH65IBXFIcjs.applyAdjustments; exports.applyBoxBlur = _chunkH65IBXFIcjs.applyBoxBlur; exports.applyBoxBlurFloat = _chunkH65IBXFIcjs.applyBoxBlurFloat; exports.applyDepthMask = _chunkH65IBXFIcjs.applyDepthMask; exports.applyHomography = _chunkQT26RHKKcjs.applyHomography; exports.applyImageProjectionToContext = _chunkH65IBXFIcjs.applyImageProjectionToContext; exports.applyLegacyAdjustments = _chunkH65IBXFIcjs.applyLegacyAdjustments; exports.applyLegacyFloat = _chunkH65IBXFIcjs.applyLegacyFloat; exports.applyMatrix3 = _chunkH65IBXFIcjs.applyMatrix3; exports.applyOutputStage = applyOutputStage; exports.applyParams = _chunkH65IBXFIcjs.applyParams; exports.applyProcess2Adjustments = _chunkH65IBXFIcjs.applyProcess2Adjustments; exports.applyProcess2Float = _chunkH65IBXFIcjs.applyProcess2Float; exports.applyRefineEdits = _chunkL52VMQZScjs.applyRefineEdits; exports.applyRegionBlur = applyRegionBlur; exports.applyRegionMosaic = applyRegionMosaic; exports.applyRetouchToTile = _chunkYF3YZZ6Gcjs.applyRetouchToTile; exports.applyShapeOptions = applyShapeOptions; exports.applySmartFilters = _chunkH65IBXFIcjs.applySmartFilters; exports.applyStrokeToDeepTile = _chunkPQ3H2AANcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkPQ3H2AANcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkYF3YZZ6Gcjs.applyToneToDeepTile; exports.backgroundLayer = _chunkH65IBXFIcjs.backgroundLayer; exports.base64ToBytes = _chunkOLNIPTB3cjs.base64ToBytes; exports.baseProjection = baseProjection; exports.bestOffset = _chunkMQDIP4CFcjs.bestOffset; exports.blackWhiteGray = _chunkH65IBXFIcjs.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 = _chunkUOGKSVRQcjs.blendTile; exports.blenderDab = _chunkPQ3H2AANcjs.blenderDab; exports.blurFilter = _chunkH65IBXFIcjs.blurFilter; exports.borderCoverage = _chunkQYLWG22Ncjs.borderCoverage; exports.boxBlur = _chunkL52VMQZScjs.boxBlur; exports.boxBlurPixels = _chunkYF3YZZ6Gcjs.boxBlurPixels; exports.boxFrameHit = boxFrameHit; exports.boxFrameOverlay = boxFrameOverlay; exports.boxMean = _chunkL52VMQZScjs.boxMean; exports.boxPointOf = _chunkH65IBXFIcjs.boxPointOf; exports.boxQuad = _chunkQT26RHKKcjs.boxQuad; exports.boxToCurvePoint = boxToCurvePoint; exports.bradfordAdaptation = _chunkH65IBXFIcjs.bradfordAdaptation; exports.brushStrokeMask = _chunkL52VMQZScjs.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 = _chunkH65IBXFIcjs.buildLayerMaskPlanes; exports.buildToneLut = _chunkH65IBXFIcjs.buildToneLut; exports.builtinPattern = _chunkUOGKSVRQcjs.builtinPattern; exports.builtinPatternIds = _chunkUOGKSVRQcjs.builtinPatternIds; exports.bytesToBase64 = _chunkOLNIPTB3cjs.bytesToBase64; exports.calculateCropDrag = _chunkH65IBXFIcjs.calculateCropDrag; exports.canShareMemory = _chunkKWNMBMKGcjs.canShareMemory; exports.canvasCompositeOperation = _chunkOLNIPTB3cjs.canvasCompositeOperation; exports.canvasToImagePoint = _chunkH65IBXFIcjs.canvasToImagePoint; exports.caretAt = _chunkQAUIZPYIcjs.caretAt; exports.changedTiles = _chunkUOGKSVRQcjs.changedTiles; exports.channelThumbnail = channelThumbnail; exports.checkEffectAnimation = checkEffectAnimation; exports.checkEffectTime = checkEffectTime; exports.checkImageEffectPlace = checkImageEffectPlace; exports.clampControlValue = clampControlValue; exports.clampCropToImage = _chunkH65IBXFIcjs.clampCropToImage; exports.cleanMixer = _chunkPQ3H2AANcjs.cleanMixer; exports.cloneSamplePoint = _chunkYF3YZZ6Gcjs.cloneSamplePoint; exports.cloneSourceLabel = cloneSourceLabel; exports.cloneTransformView = cloneTransformView; exports.collectTiles = _chunk474IQG74cjs.collectTiles; exports.colorBalanceChannel = _chunkH65IBXFIcjs.colorBalanceChannel; exports.colorModePlanes = colorModePlanes; exports.colorModePlanes16 = colorModePlanes16; exports.colorPanelView = colorPanelView; exports.colorRange = colorRange; exports.colorRangePreset = colorRangePreset; exports.combineSelections = _chunkQYLWG22Ncjs.combineSelections; exports.compileAdjustmentLayer = _chunkH65IBXFIcjs.compileAdjustmentLayer; exports.componentPath = _chunkH65IBXFIcjs.componentPath; exports.componentsCoverage = _chunkH65IBXFIcjs.componentsCoverage; exports.compositeDeep = _chunkH65IBXFIcjs.compositeDeep; exports.compositeSurfaceOver = _chunkUOGKSVRQcjs.compositeSurfaceOver; exports.computeHistogram = computeHistogram; exports.computeSelectionBounds = _chunkQYLWG22Ncjs.computeSelectionBounds; exports.contentAwareFill = _chunkMQDIP4CFcjs.contentAwareFill; exports.contentBounds = _chunk474IQG74cjs.contentBounds; exports.contentsBox = _chunkH65IBXFIcjs.contentsBox; exports.contentsSurface = _chunkH65IBXFIcjs.contentsSurface; exports.contractCoverage = _chunkQYLWG22Ncjs.contractCoverage; exports.controlPosition = controlPosition; exports.controlTrackBackground = controlTrackBackground; exports.convertColorFields = convertColorFields; exports.convertHex = convertHex; exports.convertSurfaceColors = convertSurfaceColors; exports.convertSurfaceDepth = _chunkOLNIPTB3cjs.convertSurfaceDepth; exports.convertToSmartObject = _chunkH65IBXFIcjs.convertToSmartObject; exports.copySmartObject = _chunkH65IBXFIcjs.copySmartObject; exports.cornersFromMatrix = _chunkH65IBXFIcjs.cornersFromMatrix; exports.coverageTileCoord = _chunkPQ3H2AANcjs.coverageTileCoord; exports.coverageToByte = _chunkQYLWG22Ncjs.coverageToByte; exports.coveringRect = coveringRect; exports.createAdjustmentLayer = _chunkH65IBXFIcjs.createAdjustmentLayer; exports.createBlenderScratch = _chunkPQ3H2AANcjs.createBlenderScratch; exports.createCanvasTextShaper = _chunkQAUIZPYIcjs.createCanvasTextShaper; 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 = _chunkKWNMBMKGcjs.createPigmentTools; exports.createSelectionMask = _chunkQYLWG22Ncjs.createSelectionMask; exports.createShapeLayer = _chunkH65IBXFIcjs.createShapeLayer; exports.createTypeLayer = _chunkH65IBXFIcjs.createTypeLayer; exports.createWetGpuEngine = _chunkKWNMBMKGcjs.createWetGpuEngine; exports.cssFont = _chunkQAUIZPYIcjs.cssFont; exports.cssFontFamily = _chunkQAUIZPYIcjs.cssFontFamily; exports.curveLut = _chunkUOGKSVRQcjs.curveLut; exports.curveLutFromLevels = _chunkH65IBXFIcjs.curveLutFromLevels; exports.curvePointToBox = curvePointToBox; exports.curveSvgPath = curveSvgPath; exports.dabCoverage = _chunkPQ3H2AANcjs.dabCoverage; exports.dabRect = _chunkPQ3H2AANcjs.dabRect; exports.decodeDeepSurface = _chunkH65IBXFIcjs.decodeDeepSurface; exports.decodeLayerChannel = _chunkH65IBXFIcjs.decodeLayerChannel; exports.decodeLayerMask = _chunkH65IBXFIcjs.decodeLayerMask; exports.decodeMergedImage = _chunkH65IBXFIcjs.decodeMergedImage; exports.decodePlanes = _chunkH65IBXFIcjs.decodePlanes; exports.decodePng = _chunkOLNIPTB3cjs.decodePng; exports.decodePngDataUrl = _chunkH65IBXFIcjs.decodePngDataUrl; exports.decodeSelectionRle = _chunkQYLWG22Ncjs.decodeSelectionRle; exports.decontaminateColors = _chunkL52VMQZScjs.decontaminateColors; exports.deepBytes = _chunkOLNIPTB3cjs.deepBytes; exports.deepTile = _chunkOLNIPTB3cjs.deepTile; exports.defaultActiveLayerId = _chunkH65IBXFIcjs.defaultActiveLayerId; exports.defaultAdjustmentParams = _chunkH65IBXFIcjs.defaultAdjustmentParams; exports.defaultEffectGradient = _chunkUOGKSVRQcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkUOGKSVRQcjs.defaultLayerEffect; exports.defaultShapeName = _chunkH65IBXFIcjs.defaultShapeName; exports.deflate = _chunkXFM3OCHUcjs.deflate; exports.deflateRaw = _chunkXFM3OCHUcjs.deflateRaw; exports.depthMaskAlpha = _chunkH65IBXFIcjs.depthMaskAlpha; exports.depthOf = _chunkOLNIPTB3cjs.depthOf; exports.depthRasterMask = _chunkH65IBXFIcjs.depthRasterMask; exports.describeChannel = describeChannel; exports.describeLayer = describeLayer; exports.describeLayerEffects = describeLayerEffects; exports.describeSelection = describeSelection; exports.describeTransform = _chunkH65IBXFIcjs.describeTransform; exports.deserializeChannels = deserializeChannels; exports.deserializeColorMode = deserializeColorMode; exports.deserializeColorProfile = deserializeColorProfile; exports.deserializeEffects = _chunkH65IBXFIcjs.deserializeEffects; exports.deserializeLayer = _chunkH65IBXFIcjs.deserializeLayer; exports.deserializeLayers = _chunkH65IBXFIcjs.deserializeLayers; exports.deserializeMask = _chunkL52VMQZScjs.deserializeMask; exports.deserializePatterns = _chunkH65IBXFIcjs.deserializePatterns; exports.deserializeSelection = _chunkQYLWG22Ncjs.deserializeSelection; exports.developFilter = _chunkH65IBXFIcjs.developFilter; exports.developFromAdjustments = _chunkH65IBXFIcjs.developFromAdjustments; exports.developTarget = _chunkH65IBXFIcjs.developTarget; exports.dexp = _chunkKWNMBMKGcjs.dexp; exports.dilateMask = _chunkMQDIP4CFcjs.dilateMask; exports.displayTransform = displayTransform; exports.distanceTransform = _chunkQYLWG22Ncjs.distanceTransform; exports.dlog = _chunkKWNMBMKGcjs.dlog; exports.documentContents = _chunkH65IBXFIcjs.documentContents; exports.documentProfile = documentProfile; exports.dodgeBurn = _chunkYF3YZZ6Gcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkYF3YZZ6Gcjs.dodgeBurnCurve; exports.downloadMaskImage = downloadMaskImage; exports.downloadPsd = downloadPsd; exports.dpow = _chunkKWNMBMKGcjs.dpow; exports.dragWarpMeshPoint = _chunkQAUIZPYIcjs.dragWarpMeshPoint; exports.dropPlacement = dropPlacement; exports.dropZone = dropZone; exports.dsincos = _chunkKWNMBMKGcjs.dsincos; exports.duplicateLayer = _chunkH65IBXFIcjs.duplicateLayer; exports.edgeBits = _chunkKWNMBMKGcjs.edgeBits; exports.edgeWidth = _chunkL52VMQZScjs.edgeWidth; exports.effectColorHex = _chunkUOGKSVRQcjs.effectColorHex; exports.effectControlChange = effectControlChange; exports.effectLayerTiming = effectLayerTiming; exports.effectPixelsToSurface = effectPixelsToSurface; exports.effectReach = _chunkUOGKSVRQcjs.effectReach; exports.effectiveLayerMask = _chunkH65IBXFIcjs.effectiveLayerMask; exports.effectiveProof = effectiveProof; exports.effectsFingerprint = _chunkUOGKSVRQcjs.effectsFingerprint; exports.effectsMargin = _chunkUOGKSVRQcjs.effectsMargin; exports.effectsScale = _chunkUOGKSVRQcjs.effectsScale; exports.ellipsePoints = _chunkL52VMQZScjs.ellipsePoints; exports.ellipseSelection = _chunkL52VMQZScjs.ellipseSelection; exports.emptyHistogram = emptyHistogram; exports.emptySurface = _chunk474IQG74cjs.emptySurface; exports.encodeDeepSurface = _chunkH65IBXFIcjs.encodeDeepSurface; exports.encodePng = _chunkOLNIPTB3cjs.encodePng; exports.encodeRle = _chunkH65IBXFIcjs.encodeRle; exports.encodeSelectionRle = _chunkQYLWG22Ncjs.encodeSelectionRle; exports.encodeSurface = _chunkH65IBXFIcjs.encodeSurface; exports.evalWarpMesh = _chunkQAUIZPYIcjs.evalWarpMesh; exports.evaluateAdjustmentLayers = _chunkH65IBXFIcjs.evaluateAdjustmentLayers; exports.exchangeRates = _chunkPQ3H2AANcjs.exchangeRates; exports.expNeg = _chunkKWNMBMKGcjs.expNeg; exports.expandCoverage = _chunkQYLWG22Ncjs.expandCoverage; exports.exportPsd = _chunkH65IBXFIcjs.exportPsd; exports.extractNormalizedLayerItems = extractNormalizedLayerItems; exports.featherCoverage = _chunkQYLWG22Ncjs.featherCoverage; exports.fillRect = _chunk474IQG74cjs.fillRect; exports.filmPixel = _chunkKWNMBMKGcjs.filmPixel; exports.filmReflectance = _chunkKWNMBMKGcjs.filmReflectance; exports.filterMaskCoverage = _chunkH65IBXFIcjs.filterMaskCoverage; exports.findAdjustmentControl = findAdjustmentControl; exports.findLayer = _chunkUOGKSVRQcjs.findLayer; exports.findLayerControl = findLayerControl; exports.findSky = _chunkL52VMQZScjs.findSky; exports.findSubject = _chunkL52VMQZScjs.findSubject; exports.findWebGpu = _chunkKWNMBMKGcjs.findWebGpu; exports.finishTile = _chunk474IQG74cjs.finishTile; exports.fitParagraphRuns = _chunkQAUIZPYIcjs.fitParagraphRuns; exports.fitRuns = _chunkQAUIZPYIcjs.fitRuns; exports.flattenLayers = _chunkUOGKSVRQcjs.flattenLayers; exports.flattenPath = _chunkH65IBXFIcjs.flattenPath; exports.flipCorners = _chunkH65IBXFIcjs.flipCorners; exports.flowField = _chunkKWNMBMKGcjs.flowField; exports.focusArea = _chunkL52VMQZScjs.focusArea; exports.followLayerMove = _chunkH65IBXFIcjs.followLayerMove; exports.fontOf = _chunkQAUIZPYIcjs.fontOf; exports.forgetSelectAndMaskSettings = forgetSelectAndMaskSettings; exports.formatControlValue = formatControlValue; exports.fullSelection = _chunkQYLWG22Ncjs.fullSelection; exports.gaussianBlur = _chunkK6PXS6DOcjs.gaussianBlur; exports.geometryHomography = _chunkH65IBXFIcjs.geometryHomography; exports.getAnnotationBounds = _chunkH65IBXFIcjs.getAnnotationBounds; exports.getControlPath = getControlPath; exports.getCropCursor = _chunkH65IBXFIcjs.getCropCursor; exports.getRotatedSize = _chunkH65IBXFIcjs.getRotatedSize; exports.getViewportMetrics = _chunkH65IBXFIcjs.getViewportMetrics; exports.getViewportProjection = _chunkH65IBXFIcjs.getViewportProjection; exports.globalImageCache = globalImageCache; exports.grabCutLabels = _chunkL52VMQZScjs.grabCutLabels; exports.gradientDabColor = _chunkPQ3H2AANcjs.gradientDabColor; exports.grainCatch = _chunkPQ3H2AANcjs.grainCatch; exports.grainHeights = _chunkPQ3H2AANcjs.grainHeights; exports.greyMorphology = _chunkQYLWG22Ncjs.greyMorphology; exports.groupLayers = _chunkH65IBXFIcjs.groupLayers; exports.growSelection = growSelection; exports.guidePlanes = _chunkL52VMQZScjs.guidePlanes; exports.guidedFilterColor = _chunkL52VMQZScjs.guidedFilterColor; exports.handleMaskViewKey = handleMaskViewKey; exports.handlePaintShortcut = handlePaintShortcut; exports.handleQuickMaskKey = handleQuickMaskKey; exports.handleSelectionShortcut = handleSelectionShortcut; exports.hasActiveEffects = _chunkUOGKSVRQcjs.hasActiveEffects; exports.hasLayersBelow = hasLayersBelow; exports.hasResampledLegacyMask = _chunkH65IBXFIcjs.hasResampledLegacyMask; exports.hasSurface = _chunkH65IBXFIcjs.hasSurface; exports.hasWarp = _chunkH65IBXFIcjs.hasWarp; exports.hash2 = _chunkPQ3H2AANcjs.hash2; exports.hashMaskContent = _chunkQYLWG22Ncjs.hashMaskContent; exports.hashNoise = _chunkUOGKSVRQcjs.hashNoise; exports.healPixels = _chunkYF3YZZ6Gcjs.healPixels; exports.hexToPaintRgb = _chunkPQ3H2AANcjs.hexToPaintRgb; exports.hexToRgb = _chunkH65IBXFIcjs.hexToRgb; exports.histogramPath = histogramPath; exports.hitTestAnnotation = _chunkH65IBXFIcjs.hitTestAnnotation; exports.hitTestCrop = _chunkH65IBXFIcjs.hitTestCrop; exports.hitTestCurvePoint = hitTestCurvePoint; exports.homographyFromAffine = _chunkQT26RHKKcjs.homographyFromAffine; exports.homographyFromPoints = _chunkQT26RHKKcjs.homographyFromPoints; exports.hslToRgb = _chunkH65IBXFIcjs.hslToRgb; exports.hueRange = hueRange; exports.hueRangeTables = _chunkH65IBXFIcjs.hueRangeTables; exports.hueRangeWeight = _chunkH65IBXFIcjs.hueRangeWeight; exports.hueSaturation = _chunkH65IBXFIcjs.hueSaturation; exports.identityCurve = _chunkH65IBXFIcjs.identityCurve; exports.identityLevels = _chunkH65IBXFIcjs.identityLevels; exports.identityTransform = _chunkH65IBXFIcjs.identityTransform; exports.identityWarpMesh = _chunkQAUIZPYIcjs.identityWarpMesh; exports.imageEditorStateMigrations = imageEditorStateMigrations; exports.imageLayerAppliedEffects = imageLayerAppliedEffects; exports.imagePanelTool = imagePanelTool; exports.imagePlaybackPanel = imagePlaybackPanel; exports.imageToCanvasPoint = _chunkH65IBXFIcjs.imageToCanvasPoint; exports.imageToolCanvasMode = imageToolCanvasMode; exports.imageToolForShortcut = imageToolForShortcut; exports.imageToolGroup = imageToolGroup; exports.imageToolLabel = imageToolLabel; exports.imageToolPanel = imageToolPanel; exports.importPsd = _chunkH65IBXFIcjs.importPsd; exports.inflate = _chunkXFM3OCHUcjs.inflate; exports.inflateRaw = _chunkXFM3OCHUcjs.inflateRaw; exports.insertCurvePoint = insertCurvePoint; exports.insertLayer = _chunkUOGKSVRQcjs.insertLayer; exports.inspectMaskEdge = inspectMaskEdge; exports.instancesOf = _chunkH65IBXFIcjs.instancesOf; exports.invertHomography = _chunkQT26RHKKcjs.invertHomography; exports.invertMatrix3 = _chunkH65IBXFIcjs.invertMatrix3; exports.invertSelection = _chunkQYLWG22Ncjs.invertSelection; exports.isActiveFilter = _chunkH65IBXFIcjs.isActiveFilter; exports.isActiveVectorMask = _chunkH65IBXFIcjs.isActiveVectorMask; exports.isAdjustmentKind = _chunkH65IBXFIcjs.isAdjustmentKind; exports.isBitDepth = _chunkOLNIPTB3cjs.isBitDepth; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isBrushstrokeBrush = _chunkPQ3H2AANcjs.isBrushstrokeBrush; exports.isColorRangePreset = isColorRangePreset; exports.isContentsDecoded = _chunkH65IBXFIcjs.isContentsDecoded; exports.isDefaultDepthMask = _chunkH65IBXFIcjs.isDefaultDepthMask; exports.isGradientPaint = _chunkPQ3H2AANcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkYF3YZZ6Gcjs.isIdentityCloneTransform; exports.isIdentityTransform = _chunkH65IBXFIcjs.isIdentityTransform; exports.isInterpolation = _chunkUOGKSVRQcjs.isInterpolation; exports.isLayerEffectKind = _chunkUOGKSVRQcjs.isLayerEffectKind; exports.isLayerLocked = _chunkUOGKSVRQcjs.isLayerLocked; exports.isLegacyShape = _chunkH65IBXFIcjs.isLegacyShape; exports.isPaintTool = isPaintTool; exports.isPaintableLayer = _chunkH65IBXFIcjs.isPaintableLayer; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPathEditTool = isPathEditTool; exports.isPng = _chunkOLNIPTB3cjs.isPng; exports.isQuarterTurn = isQuarterTurn; exports.isQuarterTurnSwapped = _chunkH65IBXFIcjs.isQuarterTurnSwapped; exports.isRenderedLayer = _chunkH65IBXFIcjs.isRenderedLayer; exports.isRetouchPaintTool = isRetouchPaintTool; exports.isRetouchTool = isRetouchTool; exports.isSelectionEmpty = _chunkQYLWG22Ncjs.isSelectionEmpty; exports.isSelectionMode = _chunkQYLWG22Ncjs.isSelectionMode; exports.isSeparableBlendMode = _chunkOLNIPTB3cjs.isSeparableBlendMode; exports.isSmartSurfaceIncomplete = _chunkH65IBXFIcjs.isSmartSurfaceIncomplete; exports.isSpatialFilter = _chunkH65IBXFIcjs.isSpatialFilter; exports.isSrgb = isSrgb; exports.isTransformAnchor = _chunkH65IBXFIcjs.isTransformAnchor; exports.isValidWarp = _chunkH65IBXFIcjs.isValidWarp; exports.keepDeepSamples = _chunkOLNIPTB3cjs.keepDeepSamples; exports.keepMainPieces = _chunkL52VMQZScjs.keepMainPieces; exports.kelvinToTemperature = _chunkH65IBXFIcjs.kelvinToTemperature; exports.keysWeight = _chunkUOGKSVRQcjs.keysWeight; exports.latticeViscosity = _chunkKWNMBMKGcjs.latticeViscosity; exports.layerBadge = layerBadge; exports.layerEffectControls = layerEffectControls; exports.layerEffectFields = _chunkUOGKSVRQcjs.layerEffectFields; exports.layerEffectLabel = _chunkUOGKSVRQcjs.layerEffectLabel; exports.layerEffectsBadge = layerEffectsBadge; exports.layerEffectsOf = _chunkH65IBXFIcjs.layerEffectsOf; exports.layerEffectsPanel = layerEffectsPanel; exports.layerHasThumbnail = layerHasThumbnail; exports.layerLabel = layerLabel; exports.layerMaskCoverage = _chunkH65IBXFIcjs.layerMaskCoverage; exports.layerMaskFromSelection = _chunkH65IBXFIcjs.layerMaskFromSelection; exports.layerMaskKey = _chunkH65IBXFIcjs.layerMaskKey; exports.layerMaskSelection = _chunkH65IBXFIcjs.layerMaskSelection; exports.layerMenu = layerMenu; exports.layerName = _chunkH65IBXFIcjs.layerName; exports.layerPanelRows = layerPanelRows; exports.layerPanels = layerPanels; exports.layerThumbnailClick = layerThumbnailClick; exports.layerTree = _chunkH65IBXFIcjs.layerTree; exports.layerTypeLabel = _chunkH65IBXFIcjs.layerTypeLabel; exports.layerWarning = layerWarning; exports.layersFromLegacy = _chunkH65IBXFIcjs.layersFromLegacy; exports.layoutText = _chunkQAUIZPYIcjs.layoutText; exports.legacyAdjustmentLayer = _chunkH65IBXFIcjs.legacyAdjustmentLayer; exports.legacyMaskOf = _chunkH65IBXFIcjs.legacyMaskOf; exports.legacyView = _chunkH65IBXFIcjs.legacyView; exports.lerpPigment = _chunkOLNIPTB3cjs.lerpPigment; exports.lerpPigmentInto = _chunkOLNIPTB3cjs.lerpPigmentInto; exports.levelsValue = _chunkH65IBXFIcjs.levelsValue; exports.linearSrgbToXy = _chunkH65IBXFIcjs.linearSrgbToXy; exports.linearToSrgb = _chunkH65IBXFIcjs.linearToSrgb; exports.linearToSrgb8 = _chunkKWNMBMKGcjs.linearToSrgb8; exports.liveComponent = _chunkH65IBXFIcjs.liveComponent; exports.liveShapeForDrag = liveShapeForDrag; exports.liveShapeSubpaths = _chunkH65IBXFIcjs.liveShapeSubpaths; exports.liveWire = liveWire; exports.loadImageEditorDocument = loadImageEditorDocument; exports.loadMixer = _chunkPQ3H2AANcjs.loadMixer; exports.loadOpenTypeFont = _chunkLCCMOWR7cjs.loadOpenTypeFont; exports.loadWetKernel = _chunkKWNMBMKGcjs.loadWetKernel; exports.luma = _chunkYF3YZZ6Gcjs.luma; exports.magicWand = magicWand; exports.magneticAnchorSpacing = magneticAnchorSpacing; exports.mapCropHandle = _chunkH65IBXFIcjs.mapCropHandle; exports.mapLayer = _chunkUOGKSVRQcjs.mapLayer; exports.mapSubpaths = _chunkH65IBXFIcjs.mapSubpaths; exports.maskBounds = _chunkMQDIP4CFcjs.maskBounds; exports.maskFileName = maskFileName; exports.maskNameFromFile = maskNameFromFile; exports.maskSummary = maskSummary; exports.maskThumbnailClick = maskThumbnailClick; exports.matrixFromCorners = _chunkH65IBXFIcjs.matrixFromCorners; exports.matrixFromParams = _chunkH65IBXFIcjs.matrixFromParams; exports.measureCanvasViewport = measureCanvasViewport; exports.membraneFill = _chunkMQDIP4CFcjs.membraneFill; exports.mergeLayerEffect = _chunkUOGKSVRQcjs.mergeLayerEffect; exports.mergeShapeComponents = _chunkH65IBXFIcjs.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 = _chunkQYLWG22Ncjs.modifySelection; exports.moveCurvePoint = moveCurvePoint; exports.moveLayer = _chunkH65IBXFIcjs.moveLayer; exports.moveSmartFilter = _chunkH65IBXFIcjs.moveSmartFilter; exports.mulMatrix3 = _chunkH65IBXFIcjs.mulMatrix3; exports.needsLegacyBase = needsLegacyBase; exports.neutralHueRange = _chunkH65IBXFIcjs.neutralHueRange; exports.newContentsId = _chunkH65IBXFIcjs.newContentsId; exports.newEffectId = _chunkUOGKSVRQcjs.newEffectId; exports.newLayerId = _chunkH65IBXFIcjs.newLayerId; exports.newLayerOptions = newLayerOptions; exports.newPathId = newPathId; exports.normalizeAdjustmentLayer = _chunkH65IBXFIcjs.normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = _chunkH65IBXFIcjs.normalizeAdjustmentLayers; exports.normalizeAngle = _chunkH65IBXFIcjs.normalizeAngle; exports.normalizeBlendMode = _chunkOLNIPTB3cjs.normalizeBlendMode; exports.normalizeBlender = _chunkPQ3H2AANcjs.normalizeBlender; exports.normalizeBrush = _chunkPQ3H2AANcjs.normalizeBrush; exports.normalizeFilter = _chunkH65IBXFIcjs.normalizeFilter; exports.normalizeFlow = _chunkKWNMBMKGcjs.normalizeFlow; exports.normalizeHexColor = _chunkPQ3H2AANcjs.normalizeHexColor; exports.normalizeLayerEffects = _chunkUOGKSVRQcjs.normalizeLayerEffects; exports.normalizeLayerMask = _chunkH65IBXFIcjs.normalizeLayerMask; exports.normalizeLiveShape = _chunkH65IBXFIcjs.normalizeLiveShape; exports.normalizeMixer = _chunkPQ3H2AANcjs.normalizeMixer; exports.normalizePlacement = _chunkH65IBXFIcjs.normalizePlacement; exports.normalizeProcessVersion = _chunkH65IBXFIcjs.normalizeProcessVersion; exports.normalizeRect = _chunkL52VMQZScjs.normalizeRect; exports.normalizeRefineEdgeParams = _chunkL52VMQZScjs.normalizeRefineEdgeParams; exports.normalizeRetouch = _chunkYF3YZZ6Gcjs.normalizeRetouch; exports.normalizeShapePaint = _chunkH65IBXFIcjs.normalizeShapePaint; exports.normalizeShapeStroke = _chunkH65IBXFIcjs.normalizeShapeStroke; exports.normalizeSmartFilter = _chunkH65IBXFIcjs.normalizeSmartFilter; exports.normalizeSmudge = _chunkPQ3H2AANcjs.normalizeSmudge; exports.normalizeStoredAdjustments = normalizeStoredAdjustments; exports.normalizeSubpaths = _chunkH65IBXFIcjs.normalizeSubpaths; exports.normalizeText = _chunkH65IBXFIcjs.normalizeText; exports.normalizeTilt = _chunkKWNMBMKGcjs.normalizeTilt; exports.normalizeWetParams = _chunkKWNMBMKGcjs.normalizeWetParams; exports.offsetLayer = _chunkH65IBXFIcjs.offsetLayer; exports.offsetShape = _chunkH65IBXFIcjs.offsetShape; exports.offsetSmartObject = _chunkH65IBXFIcjs.offsetSmartObject; exports.offsetVectorMask = _chunkH65IBXFIcjs.offsetVectorMask; exports.openMaskFile = openMaskFile; exports.openPsdFile = openPsdFile; exports.otsuThreshold = _chunkL52VMQZScjs.otsuThreshold; exports.packRgba = _chunk474IQG74cjs.packRgba; exports.packWetParams = _chunkKWNMBMKGcjs.packWetParams; exports.paintGradientMappingFor = _chunkPQ3H2AANcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPQ3H2AANcjs.paintPathStroke; exports.paintSourceColor = _chunkPQ3H2AANcjs.paintSourceColor; exports.paintSourceCss = _chunkPQ3H2AANcjs.paintSourceCss; exports.paragraphRanges = _chunkQAUIZPYIcjs.paragraphRanges; exports.parseAdjustmentBlock = _chunkH65IBXFIcjs.parseAdjustmentBlock; exports.parseBlend = _chunkH65IBXFIcjs.parseBlend; exports.parseColor = parseColor; exports.parseCssColor = _chunkA2IS7EHEcjs.parseCssColor; exports.parseDataUrl = _chunkOLNIPTB3cjs.parseDataUrl; exports.parseEffectColor = _chunkUOGKSVRQcjs.parseEffectColor; exports.parseLfx2 = _chunkH65IBXFIcjs.parseLfx2; exports.parseLrfx = _chunkH65IBXFIcjs.parseLrfx; exports.parseOpenTypeFont = _chunkLCCMOWR7cjs.parseOpenTypeFont; exports.parsePaintSource = _chunkPQ3H2AANcjs.parsePaintSource; exports.parsePatternBlock = _chunkH65IBXFIcjs.parsePatternBlock; exports.parseSelectionMode = _chunkQYLWG22Ncjs.parseSelectionMode; exports.parseVersionedDescriptor = _chunkH65IBXFIcjs.parseVersionedDescriptor; exports.patchParagraphStyle = _chunkH65IBXFIcjs.patchParagraphStyle; exports.patchTextStyle = _chunkH65IBXFIcjs.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 = _chunkH65IBXFIcjs.photoFilterMatrix; exports.pigment8 = _chunkOLNIPTB3cjs.pigment8; exports.pigmentColor = _chunkKWNMBMKGcjs.pigmentColor; exports.pigmentOf = _chunkKWNMBMKGcjs.pigmentOf; exports.pixelLayerBounds = _chunkH65IBXFIcjs.pixelLayerBounds; exports.pixelLayers = _chunkH65IBXFIcjs.pixelLayers; exports.pixelPigment = _chunkKWNMBMKGcjs.pixelPigment; exports.placeContents = _chunkH65IBXFIcjs.placeContents; exports.placeLayer = _chunkH65IBXFIcjs.placeLayer; exports.placementAt = _chunkH65IBXFIcjs.placementAt; exports.placementBounds = _chunkH65IBXFIcjs.placementBounds; exports.placementGeometry = _chunkH65IBXFIcjs.placementGeometry; exports.planImageToolPlayback = planImageToolPlayback; exports.planOutlineTrace = planOutlineTrace; exports.pngDataUrl = _chunkOLNIPTB3cjs.pngDataUrl; exports.pointerPressure = _chunkKWNMBMKGcjs.pointerPressure; exports.pointerStrokeSample = _chunkKWNMBMKGcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkKWNMBMKGcjs.pointerStrokeSamples; exports.polygonCoverage = _chunkL52VMQZScjs.polygonCoverage; exports.polygonCoverageBox = _chunkL52VMQZScjs.polygonCoverageBox; exports.polygonSelection = _chunkL52VMQZScjs.polygonSelection; exports.posterizeValue = _chunkH65IBXFIcjs.posterizeValue; exports.presetWarp = _chunkH65IBXFIcjs.presetWarp; exports.previewStep = previewStep; exports.profileBytes = profileBytes; exports.projectImagePoint = _chunkH65IBXFIcjs.projectImagePoint; exports.projectImageRect = _chunkH65IBXFIcjs.projectImageRect; exports.projectMaskCoverage = _chunkH65IBXFIcjs.projectMaskCoverage; exports.projectQuarterTurn = projectQuarterTurn; exports.proxyOf = _chunkOLNIPTB3cjs.proxyOf; exports.psdBytesFromBase64 = psdBytesFromBase64; exports.psdFileName = psdFileName; exports.psdPatternToEffectPattern = _chunkH65IBXFIcjs.psdPatternToEffectPattern; exports.psdToLayers = _chunkH65IBXFIcjs.psdToLayers; exports.pullWarpMesh = _chunkQAUIZPYIcjs.pullWarpMesh; exports.put255 = _chunkPQ3H2AANcjs.put255; exports.quadFrameOverlay = quadFrameOverlay; exports.quickMaskPixels = quickMaskPixels; exports.quickSelectStroke = _chunkL52VMQZScjs.quickSelectStroke; exports.rand01 = _chunkPQ3H2AANcjs.rand01; exports.randSigned = _chunkPQ3H2AANcjs.randSigned; exports.rangeLightness = _chunkH65IBXFIcjs.rangeLightness; exports.rasterContents = _chunkH65IBXFIcjs.rasterContents; exports.rasterMaskFromLegacy = _chunkH65IBXFIcjs.rasterMaskFromLegacy; exports.rasterizeCoverage = _chunkH65IBXFIcjs.rasterizeCoverage; exports.rasterizeDab = _chunkPQ3H2AANcjs.rasterizeDab; exports.rasterizeSmartObject = _chunkH65IBXFIcjs.rasterizeSmartObject; exports.readAdjustmentControls = readAdjustmentControls; exports.readDeepRegion = _chunkOLNIPTB3cjs.readDeepRegion; exports.readPaintSource = _chunkPQ3H2AANcjs.readPaintSource; exports.readPaths = readPaths; exports.readPixel = _chunk474IQG74cjs.readPixel; exports.readPsd = _chunkH65IBXFIcjs.readPsd; exports.readRegion = _chunk474IQG74cjs.readRegion; exports.readShapeComponents = _chunkH65IBXFIcjs.readShapeComponents; exports.readSourceRegion = _chunkYF3YZZ6Gcjs.readSourceRegion; exports.rectSelection = _chunkL52VMQZScjs.rectSelection; exports.rectToQuad = _chunkQT26RHKKcjs.rectToQuad; exports.reduceSurface = _chunkUOGKSVRQcjs.reduceSurface; exports.referencePoint = _chunkH65IBXFIcjs.referencePoint; exports.refineCoverage = _chunkL52VMQZScjs.refineCoverage; exports.refineEdgeHalo = _chunkL52VMQZScjs.refineEdgeHalo; exports.refineSelection = _chunkL52VMQZScjs.refineSelection; exports.reflectanceToRgb = _chunkOLNIPTB3cjs.reflectanceToRgb; exports.removeAlpha = _chunkH65IBXFIcjs.removeAlpha; exports.removeCurvePoint = removeCurvePoint; exports.removeLayer = _chunkH65IBXFIcjs.removeLayer; exports.removeLayerEffect = _chunkH65IBXFIcjs.removeLayerEffect; exports.removeLayerFilter = _chunkH65IBXFIcjs.removeLayerFilter; exports.removePaintGradientStop = _chunkPQ3H2AANcjs.removePaintGradientStop; exports.removeSmartFilter = _chunkH65IBXFIcjs.removeSmartFilter; exports.renderBrushstroke = _chunkPQ3H2AANcjs.renderBrushstroke; exports.renderLayerEffects = _chunkUOGKSVRQcjs.renderLayerEffects; exports.renderLayeredBase = renderLayeredBase; exports.renderShape = _chunkH65IBXFIcjs.renderShape; exports.renderShapeRect = _chunkH65IBXFIcjs.renderShapeRect; exports.renderSmartObject = _chunkH65IBXFIcjs.renderSmartObject; exports.renderText = _chunkH65IBXFIcjs.renderText; exports.replaceContents = _chunkH65IBXFIcjs.replaceContents; exports.replaceTextRange = _chunkH65IBXFIcjs.replaceTextRange; exports.requireLayer = _chunkH65IBXFIcjs.requireLayer; exports.requireOperation = _chunkH65IBXFIcjs.requireOperation; exports.requireShapeLayer = _chunkH65IBXFIcjs.requireShapeLayer; exports.requireSmartObject = _chunkH65IBXFIcjs.requireSmartObject; exports.requireTypeLayer = _chunkH65IBXFIcjs.requireTypeLayer; exports.requireUnlocked = _chunkH65IBXFIcjs.requireUnlocked; exports.rerender = _chunkH65IBXFIcjs.rerender; exports.rerenderShape = _chunkH65IBXFIcjs.rerenderShape; exports.rerenderText = _chunkH65IBXFIcjs.rerenderText; exports.resizePixels = resizePixels; exports.resizeSelection = _chunkQYLWG22Ncjs.resizeSelection; exports.resizeWarpMesh = _chunkQAUIZPYIcjs.resizeWarpMesh; exports.resolveExternalAssets = _chunkH65IBXFIcjs.resolveExternalAssets; exports.resolveMosaicRegionBounds = resolveMosaicRegionBounds; exports.resolvePaintGradient = _chunkPQ3H2AANcjs.resolvePaintGradient; exports.resolveProfile = resolveProfile; exports.resolveVectorMasks = _chunkH65IBXFIcjs.resolveVectorMasks; exports.restyleRange = _chunkQAUIZPYIcjs.restyleRange; exports.retouchFilter = _chunkYF3YZZ6Gcjs.retouchFilter; exports.reversePaintGradient = _chunkPQ3H2AANcjs.reversePaintGradient; exports.rgbToGray = _chunkH65IBXFIcjs.rgbToGray; exports.rgbToHsl = _chunkH65IBXFIcjs.rgbToHsl; exports.rgbToReflectance = _chunkOLNIPTB3cjs.rgbToReflectance; exports.rgbUnitToHex = rgbUnitToHex; exports.rgbaViewOfGrey = _chunkYF3YZZ6Gcjs.rgbaViewOfGrey; exports.runLayerFilters = _chunkH65IBXFIcjs.runLayerFilters; exports.runLayerFiltersFloat = _chunkH65IBXFIcjs.runLayerFiltersFloat; exports.runLayerMenuAction = runLayerMenuAction; exports.runSelectionJob = _chunkL52VMQZScjs.runSelectionJob; exports.sameCanvasViewport = sameCanvasViewport; exports.sampleLut = _chunkH65IBXFIcjs.sampleLut; exports.sampleToneLut = _chunkH65IBXFIcjs.sampleToneLut; exports.saturationOf = _chunkYF3YZZ6Gcjs.saturationOf; exports.scaleLayerEffect = _chunkUOGKSVRQcjs.scaleLayerEffect; exports.scalePaintGradient = _chunkPQ3H2AANcjs.scalePaintGradient; exports.seamlessClone = _chunkMQDIP4CFcjs.seamlessClone; exports.seedFromString = _chunkPQ3H2AANcjs.seedFromString; exports.segmentToSelection = segmentToSelection; exports.segmentationOutlines = segmentationOutlines; exports.segmentsToSelection = segmentsToSelection; exports.selectObjectIn = _chunkL52VMQZScjs.selectObjectIn; exports.selectSimilar = selectSimilar; exports.selectionArea = _chunkQYLWG22Ncjs.selectionArea; exports.selectionFromCoverage = _chunkQYLWG22Ncjs.selectionFromCoverage; exports.selectionFromPixels = _chunkQYLWG22Ncjs.selectionFromPixels; exports.selectionFromRegion = _chunkQYLWG22Ncjs.selectionFromRegion; exports.selectionFromTiles = _chunkQYLWG22Ncjs.selectionFromTiles; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.selectionOutline = selectionOutline; exports.selectionRing = selectionRing; exports.selectionToCoverage = _chunkQYLWG22Ncjs.selectionToCoverage; exports.selectionToPixels = _chunkQYLWG22Ncjs.selectionToPixels; exports.selectionToSubpaths = selectionToSubpaths; exports.selectionValueAt = _chunkQYLWG22Ncjs.selectionValueAt; exports.serializeChannels = serializeChannels; exports.serializeColorMode = serializeColorMode; exports.serializeColorProfile = serializeColorProfile; exports.serializeContents = _chunkH65IBXFIcjs.serializeContents; exports.serializeEffects = _chunkH65IBXFIcjs.serializeEffects; exports.serializeLayer = _chunkH65IBXFIcjs.serializeLayer; exports.serializeLayers = _chunkH65IBXFIcjs.serializeLayers; exports.serializeLayersExternal = _chunkH65IBXFIcjs.serializeLayersExternal; exports.serializeMask = _chunkL52VMQZScjs.serializeMask; exports.serializePaths = serializePaths; exports.serializePatterns = _chunkH65IBXFIcjs.serializePatterns; exports.serializeSelection = _chunkQYLWG22Ncjs.serializeSelection; exports.setCloneTransformValue = setCloneTransformValue; exports.setControlPath = setControlPath; exports.setLayerEffects = _chunkH65IBXFIcjs.setLayerEffects; exports.setLayerEffectsEnabled = _chunkH65IBXFIcjs.setLayerEffectsEnabled; exports.setLayerMask = _chunkH65IBXFIcjs.setLayerMask; exports.setLayerProperties = _chunkH65IBXFIcjs.setLayerProperties; exports.setLum = _chunkOLNIPTB3cjs.setLum; exports.setPigmentColor = _chunkOLNIPTB3cjs.setPigmentColor; exports.setRetouchChoice = setRetouchChoice; exports.setSmartFilterMask = _chunkH65IBXFIcjs.setSmartFilterMask; exports.setSmartFiltersEnabled = _chunkH65IBXFIcjs.setSmartFiltersEnabled; exports.setSmartPlacement = _chunkH65IBXFIcjs.setSmartPlacement; exports.shadeTile = _chunkKWNMBMKGcjs.shadeTile; exports.shapeAsPixelLayer = _chunkH65IBXFIcjs.shapeAsPixelLayer; exports.shapeFromAnnotation = _chunkH65IBXFIcjs.shapeFromAnnotation; exports.shapeGeometryBounds = _chunkH65IBXFIcjs.shapeGeometryBounds; exports.shapeLayers = _chunkH65IBXFIcjs.shapeLayers; exports.shapeOutline = _chunkH65IBXFIcjs.shapeOutline; exports.shapeRenderClip = _chunkH65IBXFIcjs.shapeRenderClip; exports.shiftCoverage = _chunkQYLWG22Ncjs.shiftCoverage; exports.simplifyPixelPath = simplifyPixelPath; exports.skinToneRange = skinToneRange; exports.slicSuperpixels = _chunkL52VMQZScjs.slicSuperpixels; exports.smartFilterRows = smartFilterRows; exports.smartObjectLayers = _chunkH65IBXFIcjs.smartObjectLayers; exports.smoothCoverage = _chunkQYLWG22Ncjs.smoothCoverage; exports.smoothPoints = _chunkPQ3H2AANcjs.smoothPoints; exports.smoothnessWeights = _chunkL52VMQZScjs.smoothnessWeights; exports.smudgeEffect = _chunkYF3YZZ6Gcjs.smudgeEffect; exports.snapPolygonToEdges = snapPolygonToEdges; exports.snapTo45 = snapTo45; exports.snapToEdge = snapToEdge; exports.softMaskToSelection = _chunkL52VMQZScjs.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 = _chunkKWNMBMKGcjs.srgbByteToLinear; exports.srgbDecode = _chunkOLNIPTB3cjs.srgbDecode; exports.srgbEncode = _chunkOLNIPTB3cjs.srgbEncode; exports.srgbToLinear = _chunkH65IBXFIcjs.srgbToLinear; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.startMarchingAnts = startMarchingAnts; exports.startSelectionWorker = _chunkL52VMQZScjs.startSelectionWorker; exports.stepSlotTs = _chunkKWNMBMKGcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPQ3H2AANcjs.strokeGrainCatch; exports.styleAt = _chunkQAUIZPYIcjs.styleAt; exports.subpathsToSvgPath = subpathsToSvgPath; exports.sumHistograms = sumHistograms; exports.superpixelSaliency = _chunkL52VMQZScjs.superpixelSaliency; exports.surfaceBytes = _chunk474IQG74cjs.surfaceBytes; exports.surfaceDepth = _chunkOLNIPTB3cjs.surfaceDepth; exports.surfaceFromDeepPixels = _chunkOLNIPTB3cjs.surfaceFromDeepPixels; exports.surfaceFromPixels = _chunk474IQG74cjs.surfaceFromPixels; exports.surfacesEqual = _chunk474IQG74cjs.surfacesEqual; exports.tempTintToXy = _chunkH65IBXFIcjs.tempTintToXy; exports.temperatureToKelvin = _chunkH65IBXFIcjs.temperatureToKelvin; exports.textIndexAt = _chunkQAUIZPYIcjs.textIndexAt; exports.textMatrix = _chunkH65IBXFIcjs.textMatrix; exports.textOrientation = _chunkH65IBXFIcjs.textOrientation; exports.textOutlines = _chunkH65IBXFIcjs.textOutlines; exports.textRange = _chunkH65IBXFIcjs.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 = _chunkH65IBXFIcjs.toTextSpace; exports.toneCurve = _chunkH65IBXFIcjs.toneCurve; exports.toneLuts = _chunkH65IBXFIcjs.toneLuts; exports.toneOf = _chunkYF3YZZ6Gcjs.toneOf; exports.toneRange = toneRange; exports.transformHomography = _chunkH65IBXFIcjs.transformHomography; exports.transformMap = _chunkH65IBXFIcjs.transformMap; exports.transformShapeComponents = _chunkH65IBXFIcjs.transformShapeComponents; exports.transformSurface = _chunkUOGKSVRQcjs.transformSurface; exports.transformTypeLayer = _chunkH65IBXFIcjs.transformTypeLayer; exports.transformVectorMask = _chunkH65IBXFIcjs.transformVectorMask; exports.transformedBounds = _chunkUOGKSVRQcjs.transformedBounds; exports.transformedBox = _chunkH65IBXFIcjs.transformedBox; exports.transformedPoint = _chunkH65IBXFIcjs.transformedPoint; exports.translateLayer = _chunkH65IBXFIcjs.translateLayer; exports.translateSurface = _chunk474IQG74cjs.translateSurface; exports.typeAsPixelLayer = _chunkH65IBXFIcjs.typeAsPixelLayer; exports.typeFrame = _chunkH65IBXFIcjs.typeFrame; exports.typeFromAnnotation = _chunkH65IBXFIcjs.typeFromAnnotation; exports.typeLayerAt = typeLayerAt; exports.typeLayerName = _chunkH65IBXFIcjs.typeLayerName; exports.ungroupLayer = _chunkH65IBXFIcjs.ungroupLayer; exports.uniformTile = _chunk474IQG74cjs.uniformTile; exports.unionRect = _chunkH65IBXFIcjs.unionRect; exports.unprojectCanvasPoint = _chunkH65IBXFIcjs.unprojectCanvasPoint; exports.updateLayerEffect = _chunkH65IBXFIcjs.updateLayerEffect; exports.updateLayerFilter = _chunkH65IBXFIcjs.updateLayerFilter; exports.updateLayerMaskProps = _chunkH65IBXFIcjs.updateLayerMaskProps; exports.updatePaintGradientStop = _chunkPQ3H2AANcjs.updatePaintGradientStop; exports.updateShapeLayer = _chunkH65IBXFIcjs.updateShapeLayer; exports.updateSmartFilter = _chunkH65IBXFIcjs.updateSmartFilter; exports.updateTypeLayer = _chunkH65IBXFIcjs.updateTypeLayer; exports.upscaleRegion = _chunkL52VMQZScjs.upscaleRegion; exports.userErrorMessage = _chunkH65IBXFIcjs.userErrorMessage; exports.uvToXy = _chunkH65IBXFIcjs.uvToXy; exports.validateEffectGradient = _chunkUOGKSVRQcjs.validateEffectGradient; exports.validateLayerEffect = _chunkUOGKSVRQcjs.validateLayerEffect; exports.validateLayerEffects = _chunkUOGKSVRQcjs.validateLayerEffects; exports.vectorMaskBounds = _chunkH65IBXFIcjs.vectorMaskBounds; exports.vectorMaskCoverage = _chunkH65IBXFIcjs.vectorMaskCoverage; exports.vectorMaskThumbnail = _chunkH65IBXFIcjs.vectorMaskThumbnail; exports.vectorMaskThumbnailClick = vectorMaskThumbnailClick; exports.versionedDescriptorBytes = _chunkH65IBXFIcjs.versionedDescriptorBytes; exports.vibranceLinear = _chunkH65IBXFIcjs.vibranceLinear; exports.vibrancePixel = _chunkH65IBXFIcjs.vibrancePixel; exports.walkDabs = _chunkPQ3H2AANcjs.walkDabs; exports.warpMeshEditPoints = _chunkQAUIZPYIcjs.warpMeshEditPoints; exports.warpMeshGridCurves = _chunkQAUIZPYIcjs.warpMeshGridCurves; exports.warpMeshParamAt = _chunkQAUIZPYIcjs.warpMeshParamAt; exports.warpPresetMesh = _chunkQAUIZPYIcjs.warpPresetMesh; exports.warpSurface = _chunkUOGKSVRQcjs.warpSurface; exports.watchCanvasViewport = watchCanvasViewport; exports.wbMatrix = _chunkH65IBXFIcjs.wbMatrix; exports.wetGpuSupport = _chunkKWNMBMKGcjs.wetGpuSupport; exports.wetSimdSupported = _chunkKWNMBMKGcjs.wetSimdSupported; exports.wetSupport = _chunkKWNMBMKGcjs.wetSupport; exports.whiteBalanceFromSample = _chunkH65IBXFIcjs.whiteBalanceFromSample; exports.whiteBalanceMatrix = _chunkH65IBXFIcjs.whiteBalanceMatrix; exports.withBackgroundOpacity = withBackgroundOpacity; exports.withFilterMaskSurface = _chunkH65IBXFIcjs.withFilterMaskSurface; exports.withImagePlayback = withImagePlayback; exports.withNewIds = _chunkH65IBXFIcjs.withNewIds; exports.workImage = _chunkL52VMQZScjs.workImage; exports.workLuma = _chunkL52VMQZScjs.workLuma; exports.workPlanes = _chunkL52VMQZScjs.workPlanes; exports.writeAdjustmentBlock = _chunkH65IBXFIcjs.writeAdjustmentBlock; exports.writeDeepRegion = _chunkOLNIPTB3cjs.writeDeepRegion; exports.writeLfx2 = _chunkH65IBXFIcjs.writeLfx2; exports.writePatternBlock = _chunkH65IBXFIcjs.writePatternBlock; exports.writePsd = _chunkH65IBXFIcjs.writePsd; exports.writeRegion = _chunk474IQG74cjs.writeRegion; exports.xyToTempTint = _chunkH65IBXFIcjs.xyToTempTint; exports.xyToUv = _chunkH65IBXFIcjs.xyToUv;