@pixerate/editor 0.228.1 → 0.229.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.
@@ -46,7 +46,7 @@ var _chunkSS53NNZOcjs = require('./chunk-SS53NNZO.cjs');
46
46
 
47
47
 
48
48
 
49
- var _chunkB46UQUDCcjs = require('./chunk-B46UQUDC.cjs');
49
+ var _chunkHB4ICNNAcjs = require('./chunk-HB4ICNNA.cjs');
50
50
 
51
51
 
52
52
 
@@ -464,6 +464,11 @@ function clampCropToImage(crop, width, height) {
464
464
  height: Math.max(1, Math.min(height - y, crop.height))
465
465
  };
466
466
  }
467
+ var MARGIN_FIT_MIN_GUTTER = 36;
468
+ function marginFitSpan(size) {
469
+ const gutter = Math.max(size * 0.075, MARGIN_FIT_MIN_GUTTER);
470
+ return size - 2 * gutter > size * 0.5 ? size - 2 * gutter : size * 0.85;
471
+ }
467
472
  function resolveViewport(state, vpWidth, vpHeight, isActivelyCropping, cropOverride) {
468
473
  const { imageDimensions, crop: stateCrop, transform, zoom, pan, fit = "margin" } = state;
469
474
  const naturalWidth = imageDimensions.width || 800;
@@ -472,7 +477,7 @@ function resolveViewport(state, vpWidth, vpHeight, isActivelyCropping, cropOverr
472
477
  const activeCrop = cropOverride !== void 0 && cropOverride !== null ? cropOverride : _nullishCoalesce(stateCrop, () => ( (isActivelyCropping ? full : null)));
473
478
  const region = !isActivelyCropping && activeCrop ? clampCropToImage(activeCrop, naturalWidth, naturalHeight) : full;
474
479
  const { width: baseW, height: baseH } = getRotatedSize(region.width, region.height, transform);
475
- const fitScale = fit === "contain" ? Math.min(vpWidth / baseW, vpHeight / baseH) : Math.min(vpWidth * 0.85 / baseW, vpHeight * 0.85 / baseH, 1);
480
+ const fitScale = fit === "contain" ? Math.min(vpWidth / baseW, vpHeight / baseH) : Math.min(marginFitSpan(vpWidth) / baseW, marginFitSpan(vpHeight) / baseH, 1);
476
481
  const centerX = vpWidth / 2 + pan.x;
477
482
  const centerY = vpHeight / 2 + pan.y;
478
483
  const projection = {
@@ -1044,7 +1049,7 @@ function normalizeAdjustmentLayers(raw) {
1044
1049
  return out;
1045
1050
  }
1046
1051
  function curveLutFromLevels(points) {
1047
- return _chunkB46UQUDCcjs.curveLut.call(void 0, points.map((p) => ({ input: p.input / 255, output: p.output / 255 })));
1052
+ return _chunkHB4ICNNAcjs.curveLut.call(void 0, points.map((p) => ({ input: p.input / 255, output: p.output / 255 })));
1048
1053
  }
1049
1054
  var toUnitLevels = (c) => ({
1050
1055
  inBlack: c.inBlack / 255,
@@ -2240,7 +2245,7 @@ function newLayerId(prefix = "layer") {
2240
2245
  return `${prefix}_${Date.now().toString(36)}_${(++idCounter).toString(36)}`;
2241
2246
  }
2242
2247
  function pixelLayers(layers) {
2243
- return _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
2248
+ return _chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
2244
2249
  }
2245
2250
  function developFilter(layer) {
2246
2251
  return _optionalChain([layer, 'access', _10 => _10.filters, 'optionalAccess', _11 => _11.find, 'call', _12 => _12((f) => f.kind === "develop")]);
@@ -2271,14 +2276,14 @@ function isRenderedLayer(layer) {
2271
2276
  return layer.type === "smart" || layer.type === "shape" || layer.type === "type";
2272
2277
  }
2273
2278
  function shapeLayers(layers) {
2274
- return _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "shape");
2279
+ return _chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "shape");
2275
2280
  }
2276
2281
  function smartObjectLayers(layers) {
2277
- return _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart");
2282
+ return _chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart");
2278
2283
  }
2279
2284
 
2280
2285
  // src/image-editor/layers/shape.ts
2281
- var SHAPE_RENDER_MARGIN = _chunkB46UQUDCcjs.MAX_EFFECT_REACH;
2286
+ var SHAPE_RENDER_MARGIN = _chunkHB4ICNNAcjs.MAX_EFFECT_REACH;
2282
2287
  var DEFAULT_MITER_LIMIT = 100;
2283
2288
  var fail = (message) => {
2284
2289
  throw new LayerOperationError(message);
@@ -2498,11 +2503,11 @@ function componentsCoverage(components, rect, rule = "nonzero", inverted = false
2498
2503
  function paintContext(env) {
2499
2504
  const tiles = /* @__PURE__ */ new Map();
2500
2505
  return {
2501
- light: _chunkB46UQUDCcjs.DEFAULT_GLOBAL_LIGHT,
2506
+ light: _chunkHB4ICNNAcjs.DEFAULT_GLOBAL_LIGHT,
2502
2507
  pattern: (id) => {
2503
2508
  if (tiles.has(id)) return tiles.get(id);
2504
- const p = _nullishCoalesce(_optionalChain([env, 'access', _18 => _18.pattern, 'optionalCall', _19 => _19(id)]), () => ( _chunkB46UQUDCcjs.builtinPattern.call(void 0, id)));
2505
- const t = p && p.width > 0 && p.height > 0 && p.data.length >= p.width * p.height * 4 ? new (0, _chunkB46UQUDCcjs.PatternTile)(p) : null;
2509
+ const p = _nullishCoalesce(_optionalChain([env, 'access', _18 => _18.pattern, 'optionalCall', _19 => _19(id)]), () => ( _chunkHB4ICNNAcjs.builtinPattern.call(void 0, id)));
2510
+ const t = p && p.width > 0 && p.height > 0 && p.data.length >= p.width * p.height * 4 ? new (0, _chunkHB4ICNNAcjs.PatternTile)(p) : null;
2506
2511
  tiles.set(id, t);
2507
2512
  return t;
2508
2513
  }
@@ -2533,9 +2538,9 @@ function renderShapeRect(layer, rect, env, ctx = paintContext(env)) {
2533
2538
  if (!fCov && !sCov) return null;
2534
2539
  const canvas = { x: 0, y: 0, width: env.width, height: env.height };
2535
2540
  const anchor = { x: geo.frame.x, y: geo.frame.y };
2536
- const fc = fCov ? _chunkB46UQUDCcjs.effectFillColors.call(void 0, layer.fill, rect, geo.frame, canvas, anchor, ctx) : null;
2541
+ const fc = fCov ? _chunkHB4ICNNAcjs.effectFillColors.call(void 0, layer.fill, rect, geo.frame, canvas, anchor, ctx) : null;
2537
2542
  const fo = _nullishCoalesce(_optionalChain([layer, 'access', _20 => _20.fill, 'optionalAccess', _21 => _21.opacity]), () => ( 1));
2538
- const sc = sCov ? _chunkB46UQUDCcjs.effectFillColors.call(void 0, layer.stroke.paint, rect, geo.frame, canvas, anchor, ctx) : null;
2543
+ const sc = sCov ? _chunkHB4ICNNAcjs.effectFillColors.call(void 0, layer.stroke.paint, rect, geo.frame, canvas, anchor, ctx) : null;
2539
2544
  const so = _nullishCoalesce(_optionalChain([layer, 'access', _22 => _22.stroke, 'optionalAccess', _23 => _23.paint, 'access', _24 => _24.opacity]), () => ( 1));
2540
2545
  const out = new Uint8ClampedArray(n * 4);
2541
2546
  let any = false;
@@ -2628,9 +2633,9 @@ function normalizeShapePaint(v, path = "paint") {
2628
2633
  offset: _nullishCoalesce(g.offset, () => ( { x: 0, y: 0 }))
2629
2634
  };
2630
2635
  try {
2631
- _chunkB46UQUDCcjs.validateEffectGradient.call(void 0, gradient, `${path}.gradient`);
2636
+ _chunkHB4ICNNAcjs.validateEffectGradient.call(void 0, gradient, `${path}.gradient`);
2632
2637
  } catch (e) {
2633
- if (e instanceof _chunkB46UQUDCcjs.LayerEffectError) fail(e.message);
2638
+ if (e instanceof _chunkHB4ICNNAcjs.LayerEffectError) fail(e.message);
2634
2639
  throw e;
2635
2640
  }
2636
2641
  if (gradient.stops.length < 1) fail(`${path}.gradient.stops needs at least one { position, color }.`);
@@ -2842,7 +2847,7 @@ function updateShapeLayer(layers, id, change, env, action = "edit it") {
2842
2847
  if (!("annotation" in patch)) delete next.annotation;
2843
2848
  if (!next.components.length) fail("A shape needs at least one component; delete the layer instead.");
2844
2849
  const rendered = rerenderShape(next, env);
2845
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
2850
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
2846
2851
  }
2847
2852
  function transformShapeComponents(components, f, affine) {
2848
2853
  return components.map((c) => {
@@ -2873,7 +2878,7 @@ function shapeAsPixelLayer(layer) {
2873
2878
  }
2874
2879
  function annotationPaint(color, opacity) {
2875
2880
  const c = _chunkA2IS7EHEcjs.parseCssColor.call(void 0, color);
2876
- if (!c || !_chunkB46UQUDCcjs.parseEffectColor.call(void 0, c.hex)) return void 0;
2881
+ if (!c || !_chunkHB4ICNNAcjs.parseEffectColor.call(void 0, c.hex)) return void 0;
2877
2882
  const a = c.alpha * opacity;
2878
2883
  return a !== 1 ? { type: "color", color: c.hex, opacity: a } : { type: "color", color: c.hex };
2879
2884
  }
@@ -3312,18 +3317,18 @@ function userErrorMessage(err) {
3312
3317
  return err instanceof Error ? err.message : String(err);
3313
3318
  }
3314
3319
  function isPaintableLayer(layer) {
3315
- return layer.type === "pixel" && layer.visible && !_chunkB46UQUDCcjs.isLayerLocked.call(void 0, layer, "pixels");
3320
+ return layer.type === "pixel" && layer.visible && !_chunkHB4ICNNAcjs.isLayerLocked.call(void 0, layer, "pixels");
3316
3321
  }
3317
3322
  function defaultActiveLayerId(layers) {
3318
- const pixels = _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
3323
+ const pixels = _chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "pixel");
3319
3324
  for (let i = pixels.length - 1; i >= 0; i--) if (isPaintableLayer(pixels[i])) return pixels[i].id;
3320
3325
  return _nullishCoalesce(_optionalChain([pixels, 'access', _47 => _47[pixels.length - 1], 'optionalAccess', _48 => _48.id]), () => ( null));
3321
3326
  }
3322
3327
  function activeLayerAfterRemoval(prev, next, removedId) {
3323
- const before = _chunkB46UQUDCcjs.flattenLayers.call(void 0, prev);
3328
+ const before = _chunkHB4ICNNAcjs.flattenLayers.call(void 0, prev);
3324
3329
  const at = before.findIndex((l) => l.id === removedId);
3325
3330
  for (let i = at - 1; i >= 0; i--) {
3326
- const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, next, before[i].id);
3331
+ const loc = _chunkHB4ICNNAcjs.findLayer.call(void 0, next, before[i].id);
3327
3332
  if (loc && isPaintableLayer(loc.layer)) return loc.layer.id;
3328
3333
  }
3329
3334
  return defaultActiveLayerId(next);
@@ -3332,47 +3337,47 @@ var fail2 = (message) => {
3332
3337
  throw new LayerOperationError(message);
3333
3338
  };
3334
3339
  function requireLayer(layers, id) {
3335
- const loc = _chunkB46UQUDCcjs.findLayer.call(void 0, layers, id);
3340
+ const loc = _chunkHB4ICNNAcjs.findLayer.call(void 0, layers, id);
3336
3341
  if (!loc) {
3337
- const ids = _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers).map((l) => l.id);
3342
+ const ids = _chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers).map((l) => l.id);
3338
3343
  fail2(`Unknown layer "${id}". ${ids.length ? `Layers: ${ids.join(", ")}.` : "The document has no layers."} Call list_layers for ids.`);
3339
3344
  }
3340
3345
  return loc;
3341
3346
  }
3342
3347
  function requireUnlocked(layer, what, action) {
3343
- if (_chunkB46UQUDCcjs.isLayerLocked.call(void 0, layer, "all")) fail2(`Layer "${layer.name || layer.id}" is locked (all); unlock it before you ${action}.`);
3344
- if (what !== "all" && _chunkB46UQUDCcjs.isLayerLocked.call(void 0, layer, what)) fail2(`Layer "${layer.name || layer.id}" has its ${what} locked; unlock it before you ${action}.`);
3348
+ if (_chunkHB4ICNNAcjs.isLayerLocked.call(void 0, layer, "all")) fail2(`Layer "${layer.name || layer.id}" is locked (all); unlock it before you ${action}.`);
3349
+ if (what !== "all" && _chunkHB4ICNNAcjs.isLayerLocked.call(void 0, layer, what)) fail2(`Layer "${layer.name || layer.id}" has its ${what} locked; unlock it before you ${action}.`);
3345
3350
  }
3346
3351
  function placeLayer(layers, layer, placement = {}, defaultIndex) {
3347
3352
  const given = [placement.aboveId, placement.belowId, placement.parentId].filter((v) => v !== void 0).length;
3348
3353
  if (given > 1) fail2("Give only one of aboveId, belowId and parentId.");
3349
3354
  if (placement.aboveId || placement.belowId) {
3350
3355
  const ref = requireLayer(layers, _nullishCoalesce(placement.aboveId, () => ( placement.belowId)));
3351
- return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, layer, _nullishCoalesce(_optionalChain([ref, 'access', _49 => _49.parent, 'optionalAccess', _50 => _50.id]), () => ( null)), ref.index + (placement.aboveId ? 1 : 0));
3356
+ return _chunkHB4ICNNAcjs.insertLayer.call(void 0, layers, layer, _nullishCoalesce(_optionalChain([ref, 'access', _49 => _49.parent, 'optionalAccess', _50 => _50.id]), () => ( null)), ref.index + (placement.aboveId ? 1 : 0));
3352
3357
  }
3353
3358
  if (placement.parentId) {
3354
3359
  const ref = requireLayer(layers, placement.parentId);
3355
3360
  if (ref.layer.type !== "group") fail2(`Layer "${placement.parentId}" is not a group; parentId must be a group id.`);
3356
- return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, layer, ref.layer.id, placement.index);
3361
+ return _chunkHB4ICNNAcjs.insertLayer.call(void 0, layers, layer, ref.layer.id, placement.index);
3357
3362
  }
3358
- return _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, layer, null, _nullishCoalesce(placement.index, () => ( defaultIndex)));
3363
+ return _chunkHB4ICNNAcjs.insertLayer.call(void 0, layers, layer, null, _nullishCoalesce(placement.index, () => ( defaultIndex)));
3359
3364
  }
3360
3365
  function removeLayer(layers, id) {
3361
3366
  const loc = requireLayer(layers, id);
3362
3367
  requireUnlocked(loc.layer, "all", "delete it");
3363
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => null);
3368
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => null);
3364
3369
  }
3365
3370
  function moveLayer(layers, id, placement) {
3366
3371
  const loc = requireLayer(layers, id);
3367
3372
  requireUnlocked(loc.layer, "all", "move it");
3368
3373
  const target = _nullishCoalesce(_nullishCoalesce(placement.aboveId, () => ( placement.belowId)), () => ( placement.parentId));
3369
3374
  if (target === id) fail2("A layer cannot be placed relative to itself.");
3370
- if (target && loc.layer.type === "group" && _chunkB46UQUDCcjs.flattenLayers.call(void 0, loc.layer.children).some((l) => l.id === target)) {
3375
+ if (target && loc.layer.type === "group" && _chunkHB4ICNNAcjs.flattenLayers.call(void 0, loc.layer.children).some((l) => l.id === target)) {
3371
3376
  fail2(`Group "${id}" cannot be moved into its own child "${target}".`);
3372
3377
  }
3373
3378
  if (target) requireLayer(layers, target);
3374
3379
  if (!target && placement.index === void 0) fail2("Give aboveId, belowId, parentId or index.");
3375
- const without = _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => null);
3380
+ const without = _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => null);
3376
3381
  return placeLayer(without, loc.layer, placement);
3377
3382
  }
3378
3383
  function withNewIds(layer) {
@@ -3391,7 +3396,7 @@ function duplicateLayer(layers, id, name) {
3391
3396
  const copy = withNewIds(loc.layer);
3392
3397
  copy.name = _nullishCoalesce(name, () => ( `${loc.layer.name || "Layer"} copy`));
3393
3398
  delete copy.locks;
3394
- return { layers: _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _53 => _53.parent, 'optionalAccess', _54 => _54.id]), () => ( null)), loc.index + 1), id: copy.id };
3399
+ return { layers: _chunkHB4ICNNAcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _53 => _53.parent, 'optionalAccess', _54 => _54.id]), () => ( null)), loc.index + 1), id: copy.id };
3395
3400
  }
