@pixerate/editor 0.267.0 → 0.268.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/animation-editor/index.cjs +62 -62
  2. package/dist/animation-editor/index.js +6 -6
  3. package/dist/brushes/index.cjs +198 -72
  4. package/dist/brushes/index.d.cts +4 -3
  5. package/dist/brushes/index.d.ts +4 -3
  6. package/dist/brushes/index.js +136 -10
  7. package/dist/brushes/library.d.cts +27 -1
  8. package/dist/brushes/library.d.ts +27 -1
  9. package/dist/brushes/profiles.d.cts +4 -0
  10. package/dist/brushes/profiles.d.ts +4 -0
  11. package/dist/brushes/schema.d.cts +4 -0
  12. package/dist/brushes/schema.d.ts +4 -0
  13. package/dist/brushes/sources.d.cts +114 -0
  14. package/dist/brushes/sources.d.ts +114 -0
  15. package/dist/brushes/types.d.cts +37 -5
  16. package/dist/brushes/types.d.ts +37 -5
  17. package/dist/brushes/ui.d.cts +40 -4
  18. package/dist/brushes/ui.d.ts +40 -4
  19. package/dist/{brushstrokeRender-NLFPEBGI.js → brushstrokeRender-A727TTNQ.js} +6 -6
  20. package/dist/{brushstrokeRender-L7JYRR2R.cjs → brushstrokeRender-WR2N5HHY.cjs} +22 -22
  21. package/dist/canvas/index.cjs +13 -13
  22. package/dist/canvas/index.js +1 -1
  23. package/dist/{chunk-J2TNIZ55.cjs → chunk-2WOGXEDX.cjs} +1 -1
  24. package/dist/{chunk-JGWVZPT6.js → chunk-3XDSNIGF.js} +72 -5
  25. package/dist/{chunk-EXB2EGBE.cjs → chunk-62MFUHSI.cjs} +16 -16
  26. package/dist/{chunk-GCVFEPJG.js → chunk-ACTHSQOI.js} +182 -0
  27. package/dist/{chunk-EF7LZAXQ.js → chunk-BAZMCFVL.js} +1 -1
  28. package/dist/{chunk-HIO6E7LC.cjs → chunk-BPJSI4NT.cjs} +2 -2
  29. package/dist/{chunk-XVOP3CGQ.cjs → chunk-EU2ZZA6L.cjs} +393 -62
  30. package/dist/{chunk-YIC6MAJ2.js → chunk-HFY5LG5J.js} +1 -1
  31. package/dist/{chunk-7UKFXXWL.js → chunk-HVO6XCI4.js} +1 -1
  32. package/dist/{chunk-LHPEG5AU.cjs → chunk-J4GXP53R.cjs} +140 -91
  33. package/dist/{chunk-OKHKA43L.cjs → chunk-JBB3GDBB.cjs} +330 -216
  34. package/dist/{chunk-AGNUD5BI.js → chunk-KZI3YWKW.js} +351 -20
  35. package/dist/{chunk-FGJHJIMN.js → chunk-LDOD7VCT.js} +59 -10
  36. package/dist/{chunk-EYSHTYLG.js → chunk-LETF75CA.js} +1 -1
  37. package/dist/{chunk-FQPUF2W2.cjs → chunk-NIBFKXMD.cjs} +217 -35
  38. package/dist/{chunk-G7NHE2VD.cjs → chunk-NPWWSCWT.cjs} +35 -35
  39. package/dist/{chunk-OSEXT7JL.js → chunk-QNY7BDFP.js} +1 -1
  40. package/dist/{chunk-PXDIAYB6.cjs → chunk-STLTOISW.cjs} +34 -214
  41. package/dist/{chunk-4IDUYB45.js → chunk-UVTO3D4E.js} +130 -16
  42. package/dist/{chunk-TXFWZ5ZJ.js → chunk-W6JDUXP3.js} +4 -184
  43. package/dist/{chunk-LA5Y4ETA.cjs → chunk-YOVXQHA3.cjs} +23 -23
  44. package/dist/{chunk-DT4YQUGT.cjs → chunk-YXP6X3SY.cjs} +101 -34
  45. package/dist/image-editor/adjustment-layers.d.cts +8 -0
  46. package/dist/image-editor/adjustment-layers.d.ts +8 -0
  47. package/dist/image-editor/index.cjs +857 -853
  48. package/dist/image-editor/index.js +30 -26
  49. package/dist/paint/index.cjs +5 -5
  50. package/dist/paint/index.js +11 -11
  51. package/dist/paint-editor/brush-library-tools.d.cts +12 -2
  52. package/dist/paint-editor/brush-library-tools.d.ts +12 -2
  53. package/dist/paint-editor/brush-model.d.cts +29 -1
  54. package/dist/paint-editor/brush-model.d.ts +29 -1
  55. package/dist/paint-editor/brush-source-art.d.cts +32 -0
  56. package/dist/paint-editor/brush-source-art.d.ts +32 -0
  57. package/dist/paint-editor/controller.d.cts +6 -1
  58. package/dist/paint-editor/controller.d.ts +6 -1
  59. package/dist/paint-editor/dab-stroke.d.cts +2 -0
  60. package/dist/paint-editor/dab-stroke.d.ts +2 -0
  61. package/dist/paint-editor/engine.d.cts +11 -2
  62. package/dist/paint-editor/engine.d.ts +11 -2
  63. package/dist/paint-editor/index.cjs +576 -481
  64. package/dist/paint-editor/index.d.cts +3 -1
  65. package/dist/paint-editor/index.d.ts +3 -1
  66. package/dist/paint-editor/index.js +127 -32
  67. package/dist/paint-editor/stamp-tip.d.cts +8 -5
  68. package/dist/paint-editor/stamp-tip.d.ts +8 -5
  69. package/dist/paint-editor/thumbnails.d.cts +6 -0
  70. package/dist/paint-editor/thumbnails.d.ts +6 -0
  71. package/dist/paint-editor/tip-grain.d.cts +34 -0
  72. package/dist/paint-editor/tip-grain.d.ts +34 -0
  73. package/dist/raster/index.cjs +2 -2
  74. package/dist/raster/index.js +9 -9
  75. package/dist/vector/index.cjs +1002 -1002
  76. package/dist/vector/index.js +7 -7
  77. package/package.json +110 -1
  78. package/skills/pixerate-brushes/SKILL.md +35 -8
  79. package/skills/pixerate-brushes-design/SKILL.md +8 -1
  80. package/skills/pixerate-image-editor/SKILL.md +1 -1
  81. package/skills/pixerate-paint-editor/SKILL.md +6 -0
  82. package/skills/pixerate-paint-editor/references/brush-facets.md +3 -1
  83. package/skills/pixerate-paint-sketch-to-finish/SKILL.md +1 -0
@@ -115,7 +115,7 @@ var _chunkBROJYMWUcjs = require('./chunk-BROJYMWU.cjs');
115
115
 
116
116
 
117
117
 
118
- var _chunkOKHKA43Lcjs = require('./chunk-OKHKA43L.cjs');
118
+ var _chunkJBB3GDBBcjs = require('./chunk-JBB3GDBB.cjs');
119
119
 
120
120
 
121
121
 
@@ -129,7 +129,7 @@ var _chunkGF2RBSDMcjs = require('./chunk-GF2RBSDM.cjs');
129
129
  var _chunkJBZRVLXVcjs = require('./chunk-JBZRVLXV.cjs');
130
130
 
131
131
 
132
- var _chunkFQPUF2W2cjs = require('./chunk-FQPUF2W2.cjs');
132
+ var _chunkNIBFKXMDcjs = require('./chunk-NIBFKXMD.cjs');
133
133
 
134
134
 
135
135
 
@@ -137,11 +137,11 @@ var _chunkFQPUF2W2cjs = require('./chunk-FQPUF2W2.cjs');
137
137
 
138
138
 
139
139
 
140
- var _chunkW5M3J7PVcjs = require('./chunk-W5M3J7PV.cjs');
141
140
 
142
141
 
143
142
 
144
143
 
144
+ var _chunk2VX55NFMcjs = require('./chunk-2VX55NFM.cjs');
145
145
 
146
146
 
147
147
 
@@ -149,7 +149,7 @@ var _chunkW5M3J7PVcjs = require('./chunk-W5M3J7PV.cjs');
149
149
 
150
150
 
151
151
 
152
- var _chunk2VX55NFMcjs = require('./chunk-2VX55NFM.cjs');
152
+ var _chunkW5M3J7PVcjs = require('./chunk-W5M3J7PV.cjs');
153
153
 
154
154
 
155
155
 
@@ -1038,6 +1038,54 @@ function normParams(kind, raw) {
1038
1038
  return {};
1039
1039
  }
1040
1040
  }
1041
+ function describeParamShape(template) {
1042
+ if (Array.isArray(template)) return `[${describeParamShape(template[0])}]`;
1043
+ if (template && typeof template === "object") {
1044
+ const fields = Object.entries(template).map(([k, v]) => v && typeof v === "object" ? `${k}: ${describeParamShape(v)}` : k);
1045
+ return `{${fields.join(", ")}}`;
1046
+ }
1047
+ return typeof template === "number" ? "number" : "value";
1048
+ }
1049
+ function checkParamShape(value, template, path, unknown, invalid) {
1050
+ if (Array.isArray(template)) {
1051
+ if (!Array.isArray(value)) invalid.push(`${path} must be an array`);
1052
+ else value.forEach((item, i) => item !== null && checkParamShape(item, template[0], `${path}.${i}`, unknown, invalid));
1053
+ } else if (template && typeof template === "object") {
1054
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
1055
+ if (path) invalid.push(`${path} must be an object`);
1056
+ return;
1057
+ }
1058
+ for (const [key, item] of Object.entries(value)) {
1059
+ const at = path ? `${path}.${key}` : key;
1060
+ if (Object.hasOwn(template, key)) checkParamShape(item, template[key], at, unknown, invalid);
1061
+ else unknown.push(at);
1062
+ }
1063
+ } else if (typeof template === "string" || template === null) {
1064
+ if (!(template === null && value === null) && !(typeof value === "string" && HEX.test(value))) {
1065
+ invalid.push(`${path} must be a #rrggbb colour${template === null ? " or null" : ""}`);
1066
+ }
1067
+ } else if (typeof value !== typeof template || typeof value === "number" && !Number.isFinite(value)) {
1068
+ invalid.push(`${path} must be a ${typeof template}`);
1069
+ }
1070
+ }
1071
+ function assertAdjustmentParams(kind, params) {
1072
+ if (params === void 0) return;
1073
+ const template = defaultAdjustmentParams(kind);
1074
+ const unknown = [];
1075
+ const invalid = [];
1076
+ if (!params || typeof params !== "object" || Array.isArray(params)) invalid.push("params must be an object");
1077
+ else checkParamShape(params, template, "", unknown, invalid);
1078
+ if (!unknown.length && !invalid.length) return;
1079
+ const problems = [];
1080
+ if (unknown.length) problems.push(`Unknown params key(s) for a ${kind} layer: ${unknown.join(", ")}.`);
1081
+ if (invalid.length) problems.push(`Invalid params for a ${kind} layer: ${invalid.join("; ")}.`);
1082
+ if (unknown.some((key) => key.includes("."))) {
1083
+ problems.push('Nest parameters as objects and arrays: dotted control ids only work in set_adjustments ("layers.<layerId>.<controlId>").');
1084
+ }
1085
+ const accepted = describeParamShape(template);
1086
+ problems.push(accepted === "{}" ? `This ${kind} layer takes no params.` : `Accepted: ${accepted}.`);
1087
+ throw new Error(problems.join(" "));
1088
+ }
1041
1089
  function normalizeAdjustmentLayer(raw) {
1042
1090
  if (!raw || typeof raw !== "object") return null;
1043
1091
  const r = raw;
@@ -2010,7 +2058,7 @@ function mapAnchor(a, f) {
2010
2058
  return out;
2011
2059
  }
2012
2060
  function mapSubpaths(subpaths, f) {
2013
- return _chunkOKHKA43Lcjs.expandVectorCorners.call(void 0, subpaths).map((sp) => ({ closed: sp.closed, anchors: sp.anchors.map((a) => mapAnchor(a, f)) }));
2061
+ return _chunkJBB3GDBBcjs.expandVectorCorners.call(void 0, subpaths).map((sp) => ({ closed: sp.closed, anchors: sp.anchors.map((a) => mapAnchor(a, f)) }));
2014
2062
  }
2015
2063
  function liveShapeSubpaths(live) {
2016
2064
  let out;
@@ -2018,19 +2066,19 @@ function liveShapeSubpaths(live) {
2018
2066
  case "rect": {
2019
2067
  const x = Math.min(live.x, live.x + live.width);
2020
2068
  const y = Math.min(live.y, live.y + live.height);
2021
- const sp = _chunkOKHKA43Lcjs.rectSubpath.call(void 0, { x, y, width: Math.abs(live.width), height: Math.abs(live.height) });
2069
+ const sp = _chunkJBB3GDBBcjs.rectSubpath.call(void 0, { x, y, width: Math.abs(live.width), height: Math.abs(live.height) });
2022
2070
  const r = _nullishCoalesce(live.radii, () => ( [0, 0, 0, 0]));
2023
- out = [{ closed: true, anchors: sp.anchors.map((a, i) => r[i] > 0 ? _chunkOKHKA43Lcjs.setAnchorCorner.call(void 0, a, r[i]) : a) }];
2071
+ out = [{ closed: true, anchors: sp.anchors.map((a, i) => r[i] > 0 ? _chunkJBB3GDBBcjs.setAnchorCorner.call(void 0, a, r[i]) : a) }];
2024
2072
  break;
2025
2073
  }
2026
2074
  case "ellipse":
2027
- out = [_chunkOKHKA43Lcjs.ellipseSubpath.call(void 0, normBox(live))];
2075
+ out = [_chunkJBB3GDBBcjs.ellipseSubpath.call(void 0, normBox(live))];
2028
2076
  break;
2029
2077
  case "polygon":
2030
- out = [_chunkOKHKA43Lcjs.polygonSubpath.call(void 0, normBox(live), live.sides)];
2078
+ out = [_chunkJBB3GDBBcjs.polygonSubpath.call(void 0, normBox(live), live.sides)];
2031
2079
  break;
2032
2080
  case "star":
2033
- out = [_chunkOKHKA43Lcjs.starSubpath.call(void 0, normBox(live), live.points, Math.max(0, Math.min(1, live.innerRatio)))];
2081
+ out = [_chunkJBB3GDBBcjs.starSubpath.call(void 0, normBox(live), live.points, Math.max(0, Math.min(1, live.innerRatio)))];
2034
2082
  break;
2035
2083
  case "line": {
2036
2084
  const a = { x: live.x1, y: live.y1 };
@@ -2053,7 +2101,7 @@ function liveShapeSubpaths(live) {
2053
2101
  }
2054
2102
  }
2055
2103
  const m = live.transform;
2056
- return m && !_chunkOKHKA43Lcjs.isIdentityMatrix.call(void 0, m) ? mapSubpaths(out, (p) => _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, p)) : out;
2104
+ return m && !_chunkJBB3GDBBcjs.isIdentityMatrix.call(void 0, m) ? mapSubpaths(out, (p) => _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, p)) : out;
2057
2105
  }