3396
3401
  function setLayerProperties(layers, id, props) {
3397
3402
  const loc = requireLayer(layers, id);
@@ -3438,7 +3443,7 @@ function setLayerProperties(layers, id, props) {
3438
3443
  if (props.collapsed) g.collapsed = true;
3439
3444
  else delete g.collapsed;
3440
3445
  }
3441
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next);
3446
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next);
3442
3447
  }
3443
3448
  function groupLayers(layers, ids, name = "Group") {
3444
3449
  if (!ids.length) fail2("Give at least one layer id to group.");
@@ -3467,17 +3472,17 @@ function groupLayers(layers, ids, name = "Group") {
3467
3472
  group.children[0] = c;
3468
3473
  }
3469
3474
  let out = layers;
3470
- for (const l of ordered) out = _chunkB46UQUDCcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
3471
- return { layers: _chunkB46UQUDCcjs.insertLayer.call(void 0, out, group, parent, top - below), id: group.id };
3475
+ for (const l of ordered) out = _chunkHB4ICNNAcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
3476
+ return { layers: _chunkHB4ICNNAcjs.insertLayer.call(void 0, out, group, parent, top - below), id: group.id };
3472
3477
  }
3473
3478
  function ungroupLayer(layers, id) {
3474
3479
  const loc = requireLayer(layers, id);
3475
3480
  if (loc.layer.type !== "group") fail2(`Layer "${id}" is not a group.`);
3476
3481
  requireUnlocked(loc.layer, "all", "ungroup it");
3477
3482
  const group = loc.layer;
3478
- let out = _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => null);
3483
+ let out = _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => null);
3479
3484
  group.children.forEach((c, i) => {
3480
- out = _chunkB46UQUDCcjs.insertLayer.call(void 0, out, c, _nullishCoalesce(_optionalChain([loc, 'access', _63 => _63.parent, 'optionalAccess', _64 => _64.id]), () => ( null)), loc.index + i);
3485
+ out = _chunkHB4ICNNAcjs.insertLayer.call(void 0, out, c, _nullishCoalesce(_optionalChain([loc, 'access', _63 => _63.parent, 'optionalAccess', _64 => _64.id]), () => ( null)), loc.index + i);
3481
3486
  });
3482
3487
  return { layers: out, ids: group.children.map((c) => c.id) };
3483
3488
  }
@@ -3492,12 +3497,12 @@ function offsetLayer(layers, id, offset) {
3492
3497
  if (mask && mask.linked === false && !mask.source) {
3493
3498
  next.mask = { ...mask, surface: _chunk474IQG74cjs.translateSurface.call(void 0, mask.surface, layer.offset.x - next.offset.x, layer.offset.y - next.offset.y) };
3494
3499
  }
3495
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => followLayerMove(next, next.offset.x - layer.offset.x, next.offset.y - layer.offset.y));
3500
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => followLayerMove(next, next.offset.x - layer.offset.x, next.offset.y - layer.offset.y));
3496
3501
  }
3497
3502
  function setLayerMask(layers, id, mask) {
3498
3503
  const loc = requireLayer(layers, id);
3499
3504
  requireUnlocked(loc.layer, "all", "change its mask");
3500
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, (l) => {
3505
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, (l) => {
3501
3506
  const next = { ...l };
3502
3507
  if (mask) next.mask = mask;
3503
3508
  else delete next.mask;
@@ -3536,7 +3541,7 @@ function requirePixelLayer(layers, id) {
3536
3541
  function addLayerFilter(layers, id, filter) {
3537
3542
  const layer = requirePixelLayer(layers, id);
3538
3543
  if (_optionalChain([layer, 'access', _65 => _65.filters, 'optionalAccess', _66 => _66.some, 'call', _67 => _67((f) => f.kind === filter.kind)])) fail2(`Layer "${id}" already has a ${filter.kind} filter; change it with update_layer_filter.`);
3539
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters: [..._nullishCoalesce(layer.filters, () => ( [])), filter] }));
3544
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters: [..._nullishCoalesce(layer.filters, () => ( [])), filter] }));
3540
3545
  }
3541
3546
  function updateLayerFilter(layers, id, filterId, changes) {
3542
3547
  const layer = requirePixelLayer(layers, id);
@@ -3547,7 +3552,7 @@ function updateLayerFilter(layers, id, filterId, changes) {
3547
3552
  const merged2 = normalizeFilter({ ...current, ...changes, kind: current.kind }, current.id);
3548
3553
  const filters = [...layer.filters];
3549
3554
  filters[i] = merged2;
3550
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters }));
3555
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => ({ ...layer, filters }));
3551
3556
  }
3552
3557
  function removeLayerFilter(layers, id, filterId) {
3553
3558
  const layer = requirePixelLayer(layers, id);
@@ -3556,7 +3561,7 @@ function removeLayerFilter(layers, id, filterId) {
3556
3561
  const next = { ...layer };
3557
3562
  if (filters.length) next.filters = filters;
3558
3563
  else delete next.filters;
3559
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next);
3564
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next);
3560
3565
  }
3561
3566
  function requireEffectLayer(layers, id, action) {
3562
3567
  const layer = requireLayer(layers, id).layer;
@@ -3571,7 +3576,7 @@ function guard(fn) {
3571
3576
  try {
3572
3577
  return fn();
3573
3578
  } catch (e) {
3574
- if (e instanceof _chunkB46UQUDCcjs.LayerEffectError) fail2(e.message);
3579
+ if (e instanceof _chunkHB4ICNNAcjs.LayerEffectError) fail2(e.message);
3575
3580
  throw e;
3576
3581
  }
3577
3582
  }
@@ -3579,20 +3584,20 @@ function setLayerEffects(layers, id, effects) {
3579
3584
  const layer = requireEffectLayer(layers, id, "change its effects");
3580
3585
  const next = { ...layer };
3581
3586
  if (effects && (effects.items.length || effects.psd || effects.scale !== void 0 || !effects.enabled)) {
3582
- guard(() => _chunkB46UQUDCcjs.validateLayerEffects.call(void 0, effects));
3587
+ guard(() => _chunkHB4ICNNAcjs.validateLayerEffects.call(void 0, effects));
3583
3588
  next.effects = effects;
3584
3589
  } else delete next.effects;
3585
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next);
3590
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next);
3586
3591
  }