2058
2106
  function normBox(b) {
2059
2107
  return { x: Math.min(b.x, b.x + b.width), y: Math.min(b.y, b.y + b.height), width: Math.abs(b.width), height: Math.abs(b.height) };
@@ -2065,7 +2113,7 @@ var pathCache = /* @__PURE__ */ new WeakMap();
2065
2113
  function componentPath(c) {
2066
2114
  let p = pathCache.get(c.subpaths);
2067
2115
  if (!p) {
2068
- p = _chunkOKHKA43Lcjs.subpathsToBezier.call(void 0, c.subpaths);
2116
+ p = _chunkJBB3GDBBcjs.subpathsToBezier.call(void 0, c.subpaths);
2069
2117
  pathCache.set(c.subpaths, p);
2070
2118
  }
2071
2119
  return p;
@@ -2392,7 +2440,7 @@ function matrixArg(v, path) {
2392
2440
  if (!Array.isArray(v) || v.length !== 6 || !v.every(isNum)) fail(`${path} must be six numbers [a, b, c, d, e, f].`);
2393
2441
  const m = v;
2394
2442
  if (Math.abs(m[0] * m[3] - m[1] * m[2]) < 1e-12) fail(`${path} is singular.`);
2395
- return _chunkOKHKA43Lcjs.isIdentityMatrix.call(void 0, m) ? void 0 : [...m];
2443
+ return _chunkJBB3GDBBcjs.isIdentityMatrix.call(void 0, m) ? void 0 : [...m];
2396
2444
  }
2397
2445
  function normalizeLiveShape(v, path = "shape") {
2398
2446
  if (!v || typeof v !== "object") return fail(`${path} must be an object with kind ${LIVE_SHAPE_KINDS.join(", ")}.`);
@@ -2453,7 +2501,7 @@ function normalizeSubpaths(v, path = "subpaths") {
2453
2501
  if (typeof v === "string") {
2454
2502
  let subs;
2455
2503
  try {
2456
- subs = _chunkOKHKA43Lcjs.bezierToSubpaths.call(void 0, v);
2504
+ subs = _chunkJBB3GDBBcjs.bezierToSubpaths.call(void 0, v);
2457
2505
  } catch (e5) {
2458
2506
  return fail(`${path}: could not read the SVG path data.`);
2459
2507
  }
@@ -2539,15 +2587,15 @@ function updateShapeLayer(layers, id, change, env, action = "edit it") {
2539
2587
  function transformShapeComponents(components, f, affine) {
2540
2588
  return components.map((c) => {
2541
2589
  if (affine && c.live) {
2542
- const live = { ...c.live, transform: _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, _nullishCoalesce(c.live.transform, () => ( _chunkOKHKA43Lcjs.IDENTITY_MATRIX)), affine) };
2543
- if (_chunkOKHKA43Lcjs.isIdentityMatrix.call(void 0, live.transform)) delete live.transform;
2590
+ const live = { ...c.live, transform: _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, _nullishCoalesce(c.live.transform, () => ( _chunkJBB3GDBBcjs.IDENTITY_MATRIX)), affine) };
2591
+ if (_chunkJBB3GDBBcjs.isIdentityMatrix.call(void 0, live.transform)) delete live.transform;
2544
2592
  return { op: c.op, subpaths: liveShapeSubpaths(live), live };
2545
2593
  }
2546
2594
  return { op: c.op, subpaths: mapSubpaths(c.subpaths, f) };
2547
2595
  });
2548
2596
  }
2549
2597
  function offsetShape(layer, dx, dy, env) {
2550
- const m = _chunkOKHKA43Lcjs.translateMatrix.call(void 0, dx, dy);
2598
+ const m = _chunkJBB3GDBBcjs.translateMatrix.call(void 0, dx, dy);
2551
2599
  const next = { ...layer, components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), m) };
2552
2600
  delete next.annotation;
2553
2601
  return rerenderShape(next, env);
@@ -2555,7 +2603,7 @@ function offsetShape(layer, dx, dy, env) {
2555
2603
  function mergeShapeComponents(components, fillRule = "nonzero") {
2556
2604
  if (components.length < 2) return [...components];
2557
2605
  const path = shapeOutline(components, fillRule);
2558
- const subpaths = _chunkOKHKA43Lcjs.bezierToSubpaths.call(void 0, path);
2606
+ const subpaths = _chunkJBB3GDBBcjs.bezierToSubpaths.call(void 0, path);
2559
2607
  if (!subpaths.length) fail("The components combine to nothing (the operations remove every area), so there is nothing to merge into.");
2560
2608
  return [{ op: "combine", subpaths }];
2561
2609
  }
@@ -2572,7 +2620,7 @@ function annotationPaint(color, opacity) {
2572
2620
  function shapeFromAnnotation(a) {
2573
2621
  const opacity = _nullishCoalesce(a.opacity, () => ( 1));
2574
2622
  const lineWidth = "strokeWidth" in a && a.strokeWidth > 0 ? a.strokeWidth : 1;
2575
- const rotation = a.rotation ? _chunkOKHKA43Lcjs.rotateMatrix.call(void 0, a.rotation, { x: a.x, y: a.y }) : void 0;
2623
+ const rotation = a.rotation ? _chunkJBB3GDBBcjs.rotateMatrix.call(void 0, a.rotation, { x: a.x, y: a.y }) : void 0;
2576
2624
  const t = rotation ? { transform: rotation } : {};
2577
2625
  const live = (l) => liveComponent(l);
2578
2626
  switch (a.type) {
@@ -2615,7 +2663,7 @@ function shapeFromAnnotation(a) {
2615
2663
  case "pen": {
2616
2664
  const paint = annotationPaint(a.strokeColor, opacity);
2617
2665
  if (!paint) return null;
2618
- const pts = rotation ? a.points.map((p) => _chunkOKHKA43Lcjs.applyMatrix.call(void 0, rotation, p)) : a.points;
2666
+ const pts = rotation ? a.points.map((p) => _chunkJBB3GDBBcjs.applyMatrix.call(void 0, rotation, p)) : a.points;
2619
2667
  const subpaths = pts.length > 1 ? [{ closed: false, anchors: pts.map((p) => ({ x: p.x, y: p.y })) }] : [];
2620
2668
  return {
2621
2669
  components: [{ op: "combine", subpaths }],
@@ -2648,7 +2696,7 @@ var JOIN_SIGMA = 2;
2648
2696
  function vectorMaskSegments(components) {
2649
2697
  const out = [];
2650
2698
  components.forEach((c, ci) => c.subpaths.forEach((sp, si) => {
2651
- for (let k = 0; k < _chunkOKHKA43Lcjs.subpathSegmentCount.call(void 0, sp); k++) out.push({ component: ci, subpath: si, segment: k });
2699
+ for (let k = 0; k < _chunkJBB3GDBBcjs.subpathSegmentCount.call(void 0, sp); k++) out.push({ component: ci, subpath: si, segment: k });
2652
2700
  }));
2653
2701
  return out;
2654
2702
  }
@@ -2656,7 +2704,7 @@ function validVectorMaskEdges(edges, components) {
2656
2704
  if (!_optionalChain([edges, 'optionalAccess', _34 => _34.length])) return [];
2657
2705
  return edges.filter((e) => {
2658
2706
  const sp = _optionalChain([components, 'access', _35 => _35[e.component], 'optionalAccess', _36 => _36.subpaths, 'access', _37 => _37[e.subpath]]);
2659
- return Boolean(sp) && e.segment >= 0 && e.segment < _chunkOKHKA43Lcjs.subpathSegmentCount.call(void 0, sp);
2707
+ return Boolean(sp) && e.segment >= 0 && e.segment < _chunkJBB3GDBBcjs.subpathSegmentCount.call(void 0, sp);
2660
2708
  });
2661
2709
  }
2662
2710
  function reach(e) {
@@ -2679,8 +2727,8 @@ function hybridVectorMaskCoverage(vm, hard, width, height, guide) {
2679
2727
  const seedClass = [];
2680
2728
  vm.components.forEach(
2681
2729
  (c, ci) => c.subpaths.forEach((sp, si) => {
2682
- for (let k = 0; k < _chunkOKHKA43Lcjs.subpathSegmentCount.call(void 0, sp); k++) {
2683
- const seg = _chunkOKHKA43Lcjs.subpathSegment.call(void 0, sp, k);
2730
+ for (let k = 0; k < _chunkJBB3GDBBcjs.subpathSegmentCount.call(void 0, sp); k++) {
2731
+ const seg = _chunkJBB3GDBBcjs.subpathSegment.call(void 0, sp, k);
2684
2732
  let len = 0;
2685
2733
  for (let i = 1; i < seg.length; i++) len += Math.hypot(seg[i][0] - seg[i - 1][0], seg[i][1] - seg[i - 1][1]);
2686
2734
  const steps = Math.max(2, Math.ceil(len * 2));
@@ -3580,7 +3628,7 @@ var fail3 = (message) => {
3580
3628
  };
3581
3629
  var TEXT_RENDER_MARGIN = _chunkPVJMTLPJcjs.MAX_EFFECT_REACH;
3582
3630
  function textMatrix(layer) {
3583
- return _nullishCoalesce(layer.transform, () => ( _chunkOKHKA43Lcjs.IDENTITY_MATRIX));
3631
+ return _nullishCoalesce(layer.transform, () => ( _chunkJBB3GDBBcjs.IDENTITY_MATRIX));
3584
3632
  }
3585
3633
  function rectCorners(r) {
3586
3634
  return [
@@ -3591,7 +3639,7 @@ function rectCorners(r) {
3591
3639
  ];
3592
3640
  }
3593
3641
  function docRect(r, m) {
3594
- const pts = rectCorners(r).map((p) => _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, p));
3642
+ const pts = rectCorners(r).map((p) => _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, p));
3595
3643
  const x0 = Math.floor(Math.min(...pts.map((p) => p.x)));
3596
3644
  const y0 = Math.floor(Math.min(...pts.map((p) => p.y)));
3597
3645
  const x1 = Math.ceil(Math.max(...pts.map((p) => p.x)));
@@ -3611,7 +3659,7 @@ function inkBounds(layout) {
3611
3659
  for (const f of l.fragments) {
3612
3660
  const pad = f.style.fontSize * (l.matrix ? 1 : 0.5);
3613
3661
  const w = f.carets[f.carets.length - 1];
3614
- const r = _chunkOKHKA43Lcjs.transformTextRect.call(void 0, l.matrix, { x: f.x - pad, y: l.baseline - l.ascent - pad + Math.min(0, f.y - l.baseline), width: w + 2 * pad, height: l.ascent + l.descent + 2 * pad + Math.abs(f.y - l.baseline) });
3662
+ const r = _chunkJBB3GDBBcjs.transformTextRect.call(void 0, l.matrix, { x: f.x - pad, y: l.baseline - l.ascent - pad + Math.min(0, f.y - l.baseline), width: w + 2 * pad, height: l.ascent + l.descent + 2 * pad + Math.abs(f.y - l.baseline) });
3615
3663
  if (!b) b = r;
3616
3664
  else {
3617
3665
  const x0 = Math.min(b.x, r.x);
@@ -3624,14 +3672,14 @@ function inkBounds(layout) {
3624
3672
  }
3625
3673
  function textOutlines(layer, shaper) {
3626
3674
  if (!shaper.outline) fail3(`The text shaper "${shaper.id}" cannot give glyph outlines; plug in an outline shaper (createOutlineTextShaper) to convert text to shapes.`);
3627
- const layout = _chunkOKHKA43Lcjs.layoutText.call(void 0, layer, shaper);
3675
+ const layout = _chunkJBB3GDBBcjs.layoutText.call(void 0, layer, shaper);
3628
3676
  const m = textMatrix(layer);
3629
3677
  const out = [];
3630
3678
  for (const l of layout.lines) {
3631
3679
  for (const f of l.fragments) {
3632
- let path = _chunkOKHKA43Lcjs.textFragmentOutline.call(void 0, shaper, layer.text, f);
3633
- for (const r of _chunkOKHKA43Lcjs.textDecorations.call(void 0, f, l)) path = [...path, ..._chunkOKHKA43Lcjs.textRectPath.call(void 0, r)];
3634
- out.push({ fragment: f, path: _chunkOKHKA43Lcjs.isIdentityMatrix.call(void 0, m) ? path : _chunkGF2RBSDMcjs.transformBezierPath.call(void 0, path, m) });
3680
+ let path = _chunkJBB3GDBBcjs.textFragmentOutline.call(void 0, shaper, layer.text, f);
3681
+ for (const r of _chunkJBB3GDBBcjs.textDecorations.call(void 0, f, l)) path = [...path, ..._chunkJBB3GDBBcjs.textRectPath.call(void 0, r)];
3682
+ out.push({ fragment: f, path: _chunkJBB3GDBBcjs.isIdentityMatrix.call(void 0, m) ? path : _chunkGF2RBSDMcjs.transformBezierPath.call(void 0, path, m) });
3635
3683
  }
3636
3684
  }
3637
3685
  return out;
@@ -3687,7 +3735,7 @@ function renderOnCanvas(layer, shaper, region, env) {
3687
3735
  const canvas = env.createCanvas(region.width, region.height);
3688
3736
  const ctx = canvas.getContext("2d");
3689
3737
  if (!ctx || typeof ctx.getImageData !== "function") return null;
3690
- const layout = _chunkOKHKA43Lcjs.layoutText.call(void 0, layer, shaper);
3738
+ const layout = _chunkJBB3GDBBcjs.layoutText.call(void 0, layer, shaper);
3691
3739
  const m = textMatrix(layer);
3692
3740
  ctx.setTransform(1, 0, 0, 1, 0, 0);
3693
3741
  ctx.clearRect(0, 0, region.width, region.height);
@@ -3697,8 +3745,8 @@ function renderOnCanvas(layer, shaper, region, env) {
3697
3745
  const [r, g, b] = rgbOf(f.style.color);
3698
3746
  ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;
3699
3747
  ctx.globalAlpha = _nullishCoalesce(f.style.opacity, () => ( 1));
3700
- _chunkOKHKA43Lcjs.drawTextFragment.call(void 0, ctx, shaper, layer.text, f);
3701
- for (const d of _chunkOKHKA43Lcjs.textDecorations.call(void 0, f, l)) ctx.fillRect(d.x, d.y, d.width, d.height);
3748
+ _chunkJBB3GDBBcjs.drawTextFragment.call(void 0, ctx, shaper, layer.text, f);
3749
+ for (const d of _chunkJBB3GDBBcjs.textDecorations.call(void 0, f, l)) ctx.fillRect(d.x, d.y, d.width, d.height);
3702
3750
  }
3703
3751
  }
3704
3752
  ctx.globalAlpha = 1;
@@ -3709,7 +3757,7 @@ function renderOnCanvas(layer, shaper, region, env) {
3709
3757
  function renderText(layer, env) {
3710
3758
  const shaper = env.shaper;
3711
3759
  if (!shaper || !shaper.outline && !shaper.draw) return null;
3712
- const layout = _chunkOKHKA43Lcjs.layoutText.call(void 0, layer, shaper);
3760
+ const layout = _chunkJBB3GDBBcjs.layoutText.call(void 0, layer, shaper);
3713
3761
  const ink = inkBounds(layout);
3714
3762
  const clip = { x: -TEXT_RENDER_MARGIN, y: -TEXT_RENDER_MARGIN, width: env.width + 2 * TEXT_RENDER_MARGIN, height: env.height + 2 * TEXT_RENDER_MARGIN };
3715
3763
  const region = ink ? intersect2(docRect(ink, textMatrix(layer)), clip) : null;
@@ -3810,7 +3858,7 @@ function patchParagraphStyle(base, patch, path = "paragraph") {
3810
3858
  continue;
3811
3859
  }
3812
3860
  const value = k === "autoLeading" ? num(v, `${path}.${k}`, 0.1, 10) : num(v, `${path}.${k}`, -1e4, 1e4);
3813
- if (k === "autoLeading" && value === _chunkOKHKA43Lcjs.DEFAULT_AUTO_LEADING || k !== "autoLeading" && value === 0) delete o[k];
3861
+ if (k === "autoLeading" && value === _chunkJBB3GDBBcjs.DEFAULT_AUTO_LEADING || k !== "autoLeading" && value === 0) delete o[k];
3814
3862
  else o[k] = value;
3815
3863
  } else fail3(`${path}.${k} is not a paragraph style field; use ${PARAGRAPH_STYLE_FIELDS.join(", ")}.`);
3816
3864
  }
@@ -3851,15 +3899,15 @@ function createTypeLayer(init, env, id = newLayerId(), lenient = false) {
3851
3899
  opacity: 1,
3852
3900
  blend: "normal",
3853
3901
  text: text3,
3854
- runs: _chunkOKHKA43Lcjs.fitRuns.call(void 0, init.runs, text3.length, _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE),
3855
- paragraphs: _chunkOKHKA43Lcjs.fitParagraphRuns.call(void 0, _nullishCoalesce(init.paragraphs, () => ( [{ length: text3.length, style: {} }])), text3),
3902
+ runs: _chunkJBB3GDBBcjs.fitRuns.call(void 0, init.runs, text3.length, _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE),
3903
+ paragraphs: _chunkJBB3GDBBcjs.fitParagraphRuns.call(void 0, _nullishCoalesce(init.paragraphs, () => ( [{ length: text3.length, style: {} }])), text3),
3856
3904
  frame: init.frame,
3857
3905
  ...init.orientation === "vertical" ? { orientation: "vertical" } : {},
3858
3906
  surface: _chunk474IQG74cjs.emptySurface.call(void 0, 4),
3859
3907
  offset: { x: 0, y: 0 }
3860
3908
  };
3861
- if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([init, 'access', _79 => _79.runs, 'access', _80 => _80[0], 'optionalAccess', _81 => _81.style]), () => ( _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE)) }];
3862
- if (init.transform && !_chunkOKHKA43Lcjs.isIdentityMatrix.call(void 0, init.transform)) layer.transform = init.transform;
3909
+ if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([init, 'access', _79 => _79.runs, 'access', _80 => _80[0], 'optionalAccess', _81 => _81.style]), () => ( _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE)) }];
3910
+ if (init.transform && !_chunkJBB3GDBBcjs.isIdentityMatrix.call(void 0, init.transform)) layer.transform = init.transform;
3863
3911
  if (lenient && !renderText(layer, env)) return { ...layer, rendering: "stored" };
3864
3912
  return rerenderText(layer, env);
3865
3913
  }
@@ -3870,24 +3918,24 @@ function updateTypeLayer(layers, id, change, env, action = "edit it") {
3870
3918
  const next = { ...current, ...patch };
3871
3919
  if (!("annotation" in patch)) delete next.annotation;
3872
3920
  if (next.orientation !== "vertical") delete next.orientation;
3873
- if ("text" in patch || "runs" in patch) next.runs = _chunkOKHKA43Lcjs.fitRuns.call(void 0, next.runs, next.text.length, _nullishCoalesce(_optionalChain([current, 'access', _82 => _82.runs, 'access', _83 => _83[0], 'optionalAccess', _84 => _84.style]), () => ( _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE)));
3874
- if (!next.runs.length) next.runs = [{ length: 0, style: _chunkOKHKA43Lcjs.styleAt.call(void 0, current.runs, 0, _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE) }];
3875
- if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkOKHKA43Lcjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
3921
+ if ("text" in patch || "runs" in patch) next.runs = _chunkJBB3GDBBcjs.fitRuns.call(void 0, next.runs, next.text.length, _nullishCoalesce(_optionalChain([current, 'access', _82 => _82.runs, 'access', _83 => _83[0], 'optionalAccess', _84 => _84.style]), () => ( _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE)));
3922
+ if (!next.runs.length) next.runs = [{ length: 0, style: _chunkJBB3GDBBcjs.styleAt.call(void 0, current.runs, 0, _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE) }];
3923
+ if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkJBB3GDBBcjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
3876
3924
  const rendered = rerenderText(next, env);
3877
3925
  return { layers: _chunkPVJMTLPJcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
3878
3926
  }
3879
3927
  function replaceTextRange(layer, start, end, insert) {
3880
3928
  const text3 = layer.text.slice(0, start) + insert + layer.text.slice(end);
3881
- const style = _chunkOKHKA43Lcjs.styleAt.call(void 0, layer.runs, start > 0 && start === layer.text.length ? start - 1 : start, _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE);
3882
- const runs = _chunkOKHKA43Lcjs.spliceRuns.call(void 0, layer.runs, start, end, insert.length, style);
3883
- const pstyle = _chunkOKHKA43Lcjs.styleAt.call(void 0, layer.paragraphs, start, {});
3884
- const paragraphs = _chunkOKHKA43Lcjs.spliceRuns.call(void 0, layer.paragraphs, start, end, insert.length, pstyle);
3885
- return { text: text3, runs, paragraphs: _chunkOKHKA43Lcjs.fitParagraphRuns.call(void 0, paragraphs, text3) };
3929
+ const style = _chunkJBB3GDBBcjs.styleAt.call(void 0, layer.runs, start > 0 && start === layer.text.length ? start - 1 : start, _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE);
3930
+ const runs = _chunkJBB3GDBBcjs.spliceRuns.call(void 0, layer.runs, start, end, insert.length, style);
3931
+ const pstyle = _chunkJBB3GDBBcjs.styleAt.call(void 0, layer.paragraphs, start, {});
3932
+ const paragraphs = _chunkJBB3GDBBcjs.spliceRuns.call(void 0, layer.paragraphs, start, end, insert.length, pstyle);
3933
+ return { text: text3, runs, paragraphs: _chunkJBB3GDBBcjs.fitParagraphRuns.call(void 0, paragraphs, text3) };
3886
3934
  }
3887
3935
  function transformTypeLayer(layer, m) {
3888
- const t = _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, textMatrix(layer), m);
3936
+ const t = _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, textMatrix(layer), m);
3889
3937
  const next = { ...layer };
3890
- if (_chunkOKHKA43Lcjs.isIdentityMatrix.call(void 0, t)) delete next.transform;
3938
+ if (_chunkJBB3GDBBcjs.isIdentityMatrix.call(void 0, t)) delete next.transform;
3891
3939
  else next.transform = t;
3892
3940
  delete next.annotation;
3893
3941
  return next;
@@ -3895,7 +3943,7 @@ function transformTypeLayer(layer, m) {
3895
3943
  function typeFrame(layer, shaper) {
3896
3944
  if (layer.frame.kind === "box") return { x: 0, y: 0, width: layer.frame.width, height: layer.frame.height };
3897
3945
  if (!shaper) return fail3("Type layers need a text shaper to be measured; none is set here.");
3898
- const b = _chunkOKHKA43Lcjs.layoutText.call(void 0, layer, shaper).bounds;
3946
+ const b = _chunkJBB3GDBBcjs.layoutText.call(void 0, layer, shaper).bounds;
3899
3947
  return { x: b.x, y: b.y, width: Math.max(b.width, 1), height: Math.max(b.height, 1) };
3900
3948
  }
3901
3949
  function typeAsPixelLayer(layer) {
@@ -3903,7 +3951,7 @@ function typeAsPixelLayer(layer) {
3903
3951
  return { ...rest, type: "pixel", surface: layer.surface, offset: { x: 0, y: 0 } };
3904
3952
  }
3905
3953
  function toTextSpace(layer, p) {
3906
- return _chunkOKHKA43Lcjs.applyMatrix.call(void 0, _chunkOKHKA43Lcjs.invertMatrix.call(void 0, textMatrix(layer)), p);
3954
+ return _chunkJBB3GDBBcjs.applyMatrix.call(void 0, _chunkJBB3GDBBcjs.invertMatrix.call(void 0, textMatrix(layer)), p);
3907
3955
  }
3908
3956
  function typeFromAnnotation(a) {
3909
3957
  if (a.type !== "text") return null;
@@ -3917,7 +3965,7 @@ function typeFromAnnotation(a) {
3917
3965
  if (op !== 1) style.opacity = op;
3918
3966
  const text3 = t.text.replace(/\r?\n|\r/g, " ");
3919
3967
  const translate = [1, 0, 0, 1, t.x, t.y];
3920
- const transform = t.rotation ? _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, translate, _chunkOKHKA43Lcjs.rotateMatrix.call(void 0, t.rotation, { x: t.x, y: t.y })) : translate;
3968
+ const transform = t.rotation ? _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, translate, _chunkJBB3GDBBcjs.rotateMatrix.call(void 0, t.rotation, { x: t.x, y: t.y })) : translate;
3921
3969
  return { text: text3, runs: [{ length: text3.length, style }], frame: { kind: "point", origin: "top" }, transform };
3922
3970
  }
3923
3971
  function annotationOfType(layer) {
@@ -4557,7 +4605,7 @@ function identityTransform(box2) {
4557
4605
  }
4558
4606
  function cornersFromMatrix(box2, m) {
4559
4607
  const q2 = _chunkQT26RHKKcjs.boxQuad.call(void 0, box2);
4560
- return [_chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[0]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[1]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[2]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[3])];
4608
+ return [_chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[0]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[1]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[2]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[3])];
4561
4609
  }
4562
4610
  function matrixFromCorners(box2, corners, eps = 1e-6) {
4563
4611
  const [tl, tr, br, bl] = corners;
@@ -4574,7 +4622,7 @@ function transformHomography(geometry) {
4574
4622
  function hasWarp(geometry) {
4575
4623
  const w = geometry.warp;
4576
4624
  if (!w) return false;
4577
- const id = _chunkOKHKA43Lcjs.identityWarpMesh.call(void 0, geometry.box, w.us.length - 1, w.vs.length - 1);
4625
+ const id = _chunkJBB3GDBBcjs.identityWarpMesh.call(void 0, geometry.box, w.us.length - 1, w.vs.length - 1);
4578
4626
  if (id.points.length !== w.points.length || id.us.some((u, i) => Math.abs(u - w.us[i]) > 1e-12) || id.vs.some((v, i) => Math.abs(v - w.vs[i]) > 1e-12)) return true;
4579
4627
  return w.points.some((p, i) => Math.abs(p.x - id.points[i].x) > 1e-6 || Math.abs(p.y - id.points[i].y) > 1e-6);
4580
4628
  }
@@ -4589,7 +4637,7 @@ function transformMap(geometry) {
4589
4637
  const { box: box2 } = geometry;
4590
4638
  const warp = hasWarp(geometry) ? geometry.warp : null;
4591
4639
  if (!warp) return (p) => _chunkQT26RHKKcjs.applyHomography.call(void 0, h, p);
4592
- return (p) => _chunkQT26RHKKcjs.applyHomography.call(void 0, h, _chunkOKHKA43Lcjs.evalWarpMesh.call(void 0, warp, (p.x - box2.x) / box2.width, (p.y - box2.y) / box2.height));
4640
+ return (p) => _chunkQT26RHKKcjs.applyHomography.call(void 0, h, _chunkJBB3GDBBcjs.evalWarpMesh.call(void 0, warp, (p.x - box2.x) / box2.width, (p.y - box2.y) / box2.height));
4593
4641
  }
4594
4642
  function transformedPoint(geometry, fx, fy) {
4595
4643
  const f = transformMap(geometry);
@@ -4633,8 +4681,8 @@ function matrixFromParams(box2, params) {
4633
4681
  const tx = Math.tan((_nullishCoalesce(params.skewX, () => ( 0))) * Math.PI / 180);
4634
4682
  const ty = Math.tan((_nullishCoalesce(params.skewY, () => ( 0))) * Math.PI / 180);
4635
4683
  const ref = referencePoint(box2, params.reference);
4636
- const linear = _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, [1, ty, tx, 1, 0, 0], [sx, 0, 0, sy, 0, 0]), _chunkOKHKA43Lcjs.rotateMatrix.call(void 0, _nullishCoalesce(params.rotate, () => ( 0))));
4637
- return _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, _chunkOKHKA43Lcjs.matrixAbout.call(void 0, linear, ref), _chunkOKHKA43Lcjs.translateMatrix.call(void 0, _nullishCoalesce(params.dx, () => ( 0)), _nullishCoalesce(params.dy, () => ( 0))));
4684
+ const linear = _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, [1, ty, tx, 1, 0, 0], [sx, 0, 0, sy, 0, 0]), _chunkJBB3GDBBcjs.rotateMatrix.call(void 0, _nullishCoalesce(params.rotate, () => ( 0))));
4685
+ return _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, _chunkJBB3GDBBcjs.matrixAbout.call(void 0, linear, ref), _chunkJBB3GDBBcjs.translateMatrix.call(void 0, _nullishCoalesce(params.dx, () => ( 0)), _nullishCoalesce(params.dy, () => ( 0))));
4638
4686
  }
4639
4687
  function describeTransform(geometry, reference = "center") {
4640
4688
  const m = hasWarp(geometry) ? null : matrixFromCorners(geometry.box, geometry.corners);
@@ -4651,7 +4699,7 @@ function describeTransform(geometry, reference = "center") {
4651
4699
  const shear = sxAbs ? (a * c + b * d) / sxAbs : 0;
4652
4700
  const sy = sxAbs ? (a * d - b * c) / sxAbs : 0;
4653
4701
  const skew = sxAbs ? Math.atan(shear / sxAbs) * 180 / Math.PI : 0;
4654
- const at = _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, ref);
4702
+ const at = _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, ref);
4655
4703
  const clean = (v) => Math.abs(v) < 1e-9 ? 0 : v;
4656
4704
  return {
4657
4705
  affine: true,
@@ -4669,24 +4717,24 @@ function applyParams(geometry, params) {
4669
4717
  const ref = params.reference && typeof params.reference === "object" ? params.reference : anchorPoint(geometry, _nullishCoalesce(params.reference, () => ( "center")));
4670
4718
  const m = matrixFromParams({ x: ref.x, y: ref.y, width: 0, height: 0 }, { ...params, reference: ref });
4671
4719
  const c = geometry.corners;
4672
- return [_chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, c[0]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, c[1]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, c[2]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, c[3])];
4720
+ return [_chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, c[0]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, c[1]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, c[2]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, c[3])];
4673
4721
  }
4674
4722
  function flipCorners(geometry, axis) {
4675
4723
  const c = anchorPoint(geometry, "center");
4676
4724
  const m = axis === "horizontal" ? [-1, 0, 0, 1, 2 * c.x, 0] : [1, 0, 0, -1, 0, 2 * c.y];
4677
4725
  const q2 = geometry.corners;
4678
- return [_chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[0]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[1]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[2]), _chunkOKHKA43Lcjs.applyMatrix.call(void 0, m, q2[3])];
4726
+ return [_chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[0]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[1]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[2]), _chunkJBB3GDBBcjs.applyMatrix.call(void 0, m, q2[3])];
4679
4727
  }
4680
4728
  function boxPointOf(geometry, p) {
4681
4729
  const m = matrixFromCorners(geometry.box, geometry.corners);
4682
- if (m) return _chunkOKHKA43Lcjs.applyMatrix.call(void 0, _chunkOKHKA43Lcjs.invertMatrix.call(void 0, m), p);
4730
+ if (m) return _chunkJBB3GDBBcjs.applyMatrix.call(void 0, _chunkJBB3GDBBcjs.invertMatrix.call(void 0, m), p);
4683
4731
  return null;
4684
4732
  }
4685
4733
  function presetWarp(box2, preset) {
4686
- return _chunkOKHKA43Lcjs.warpPresetMesh.call(void 0, preset, box2);
4734
+ return _chunkJBB3GDBBcjs.warpPresetMesh.call(void 0, preset, box2);
4687
4735
  }
4688
4736
  function isValidWarp(mesh) {
4689
- return _chunkOKHKA43Lcjs.isValidWarpMesh.call(void 0, mesh);
4737
+ return _chunkJBB3GDBBcjs.isValidWarpMesh.call(void 0, mesh);
4690
4738
  }
4691
4739
  function geometryHomography(geometry) {
4692
4740
  const m = matrixFromCorners(geometry.box, geometry.corners);
@@ -4965,7 +5013,7 @@ function normalizePlacement(raw, contents) {
4965
5013
  }
4966
5014
  const out = { corners: c.map((p) => ({ x: p.x, y: p.y })) };
4967
5015
  if (raw.warp) {
4968
- if (!_chunkOKHKA43Lcjs.isValidWarpMesh.call(void 0, raw.warp)) fail4("warp must be a mesh with us and vs (knots from 0 to 1, increasing) and (3\xB7columns + 1) \xD7 (3\xB7rows + 1) finite points in contents pixels.");
5016
+ if (!_chunkJBB3GDBBcjs.isValidWarpMesh.call(void 0, raw.warp)) fail4("warp must be a mesh with us and vs (knots from 0 to 1, increasing) and (3\xB7columns + 1) \xD7 (3\xB7rows + 1) finite points in contents pixels.");
4969
5017
  out.warp = { us: [...raw.warp.us], vs: [...raw.warp.vs], points: raw.warp.points.map((p) => ({ x: p.x, y: p.y })) };
4970
5018
  }
4971
5019
  if (raw.interpolation !== void 0) {
@@ -5069,7 +5117,7 @@ function translateLayer(layer, dx, dy) {
5069
5117
  case "shape": {
5070
5118
  const next = {
5071
5119
  ...layer,
5072
- components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), _chunkOKHKA43Lcjs.translateMatrix.call(void 0, dx, dy)),
5120
+ components: transformShapeComponents(layer.components, (p) => ({ x: p.x + dx, y: p.y + dy }), _chunkJBB3GDBBcjs.translateMatrix.call(void 0, dx, dy)),
5073
5121
  surface: _chunk474IQG74cjs.translateSurface.call(void 0, layer.surface, dx, dy),
5074
5122
  mask: moveMask(layer.mask)
5075
5123
  };
@@ -5078,7 +5126,7 @@ function translateLayer(layer, dx, dy) {
5078
5126
  return next;
5079
5127
  }
5080
5128
  case "type": {
5081
- const next = { ...transformTypeLayer(layer, _chunkOKHKA43Lcjs.translateMatrix.call(void 0, dx, dy)), surface: _chunk474IQG74cjs.translateSurface.call(void 0, layer.surface, dx, dy), mask: moveMask(layer.mask) };
5129
+ const next = { ...transformTypeLayer(layer, _chunkJBB3GDBBcjs.translateMatrix.call(void 0, dx, dy)), surface: _chunk474IQG74cjs.translateSurface.call(void 0, layer.surface, dx, dy), mask: moveMask(layer.mask) };
5082
5130
  if (!next.mask) delete next.mask;
5083
5131
  return next;
5084
5132
  }
@@ -5264,7 +5312,7 @@ function refitPlacement(layer, contents) {
5264
5312
  });
5265
5313
  const out = { corners: pts };
5266
5314
  if (layer.placement.interpolation) out.interpolation = layer.placement.interpolation;
5267
- if (layer.placement.warp) out.warp = _chunkOKHKA43Lcjs.mapWarpMeshPoints.call(void 0, layer.placement.warp, (p) => ({ x: p.x * W1 / W0, y: p.y * H1 / H0 }));
5315
+ if (layer.placement.warp) out.warp = _chunkJBB3GDBBcjs.mapWarpMeshPoints.call(void 0, layer.placement.warp, (p) => ({ x: p.x * W1 / W0, y: p.y * H1 / H0 }));
5268
5316
  return out;
5269
5317
  }
5270
5318
  function normalizeSmartFilter(raw, id = newLayerId("flt")) {
@@ -5641,7 +5689,7 @@ function readType(r, base, ctx) {
5641
5689
  const text3 = normalizeText(_nullishCoalesce(r.text, () => ( "")));
5642
5690
  const runs = (Array.isArray(r.runs) ? r.runs : []).map((run, i) => ({
5643
5691
  length: Math.max(0, Math.floor(num2(_optionalChain([run, 'optionalAccess', _166 => _166.length]), 0, 1e9, 0))),
5644
- style: patchTextStyle(_chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE, _optionalChain([run, 'optionalAccess', _167 => _167.style]) && typeof run.style === "object" ? run.style : {}, `runs[${i}].style`)
5692
+ style: patchTextStyle(_chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE, _optionalChain([run, 'optionalAccess', _167 => _167.style]) && typeof run.style === "object" ? run.style : {}, `runs[${i}].style`)
5645
5693
  }));
5646
5694
  const paragraphs = (Array.isArray(r.paragraphs) ? r.paragraphs : []).map((p, i) => ({
5647
5695
  length: Math.max(0, Math.floor(num2(_optionalChain([p, 'optionalAccess', _168 => _168.length]), 0, 1e9, 0))),
@@ -5654,13 +5702,13 @@ function readType(r, base, ctx) {
5654
5702
  ...base,
5655
5703
  type: "type",
5656
5704
  text: text3,
5657
- runs: _chunkOKHKA43Lcjs.fitRuns.call(void 0, runs, text3.length, _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE),
5658
- paragraphs: _chunkOKHKA43Lcjs.fitParagraphRuns.call(void 0, paragraphs.length ? paragraphs : [{ length: text3.length, style: {} }], text3),
5705
+ runs: _chunkJBB3GDBBcjs.fitRuns.call(void 0, runs, text3.length, _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE),
5706
+ paragraphs: _chunkJBB3GDBBcjs.fitParagraphRuns.call(void 0, paragraphs.length ? paragraphs : [{ length: text3.length, style: {} }], text3),
5659
5707
  frame,
5660
5708
  surface: _chunk474IQG74cjs.emptySurface.call(void 0, 4),
5661
5709
  offset: { x: 0, y: 0 }
5662
5710
  };
5663
- if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([runs, 'access', _172 => _172[0], 'optionalAccess', _173 => _173.style]), () => ( _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE)) }];
5711
+ if (!layer.runs.length) layer.runs = [{ length: 0, style: _nullishCoalesce(_optionalChain([runs, 'access', _172 => _172[0], 'optionalAccess', _173 => _173.style]), () => ( _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE)) }];
5664
5712
  if (m) layer.transform = m;
5665
5713
  if (r.orientation === "vertical") layer.orientation = "vertical";
5666
5714
  if (r.antiAlias === false) layer.antiAlias = false;
@@ -6130,7 +6178,7 @@ function readSmartObject(r, base, ctx) {
6130
6178
  let placement;
6131
6179
  try {
6132
6180
  const raw = { corners: p.corners };
6133
- if (p.warp && _chunkOKHKA43Lcjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6181
+ if (p.warp && _chunkJBB3GDBBcjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6134
6182
  if (_chunkPVJMTLPJcjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6135
6183
  placement = normalizePlacement(raw, contents);
6136
6184
  } catch (e) {
@@ -7301,7 +7349,7 @@ function vectorBlockForComponents(components, inverted, width, height, flags = 0
7301
7349
  const fr = (p) => ({ x: p.x / w, y: p.y / h });
7302
7350
  const subpaths = [];
7303
7351
  components.forEach((c, ci) => {
7304
- _chunkOKHKA43Lcjs.expandVectorCorners.call(void 0, c.subpaths).forEach((sp, si) => {
7352
+ _chunkJBB3GDBBcjs.expandVectorCorners.call(void 0, c.subpaths).forEach((sp, si) => {
7305
7353
  if (!sp.anchors.length) return;
7306
7354
  subpaths.push({
7307
7355
  closed: sp.closed,
@@ -8127,7 +8175,7 @@ function merged(levels) {
8127
8175
  function charStyle(d, fonts, notes, vertical = false) {
8128
8176
  const n = (k) => eNum(eGet(d, k));
8129
8177
  const flag = (k) => eBool(eGet(d, k));
8130
- const s = { ..._chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE };
8178
+ const s = { ..._chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE };
8131
8179
  const fi = n("Font");
8132
8180
  const ps = fi !== void 0 ? fonts[fi] : void 0;
8133
8181
  if (ps) {
@@ -8212,7 +8260,7 @@ function typeFromTySh(data, notes) {
8212
8260
  }
8213
8261
  const edText = _nullishCoalesce(eStr(ePath(_nullishCoalesce(engine, () => ( void 0)), ["EngineDict", "Editor", "Text"])), () => ( ""));
8214
8262
  const text3 = (_nullishCoalesce(txt, () => ( edText.replace(/\r$/, "")))).replace(/\r\n?/g, "\n");
8215
- let runs = [{ length: text3.length, style: { ..._chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE } }];
8263
+ let runs = [{ length: text3.length, style: { ..._chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE } }];
8216
8264
  let paragraphs = [{ length: text3.length, style: {} }];
8217
8265
  let frame = { kind: "point" };
8218
8266
  let transform = t.transform;
@@ -8268,14 +8316,14 @@ function typeFromTySh(data, notes) {
8268
8316
  const b = eArray(ePath(shape, ["Cookie", "Photoshop", "BoxBounds"])).map((v) => _nullishCoalesce(eNum(v), () => ( 0)));
8269
8317
  if (b.length === 4 && b[2] > b[0] && b[3] > b[1]) {
8270
8318
  frame = { kind: "box", width: b[2] - b[0], height: b[3] - b[1] };
8271
- transform = _chunkOKHKA43Lcjs.multiplyMatrices.call(void 0, [1, 0, 0, 1, b[0], b[1]], t.transform);
8319
+ transform = _chunkJBB3GDBBcjs.multiplyMatrices.call(void 0, [1, 0, 0, 1, b[0], b[1]], t.transform);
8272
8320
  }
8273
8321
  }
8274
8322
  }
8275
8323
  return {
8276
8324
  text: text3,
8277
- runs: _chunkOKHKA43Lcjs.fitRuns.call(void 0, runs, text3.length, _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE),
8278
- paragraphs: _chunkOKHKA43Lcjs.fitParagraphRuns.call(void 0, paragraphs, text3),
8325
+ runs: _chunkJBB3GDBBcjs.fitRuns.call(void 0, runs, text3.length, _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE),
8326
+ paragraphs: _chunkJBB3GDBBcjs.fitParagraphRuns.call(void 0, paragraphs, text3),
8279
8327
  frame,
8280
8328
  orientation: vertical ? "vertical" : "horizontal",
8281
8329
  transform,
@@ -8351,7 +8399,7 @@ function buildEngineData(layer, template) {
8351
8399
  fonts.push(ps);
8352
8400
  return fonts.length - 1;
8353
8401
  };
8354
- const runs = _chunkOKHKA43Lcjs.fitRuns.call(void 0, layer.runs, layer.text.length, _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE);
8402
+ const runs = _chunkJBB3GDBBcjs.fitRuns.call(void 0, layer.runs, layer.text.length, _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE);
8355
8403
  const vertical = layer.orientation === "vertical";
8356
8404
  const sruns = [];
8357
8405
  const slens = [];
@@ -8360,10 +8408,10 @@ function buildEngineData(layer, template) {
8360
8408
  slens.push(E.int(r.length + (i === runs.length - 1 ? 1 : 0)));
8361
8409
  });
8362
8410
  if (!runs.length) {
8363
- sruns.push(E.dict([["StyleSheet", E.dict([["StyleSheetData", styleSheetData(_chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE, fontIndex(postScriptFor(_chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE)))]])]]));
8411
+ sruns.push(E.dict([["StyleSheet", E.dict([["StyleSheetData", styleSheetData(_chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE, fontIndex(postScriptFor(_chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE)))]])]]));
8364
8412
  slens.push(E.int(1));
8365
8413
  }
8366
- const paras = _chunkOKHKA43Lcjs.fitParagraphRuns.call(void 0, layer.paragraphs, layer.text);
8414
+ const paras = _chunkJBB3GDBBcjs.fitParagraphRuns.call(void 0, layer.paragraphs, layer.text);
8367
8415
  const pruns = [];
8368
8416
  const plens = [];
8369
8417
  paras.forEach((p, i) => {
@@ -8419,7 +8467,7 @@ function buildEngineData(layer, template) {
8419
8467
  eSet(e, key, rd);
8420
8468
  }
8421
8469
  eSet(rd, "FontSet", fontSet);
8422
- if (!eGet(rd, "StyleSheetSet")) eSet(rd, "StyleSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["StyleSheetData", styleSheetData(_nullishCoalesce(_optionalChain([runs, 'access', _248 => _248[0], 'optionalAccess', _249 => _249.style]), () => ( _chunkOKHKA43Lcjs.DEFAULT_TEXT_STYLE)), 0)]])]));
8470
+ if (!eGet(rd, "StyleSheetSet")) eSet(rd, "StyleSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["StyleSheetData", styleSheetData(_nullishCoalesce(_optionalChain([runs, 'access', _248 => _248[0], 'optionalAccess', _249 => _249.style]), () => ( _chunkJBB3GDBBcjs.DEFAULT_TEXT_STYLE)), 0)]])]));
8423
8471
  if (!eGet(rd, "ParagraphSheetSet")) eSet(rd, "ParagraphSheetSet", E.array([E.dict([["Name", E.str("Normal RGB")], ["DefaultStyleSheet", E.int(0)], ["Properties", paragraphProperties({})]])]));
8424
8472
  if (!eGet(rd, "TheNormalStyleSheet")) eSet(rd, "TheNormalStyleSheet", E.int(0));
8425
8473
  if (!eGet(rd, "TheNormalParagraphSheet")) eSet(rd, "TheNormalParagraphSheet", E.int(0));
@@ -8430,13 +8478,13 @@ function inkBounds2(layer) {
8430
8478
  if (layer.frame.kind === "box") return [0, 0, layer.frame.width, layer.frame.height];
8431
8479
  const b = _chunk474IQG74cjs.contentBounds.call(void 0, layer.surface);
8432
8480
  if (!b) return [0, 0, 0, 0];
8433
- const inv = _chunkOKHKA43Lcjs.invertMatrix.call(void 0, textMatrix(layer));
8481
+ const inv = _chunkJBB3GDBBcjs.invertMatrix.call(void 0, textMatrix(layer));
8434
8482
  const pts = [
8435
8483
  { x: b.x, y: b.y },
8436
8484
  { x: b.x + b.width, y: b.y },
8437
8485
  { x: b.x + b.width, y: b.y + b.height },
8438
8486
  { x: b.x, y: b.y + b.height }
8439
- ].map((p) => _chunkOKHKA43Lcjs.applyMatrix.call(void 0, inv, p));
8487
+ ].map((p) => _chunkJBB3GDBBcjs.applyMatrix.call(void 0, inv, p));
8440
8488
  return [Math.min(...pts.map((p) => p.x)), Math.min(...pts.map((p) => p.y)), Math.max(...pts.map((p) => p.x)), Math.max(...pts.map((p) => p.y))];
8441
8489
  }
8442
8490
  function tyShForLayer(layer) {
@@ -8717,7 +8765,7 @@ function filterMaskItem(placed, mask, area) {
8717
8765
  var warpStyleOf = (name) => {
8718
8766
  if (!name.startsWith("warp")) return null;
8719
8767
  const s = _optionalChain([name, 'access', _263 => _263[4], 'optionalAccess', _264 => _264.toLowerCase, 'call', _265 => _265()]) + name.slice(5);
8720
- return _chunkOKHKA43Lcjs.WARP_STYLES.includes(s) ? s : null;
8768
+ return _chunkJBB3GDBBcjs.WARP_STYLES.includes(s) ? s : null;
8721
8769
  };
8722
8770
  function warpFromDescriptor(w, contents) {
8723
8771
  const full = { x: 0, y: 0, width: contents.width, height: contents.height };
@@ -8747,7 +8795,7 @@ function warpFromDescriptor(w, contents) {
8747
8795
  } else {
8748
8796
  const style = warpStyleOf(styleName);
8749
8797
  if (!style) return void 0;
8750
- mesh = _chunkOKHKA43Lcjs.warpPresetMesh.call(void 0,
8798
+ mesh = _chunkJBB3GDBBcjs.warpPresetMesh.call(void 0,
8751
8799
  {
8752
8800
  style,
8753
8801
  bend: _nullishCoalesce(descNumber(w, "warpValue"), () => ( 0)),
@@ -8762,7 +8810,7 @@ function warpFromDescriptor(w, contents) {
8762
8810
  const same = Math.abs(bounds.x) < 1e-6 && Math.abs(bounds.y) < 1e-6 && Math.abs(bounds.width - contents.width) < 1e-6 && Math.abs(bounds.height - contents.height) < 1e-6;
8763
8811
  if (!same) {
8764
8812
  const m = mesh;
8765
- mesh = _chunkOKHKA43Lcjs.fitWarpMesh.call(void 0, (s, t) => _chunkOKHKA43Lcjs.evalWarpMesh.call(void 0, m, (s * contents.width - bounds.x) / bounds.width, (t * contents.height - bounds.y) / bounds.height), [0, 1], [0, 1]);
8813
+ mesh = _chunkJBB3GDBBcjs.fitWarpMesh.call(void 0, (s, t) => _chunkJBB3GDBBcjs.evalWarpMesh.call(void 0, m, (s * contents.width - bounds.x) / bounds.width, (t * contents.height - bounds.y) / bounds.height), [0, 1], [0, 1]);
8766
8814
  }
8767
8815
  return { mesh, frame };
8768
8816
  }
@@ -10354,7 +10402,7 @@ function importSmart(ctx, rec, name, notes, props) {
10354
10402
  if (placement && (size.width !== contents.width || size.height !== contents.height)) {
10355
10403
  const kx = contents.width / size.width;
10356
10404
  const ky = contents.height / size.height;
10357
- if (placement.warp) placement = { ...placement, warp: _chunkOKHKA43Lcjs.mapWarpMeshPoints.call(void 0, placement.warp, (p) => ({ x: p.x * kx, y: p.y * ky })) };
10405
+ if (placement.warp) placement = { ...placement, warp: _chunkJBB3GDBBcjs.mapWarpMeshPoints.call(void 0, placement.warp, (p) => ({ x: p.x * kx, y: p.y * ky })) };
10358
10406
  }
10359
10407
  }
10360
10408
  if (!contents || !placement) {
@@ -12796,7 +12844,7 @@ function handlePaintShortcut(controller, e) {
12796
12844
  }
12797
12845
  if (key === "]" || key === "}") {
12798
12846
  if (e.shiftKey || key === "}") set({ hardness: Math.min(1, Math.round((brush.hardness + 0.25) * 4) / 4) });
12799
- else set({ size: Math.min(_chunkFQPUF2W2cjs.MAX_BRUSH_SIZE, brush.size + sizeStep(brush.size)) });
12847
+ else set({ size: Math.min(_chunkNIBFKXMDcjs.MAX_BRUSH_SIZE, brush.size + sizeStep(brush.size)) });
12800
12848
  return true;
12801
12849
  }
12802
12850
  if (/^[0-9]$/.test(key) && isPaintTool(controller.getState().activeTool)) {
@@ -13287,4 +13335,5 @@ var PaintGesture = (_class6 = class {
13287
13335
 
13288
13336
 
13289
13337
 
13290
- exports.LEGACY_PROCESS_VERSION = LEGACY_PROCESS_VERSION; exports.LATEST_PROCESS_VERSION = LATEST_PROCESS_VERSION; exports.normalizeProcessVersion = normalizeProcessVersion; exports.srgbToLinear = srgbToLinear; exports.linearToSrgb = linearToSrgb; exports.LUMA_709 = LUMA_709; exports.IDENTITY_MATRIX3 = IDENTITY_MATRIX3; exports.mulMatrix3 = mulMatrix3; exports.applyMatrix3 = applyMatrix3; exports.invertMatrix3 = invertMatrix3; exports.D65 = D65; exports.bradfordAdaptation = bradfordAdaptation; exports.wbMatrix = wbMatrix; exports.linearSrgbToXy = linearSrgbToXy; exports.TINT_SCALE = TINT_SCALE; exports.MIN_KELVIN = MIN_KELVIN; exports.MAX_KELVIN = MAX_KELVIN; exports.xyToUv = xyToUv; exports.uvToXy = uvToXy; exports.tempTintToXy = tempTintToXy; exports.xyToTempTint = xyToTempTint; exports.AS_SHOT_KELVIN = AS_SHOT_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = MIRED_PER_TEMPERATURE_UNIT; exports.temperatureToKelvin = temperatureToKelvin; exports.kelvinToTemperature = kelvinToTemperature; exports.whiteBalanceMatrix = whiteBalanceMatrix; exports.whiteBalanceFromSample = whiteBalanceFromSample; exports.TONE_LUT_SIZE = TONE_LUT_SIZE; exports.toneCurve = toneCurve; exports.buildToneLut = buildToneLut; exports.sampleToneLut = sampleToneLut; exports.normalizeAngle = normalizeAngle; exports.isQuarterTurnSwapped = isQuarterTurnSwapped; exports.getRotatedSize = getRotatedSize; exports.projectImagePoint = projectImagePoint; exports.unprojectCanvasPoint = unprojectCanvasPoint; exports.applyImageProjectionToContext = applyImageProjectionToContext; exports.projectImageRect = projectImageRect; exports.clampCropToImage = clampCropToImage; exports.MARGIN_FIT_MIN_GUTTER = MARGIN_FIT_MIN_GUTTER; exports.getViewportProjection = getViewportProjection; exports.getViewportMetrics = getViewportMetrics; exports.canvasToImagePoint = canvasToImagePoint; exports.imageToCanvasPoint = imageToCanvasPoint; exports.mapCropHandle = mapCropHandle; exports.hitTestCrop = hitTestCrop; exports.getCropCursor = getCropCursor; exports.calculateCropDrag = calculateCropDrag; exports.getAnnotationBounds = getAnnotationBounds; exports.hitTestAnnotation = hitTestAnnotation; exports.layerMaskSelection = layerMaskSelection; exports.normalizeLayerMask = normalizeLayerMask; exports.layerMaskFromSelection = layerMaskFromSelection; exports.updateLayerMaskProps = updateLayerMaskProps; exports.decodeLayerMask = decodeLayerMask; exports.layerMaskKey = layerMaskKey; exports.layerMaskCoverage = layerMaskCoverage; exports.projectMaskCoverage = projectMaskCoverage; exports.buildLayerMaskPlanes = buildLayerMaskPlanes; exports.ADJUSTMENT_LUT_SIZE = ADJUSTMENT_LUT_SIZE; exports.sampleLut = sampleLut; exports.ADJUSTMENT_KINDS = ADJUSTMENT_KINDS; exports.isAdjustmentKind = isAdjustmentKind; exports.adjustmentKindLabel = adjustmentKindLabel; exports.HUE_RANGE_LABELS = HUE_RANGE_LABELS; exports.neutralHueRange = neutralHueRange; exports.identityCurve = identityCurve; exports.identityLevels = identityLevels; exports.defaultAdjustmentParams = defaultAdjustmentParams; exports.createAdjustmentLayer = createAdjustmentLayer; exports.normalizeAdjustmentLayer = normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = normalizeAdjustmentLayers; exports.curveLutFromLevels = curveLutFromLevels; exports.levelsValue = levelsValue; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.hueRangeWeight = hueRangeWeight; exports.hueRangeTables = hueRangeTables; exports.hueSaturation = hueSaturation; exports.rangeLightness = rangeLightness; exports.VIBRANCE_GREY = VIBRANCE_GREY; exports.vibranceLinear = vibranceLinear; exports.vibrancePixel = vibrancePixel; exports.colorBalanceChannel = colorBalanceChannel; exports.blackWhiteGray = blackWhiteGray; exports.D50 = D50; exports.XYZ_D50_TO_SRGB = XYZ_D50_TO_SRGB; exports.photoFilterMatrix = photoFilterMatrix; exports.posterizeValue = posterizeValue; exports.rgbToGray = rgbToGray; exports.hexToRgb = hexToRgb; exports.toneLuts = toneLuts; exports.compileAdjustmentLayer = compileAdjustmentLayer; exports.activeAdjustmentLayers = activeAdjustmentLayers; exports.evaluateAdjustmentLayers = evaluateAdjustmentLayers; exports.applyAdjustmentLayers = applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = applyAdjustmentLayersFloat; exports.adjustmentLayersKey = adjustmentLayersKey; exports.applyAdjustments = applyAdjustments; exports.applyLegacyAdjustments = applyLegacyAdjustments; exports.applyLegacyFloat = applyLegacyFloat; exports.applyProcess2Adjustments = applyProcess2Adjustments; exports.applyProcess2Float = applyProcess2Float; exports.applyBoxBlurFloat = applyBoxBlurFloat; exports.applyBoxBlur = applyBoxBlur; exports.applyDepthMask = applyDepthMask; exports.removeAlpha = removeAlpha; exports.TEXT_ORIENTATIONS = TEXT_ORIENTATIONS; exports.TEXT_ALIGNS = TEXT_ALIGNS; exports.MAX_EFFECT_ANIMATION_MS = MAX_EFFECT_ANIMATION_MS; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.LIVE_SHAPE_KINDS = LIVE_SHAPE_KINDS; exports.newLayerId = newLayerId; exports.pixelLayers = pixelLayers; exports.developFilter = developFilter; exports.blurFilter = blurFilter; exports.isActiveFilter = isActiveFilter; exports.isSpatialFilter = isSpatialFilter; exports.pixelLayerBounds = pixelLayerBounds; exports.layerTypeLabel = layerTypeLabel; exports.hasSurface = hasSurface; exports.isRenderedLayer = isRenderedLayer; exports.shapeLayers = shapeLayers; exports.smartObjectLayers = smartObjectLayers; exports.LayerOperationError = LayerOperationError; exports.userErrorMessage = userErrorMessage; exports.isPaintableLayer = isPaintableLayer; exports.defaultActiveLayerId = defaultActiveLayerId; exports.activeLayerAfterRemoval = activeLayerAfterRemoval; exports.requireLayer = requireLayer; exports.requireUnlocked = requireUnlocked; exports.placeLayer = placeLayer; exports.removeLayer = removeLayer; exports.moveLayer = moveLayer; exports.withNewIds = withNewIds; exports.duplicateLayer = duplicateLayer; exports.setLayerProperties = setLayerProperties; exports.groupLayers = groupLayers; exports.ungroupLayer = ungroupLayer; exports.offsetLayer = offsetLayer; exports.setLayerMask = setLayerMask; exports.normalizeFilter = normalizeFilter; exports.addLayerFilter = addLayerFilter; exports.updateLayerFilter = updateLayerFilter; exports.removeLayerFilter = removeLayerFilter; exports.layerEffectsOf = layerEffectsOf; exports.setLayerEffects = setLayerEffects; exports.addLayerEffect = addLayerEffect; exports.updateLayerEffect = updateLayerEffect; exports.removeLayerEffect = removeLayerEffect; exports.setLayerEffectsEnabled = setLayerEffectsEnabled; exports.parseBlend = parseBlend; exports.unionRect = unionRect; exports.SHAPE_RENDER_MARGIN = SHAPE_RENDER_MARGIN; exports.DEFAULT_MITER_LIMIT = DEFAULT_MITER_LIMIT; exports.mapSubpaths = mapSubpaths; exports.liveShapeSubpaths = liveShapeSubpaths; exports.liveComponent = liveComponent; exports.componentPath = componentPath; exports.shapeOutline = shapeOutline; exports.shapeGeometryBounds = shapeGeometryBounds; exports.componentsCoverage = componentsCoverage; exports.shapeRenderClip = shapeRenderClip; exports.renderShapeRect = renderShapeRect; exports.renderShape = renderShape; exports.rerenderShape = rerenderShape; exports.normalizeShapePaint = normalizeShapePaint; exports.normalizeShapeStroke = normalizeShapeStroke; exports.normalizeLiveShape = normalizeLiveShape; exports.normalizeSubpaths = normalizeSubpaths; exports.requireOperation = requireOperation; exports.requireShapeLayer = requireShapeLayer; exports.createShapeLayer = createShapeLayer; exports.defaultShapeName = defaultShapeName; exports.updateShapeLayer = updateShapeLayer; exports.transformShapeComponents = transformShapeComponents; exports.offsetShape = offsetShape; exports.mergeShapeComponents = mergeShapeComponents; exports.shapeAsPixelLayer = shapeAsPixelLayer; exports.shapeFromAnnotation = shapeFromAnnotation; exports.annotationBlend = annotationBlend; exports.annotationOfShape = annotationOfShape; exports.VECTOR_MASK_EDGE_DEFAULTS = VECTOR_MASK_EDGE_DEFAULTS; exports.vectorMaskSegments = vectorMaskSegments; exports.validVectorMaskEdges = validVectorMaskEdges; exports.hybridVectorMaskCoverage = hybridVectorMaskCoverage; exports.isActiveVectorMask = isActiveVectorMask; exports.vectorMaskCoverage = vectorMaskCoverage; exports.layerGuide = layerGuide; exports.effectiveLayerMask = effectiveLayerMask; exports.resolveVectorMasks = resolveVectorMasks; exports.offsetVectorMask = offsetVectorMask; exports.transformVectorMask = transformVectorMask; exports.followLayerMove = followLayerMove; exports.vectorMaskBounds = vectorMaskBounds; exports.vectorMaskThumbnail = vectorMaskThumbnail; exports.EDGE_COLOR_RADIUS = EDGE_COLOR_RADIUS; exports.hasEdgeUnmix = hasEdgeUnmix; exports.maskCoverageOverCanvas = maskCoverageOverCanvas; exports.hasSoftBand = hasSoftBand; exports.despillEdge = despillEdge; exports.applyEdgeUnmix = applyEdgeUnmix; exports.adjustmentNodeAsLayer = adjustmentNodeAsLayer; exports.depthMaskAlpha = depthMaskAlpha; exports.runLayerFilters = runLayerFilters; exports.runLayerFiltersFloat = runLayerFiltersFloat; exports.LayerCompositor = LayerCompositor; exports.compositeDeep = compositeDeep; exports.DEFAULT_ADJUSTMENTS_VALUES = DEFAULT_ADJUSTMENTS_VALUES; exports.DEFAULT_TRANSFORM_VALUES = DEFAULT_TRANSFORM_VALUES; exports.DEFAULT_DEPTH_MASK_VALUES = DEFAULT_DEPTH_MASK_VALUES; exports.TEXT_RENDER_MARGIN = TEXT_RENDER_MARGIN; exports.textMatrix = textMatrix; exports.textOutlines = textOutlines; exports.renderText = renderText; exports.rerenderText = rerenderText; exports.TEXT_STYLE_FIELDS = TEXT_STYLE_FIELDS; exports.patchTextStyle = patchTextStyle; exports.PARAGRAPH_STYLE_FIELDS = PARAGRAPH_STYLE_FIELDS; exports.patchParagraphStyle = patchParagraphStyle; exports.textRange = textRange; exports.requireTypeLayer = requireTypeLayer; exports.normalizeText = normalizeText; exports.typeLayerName = typeLayerName; exports.textOrientation = textOrientation; exports.createTypeLayer = createTypeLayer; exports.updateTypeLayer = updateTypeLayer; exports.replaceTextRange = replaceTextRange; exports.transformTypeLayer = transformTypeLayer; exports.typeFrame = typeFrame; exports.typeAsPixelLayer = typeAsPixelLayer; exports.toTextSpace = toTextSpace; exports.typeFromAnnotation = typeFromAnnotation; exports.annotationOfType = annotationOfType; exports.BACKGROUND_LAYER_ID = BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = BACKGROUND_LAYER_NAME; exports.DEVELOP_FILTER_ID = DEVELOP_FILTER_ID; exports.BLUR_FILTER_ID = BLUR_FILTER_ID; exports.rasterMaskFromLegacy = rasterMaskFromLegacy; exports.hasResampledLegacyMask = hasResampledLegacyMask; exports.legacyMaskOf = legacyMaskOf; exports.isDefaultDepthMask = isDefaultDepthMask; exports.developFromAdjustments = developFromAdjustments; exports.annotationLayerName = annotationLayerName; exports.annotationLayerFor = annotationLayerFor; exports.annotationOfLayer = annotationOfLayer; exports.adjustmentNodeFromLegacy = adjustmentNodeFromLegacy; exports.backgroundLayer = backgroundLayer; exports.depthRasterMask = depthRasterMask; exports.layersFromLegacy = layersFromLegacy; exports.legacyAdjustmentLayer = legacyAdjustmentLayer; exports.developTarget = developTarget; exports.legacyView = legacyView; exports.isLegacyShape = isLegacyShape; exports.EdgeMap = EdgeMap; exports.snapToEdge = snapToEdge; exports.liveWire = liveWire; exports.simplifyPixelPath = simplifyPixelPath; exports.snapPolygonToEdges = snapPolygonToEdges; exports.magneticAnchorSpacing = magneticAnchorSpacing; exports.FREE_TRANSFORM_MODES = FREE_TRANSFORM_MODES; exports.TRANSFORM_ANCHORS = TRANSFORM_ANCHORS; exports.ANCHOR_FRACTION = ANCHOR_FRACTION; exports.isTransformAnchor = isTransformAnchor; exports.identityTransform = identityTransform; exports.cornersFromMatrix = cornersFromMatrix; exports.matrixFromCorners = matrixFromCorners; exports.transformHomography = transformHomography; exports.hasWarp = hasWarp; exports.isIdentityTransform = isIdentityTransform; exports.transformMap = transformMap; exports.transformedPoint = transformedPoint; exports.anchorPoint = anchorPoint; exports.transformedBox = transformedBox; exports.referencePoint = referencePoint; exports.matrixFromParams = matrixFromParams; exports.describeTransform = describeTransform; exports.applyParams = applyParams; exports.flipCorners = flipCorners; exports.boxPointOf = boxPointOf; exports.presetWarp = presetWarp; exports.isValidWarp = isValidWarp; exports.geometryHomography = geometryHomography; exports.SMART_RENDER_MARGIN = SMART_RENDER_MARGIN; exports.isSmartSurfaceIncomplete = isSmartSurfaceIncomplete; exports.newContentsId = newContentsId; exports.contentsBox = contentsBox; exports.placementGeometry = placementGeometry; exports.placementAt = placementAt; exports.isContentsDecoded = isContentsDecoded; exports.requireSmartObject = requireSmartObject; exports.contentsSurface = contentsSurface; exports.rasterContents = rasterContents; exports.documentContents = documentContents; exports.placeContents = placeContents; exports.activeSmartFilters = activeSmartFilters; exports.activeEffectSmartFilters = activeEffectSmartFilters; exports.filterMaskCoverage = filterMaskCoverage; exports.applySmartFilters = applySmartFilters; exports.renderSmartObject = renderSmartObject; exports.rerender = rerender; exports.normalizePlacement = normalizePlacement; exports.setSmartPlacement = setSmartPlacement; exports.offsetSmartObject = offsetSmartObject; exports.translateLayer = translateLayer; exports.convertToSmartObject = convertToSmartObject; exports.rasterizeSmartObject = rasterizeSmartObject; exports.copySmartObject = copySmartObject; exports.instancesOf = instancesOf; exports.replaceContents = replaceContents; exports.normalizeSmartFilter = normalizeSmartFilter; exports.addSmartFilter = addSmartFilter; exports.updateSmartFilter = updateSmartFilter; exports.removeSmartFilter = removeSmartFilter; exports.moveSmartFilter = moveSmartFilter; exports.setSmartFiltersEnabled = setSmartFiltersEnabled; exports.setSmartFilterMask = setSmartFilterMask; exports.withFilterMaskSurface = withFilterMaskSurface; exports.placementBounds = placementBounds; exports.LAYERED_SCHEMA_VERSION = LAYERED_SCHEMA_VERSION; exports.serializePatterns = serializePatterns; exports.deserializePatterns = deserializePatterns; exports.encodeSurface = encodeSurface; exports.encodeDeepSurface = encodeDeepSurface; exports.decodeDeepSurface = decodeDeepSurface; exports.readEdgeColor = readEdgeColor; exports.serializeEffects = serializeEffects; exports.deserializeEffects = deserializeEffects; exports.readShapeComponents = readShapeComponents; exports.serializeLayer = serializeLayer; exports.serializeContents = serializeContents; exports.serializeLayers = serializeLayers; exports.serializeLayersExternal = serializeLayersExternal; exports.resolveExternalAssets = resolveExternalAssets; exports.decodePngDataUrl = decodePngDataUrl; exports.deserializeLayer = deserializeLayer; exports.deserializeLayers = deserializeLayers; exports.PsdError = PsdError; exports.decodePlanes = decodePlanes; exports.encodeRle = encodeRle; exports.parseVersionedDescriptor = parseVersionedDescriptor; exports.versionedDescriptorBytes = versionedDescriptorBytes; exports.ADJUSTMENT_KEYS = ADJUSTMENT_KEYS; exports.SUPPORTED_ADJUSTMENT_KEYS = SUPPORTED_ADJUSTMENT_KEYS; exports.parseAdjustmentBlock = parseAdjustmentBlock; exports.writeAdjustmentBlock = writeAdjustmentBlock; exports.parseLfx2 = parseLfx2; exports.writeLfx2 = writeLfx2; exports.parseLrfx = parseLrfx; exports.BROWSER_IMAGE_TYPES = BROWSER_IMAGE_TYPES; exports.readPsd = readPsd; exports.layerName = layerName; exports.layerTree = layerTree; exports.decodeLayerChannel = decodeLayerChannel; exports.decodeMergedImage = decodeMergedImage; exports.writePsd = writePsd; exports.PATTERN_BLOCK_KEYS = PATTERN_BLOCK_KEYS; exports.parsePatternBlock = parsePatternBlock; exports.psdPatternToEffectPattern = psdPatternToEffectPattern; exports.writePatternBlock = writePatternBlock; exports.PSD_BLEND_KEYS = PSD_BLEND_KEYS; exports.psdToLayers = psdToLayers; exports.importPsd = importPsd; exports.smartContentsFile = smartContentsFile; exports.exportPsd = exportPsd; exports.SELECTION_TOOLS = SELECTION_TOOLS; exports.COLOR_RANGE_PRESET_LABELS = COLOR_RANGE_PRESET_LABELS; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.DEFAULT_SELECTION_TOOL_OPTIONS = DEFAULT_SELECTION_TOOL_OPTIONS; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.REFINE_OUTPUTS = REFINE_OUTPUTS; exports.describeSelection = describeSelection; exports.describeLayerEffects = describeLayerEffects; exports.createImageEffectTools = createImageEffectTools; exports.createLayerEffectTools = createLayerEffectTools; exports.snapTo45 = snapTo45; exports.SelectionGesture = SelectionGesture; exports.handleSelectionShortcut = handleSelectionShortcut; exports.handleMaskViewKey = handleMaskViewKey; exports.handleQuickMaskKey = handleQuickMaskKey; exports.BRUSH_OPTION_CONTROLS = BRUSH_OPTION_CONTROLS; exports.MIXER_OPTION_CONTROLS = MIXER_OPTION_CONTROLS; exports.MIXER_MIXING_OPTIONS = MIXER_MIXING_OPTIONS; exports.PAINT_TOOLS = PAINT_TOOLS; exports.isPaintTool = isPaintTool; exports.isRetouchPaintTool = isRetouchPaintTool; exports.RETOUCH_OPTION_CONTROLS = RETOUCH_OPTION_CONTROLS; exports.CLONE_TRANSFORM_CONTROLS = CLONE_TRANSFORM_CONTROLS; exports.cloneTransformView = cloneTransformView; exports.setCloneTransformValue = setCloneTransformValue; exports.RETOUCH_CHOICES = RETOUCH_CHOICES; exports.RETOUCH_TOGGLES = RETOUCH_TOGGLES; exports.setRetouchChoice = setRetouchChoice; exports.cloneSourceLabel = cloneSourceLabel; exports.rgbUnitToHex = rgbUnitToHex; exports.handlePaintShortcut = handlePaintShortcut; exports.PaintGesture = PaintGesture;
13338
+
13339
+ exports.LEGACY_PROCESS_VERSION = LEGACY_PROCESS_VERSION; exports.LATEST_PROCESS_VERSION = LATEST_PROCESS_VERSION; exports.normalizeProcessVersion = normalizeProcessVersion; exports.srgbToLinear = srgbToLinear; exports.linearToSrgb = linearToSrgb; exports.LUMA_709 = LUMA_709; exports.IDENTITY_MATRIX3 = IDENTITY_MATRIX3; exports.mulMatrix3 = mulMatrix3; exports.applyMatrix3 = applyMatrix3; exports.invertMatrix3 = invertMatrix3; exports.D65 = D65; exports.bradfordAdaptation = bradfordAdaptation; exports.wbMatrix = wbMatrix; exports.linearSrgbToXy = linearSrgbToXy; exports.TINT_SCALE = TINT_SCALE; exports.MIN_KELVIN = MIN_KELVIN; exports.MAX_KELVIN = MAX_KELVIN; exports.xyToUv = xyToUv; exports.uvToXy = uvToXy; exports.tempTintToXy = tempTintToXy; exports.xyToTempTint = xyToTempTint; exports.AS_SHOT_KELVIN = AS_SHOT_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = MIRED_PER_TEMPERATURE_UNIT; exports.temperatureToKelvin = temperatureToKelvin; exports.kelvinToTemperature = kelvinToTemperature; exports.whiteBalanceMatrix = whiteBalanceMatrix; exports.whiteBalanceFromSample = whiteBalanceFromSample; exports.TONE_LUT_SIZE = TONE_LUT_SIZE; exports.toneCurve = toneCurve; exports.buildToneLut = buildToneLut; exports.sampleToneLut = sampleToneLut; exports.normalizeAngle = normalizeAngle; exports.isQuarterTurnSwapped = isQuarterTurnSwapped; exports.getRotatedSize = getRotatedSize; exports.projectImagePoint = projectImagePoint; exports.unprojectCanvasPoint = unprojectCanvasPoint; exports.applyImageProjectionToContext = applyImageProjectionToContext; exports.projectImageRect = projectImageRect; exports.clampCropToImage = clampCropToImage; exports.MARGIN_FIT_MIN_GUTTER = MARGIN_FIT_MIN_GUTTER; exports.getViewportProjection = getViewportProjection; exports.getViewportMetrics = getViewportMetrics; exports.canvasToImagePoint = canvasToImagePoint; exports.imageToCanvasPoint = imageToCanvasPoint; exports.mapCropHandle = mapCropHandle; exports.hitTestCrop = hitTestCrop; exports.getCropCursor = getCropCursor; exports.calculateCropDrag = calculateCropDrag; exports.getAnnotationBounds = getAnnotationBounds; exports.hitTestAnnotation = hitTestAnnotation; exports.layerMaskSelection = layerMaskSelection; exports.normalizeLayerMask = normalizeLayerMask; exports.layerMaskFromSelection = layerMaskFromSelection; exports.updateLayerMaskProps = updateLayerMaskProps; exports.decodeLayerMask = decodeLayerMask; exports.layerMaskKey = layerMaskKey; exports.layerMaskCoverage = layerMaskCoverage; exports.projectMaskCoverage = projectMaskCoverage; exports.buildLayerMaskPlanes = buildLayerMaskPlanes; exports.ADJUSTMENT_LUT_SIZE = ADJUSTMENT_LUT_SIZE; exports.sampleLut = sampleLut; exports.ADJUSTMENT_KINDS = ADJUSTMENT_KINDS; exports.isAdjustmentKind = isAdjustmentKind; exports.adjustmentKindLabel = adjustmentKindLabel; exports.HUE_RANGE_LABELS = HUE_RANGE_LABELS; exports.neutralHueRange = neutralHueRange; exports.identityCurve = identityCurve; exports.identityLevels = identityLevels; exports.defaultAdjustmentParams = defaultAdjustmentParams; exports.createAdjustmentLayer = createAdjustmentLayer; exports.assertAdjustmentParams = assertAdjustmentParams; exports.normalizeAdjustmentLayer = normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = normalizeAdjustmentLayers; exports.curveLutFromLevels = curveLutFromLevels; exports.levelsValue = levelsValue; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.hueRangeWeight = hueRangeWeight; exports.hueRangeTables = hueRangeTables; exports.hueSaturation = hueSaturation; exports.rangeLightness = rangeLightness; exports.VIBRANCE_GREY = VIBRANCE_GREY; exports.vibranceLinear = vibranceLinear; exports.vibrancePixel = vibrancePixel; exports.colorBalanceChannel = colorBalanceChannel; exports.blackWhiteGray = blackWhiteGray; exports.D50 = D50; exports.XYZ_D50_TO_SRGB = XYZ_D50_TO_SRGB; exports.photoFilterMatrix = photoFilterMatrix; exports.posterizeValue = posterizeValue; exports.rgbToGray = rgbToGray; exports.hexToRgb = hexToRgb; exports.toneLuts = toneLuts; exports.compileAdjustmentLayer = compileAdjustmentLayer; exports.activeAdjustmentLayers = activeAdjustmentLayers; exports.evaluateAdjustmentLayers = evaluateAdjustmentLayers; exports.applyAdjustmentLayers = applyAdjustmentLayers; exports.applyAdjustmentLayersFloat = applyAdjustmentLayersFloat; exports.adjustmentLayersKey = adjustmentLayersKey; exports.applyAdjustments = applyAdjustments; exports.applyLegacyAdjustments = applyLegacyAdjustments; exports.applyLegacyFloat = applyLegacyFloat; exports.applyProcess2Adjustments = applyProcess2Adjustments; exports.applyProcess2Float = applyProcess2Float; exports.applyBoxBlurFloat = applyBoxBlurFloat; exports.applyBoxBlur = applyBoxBlur; exports.applyDepthMask = applyDepthMask; exports.removeAlpha = removeAlpha; exports.TEXT_ORIENTATIONS = TEXT_ORIENTATIONS; exports.TEXT_ALIGNS = TEXT_ALIGNS; exports.MAX_EFFECT_ANIMATION_MS = MAX_EFFECT_ANIMATION_MS; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.LIVE_SHAPE_KINDS = LIVE_SHAPE_KINDS; exports.newLayerId = newLayerId; exports.pixelLayers = pixelLayers; exports.developFilter = developFilter; exports.blurFilter = blurFilter; exports.isActiveFilter = isActiveFilter; exports.isSpatialFilter = isSpatialFilter; exports.pixelLayerBounds = pixelLayerBounds; exports.layerTypeLabel = layerTypeLabel; exports.hasSurface = hasSurface; exports.isRenderedLayer = isRenderedLayer; exports.shapeLayers = shapeLayers; exports.smartObjectLayers = smartObjectLayers; exports.LayerOperationError = LayerOperationError; exports.userErrorMessage = userErrorMessage; exports.isPaintableLayer = isPaintableLayer; exports.defaultActiveLayerId = defaultActiveLayerId; exports.activeLayerAfterRemoval = activeLayerAfterRemoval; exports.requireLayer = requireLayer; exports.requireUnlocked = requireUnlocked; exports.placeLayer = placeLayer; exports.removeLayer = removeLayer; exports.moveLayer = moveLayer; exports.withNewIds = withNewIds; exports.duplicateLayer = duplicateLayer; exports.setLayerProperties = setLayerProperties; exports.groupLayers = groupLayers; exports.ungroupLayer = ungroupLayer; exports.offsetLayer = offsetLayer; exports.setLayerMask = setLayerMask; exports.normalizeFilter = normalizeFilter; exports.addLayerFilter = addLayerFilter; exports.updateLayerFilter = updateLayerFilter; exports.removeLayerFilter = removeLayerFilter; exports.layerEffectsOf = layerEffectsOf; exports.setLayerEffects = setLayerEffects; exports.addLayerEffect = addLayerEffect; exports.updateLayerEffect = updateLayerEffect; exports.removeLayerEffect = removeLayerEffect; exports.setLayerEffectsEnabled = setLayerEffectsEnabled; exports.parseBlend = parseBlend; exports.unionRect = unionRect; exports.SHAPE_RENDER_MARGIN = SHAPE_RENDER_MARGIN; exports.DEFAULT_MITER_LIMIT = DEFAULT_MITER_LIMIT; exports.mapSubpaths = mapSubpaths; exports.liveShapeSubpaths = liveShapeSubpaths; exports.liveComponent = liveComponent; exports.componentPath = componentPath; exports.shapeOutline = shapeOutline; exports.shapeGeometryBounds = shapeGeometryBounds; exports.componentsCoverage = componentsCoverage; exports.shapeRenderClip = shapeRenderClip; exports.renderShapeRect = renderShapeRect; exports.renderShape = renderShape; exports.rerenderShape = rerenderShape; exports.normalizeShapePaint = normalizeShapePaint; exports.normalizeShapeStroke = normalizeShapeStroke; exports.normalizeLiveShape = normalizeLiveShape; exports.normalizeSubpaths = normalizeSubpaths; exports.requireOperation = requireOperation; exports.requireShapeLayer = requireShapeLayer; exports.createShapeLayer = createShapeLayer; exports.defaultShapeName = defaultShapeName; exports.updateShapeLayer = updateShapeLayer; exports.transformShapeComponents = transformShapeComponents; exports.offsetShape = offsetShape; exports.mergeShapeComponents = mergeShapeComponents; exports.shapeAsPixelLayer = shapeAsPixelLayer; exports.shapeFromAnnotation = shapeFromAnnotation; exports.annotationBlend = annotationBlend; exports.annotationOfShape = annotationOfShape; exports.VECTOR_MASK_EDGE_DEFAULTS = VECTOR_MASK_EDGE_DEFAULTS; exports.vectorMaskSegments = vectorMaskSegments; exports.validVectorMaskEdges = validVectorMaskEdges; exports.hybridVectorMaskCoverage = hybridVectorMaskCoverage; exports.isActiveVectorMask = isActiveVectorMask; exports.vectorMaskCoverage = vectorMaskCoverage; exports.layerGuide = layerGuide; exports.effectiveLayerMask = effectiveLayerMask; exports.resolveVectorMasks = resolveVectorMasks; exports.offsetVectorMask = offsetVectorMask; exports.transformVectorMask = transformVectorMask; exports.followLayerMove = followLayerMove; exports.vectorMaskBounds = vectorMaskBounds; exports.vectorMaskThumbnail = vectorMaskThumbnail; exports.EDGE_COLOR_RADIUS = EDGE_COLOR_RADIUS; exports.hasEdgeUnmix = hasEdgeUnmix; exports.maskCoverageOverCanvas = maskCoverageOverCanvas; exports.hasSoftBand = hasSoftBand; exports.despillEdge = despillEdge; exports.applyEdgeUnmix = applyEdgeUnmix; exports.adjustmentNodeAsLayer = adjustmentNodeAsLayer; exports.depthMaskAlpha = depthMaskAlpha; exports.runLayerFilters = runLayerFilters; exports.runLayerFiltersFloat = runLayerFiltersFloat; exports.LayerCompositor = LayerCompositor; exports.compositeDeep = compositeDeep; exports.DEFAULT_ADJUSTMENTS_VALUES = DEFAULT_ADJUSTMENTS_VALUES; exports.DEFAULT_TRANSFORM_VALUES = DEFAULT_TRANSFORM_VALUES; exports.DEFAULT_DEPTH_MASK_VALUES = DEFAULT_DEPTH_MASK_VALUES; exports.TEXT_RENDER_MARGIN = TEXT_RENDER_MARGIN; exports.textMatrix = textMatrix; exports.textOutlines = textOutlines; exports.renderText = renderText; exports.rerenderText = rerenderText; exports.TEXT_STYLE_FIELDS = TEXT_STYLE_FIELDS; exports.patchTextStyle = patchTextStyle; exports.PARAGRAPH_STYLE_FIELDS = PARAGRAPH_STYLE_FIELDS; exports.patchParagraphStyle = patchParagraphStyle; exports.textRange = textRange; exports.requireTypeLayer = requireTypeLayer; exports.normalizeText = normalizeText; exports.typeLayerName = typeLayerName; exports.textOrientation = textOrientation; exports.createTypeLayer = createTypeLayer; exports.updateTypeLayer = updateTypeLayer; exports.replaceTextRange = replaceTextRange; exports.transformTypeLayer = transformTypeLayer; exports.typeFrame = typeFrame; exports.typeAsPixelLayer = typeAsPixelLayer; exports.toTextSpace = toTextSpace; exports.typeFromAnnotation = typeFromAnnotation; exports.annotationOfType = annotationOfType; exports.BACKGROUND_LAYER_ID = BACKGROUND_LAYER_ID; exports.BACKGROUND_LAYER_NAME = BACKGROUND_LAYER_NAME; exports.DEVELOP_FILTER_ID = DEVELOP_FILTER_ID; exports.BLUR_FILTER_ID = BLUR_FILTER_ID; exports.rasterMaskFromLegacy = rasterMaskFromLegacy; exports.hasResampledLegacyMask = hasResampledLegacyMask; exports.legacyMaskOf = legacyMaskOf; exports.isDefaultDepthMask = isDefaultDepthMask; exports.developFromAdjustments = developFromAdjustments; exports.annotationLayerName = annotationLayerName; exports.annotationLayerFor = annotationLayerFor; exports.annotationOfLayer = annotationOfLayer; exports.adjustmentNodeFromLegacy = adjustmentNodeFromLegacy; exports.backgroundLayer = backgroundLayer; exports.depthRasterMask = depthRasterMask; exports.layersFromLegacy = layersFromLegacy; exports.legacyAdjustmentLayer = legacyAdjustmentLayer; exports.developTarget = developTarget; exports.legacyView = legacyView; exports.isLegacyShape = isLegacyShape; exports.EdgeMap = EdgeMap; exports.snapToEdge = snapToEdge; exports.liveWire = liveWire; exports.simplifyPixelPath = simplifyPixelPath; exports.snapPolygonToEdges = snapPolygonToEdges; exports.magneticAnchorSpacing = magneticAnchorSpacing; exports.FREE_TRANSFORM_MODES = FREE_TRANSFORM_MODES; exports.TRANSFORM_ANCHORS = TRANSFORM_ANCHORS; exports.ANCHOR_FRACTION = ANCHOR_FRACTION; exports.isTransformAnchor = isTransformAnchor; exports.identityTransform = identityTransform; exports.cornersFromMatrix = cornersFromMatrix; exports.matrixFromCorners = matrixFromCorners; exports.transformHomography = transformHomography; exports.hasWarp = hasWarp; exports.isIdentityTransform = isIdentityTransform; exports.transformMap = transformMap; exports.transformedPoint = transformedPoint; exports.anchorPoint = anchorPoint; exports.transformedBox = transformedBox; exports.referencePoint = referencePoint; exports.matrixFromParams = matrixFromParams; exports.describeTransform = describeTransform; exports.applyParams = applyParams; exports.flipCorners = flipCorners; exports.boxPointOf = boxPointOf; exports.presetWarp = presetWarp; exports.isValidWarp = isValidWarp; exports.geometryHomography = geometryHomography; exports.SMART_RENDER_MARGIN = SMART_RENDER_MARGIN; exports.isSmartSurfaceIncomplete = isSmartSurfaceIncomplete; exports.newContentsId = newContentsId; exports.contentsBox = contentsBox; exports.placementGeometry = placementGeometry; exports.placementAt = placementAt; exports.isContentsDecoded = isContentsDecoded; exports.requireSmartObject = requireSmartObject; exports.contentsSurface = contentsSurface; exports.rasterContents = rasterContents; exports.documentContents = documentContents; exports.placeContents = placeContents; exports.activeSmartFilters = activeSmartFilters; exports.activeEffectSmartFilters = activeEffectSmartFilters; exports.filterMaskCoverage = filterMaskCoverage; exports.applySmartFilters = applySmartFilters; exports.renderSmartObject = renderSmartObject; exports.rerender = rerender; exports.normalizePlacement = normalizePlacement; exports.setSmartPlacement = setSmartPlacement; exports.offsetSmartObject = offsetSmartObject; exports.translateLayer = translateLayer; exports.convertToSmartObject = convertToSmartObject; exports.rasterizeSmartObject = rasterizeSmartObject; exports.copySmartObject = copySmartObject; exports.instancesOf = instancesOf; exports.replaceContents = replaceContents; exports.normalizeSmartFilter = normalizeSmartFilter; exports.addSmartFilter = addSmartFilter; exports.updateSmartFilter = updateSmartFilter; exports.removeSmartFilter = removeSmartFilter; exports.moveSmartFilter = moveSmartFilter; exports.setSmartFiltersEnabled = setSmartFiltersEnabled; exports.setSmartFilterMask = setSmartFilterMask; exports.withFilterMaskSurface = withFilterMaskSurface; exports.placementBounds = placementBounds; exports.LAYERED_SCHEMA_VERSION = LAYERED_SCHEMA_VERSION; exports.serializePatterns = serializePatterns; exports.deserializePatterns = deserializePatterns; exports.encodeSurface = encodeSurface; exports.encodeDeepSurface = encodeDeepSurface; exports.decodeDeepSurface = decodeDeepSurface; exports.readEdgeColor = readEdgeColor; exports.serializeEffects = serializeEffects; exports.deserializeEffects = deserializeEffects; exports.readShapeComponents = readShapeComponents; exports.serializeLayer = serializeLayer; exports.serializeContents = serializeContents; exports.serializeLayers = serializeLayers; exports.serializeLayersExternal = serializeLayersExternal; exports.resolveExternalAssets = resolveExternalAssets; exports.decodePngDataUrl = decodePngDataUrl; exports.deserializeLayer = deserializeLayer; exports.deserializeLayers = deserializeLayers; exports.PsdError = PsdError; exports.decodePlanes = decodePlanes; exports.encodeRle = encodeRle; exports.parseVersionedDescriptor = parseVersionedDescriptor; exports.versionedDescriptorBytes = versionedDescriptorBytes; exports.ADJUSTMENT_KEYS = ADJUSTMENT_KEYS; exports.SUPPORTED_ADJUSTMENT_KEYS = SUPPORTED_ADJUSTMENT_KEYS; exports.parseAdjustmentBlock = parseAdjustmentBlock; exports.writeAdjustmentBlock = writeAdjustmentBlock; exports.parseLfx2 = parseLfx2; exports.writeLfx2 = writeLfx2; exports.parseLrfx = parseLrfx; exports.BROWSER_IMAGE_TYPES = BROWSER_IMAGE_TYPES; exports.readPsd = readPsd; exports.layerName = layerName; exports.layerTree = layerTree; exports.decodeLayerChannel = decodeLayerChannel; exports.decodeMergedImage = decodeMergedImage; exports.writePsd = writePsd; exports.PATTERN_BLOCK_KEYS = PATTERN_BLOCK_KEYS; exports.parsePatternBlock = parsePatternBlock; exports.psdPatternToEffectPattern = psdPatternToEffectPattern; exports.writePatternBlock = writePatternBlock; exports.PSD_BLEND_KEYS = PSD_BLEND_KEYS; exports.psdToLayers = psdToLayers; exports.importPsd = importPsd; exports.smartContentsFile = smartContentsFile; exports.exportPsd = exportPsd; exports.SELECTION_TOOLS = SELECTION_TOOLS; exports.COLOR_RANGE_PRESET_LABELS = COLOR_RANGE_PRESET_LABELS; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.DEFAULT_SELECTION_TOOL_OPTIONS = DEFAULT_SELECTION_TOOL_OPTIONS; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.REFINE_OUTPUTS = REFINE_OUTPUTS; exports.describeSelection = describeSelection; exports.describeLayerEffects = describeLayerEffects; exports.createImageEffectTools = createImageEffectTools; exports.createLayerEffectTools = createLayerEffectTools; exports.snapTo45 = snapTo45; exports.SelectionGesture = SelectionGesture; exports.handleSelectionShortcut = handleSelectionShortcut; exports.handleMaskViewKey = handleMaskViewKey; exports.handleQuickMaskKey = handleQuickMaskKey; exports.BRUSH_OPTION_CONTROLS = BRUSH_OPTION_CONTROLS; exports.MIXER_OPTION_CONTROLS = MIXER_OPTION_CONTROLS; exports.MIXER_MIXING_OPTIONS = MIXER_MIXING_OPTIONS; exports.PAINT_TOOLS = PAINT_TOOLS; exports.isPaintTool = isPaintTool; exports.isRetouchPaintTool = isRetouchPaintTool; exports.RETOUCH_OPTION_CONTROLS = RETOUCH_OPTION_CONTROLS; exports.CLONE_TRANSFORM_CONTROLS = CLONE_TRANSFORM_CONTROLS; exports.cloneTransformView = cloneTransformView; exports.setCloneTransformValue = setCloneTransformValue; exports.RETOUCH_CHOICES = RETOUCH_CHOICES; exports.RETOUCH_TOGGLES = RETOUCH_TOGGLES; exports.setRetouchChoice = setRetouchChoice; exports.cloneSourceLabel = cloneSourceLabel; exports.rgbUnitToHex = rgbUnitToHex; exports.handlePaintShortcut = handlePaintShortcut; exports.PaintGesture = PaintGesture;