3587
3592
  function addLayerEffect(layers, id, kind, params = {}, index) {
3588
- if (!_chunkB46UQUDCcjs.isLayerEffectKind.call(void 0, kind)) fail2(`Unknown effect kind "${String(kind)}". Kinds: ${_chunkB46UQUDCcjs.LAYER_EFFECT_KINDS.join(", ")}.`);
3593
+ if (!_chunkHB4ICNNAcjs.isLayerEffectKind.call(void 0, kind)) fail2(`Unknown effect kind "${String(kind)}". Kinds: ${_chunkHB4ICNNAcjs.LAYER_EFFECT_KINDS.join(", ")}.`);
3589
3594
  const layer = requireEffectLayer(layers, id, "add effects");
3590
3595
  const current = layerEffectsOf(layer);
3591
3596
  const ids = new Set(current.items.map((e) => e.id));
3592
- let effectId = _chunkB46UQUDCcjs.newEffectId.call(void 0, );
3593
- while (ids.has(effectId)) effectId = _chunkB46UQUDCcjs.newEffectId.call(void 0, );
3597
+ let effectId = _chunkHB4ICNNAcjs.newEffectId.call(void 0, );
3598
+ while (ids.has(effectId)) effectId = _chunkHB4ICNNAcjs.newEffectId.call(void 0, );
3594
3599
  const { id: _ignored, kind: _kind, ...rest } = params;
3595
- const effect = guard(() => _chunkB46UQUDCcjs.mergeLayerEffect.call(void 0, _chunkB46UQUDCcjs.defaultLayerEffect.call(void 0, kind, effectId), rest));
3600
+ const effect = guard(() => _chunkHB4ICNNAcjs.mergeLayerEffect.call(void 0, _chunkHB4ICNNAcjs.defaultLayerEffect.call(void 0, kind, effectId), rest));
3596
3601
  const items = [...current.items];
3597
3602
  const at = index === void 0 ? items.length : Math.max(0, Math.min(items.length, Math.floor(index)));
3598
3603
  items.splice(at, 0, effect);
@@ -3609,7 +3614,7 @@ function updateLayerEffect(layers, id, effectId, changes) {
3609
3614
  const i = requireEffect(layer, effectId);
3610
3615
  const current = layer.effects;
3611
3616
  const items = [...current.items];
3612
- items[i] = guard(() => _chunkB46UQUDCcjs.mergeLayerEffect.call(void 0, items[i], changes));
3617
+ items[i] = guard(() => _chunkHB4ICNNAcjs.mergeLayerEffect.call(void 0, items[i], changes));
3613
3618
  return setLayerEffects(layers, id, { ...current, items });
3614
3619
  }
3615
3620
  function removeLayerEffect(layers, id, effectId) {
@@ -3854,7 +3859,7 @@ var PHOTO_PROFILE = {
3854
3859
  return v;
3855
3860
  }
3856
3861
  };
3857
- var LayerCompositor = class extends _chunkB46UQUDCcjs.RasterCompositor {
3862
+ var LayerCompositor = class extends _chunkHB4ICNNAcjs.RasterCompositor {
3858
3863
  constructor(options = {}) {
3859
3864
  super(PHOTO_PROFILE, options);
3860
3865
  }
@@ -3870,7 +3875,7 @@ var LayerCompositor = class extends _chunkB46UQUDCcjs.RasterCompositor {
3870
3875
  }
3871
3876
  };
3872
3877
  function compositeDeep(layers, rect, sources, depth) {
3873
- const deep = new (0, _chunkB46UQUDCcjs.DeepCompositor)(new LayerCompositor(), PHOTO_PROFILE, {
3878
+ const deep = new (0, _chunkHB4ICNNAcjs.DeepCompositor)(new LayerCompositor(), PHOTO_PROFILE, {
3874
3879
  applyFilterRunDeep: (run, acc, _r, masks) => applyAdjustmentLayersFloat(acc, run.map(adjustmentNodeAsLayer), masks),
3875
3880
  pixelFiltersDeep: (l) => {
3876
3881
  if (l.type !== "pixel" || hasEdgeUnmix(l.edge)) return null;
@@ -3886,7 +3891,7 @@ function compositeDeep(layers, rect, sources, depth) {
3886
3891
  var fail3 = (message) => {
3887
3892
  throw new LayerOperationError(message);
3888
3893
  };
3889
- var TEXT_RENDER_MARGIN = _chunkB46UQUDCcjs.MAX_EFFECT_REACH;
3894
+ var TEXT_RENDER_MARGIN = _chunkHB4ICNNAcjs.MAX_EFFECT_REACH;
3890
3895
  function textMatrix(layer) {
3891
3896
  return _nullishCoalesce(layer.transform, () => ( _chunkBQE3Y6ZOcjs.IDENTITY_MATRIX));
3892
3897
  }
@@ -4182,7 +4187,7 @@ function updateTypeLayer(layers, id, change, env, action = "edit it") {
4182
4187
  if (!next.runs.length) next.runs = [{ length: 0, style: _chunkBQE3Y6ZOcjs.styleAt.call(void 0, current.runs, 0, _chunkBQE3Y6ZOcjs.DEFAULT_TEXT_STYLE) }];
4183
4188
  if ("text" in patch || "paragraphs" in patch) next.paragraphs = _chunkBQE3Y6ZOcjs.fitParagraphRuns.call(void 0, next.paragraphs, next.text);
4184
4189
  const rendered = rerenderText(next, env);
4185
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
4190
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => rendered), layer: rendered };
4186
4191
  }
4187
4192
  function replaceTextRange(layer, start, end, insert) {
4188
4193
  const text3 = layer.text.slice(0, start) + insert + layer.text.slice(end);
@@ -4699,7 +4704,7 @@ function geometryHomography(geometry) {
4699
4704
  var fail4 = (message) => {
4700
4705
  throw new LayerOperationError(message);
4701
4706
  };
4702
- var SMART_RENDER_MARGIN = _chunkB46UQUDCcjs.MAX_EFFECT_REACH;
4707
+ var SMART_RENDER_MARGIN = _chunkHB4ICNNAcjs.MAX_EFFECT_REACH;
4703
4708
  var incompleteSurfaces = /* @__PURE__ */ new WeakSet();
4704
4709
  var isSmartSurfaceIncomplete = (surface) => incompleteSurfaces.has(surface);
4705
4710
  var surfaceIds = /* @__PURE__ */ new WeakMap();
@@ -4815,7 +4820,7 @@ function placeContents(layer, canvas, options = {}) {
4815
4820
  k = step;
4816
4821
  let r = _optionalChain([options, 'access', _101 => _101.reduced, 'optionalAccess', _102 => _102.get, 'call', _103 => _103(k)]);
4817
4822
  if (!r) {
4818
- r = _chunkB46UQUDCcjs.reduceSurface.call(void 0, src, k);
4823
+ r = _chunkHB4ICNNAcjs.reduceSurface.call(void 0, src, k);
4819
4824
  _optionalChain([options, 'access', _104 => _104.reduced, 'optionalAccess', _105 => _105.set, 'call', _106 => _106(k, r)]);
4820
4825
  }
4821
4826
  source = r;
@@ -4825,15 +4830,15 @@ function placeContents(layer, canvas, options = {}) {
4825
4830
  if (hasWarp(g)) {
4826
4831
  const f = transformMap(g);
4827
4832
  if (!f) fail4("The placement folds the contents over itself or through the horizon; keep the corners a convex quad.");
4828
- out = _chunkB46UQUDCcjs.warpSurface.call(void 0, source, (p) => f({ x: p.x * k, y: p.y * k }), { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4833
+ out = _chunkHB4ICNNAcjs.warpSurface.call(void 0, source, (p) => f({ x: p.x * k, y: p.y * k }), { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4829
4834
  } else {
4830
4835
  const h = transformHomography(g);
4831
4836
  if (!h) fail4("The placement folds the contents over itself or through the horizon; keep the corners a convex quad.");
4832
4837
  const hk = _chunkQT26RHKKcjs.multiplyHomographies.call(void 0, [k, 0, 0, 0, k, 0, 0, 0, 1], h);
4833
- out = _chunkB46UQUDCcjs.transformSurface.call(void 0, source, hk, { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4838
+ out = _chunkHB4ICNNAcjs.transformSurface.call(void 0, source, hk, { interpolation, source: box2, clip, step: step > 1 ? step : void 0 });
4834
4839
  }
4835
4840
  } catch (e) {
4836
- if (e instanceof _chunkB46UQUDCcjs.TransformTooLargeError) fail4(e.message);
4841
+ if (e instanceof _chunkHB4ICNNAcjs.TransformTooLargeError) fail4(e.message);
4837
4842
  throw e;
4838
4843
  }
4839
4844
  }
@@ -4910,7 +4915,7 @@ function applySmartFilters(placed, stack, canvas) {
4910
4915
  if (f.opacity >= 1) acc = out2;
4911
4916
  else lerpInto(acc, out2, f.opacity, null);
4912
4917
  } else {
4913
- _chunkB46UQUDCcjs.blendTile.call(void 0, acc, out2, f.blend, f.opacity, null);
4918
+ _chunkHB4ICNNAcjs.blendTile.call(void 0, acc, out2, f.blend, f.opacity, null);
4914
4919
  }
4915
4920
  }
4916
4921
  entry = { key, base, filtered: acc };
@@ -4971,7 +4976,7 @@ function normalizePlacement(raw, contents) {
4971
4976
  out.warp = { us: [...raw.warp.us], vs: [...raw.warp.vs], points: raw.warp.points.map((p) => ({ x: p.x, y: p.y })) };
4972
4977
  }
4973
4978
  if (raw.interpolation !== void 0) {
4974
- if (!_chunkB46UQUDCcjs.isInterpolation.call(void 0, raw.interpolation)) fail4(`Unknown interpolation "${String(raw.interpolation)}"; use nearest, bilinear or bicubic.`);
4979
+ if (!_chunkHB4ICNNAcjs.isInterpolation.call(void 0, raw.interpolation)) fail4(`Unknown interpolation "${String(raw.interpolation)}"; use nearest, bilinear or bicubic.`);
4975
4980
  if (raw.interpolation !== "bicubic") out.interpolation = raw.interpolation;
4976
4981
  }
4977
4982
  const g = { box: { x: 0, y: 0, width: contents.width, height: contents.height }, corners: out.corners, warp: _nullishCoalesce(out.warp, () => ( null)) };
@@ -4991,7 +4996,7 @@ function followMask(mask, before, after) {
4991
4996
  const inv = _chunkQT26RHKKcjs.invertHomography.call(void 0, h0);
4992
4997
  if (!inv) return mask;
4993
4998
  const delta = _chunkQT26RHKKcjs.multiplyHomographies.call(void 0, inv, h1);
4994
- const surface = _chunkB46UQUDCcjs.transformSurface.call(void 0, mask.surface, delta, { interpolation: "bilinear" });
4999
+ const surface = _chunkHB4ICNNAcjs.transformSurface.call(void 0, mask.surface, delta, { interpolation: "bilinear" });
4995
5000
  return { ...mask, surface };
4996
5001
  }
4997
5002
  function setSmartPlacement(layers, id, placement, canvas) {
@@ -5012,7 +5017,7 @@ function setSmartPlacement(layers, id, placement, canvas) {
5012
5017
  next.smartFilters = { ...next.smartFilters, mask: m };
5013
5018
  }
5014
5019
  next = rerender(next, canvas, "be transformed");
5015
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, masksMoved };
5020
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, masksMoved };
5016
5021
  }
5017
5022
  function offsetSmartObject(layers, id, dx, dy, canvas) {
5018
5023
  const layer = requireSmartObject(layers, id);
@@ -5035,7 +5040,7 @@ function offsetSmartObject(layers, id, dx, dy, canvas) {
5035
5040
  } else {
5036
5041
  next = rerender(next, canvas, "move");
5037
5042
  }
5038
- return _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next);
5043
+ return _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next);
5039
5044
  }
5040
5045
  function translateLayer(layer, dx, dy) {
5041
5046
  if (!dx && !dy) return layer;
@@ -5103,7 +5108,7 @@ function layerExtent(layer, surfaceOf, canvas) {
5103
5108
  } else {
5104
5109
  b = full;
5105
5110
  }
5106
- const m = _chunkB46UQUDCcjs.effectsMargin.call(void 0, layer.effects);
5111
+ const m = _chunkHB4ICNNAcjs.effectsMargin.call(void 0, layer.effects);
5107
5112
  if (b && m > 0) b = { x: b.x - Math.ceil(m), y: b.y - Math.ceil(m), width: b.width + 2 * Math.ceil(m), height: b.height + 2 * Math.ceil(m) };
5108
5113
  return b;
5109
5114
  }
@@ -5172,7 +5177,7 @@ function convertToSmartObject(layers, ids, canvas, options) {
5172
5177
  delete resolved2.source;
5173
5178
  layer = resolved2;
5174
5179
  }
5175
- if (_chunkB46UQUDCcjs.flattenLayers.call(void 0, [layer]).some((x) => x.type === "pixel" && x.source === "document")) fail4(`Layer "${layer.name || layer.id}" holds the document image inside a group; convert the Background on its own.`);
5180
+ if (_chunkHB4ICNNAcjs.flattenLayers.call(void 0, [layer]).some((x) => x.type === "pixel" && x.source === "document")) fail4(`Layer "${layer.name || layer.id}" holds the document image inside a group; convert the Background on its own.`);
5176
5181
  return translateLayer(layer, -b.x, -b.y);
5177
5182
  });
5178
5183
  if (nested[0].clipped) {
@@ -5199,8 +5204,8 @@ function convertToSmartObject(layers, ids, canvas, options) {
5199
5204
  smart = { ...smart, surface: renderSmartObject(smart, canvas) };
5200
5205
  const below = ordered.filter((l) => l.index < top.index).length;
5201
5206
  let out = layers;
5202
- for (const l of ordered) out = _chunkB46UQUDCcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
5203
- return { layers: _chunkB46UQUDCcjs.insertLayer.call(void 0, out, smart, parent, top.index - below), layer: smart };
5207
+ for (const l of ordered) out = _chunkHB4ICNNAcjs.mapLayer.call(void 0, out, l.layer.id, () => null);
5208
+ return { layers: _chunkHB4ICNNAcjs.insertLayer.call(void 0, out, smart, parent, top.index - below), layer: smart };
5204
5209
  }
5205
5210
  function rasterizeSmartObject(layers, id) {
5206
5211
  const layer = requireSmartObject(layers, id);
@@ -5220,7 +5225,7 @@ function rasterizeSmartObject(layers, id) {
5220
5225
  if (layer.locks) out.locks = layer.locks;
5221
5226
  if (layer.effects) out.effects = layer.effects;
5222
5227
  if (layer.fillOpacity !== void 0) out.fillOpacity = layer.fillOpacity;
5223
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => out), layer: out };
5228
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => out), layer: out };
5224
5229
  }
5225
5230
  function copySmartObject(layers, id, linked, name) {
5226
5231
  const loc = requireLayer(layers, id);
@@ -5230,19 +5235,19 @@ function copySmartObject(layers, id, linked, name) {
5230
5235
  delete copy.psd;
5231
5236
  if (!linked) copy.contents = { ...layer.contents, id: newContentsId() };
5232
5237
  if (copy.smartFilters) copy.smartFilters = { ...copy.smartFilters, filters: copy.smartFilters.filters.map((f) => ({ ...f, id: newLayerId("flt") })) };
5233
- return { layers: _chunkB46UQUDCcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _140 => _140.parent, 'optionalAccess', _141 => _141.id]), () => ( null)), loc.index + 1), layer: copy };
5238
+ return { layers: _chunkHB4ICNNAcjs.insertLayer.call(void 0, layers, copy, _nullishCoalesce(_optionalChain([loc, 'access', _140 => _140.parent, 'optionalAccess', _141 => _141.id]), () => ( null)), loc.index + 1), layer: copy };
5234
5239
  }
5235
5240
  function instancesOf(layers, contentsId) {
5236
- return _chunkB46UQUDCcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart" && l.contents.id === contentsId).map((l) => l.id);
5241
+ return _chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers).filter((l) => l.type === "smart" && l.contents.id === contentsId).map((l) => l.id);
5237
5242
  }
5238
5243
  function replaceContents(layers, contentsId, contents, canvas) {
5239
5244
  const ids = instancesOf(layers, contentsId);
5240
5245
  if (!ids.length) fail4(`No smart object uses contents "${contentsId}".`);
5241
- for (const id of ids) requireUnlocked(_chunkB46UQUDCcjs.findLayer.call(void 0, layers, id).layer, "all", "replace its contents");
5246
+ for (const id of ids) requireUnlocked(_chunkHB4ICNNAcjs.findLayer.call(void 0, layers, id).layer, "all", "replace its contents");
5242
5247
  const next = { ...contents, id: contentsId };
5243
5248
  let out = layers;
5244
5249
  for (const id of ids) {
5245
- out = _chunkB46UQUDCcjs.mapLayer.call(void 0, out, id, (l) => {
5250
+ out = _chunkHB4ICNNAcjs.mapLayer.call(void 0, out, id, (l) => {
5246
5251
  const layer = l;
5247
5252
  return rerender({ ...layer, contents: next, placement: refitPlacement(layer, next) }, canvas, "take the new contents");
5248
5253
  });
@@ -5321,7 +5326,7 @@ function addSmartFilter(layers, id, filter, canvas, index) {
5321
5326
  const at = index === void 0 ? filters.length : Math.max(0, Math.min(filters.length, Math.floor(index)));
5322
5327
  filters.splice(at, 0, filter);
5323
5328
  const next = withStack(layer, { ...stack, filters }, canvas);
5324
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter };
5329
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter };
5325
5330
  }
5326
5331
  function updateSmartFilter(layers, id, filterId, changes, canvas) {
5327
5332
  const layer = editableSmart(layers, id);
@@ -5343,7 +5348,7 @@ function updateSmartFilter(layers, id, filterId, changes, canvas) {
5343
5348
  const filters = [...layer.smartFilters.filters];
5344
5349
  filters[i] = merged2;
5345
5350
  const next = withStack(layer, { ...layer.smartFilters, filters }, canvas);
5346
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter: merged2 };
5351
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next, filter: merged2 };
5347
5352
  }
5348
5353
  function removeSmartFilter(layers, id, filterId, canvas) {
5349
5354
  const layer = editableSmart(layers, id);
@@ -5351,7 +5356,7 @@ function removeSmartFilter(layers, id, filterId, canvas) {
5351
5356
  const stack = layer.smartFilters;
5352
5357
  const filters = stack.filters.filter((f) => f.id !== filterId);
5353
5358
  const next = withStack(layer, filters.length ? { ...stack, filters } : stack.enabled ? void 0 : { enabled: false, filters }, canvas);
5354
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5359
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5355
5360
  }
5356
5361
  function moveSmartFilter(layers, id, filterId, index, canvas) {
5357
5362
  const layer = editableSmart(layers, id);
@@ -5362,12 +5367,12 @@ function moveSmartFilter(layers, id, filterId, index, canvas) {
5362
5367
  const [f] = filters.splice(i, 1);
5363
5368
  filters.splice(index, 0, f);
5364
5369
  const next = withStack(layer, { ...layer.smartFilters, filters }, canvas);
5365
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5370
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5366
5371
  }
5367
5372
  function setSmartFiltersEnabled(layers, id, enabled, canvas) {
5368
5373
  const layer = editableSmart(layers, id);
5369
5374
  const next = withStack(layer, { ...stackOf(layer), enabled: Boolean(enabled) }, canvas);
5370
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5375
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5371
5376
  }
5372
5377
  function setSmartFilterMask(layers, id, mask, canvas) {
5373
5378
  const layer = editableSmart(layers, id);
@@ -5376,7 +5381,7 @@ function setSmartFilterMask(layers, id, mask, canvas) {
5376
5381
  if (mask) stack.mask = mask;
5377
5382
  else delete stack.mask;
5378
5383
  const next = withStack(layer, stack, canvas);
5379
- return { layers: _chunkB46UQUDCcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5384
+ return { layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, layers, id, () => next), layer: next };
5380
5385
  }
5381
5386
  function withFilterMaskSurface(layer, surface, canvas) {
5382
5387
  const stack = stackOf(layer);
@@ -5500,7 +5505,7 @@ function deserializeEffects(raw) {
5500
5505
  psd = void 0;
5501
5506
  }
5502
5507
  }
5503
- return _chunkB46UQUDCcjs.normalizeLayerEffects.call(void 0, { ...r, psd });
5508
+ return _chunkHB4ICNNAcjs.normalizeLayerEffects.call(void 0, { ...r, psd });
5504
5509
  }
5505
5510
  function serializeVectorMask(vm) {
5506
5511
  const out = { components: JSON.parse(JSON.stringify(vm.components)) };
@@ -6133,7 +6138,7 @@ function readSmartObject(r, base, ctx) {
6133
6138
  try {
6134
6139
  const raw = { corners: p.corners };
6135
6140
  if (p.warp && _chunkBQE3Y6ZOcjs.isValidWarpMesh.call(void 0, p.warp)) raw.warp = p.warp;
6136
- if (_chunkB46UQUDCcjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6141
+ if (_chunkHB4ICNNAcjs.isInterpolation.call(void 0, p.interpolation)) raw.interpolation = p.interpolation;
6137
6142
  placement = normalizePlacement(raw, contents);
6138
6143
  } catch (e) {
6139
6144
  ctx.problems.push(`${what}: its placement is invalid (${e instanceof Error ? e.message : String(e)}); it was placed at the top left`);
@@ -10103,7 +10108,7 @@ function recordEffects(ctx, rec, name, notes, group) {
10103
10108
  }
10104
10109
  for (const e of parsed.effects.items) {
10105
10110
  for (const id of patternIds(e)) {
10106
- if (ctx.patterns.has(id) || _chunkB46UQUDCcjs.builtinPattern.call(void 0, id)) continue;
10111
+ if (ctx.patterns.has(id) || _chunkHB4ICNNAcjs.builtinPattern.call(void 0, id)) continue;
10107
10112
  ctx.warn.add("A pattern effect uses a pattern the file does not contain, and paints nothing", name);
10108
10113
  notes.push(`pattern "${id}" is not in the file`);
10109
10114
  }
@@ -10681,34 +10686,34 @@ function blendOf(d, key, fallback, notes) {
10681
10686
  function colorOf(d, fallback = "#000000") {
10682
10687
  if (!d) return fallback;
10683
10688
  const g = (k) => descNumber(d, k);
10684
- if (g("redFloat") !== void 0) return _chunkB46UQUDCcjs.effectColorHex.call(void 0, [g("redFloat"), _nullishCoalesce(g("greenFloat"), () => ( 0)), _nullishCoalesce(g("blueFloat"), () => ( 0))]);
10689
+ if (g("redFloat") !== void 0) return _chunkHB4ICNNAcjs.effectColorHex.call(void 0, [g("redFloat"), _nullishCoalesce(g("greenFloat"), () => ( 0)), _nullishCoalesce(g("blueFloat"), () => ( 0))]);
10685
10690
  switch (d.classId) {
10686
10691
  case "HSBC": {
10687
10692
  const rgb = decodePsdColor(1, [(_nullishCoalesce(g("H "), () => ( 0))) / 360 * 65535, (_nullishCoalesce(g("Strt"), () => ( 0))) / 100 * 65535, (_nullishCoalesce(g("Brgh"), () => ( 0))) / 100 * 65535]);
10688
- return rgb ? _chunkB46UQUDCcjs.effectColorHex.call(void 0, rgb) : fallback;
10693
+ return rgb ? _chunkHB4ICNNAcjs.effectColorHex.call(void 0, rgb) : fallback;
10689
10694
  }
10690
10695
  case "CMYC": {
10691
10696
  const inv = (k) => (1 - (_nullishCoalesce(g(k), () => ( 0))) / 100) * 65535;
10692
10697
  const rgb = decodePsdColor(2, [inv("Cyn "), inv("Mgnt"), inv("Ylw "), inv("Blck")]);
10693
- return rgb ? _chunkB46UQUDCcjs.effectColorHex.call(void 0, rgb) : fallback;
10698
+ return rgb ? _chunkHB4ICNNAcjs.effectColorHex.call(void 0, rgb) : fallback;
10694
10699
  }
10695
10700
  case "LbCl": {
10696
10701
  const rgb = decodePsdColor(7, [(_nullishCoalesce(g("Lmnc"), () => ( 0))) * 100, Math.round((_nullishCoalesce(g("A "), () => ( 0))) * 100) & 65535, Math.round((_nullishCoalesce(g("B "), () => ( 0))) * 100) & 65535]);
10697
- return rgb ? _chunkB46UQUDCcjs.effectColorHex.call(void 0, rgb) : fallback;
10702
+ return rgb ? _chunkHB4ICNNAcjs.effectColorHex.call(void 0, rgb) : fallback;
10698
10703
  }
10699
10704
  case "Grsc": {
10700
10705
  const v = 1 - (_nullishCoalesce(g("Gry "), () => ( 0))) / 100;
10701
- return _chunkB46UQUDCcjs.effectColorHex.call(void 0, [v, v, v]);
10706
+ return _chunkHB4ICNNAcjs.effectColorHex.call(void 0, [v, v, v]);
10702
10707
  }
10703
10708
  }
10704
10709
  const r = g("Rd ");
10705
10710
  const gr = g("Grn ");
10706
10711
  const b = g("Bl ");
10707
10712
  if (r === void 0 || gr === void 0 || b === void 0) return fallback;
10708
- return _chunkB46UQUDCcjs.effectColorHex.call(void 0, [r / 255, gr / 255, b / 255]);
10713
+ return _chunkHB4ICNNAcjs.effectColorHex.call(void 0, [r / 255, gr / 255, b / 255]);
10709
10714
  }
10710
10715
  function colorDesc(hex) {
10711
- const [r, g, b] = _nullishCoalesce(_chunkB46UQUDCcjs.parseEffectColor.call(void 0, hex), () => ( [0, 0, 0]));
10716
+ const [r, g, b] = _nullishCoalesce(_chunkHB4ICNNAcjs.parseEffectColor.call(void 0, hex), () => ( [0, 0, 0]));
10712
10717
  return descriptor("RGBC", [
10713
10718
  ["Rd ", dbl3(r * 255)],
10714
10719
  ["Grn ", dbl3(g * 255)],
@@ -10791,9 +10796,9 @@ function gradientOf(d, notes) {
10791
10796
  raw.forEach((s, i) => {
10792
10797
  if (i > 0 && Math.abs(s.mid - 0.5) > 1e-3) {
10793
10798
  const a = raw[i - 1];
10794
- const ca = _chunkB46UQUDCcjs.parseEffectColor.call(void 0, a.color);
10795
- const cb = _chunkB46UQUDCcjs.parseEffectColor.call(void 0, s.color);
10796
- stops.push({ position: a.position + (s.position - a.position) * s.mid, color: _chunkB46UQUDCcjs.effectColorHex.call(void 0, ca.map((v, k) => (v + cb[k]) / 2)) });
10799
+ const ca = _chunkHB4ICNNAcjs.parseEffectColor.call(void 0, a.color);
10800
+ const cb = _chunkHB4ICNNAcjs.parseEffectColor.call(void 0, s.color);
10801
+ stops.push({ position: a.position + (s.position - a.position) * s.mid, color: _chunkHB4ICNNAcjs.effectColorHex.call(void 0, ca.map((v, k) => (v + cb[k]) / 2)) });
10797
10802
  notes.add("gradient midpoints are drawn as straight segments");
10798
10803
  }
10799
10804
  stops.push({ position: s.position, color: s.color });
@@ -10905,8 +10910,8 @@ var KINDS = [
10905
10910
  ["FrFX", "frameFXMulti", "stroke"]
10906
10911
  ];
10907
10912
  function common(d, kind, notes) {
10908
- const def = _chunkB46UQUDCcjs.defaultLayerEffect.call(void 0, kind, "x");
10909
- return { id: _chunkB46UQUDCcjs.newEffectId.call(void 0, ), enabled: descBool(d, "enab") !== false, blend: blendOf(d, "Md ", def.blend, notes), opacity: clamp3(pct(d, "Opct", def.opacity), 0, 1) };
10913
+ const def = _chunkHB4ICNNAcjs.defaultLayerEffect.call(void 0, kind, "x");
10914
+ return { id: _chunkHB4ICNNAcjs.newEffectId.call(void 0, ), enabled: descBool(d, "enab") !== false, blend: blendOf(d, "Md ", def.blend, notes), opacity: clamp3(pct(d, "Opct", def.opacity), 0, 1) };
10910
10915
  }
10911
10916
  function readOne(kind, d, notes) {
10912
10917
  const size = (key, fallback) => clamp3(num3(d, key, fallback), 0, 250);
@@ -10949,7 +10954,7 @@ function readOne(kind, d, notes) {
10949
10954
  case "bevel-emboss": {
10950
10955
  const styles = { OtrB: "outer-bevel", InrB: "inner-bevel", Embs: "emboss", PlEb: "pillow-emboss", strokeEmboss: "stroke-emboss" };
10951
10956
  const out = {
10952
- id: _chunkB46UQUDCcjs.newEffectId.call(void 0, ),
10957
+ id: _chunkHB4ICNNAcjs.newEffectId.call(void 0, ),
10953
10958
  enabled: descBool(d, "enab") !== false,
10954
10959
  kind,
10955
10960
  style: _nullishCoalesce(styles[_nullishCoalesce(enumOf3(d, "bvlS"), () => ( ""))], () => ( "inner-bevel")),
@@ -11160,10 +11165,10 @@ function writeLfx2(effects) {
11160
11165
  ["Scl ", unit3("#Prc", 100)],
11161
11166
  ["masterFXSwitch", boolV3(effects.enabled)]
11162
11167
  ];
11163
- const scale = _chunkB46UQUDCcjs.effectsScale.call(void 0, effects);
11168
+ const scale = _chunkHB4ICNNAcjs.effectsScale.call(void 0, effects);
11164
11169
  let dropped = 0;
11165
11170
  for (const [single, multi, kind] of KINDS) {
11166
- const of = effects.items.filter((e) => e.kind === kind).map((e) => writeOne(_chunkB46UQUDCcjs.scaleLayerEffect.call(void 0, e, scale)));
11171
+ const of = effects.items.filter((e) => e.kind === kind).map((e) => writeOne(_chunkHB4ICNNAcjs.scaleLayerEffect.call(void 0, e, scale)));
11167
11172
  if (!of.length) continue;
11168
11173
  if (of.length === 1) items.push([single, obj3(of[0])]);
11169
11174
  else if (multi) items.push([multi, { type: "VlLs", items: of.map(obj3) }]);
@@ -11195,7 +11200,7 @@ function parseLrfx(data) {
11195
11200
  const colorAt = (rd) => {
11196
11201
  rd.u16();
11197
11202
  const c = [rd.u16(), rd.u16(), rd.u16(), rd.u16()];
11198
- return _chunkB46UQUDCcjs.effectColorHex.call(void 0, [c[0] >> 8, c[1] >> 8, c[2] >> 8].map((v) => v / 255));
11203
+ return _chunkHB4ICNNAcjs.effectColorHex.call(void 0, [c[0] >> 8, c[1] >> 8, c[2] >> 8].map((v) => v / 255));
11199
11204
  };
11200
11205
  const blendAt = (rd) => {
11201
11206
  rd.skip(4);
@@ -11214,7 +11219,7 @@ function parseLrfx(data) {
11214
11219
  const enabled = b.u8() !== 0;
11215
11220
  const useGlobalLight = b.u8() !== 0;
11216
11221
  const opacity = b.u8() / 255;
11217
- const base = { id: _chunkB46UQUDCcjs.newEffectId.call(void 0, ), enabled, blend, opacity, color, angle, useGlobalLight, distance: clamp3(distance, 0, 3e4), size: clamp3(blur, 0, 250), antiAlias: false, noise: 0 };
11222
+ const base = { id: _chunkHB4ICNNAcjs.newEffectId.call(void 0, ), enabled, blend, opacity, color, angle, useGlobalLight, distance: clamp3(distance, 0, 3e4), size: clamp3(blur, 0, 250), antiAlias: false, noise: 0 };
11218
11223
  items.push(key === "dsdw" ? { ...base, kind: "drop-shadow", spread: 0, knocksOut: true } : { ...base, kind: "inner-shadow", choke: 0 });
11219
11224
  } else if (key === "oglw" || key === "iglw") {
11220
11225
  b.u32();
@@ -11224,7 +11229,7 @@ function parseLrfx(data) {
11224
11229
  const blend = blendAt(b);
11225
11230
  const enabled = b.u8() !== 0;
11226
11231
  const opacity = b.u8() / 255;
11227
- const base = { id: _chunkB46UQUDCcjs.newEffectId.call(void 0, ), enabled, blend, opacity, fill: { type: "color", color }, technique: "softer", size: clamp3(blur, 0, 250), antiAlias: false, range: 0.5, jitter: 0, noise: 0 };
11232
+ const base = { id: _chunkHB4ICNNAcjs.newEffectId.call(void 0, ), enabled, blend, opacity, fill: { type: "color", color }, technique: "softer", size: clamp3(blur, 0, 250), antiAlias: false, range: 0.5, jitter: 0, noise: 0 };
11228
11233
  items.push(key === "oglw" ? { ...base, kind: "outer-glow", spread: 0 } : { ...base, kind: "inner-glow", choke: 0, source: "edge" });
11229
11234
  } else if (key === "sofi") {
11230
11235
  b.u32();
@@ -11232,7 +11237,7 @@ function parseLrfx(data) {
11232
11237
  const color = colorAt(b);
11233
11238
  const opacity = b.u8() / 255;
11234
11239
  const enabled = b.u8() !== 0;
11235
- items.push({ id: _chunkB46UQUDCcjs.newEffectId.call(void 0, ), kind: "color-overlay", enabled, blend, opacity, color });
11240
+ items.push({ id: _chunkHB4ICNNAcjs.newEffectId.call(void 0, ), kind: "color-overlay", enabled, blend, opacity, color });
11236
11241
  } else if (key === "bevl") notes.add("legacy bevels are not read");
11237
11242
  }
11238
11243
  return { effects: { enabled: true, items }, notes: [...notes] };
@@ -11425,7 +11430,7 @@ function exportPsd(input) {
11425
11430
  const key = layer.type === "group" ? "lfxs" : "lfx2";
11426
11431
  if (fx.psd) {
11427
11432
  const original = parseLfx2(fx.psd.data);
11428
- if (original ? _chunkB46UQUDCcjs.effectsFingerprint.call(void 0, original.effects) === _chunkB46UQUDCcjs.effectsFingerprint.call(void 0, fx) : !fx.items.length) return { key, data: padEven(fx.psd.data) };
11433
+ if (original ? _chunkHB4ICNNAcjs.effectsFingerprint.call(void 0, original.effects) === _chunkHB4ICNNAcjs.effectsFingerprint.call(void 0, fx) : !fx.items.length) return { key, data: padEven(fx.psd.data) };
11429
11434
  }
11430
11435
  if (!fx.items.length && fx.enabled && (_nullishCoalesce(fx.scale, () => ( 1))) === 1) return null;
11431
11436
  const { data, dropped } = writeLfx2(fx);
@@ -11677,7 +11682,7 @@ function exportPsd(input) {
11677
11682
  const byId = new Map((_nullishCoalesce(input.patterns, () => ( []))).map((p) => [p.id, p]));
11678
11683
  const embed = [];
11679
11684
  for (const id of patternIds2) {
11680
- const p = _nullishCoalesce(byId.get(id), () => ( _chunkB46UQUDCcjs.builtinPattern.call(void 0, id)));
11685
+ const p = _nullishCoalesce(byId.get(id), () => ( _chunkHB4ICNNAcjs.builtinPattern.call(void 0, id)));
11681
11686
  if (p) embed.push(p);
11682
11687
  else note(`Pattern "${id}" is not in the document and was not embedded`, id);
11683
11688
  }
@@ -12079,4 +12084,5 @@ function exportPsd(input) {
12079
12084
 
12080
12085
 
12081
12086
 
12082
- exports.LEGACY_PROCESS_VERSION = LEGACY_PROCESS_VERSION; exports.LATEST_PROCESS_VERSION = LATEST_PROCESS_VERSION; exports.normalizeProcessVersion = normalizeProcessVersion; exports.srgbToLinear = srgbToLinear; exports.linearToSrgb = linearToSrgb; exports.LUMA_709 = LUMA_709; exports.IDENTITY_MATRIX3 = IDENTITY_MATRIX3; exports.mulMatrix3 = mulMatrix3; exports.applyMatrix3 = applyMatrix3; exports.invertMatrix3 = invertMatrix3; exports.D65 = D65; exports.bradfordAdaptation = bradfordAdaptation; exports.wbMatrix = wbMatrix; exports.linearSrgbToXy = linearSrgbToXy; exports.TINT_SCALE = TINT_SCALE; exports.MIN_KELVIN = MIN_KELVIN; exports.MAX_KELVIN = MAX_KELVIN; exports.xyToUv = xyToUv; exports.uvToXy = uvToXy; exports.tempTintToXy = tempTintToXy; exports.xyToTempTint = xyToTempTint; exports.AS_SHOT_KELVIN = AS_SHOT_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = MIRED_PER_TEMPERATURE_UNIT; exports.temperatureToKelvin = temperatureToKelvin; exports.kelvinToTemperature = kelvinToTemperature; exports.whiteBalanceMatrix = whiteBalanceMatrix; exports.whiteBalanceFromSample = whiteBalanceFromSample; exports.TONE_LUT_SIZE = TONE_LUT_SIZE; exports.toneCurve = toneCurve; exports.buildToneLut = buildToneLut; exports.sampleToneLut = sampleToneLut; exports.normalizeAngle = normalizeAngle; exports.isQuarterTurnSwapped = isQuarterTurnSwapped; exports.getRotatedSize = getRotatedSize; exports.projectImagePoint = projectImagePoint; exports.unprojectCanvasPoint = unprojectCanvasPoint; exports.applyImageProjectionToContext = applyImageProjectionToContext; exports.projectImageRect = projectImageRect; exports.clampCropToImage = clampCropToImage; exports.getViewportProjection = getViewportProjection; exports.getViewportMetrics = getViewportMetrics; exports.canvasToImagePoint = canvasToImagePoint; exports.imageToCanvasPoint = imageToCanvasPoint; exports.mapCropHandle = mapCropHandle; exports.hitTestCrop = hitTestCrop; exports.getCropCursor = getCropCursor; exports.calculateCropDrag = calculateCropDrag; exports.getAnnotationBounds = getAnnotationBounds; exports.hitTestAnnotation = hitTestAnnotation; exports.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.flattenPath = flattenPath; exports.rasterizeCoverage = rasterizeCoverage; 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.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;
12087
+
12088
+ 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.flattenPath = flattenPath; exports.rasterizeCoverage = rasterizeCoverage; 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.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;