@pixerate/editor 0.266.1 → 0.267.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/agent/index.cjs +8 -4
  2. package/dist/agent/index.js +6 -2
  3. package/dist/animation-editor/controller.d.cts +8 -0
  4. package/dist/animation-editor/controller.d.ts +8 -0
  5. package/dist/animation-editor/effect-tools.d.cts +1 -1
  6. package/dist/animation-editor/effect-tools.d.ts +1 -1
  7. package/dist/animation-editor/index.cjs +172 -105
  8. package/dist/animation-editor/index.js +91 -24
  9. package/dist/brushes/index.cjs +59 -59
  10. package/dist/brushes/index.js +5 -5
  11. package/dist/brushes/profiles.d.cts +6 -1
  12. package/dist/brushes/profiles.d.ts +6 -1
  13. package/dist/{brushstrokeRender-FSUWXUZY.cjs → brushstrokeRender-L7JYRR2R.cjs} +16 -16
  14. package/dist/{brushstrokeRender-KD453OBX.js → brushstrokeRender-NLFPEBGI.js} +4 -4
  15. package/dist/canvas/brushTypes.d.cts +12 -0
  16. package/dist/canvas/brushTypes.d.ts +12 -0
  17. package/dist/canvas/brushstroke.d.cts +1 -1
  18. package/dist/canvas/brushstroke.d.ts +1 -1
  19. package/dist/canvas/drawController.d.cts +19 -4
  20. package/dist/canvas/drawController.d.ts +19 -4
  21. package/dist/canvas/index.cjs +144 -105
  22. package/dist/canvas/index.js +46 -7
  23. package/dist/{chunk-XORJ7UZO.cjs → chunk-3VHH6V67.cjs} +13 -12
  24. package/dist/{chunk-T2LDTEXK.js → chunk-4IDUYB45.js} +2217 -56
  25. package/dist/chunk-7UKFXXWL.js +802 -0
  26. package/dist/chunk-ADMRNWR7.js +340 -0
  27. package/dist/{chunk-CIJBSUM5.js → chunk-AGNUD5BI.js} +2 -2
  28. package/dist/{chunk-WLUVZKVD.cjs → chunk-DT4YQUGT.cjs} +32 -32
  29. package/dist/{chunk-DXYHQ2VN.js → chunk-EF7LZAXQ.js} +1 -1
  30. package/dist/chunk-EXB2EGBE.cjs +802 -0
  31. package/dist/{chunk-4ODRXQRW.js → chunk-EYSHTYLG.js} +1 -1
  32. package/dist/{chunk-R44Y3EFS.js → chunk-FGJHJIMN.js} +8 -336
  33. package/dist/{chunk-AQZQWXEU.cjs → chunk-G7NHE2VD.cjs} +35 -35
  34. package/dist/{chunk-XC6DPRYI.js → chunk-GSTSZPSR.js} +154 -949
  35. package/dist/{chunk-VRK322ZC.cjs → chunk-HIO6E7LC.cjs} +2 -2
  36. package/dist/{chunk-TOID45I2.cjs → chunk-J2TNIZ55.cjs} +1 -1
  37. package/dist/{chunk-YHDHFJUC.cjs → chunk-J5VQYK7T.cjs} +217 -1012
  38. package/dist/{chunk-3C33YTNN.js → chunk-JGWVZPT6.js} +2 -2
  39. package/dist/{chunk-ACFSFUQH.js → chunk-JL6YH5WD.js} +4 -0
  40. package/dist/{chunk-3SBLVGOM.cjs → chunk-LA5Y4ETA.cjs} +23 -23
  41. package/dist/{chunk-MVUQSK5J.cjs → chunk-LHPEG5AU.cjs} +107 -435
  42. package/dist/{chunk-DOZ6F2K2.js → chunk-NSETJI74.js} +3 -2
  43. package/dist/{chunk-XRXFVRGY.cjs → chunk-OKHKA43L.cjs} +2364 -203
  44. package/dist/{chunk-LK4SXL3V.js → chunk-OSEXT7JL.js} +1 -1
  45. package/dist/{chunk-PE6YJMQT.cjs → chunk-PFHJS4HE.cjs} +20 -19
  46. package/dist/{chunk-ZQI3WUPP.js → chunk-QCLY5SFS.js} +12 -0
  47. package/dist/{chunk-7KNW3WXZ.cjs → chunk-QEVLRLUN.cjs} +63 -0
  48. package/dist/{chunk-OTN6VB5S.cjs → chunk-RDFHWAHL.cjs} +5 -1
  49. package/dist/{chunk-6JL2D5SG.js → chunk-VE6UKYQ2.js} +3 -2
  50. package/dist/{chunk-RFJZGTHA.cjs → chunk-XVOP3CGQ.cjs} +9 -9
  51. package/dist/{chunk-EZOJBP4D.js → chunk-YIC6MAJ2.js} +1 -1
  52. package/dist/chunk-YZWM6ZIP.cjs +340 -0
  53. package/dist/{chunk-472INMWH.js → chunk-ZA7L5YJB.js} +63 -0
  54. package/dist/{chunk-YBC3RKT2.cjs → chunk-ZGXJ7BTR.cjs} +13 -1
  55. package/dist/commands/builtins.d.cts +12 -1
  56. package/dist/commands/builtins.d.ts +12 -1
  57. package/dist/commands/index.cjs +2 -2
  58. package/dist/commands/index.js +1 -1
  59. package/dist/image-editor/controller.d.cts +1 -1
  60. package/dist/image-editor/controller.d.ts +1 -1
  61. package/dist/image-editor/index.cjs +837 -833
  62. package/dist/image-editor/index.js +105 -101
  63. package/dist/paint/index.cjs +5 -3
  64. package/dist/paint/index.js +46 -44
  65. package/dist/paint-editor/controller.d.cts +5 -3
  66. package/dist/paint-editor/controller.d.ts +5 -3
  67. package/dist/paint-editor/index.cjs +832 -2295
  68. package/dist/paint-editor/index.js +285 -1748
  69. package/dist/paint-editor/path-samples.d.cts +2 -0
  70. package/dist/paint-editor/path-samples.d.ts +2 -0
  71. package/dist/paint-editor/presence.d.cts +20 -1
  72. package/dist/paint-editor/presence.d.ts +20 -1
  73. package/dist/stickers/helpers.d.cts +2 -0
  74. package/dist/stickers/helpers.d.ts +2 -0
  75. package/dist/stickers/index.cjs +41 -35
  76. package/dist/stickers/index.js +22 -16
  77. package/dist/stickers/types.d.cts +4 -2
  78. package/dist/stickers/types.d.ts +4 -2
  79. package/dist/tools/conformance.d.cts +8 -0
  80. package/dist/tools/conformance.d.ts +8 -0
  81. package/dist/tools/index.cjs +6 -2
  82. package/dist/tools/index.js +5 -1
  83. package/dist/vector/backdrop.d.cts +13 -0
  84. package/dist/vector/backdrop.d.ts +13 -0
  85. package/dist/vector/brushstroke.d.cts +54 -7
  86. package/dist/vector/brushstroke.d.ts +54 -7
  87. package/dist/vector/brushstrokeMedia.d.cts +96 -0
  88. package/dist/vector/brushstrokeMedia.d.ts +96 -0
  89. package/dist/vector/controller.d.cts +17 -3
  90. package/dist/vector/controller.d.ts +17 -3
  91. package/dist/vector/index.cjs +1846 -1386
  92. package/dist/vector/index.d.cts +2 -0
  93. package/dist/vector/index.d.ts +2 -0
  94. package/dist/vector/index.js +517 -57
  95. package/dist/vector/render.d.cts +6 -0
  96. package/dist/vector/render.d.ts +6 -0
  97. package/dist/vector/types.d.cts +14 -0
  98. package/dist/vector/types.d.ts +14 -0
  99. package/package.json +1 -1
  100. package/skills/pixerate-animation-editor/SKILL.md +1 -0
  101. package/skills/pixerate-brushes/SKILL.md +2 -2
  102. package/skills/pixerate-brushes-design/SKILL.md +7 -4
  103. package/skills/pixerate-brushes-design/evals/port-to-vector.json +8 -8
  104. package/skills/pixerate-canvas/SKILL.md +11 -1
  105. package/skills/pixerate-image-editor/SKILL.md +19 -64
  106. package/skills/pixerate-image-editor/references/color-management.md +2 -1
  107. package/skills/pixerate-image-editor/references/free-transform.md +12 -0
  108. package/skills/pixerate-image-editor/references/layer-effects.md +10 -0
  109. package/skills/pixerate-image-editor/references/painting.md +17 -0
  110. package/skills/pixerate-image-editor/references/photoshop-files.md +1 -1
  111. package/skills/pixerate-image-editor/references/shapes-and-type.md +14 -0
  112. package/skills/pixerate-image-editor/references/smart-objects.md +10 -0
  113. package/skills/pixerate-paint-editor/SKILL.md +8 -4
  114. package/skills/pixerate-paint-editor/references/wet-media.md +9 -0
  115. package/skills/pixerate-vector/SKILL.md +16 -6
  116. package/skills/pixerate-vector/references/best-practices.md +1 -0
  117. package/skills/pixerate-vector/references/commands.md +19 -0
@@ -8,7 +8,7 @@ import {
8
8
  parseOpenTypeFont,
9
9
  removeAnchorsKeepingShape,
10
10
  traceField
11
- } from "../chunk-EZOJBP4D.js";
11
+ } from "../chunk-YIC6MAJ2.js";
12
12
  import {
13
13
  ADJUSTMENT_KEYS,
14
14
  ADJUSTMENT_KINDS,
@@ -169,7 +169,6 @@ import {
169
169
  evaluateAdjustmentLayers,
170
170
  exportPsd,
171
171
  filterMaskCoverage,
172
- flattenPath,
173
172
  flipCorners,
174
173
  followLayerMove,
175
174
  geometryHomography,
@@ -295,7 +294,6 @@ import {
295
294
  rangeLightness,
296
295
  rasterContents,
297
296
  rasterMaskFromLegacy,
298
- rasterizeCoverage,
299
297
  rasterizeSmartObject,
300
298
  readEdgeColor,
301
299
  readPsd,
@@ -410,7 +408,11 @@ import {
410
408
  writePsd,
411
409
  xyToTempTint,
412
410
  xyToUv
413
- } from "../chunk-R44Y3EFS.js";
411
+ } from "../chunk-FGJHJIMN.js";
412
+ import {
413
+ flattenPath,
414
+ rasterizeCoverage
415
+ } from "../chunk-ADMRNWR7.js";
414
416
  import {
415
417
  ColorGmm,
416
418
  DEFAULT_REFINE_EDGE_PARAMS,
@@ -568,110 +570,27 @@ import {
568
570
  gaussianBlur
569
571
  } from "../chunk-ZIF4UJJ6.js";
570
572
  import {
571
- BODY_SCATTER,
572
- DEFAULT_FLOW,
573
573
  DEFAULT_RETOUCH,
574
- DEFAULT_WET_PAPER,
575
- DEFAULT_WET_PARAMS,
576
- DRY_EPS,
577
- EX,
578
- EY,
579
- FLAG_ALIVE,
580
- FLAG_BOTTOM,
581
- FLAG_LEFT,
582
- FLAG_RIGHT,
583
- FLAG_TOP,
584
- FLAG_WET,
585
- FLAT,
586
- FREE_INTERVAL,
587
- HIDE,
588
574
  IDENTITY_CLONE_TRANSFORM,
589
- MASS_CHANNELS,
590
- MAX_BATCH,
591
- MAX_TILT_ACCEL,
592
- MAX_WET_LANES,
593
- MAX_WET_SLOTS,
594
- OPP,
595
- PAPER_CAPACITY,
596
- PARAM,
597
- PARAM_FLOATS,
598
- PIGMENT_CHANNELS,
599
- PIGMENT_UNIT,
600
- PLANE,
601
- PLANE_BYTES,
602
- P_D0,
603
- P_DL,
604
- P_EDGE,
605
- P_FX,
606
- P_FY,
607
- P_H,
608
- P_L,
609
- P_P0,
610
- P_RHO,
611
- P_SW,
612
- P_UX,
613
- P_UY,
614
575
  RETOUCH_SAMPLES,
615
576
  RegionPixelSource,
616
577
  RetouchDabStroke,
617
- SET_PLANES,
618
- SLOT_BYTES,
619
- SLOT_PLANES,
620
- SLOT_SIDE,
621
578
  SPOT_HEAL_TYPES,
622
- SRGB_TO_LINEAR,
623
- STRIP,
624
579
  TONE_RANGES,
625
580
  TilePixelSource,
626
581
  TransformedPixelSource,
627
- U_MAX,
628
- W9,
629
- WET_FLOW_KINDS,
630
- WET_PARAM_KEYS,
631
- WET_TILE,
632
- WGSL_HALO,
633
- WGSL_SHADE,
634
- WGSL_STEP,
635
- WetGpuEngine,
636
- WetMedium,
637
- WetWorkerPool,
638
- WetWorld,
639
- WetWorldError,
640
582
  applyRetouchToTile,
641
583
  applyToneToDeepTile,
642
584
  boxBlurPixels,
643
- canShareMemory,
644
585
  cloneSamplePoint,
645
586
  createPigmentTools,
646
- createWetGpuEngine,
647
- dexp,
648
- dlog,
649
587
  dodgeBurn,
650
588
  dodgeBurnCurve,
651
- dpow,
652
- dsincos,
653
- edgeBits,
654
- expNeg,
655
- filmPixel,
656
- filmReflectance,
657
- findWebGpu,
658
- flowField,
659
589
  healPixels,
660
590
  isIdentityCloneTransform,
661
- latticeViscosity,
662
- linearToSrgb8,
663
- loadWetKernel,
664
591
  luma,
665
- moveWetSnapshot,
666
- normalizeFlow,
667
592
  normalizeRetouch,
668
- normalizeTilt,
669
- normalizeWetParams,
670
- packWetParams,
671
593
  perDabStrength,
672
- pigmentColor,
673
- pigmentOf,
674
- pixelPigment,
675
594
  pointerPressure,
676
595
  pointerStrokeSample,
677
596
  pointerStrokeSamples,
@@ -679,20 +598,13 @@ import {
679
598
  retouchFilter,
680
599
  rgbaViewOfGrey,
681
600
  saturationOf,
682
- shadeLightTile,
683
- shadeTile,
684
601
  smudgeEffect,
685
602
  sponge,
686
603
  spongeEffect,
687
604
  spotHealPixels,
688
605
  spotHealWindow,
689
- srgbByteToLinear,
690
- stepSlotTs,
691
- toneOf,
692
- wetGpuSupport,
693
- wetSimdSupported,
694
- wetSupport
695
- } from "../chunk-XC6DPRYI.js";
606
+ toneOf
607
+ } from "../chunk-7UKFXXWL.js";
696
608
  import {
697
609
  bestOffset,
698
610
  contentAwareFill,
@@ -770,15 +682,15 @@ import {
770
682
  warpMeshParamAt,
771
683
  warpMeshRows,
772
684
  warpPresetMesh
773
- } from "../chunk-T2LDTEXK.js";
685
+ } from "../chunk-4IDUYB45.js";
774
686
  import {
775
687
  IMAGE_PROFILE,
776
688
  checkBrush,
777
689
  closest,
778
690
  createBrushLibrary,
779
691
  resolveBrush
780
- } from "../chunk-CIJBSUM5.js";
781
- import "../chunk-ACFSFUQH.js";
692
+ } from "../chunk-AGNUD5BI.js";
693
+ import "../chunk-JL6YH5WD.js";
782
694
  import "../chunk-M6DNZNVY.js";
783
695
  import {
784
696
  bezierPathToSvg,
@@ -804,6 +716,98 @@ import {
804
716
  resolveEffectValues
805
717
  } from "../chunk-MV7CYFMJ.js";
806
718
  import "../chunk-V2ZCJRDM.js";
719
+ import {
720
+ BODY_SCATTER,
721
+ DEFAULT_FLOW,
722
+ DEFAULT_WET_PAPER,
723
+ DEFAULT_WET_PARAMS,
724
+ DRY_EPS,
725
+ EX,
726
+ EY,
727
+ FLAG_ALIVE,
728
+ FLAG_BOTTOM,
729
+ FLAG_LEFT,
730
+ FLAG_RIGHT,
731
+ FLAG_TOP,
732
+ FLAG_WET,
733
+ FLAT,
734
+ FREE_INTERVAL,
735
+ HIDE,
736
+ MASS_CHANNELS,
737
+ MAX_BATCH,
738
+ MAX_TILT_ACCEL,
739
+ MAX_WET_LANES,
740
+ MAX_WET_SLOTS,
741
+ OPP,
742
+ PAPER_CAPACITY,
743
+ PARAM,
744
+ PARAM_FLOATS,
745
+ PIGMENT_CHANNELS,
746
+ PIGMENT_UNIT,
747
+ PLANE,
748
+ PLANE_BYTES,
749
+ P_D0,
750
+ P_DL,
751
+ P_EDGE,
752
+ P_FX,
753
+ P_FY,
754
+ P_H,
755
+ P_L,
756
+ P_P0,
757
+ P_RHO,
758
+ P_SW,
759
+ P_UX,
760
+ P_UY,
761
+ SET_PLANES,
762
+ SLOT_BYTES,
763
+ SLOT_PLANES,
764
+ SLOT_SIDE,
765
+ SRGB_TO_LINEAR,
766
+ STRIP,
767
+ U_MAX,
768
+ W9,
769
+ WET_FLOW_KINDS,
770
+ WET_PARAM_KEYS,
771
+ WET_TILE,
772
+ WGSL_HALO,
773
+ WGSL_SHADE,
774
+ WGSL_STEP,
775
+ WetGpuEngine,
776
+ WetMedium,
777
+ WetWorkerPool,
778
+ WetWorld,
779
+ WetWorldError,
780
+ canShareMemory,
781
+ createWetGpuEngine,
782
+ dexp,
783
+ dlog,
784
+ dpow,
785
+ dsincos,
786
+ edgeBits,
787
+ expNeg,
788
+ filmPixel,
789
+ filmReflectance,
790
+ findWebGpu,
791
+ flowField,
792
+ latticeViscosity,
793
+ linearToSrgb8,
794
+ loadWetKernel,
795
+ moveWetSnapshot,
796
+ normalizeFlow,
797
+ normalizeTilt,
798
+ normalizeWetParams,
799
+ packWetParams,
800
+ pigmentColor,
801
+ pigmentOf,
802
+ pixelPigment,
803
+ shadeLightTile,
804
+ shadeTile,
805
+ srgbByteToLinear,
806
+ stepSlotTs,
807
+ wetGpuSupport,
808
+ wetSimdSupported,
809
+ wetSupport
810
+ } from "../chunk-GSTSZPSR.js";
807
811
  import {
808
812
  BrushstrokeCache,
809
813
  GRAIN_PATTERNS,
@@ -12165,7 +12169,7 @@ var ImageEditorController = class {
12165
12169
  return layers;
12166
12170
  }
12167
12171
  /**
12168
- * The document as an RGB PSD at its bit depth (8, 16 or 32) (PSB above 30 000 px) with real layers, groups, adjustment
12172
+ * The document as a PSD in its colour mode (RGB, CMYK or Lab) at its bit depth (PSB above 30 000 px) with real layers, groups, adjustment
12169
12173
  * layers and masks, in the source frame. Layer filters and parametric (depth) masks are baked
12170
12174
  * into pixels and masks, annotation layers are rasterized (in a browser; elsewhere they are left
12171
12175
  * out), and the merged image is our composite. `warnings` lists every such change.
@@ -16817,7 +16821,7 @@ function createImagePsdTools(controller) {
16817
16821
  const save = {
16818
16822
  name: "export_psd",
16819
16823
  title: "Export the document as a PSD",
16820
- description: "Writes the document as an RGB PSD at its bit depth (8, 16 or 32; see set_bit_depth; a PSB above 30000 px) with real layers, groups, adjustment layers, masks and layer effects (an effects block opened from a PSD is written back unchanged while its effects are; the patterns effects use are embedded), in the source frame (crop and rotation are not applied). Smart objects are written as Photoshop smart objects (contents embedded once per linked set, placement, warp, smart filters and filter mask; a Develop smart filter has no Photoshop filter and is left out of the list). Shape layers are written as Photoshop shape layers (path, fill, stroke, live shapes) and type layers as Photoshop type layers (text, runs, paragraphs, frame; blocks opened from a PSD are written back unchanged while the layer is). Layer filters and depth masks are baked, annotation layers are rasterized (in a browser; elsewhere left out), and the merged image is the editor's composite. Changes nothing. Returns the file as base64, its size in bytes, whether it is a PSB, and warnings for everything that was changed or left out.",
16824
+ description: "Writes the document as a PSD in its colour mode (RGB with the working-space profile, or CMYK / Lab channels after set_color_mode, CMYK with its press profile) at its bit depth (RGB 8, 16 or 32; CMYK and Lab 8 or 16, a 32-bit document being written at 16; see set_bit_depth; a PSB above 30000 px) with real layers, groups, adjustment layers, masks and layer effects (an effects block opened from a PSD is written back unchanged while its effects are; the patterns effects use are embedded), in the source frame (crop and rotation are not applied). Smart objects are written as Photoshop smart objects (contents embedded once per linked set, placement, warp, smart filters and filter mask; a Develop smart filter has no Photoshop filter and is left out of the list). Shape layers are written as Photoshop shape layers (path, fill, stroke, live shapes) and type layers as Photoshop type layers (text, runs, paragraphs, frame; blocks opened from a PSD are written back unchanged while the layer is). Pigment and painterly blend modes have no Photoshop mode and are written as Normal (Pigment with a warning). Layer filters and depth masks are baked, annotation layers are rasterized (in a browser; elsewhere left out), and the merged image is the editor's composite. Changes nothing. Returns the file as base64, its size in bytes, whether it is a PSB, and warnings for everything that was changed or left out.",
16821
16825
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
16822
16826
  annotations: { title: "Export the document as a PSD", ...READ6 },
16823
16827
  handler: async () => {
@@ -33,6 +33,7 @@
33
33
 
34
34
 
35
35
 
36
+ var _chunkEXB2EGBEcjs = require('../chunk-EXB2EGBE.cjs');
36
37
 
37
38
 
38
39
 
@@ -41,6 +42,7 @@
41
42
 
42
43
 
43
44
 
45
+ var _chunkBB6TR422cjs = require('../chunk-BB6TR422.cjs');
44
46
 
45
47
 
46
48
 
@@ -123,7 +125,6 @@
123
125
 
124
126
 
125
127
 
126
- var _chunkYHDHFJUCcjs = require('../chunk-YHDHFJUC.cjs');
127
128
 
128
129
 
129
130
 
@@ -132,7 +133,8 @@ var _chunkYHDHFJUCcjs = require('../chunk-YHDHFJUC.cjs');
132
133
 
133
134
 
134
135
 
135
- var _chunkBB6TR422cjs = require('../chunk-BB6TR422.cjs');
136
+
137
+ var _chunkJ5VQYK7Tcjs = require('../chunk-J5VQYK7T.cjs');
136
138
 
137
139
 
138
140
 
@@ -496,4 +498,4 @@ require('../chunk-XFM3OCHU.cjs');
496
498
 
497
499
 
498
500
 
499
- exports.BODY_SCATTER = _chunkYHDHFJUCcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkPXDIAYB6cjs.BrushstrokeCache; exports.CoverageMap = _chunkFQPUF2W2cjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkFQPUF2W2cjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkFQPUF2W2cjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkYHDHFJUCcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkFQPUF2W2cjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunkYHDHFJUCcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkFQPUF2W2cjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkYHDHFJUCcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkYHDHFJUCcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkYHDHFJUCcjs.DRY_EPS; exports.DabWalker = _chunkFQPUF2W2cjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkFQPUF2W2cjs.EMPTY_MIXER_LOAD; exports.EX = _chunkYHDHFJUCcjs.EX; exports.EY = _chunkYHDHFJUCcjs.EY; exports.FLAG_ALIVE = _chunkYHDHFJUCcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkYHDHFJUCcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkYHDHFJUCcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkYHDHFJUCcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkYHDHFJUCcjs.FLAG_TOP; exports.FLAG_WET = _chunkYHDHFJUCcjs.FLAG_WET; exports.FLAT = _chunkYHDHFJUCcjs.FLAT; exports.FREE_INTERVAL = _chunkYHDHFJUCcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkPXDIAYB6cjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPXDIAYB6cjs.GRAIN_TILE; exports.HIDE = _chunkYHDHFJUCcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunkYHDHFJUCcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkYHDHFJUCcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkYHDHFJUCcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkFQPUF2W2cjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkYHDHFJUCcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkYHDHFJUCcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkYHDHFJUCcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkFQPUF2W2cjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkFQPUF2W2cjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkFQPUF2W2cjs.MIXING_MODELS; exports.MixerStroke = _chunkFQPUF2W2cjs.MixerStroke; exports.OPP = _chunkYHDHFJUCcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkFQPUF2W2cjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkFQPUF2W2cjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkYHDHFJUCcjs.PAPER_CAPACITY; exports.PARAM = _chunkYHDHFJUCcjs.PARAM; exports.PARAM_FLOATS = _chunkYHDHFJUCcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkYHDHFJUCcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkYHDHFJUCcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkYHDHFJUCcjs.PLANE; exports.PLANE_BYTES = _chunkYHDHFJUCcjs.PLANE_BYTES; exports.P_D0 = _chunkYHDHFJUCcjs.P_D0; exports.P_DL = _chunkYHDHFJUCcjs.P_DL; exports.P_EDGE = _chunkYHDHFJUCcjs.P_EDGE; exports.P_FX = _chunkYHDHFJUCcjs.P_FX; exports.P_FY = _chunkYHDHFJUCcjs.P_FY; exports.P_H = _chunkYHDHFJUCcjs.P_H; exports.P_L = _chunkYHDHFJUCcjs.P_L; exports.P_P0 = _chunkYHDHFJUCcjs.P_P0; exports.P_RHO = _chunkYHDHFJUCcjs.P_RHO; exports.P_SW = _chunkYHDHFJUCcjs.P_SW; exports.P_UX = _chunkYHDHFJUCcjs.P_UX; exports.P_UY = _chunkYHDHFJUCcjs.P_UY; exports.PaintExchange = _chunkFQPUF2W2cjs.PaintExchange; exports.PaintGradientSampler = _chunkFQPUF2W2cjs.PaintGradientSampler; exports.PaintSourceError = _chunkFQPUF2W2cjs.PaintSourceError; exports.PaperGrain = _chunkPXDIAYB6cjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunkYHDHFJUCcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunkYHDHFJUCcjs.RegionPixelSource; exports.RetouchDabStroke = _chunkYHDHFJUCcjs.RetouchDabStroke; exports.SET_PLANES = _chunkYHDHFJUCcjs.SET_PLANES; exports.SLOT_BYTES = _chunkYHDHFJUCcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkYHDHFJUCcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkYHDHFJUCcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunkYHDHFJUCcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkYHDHFJUCcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkYHDHFJUCcjs.STRIP; exports.SmudgeTip = _chunkFQPUF2W2cjs.SmudgeTip; exports.StrokeCoverage = _chunkFQPUF2W2cjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkFQPUF2W2cjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunkYHDHFJUCcjs.TONE_RANGES; exports.TileMedium = _chunkFQPUF2W2cjs.TileMedium; exports.TilePixelSource = _chunkYHDHFJUCcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunkYHDHFJUCcjs.TransformedPixelSource; exports.U_MAX = _chunkYHDHFJUCcjs.U_MAX; exports.W9 = _chunkYHDHFJUCcjs.W9; exports.WET_FLOW_KINDS = _chunkYHDHFJUCcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkYHDHFJUCcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkYHDHFJUCcjs.WET_TILE; exports.WGSL_HALO = _chunkYHDHFJUCcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkYHDHFJUCcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkYHDHFJUCcjs.WGSL_STEP; exports.WetGpuEngine = _chunkYHDHFJUCcjs.WetGpuEngine; exports.WetMedium = _chunkYHDHFJUCcjs.WetMedium; exports.WetWorkerPool = _chunkYHDHFJUCcjs.WetWorkerPool; exports.WetWorld = _chunkYHDHFJUCcjs.WetWorld; exports.WetWorldError = _chunkYHDHFJUCcjs.WetWorldError; exports.addPaintGradientStop = _chunkFQPUF2W2cjs.addPaintGradientStop; exports.applyRetouchToTile = _chunkYHDHFJUCcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkFQPUF2W2cjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkFQPUF2W2cjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkYHDHFJUCcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkFQPUF2W2cjs.blendRadius; exports.blenderDab = _chunkFQPUF2W2cjs.blenderDab; exports.boxBlurPixels = _chunkYHDHFJUCcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkPXDIAYB6cjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkPXDIAYB6cjs.brushstrokeKey; exports.brushstrokeSamples = _chunkPXDIAYB6cjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkPXDIAYB6cjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkPXDIAYB6cjs.brushstrokeToCanvas; exports.canShareMemory = _chunkYHDHFJUCcjs.canShareMemory; exports.cleanMixer = _chunkFQPUF2W2cjs.cleanMixer; exports.cloneSamplePoint = _chunkYHDHFJUCcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkFQPUF2W2cjs.coverageTileCoord; exports.createBlenderScratch = _chunkFQPUF2W2cjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunkYHDHFJUCcjs.createPigmentTools; exports.createWetGpuEngine = _chunkYHDHFJUCcjs.createWetGpuEngine; exports.dabCoverage = _chunkFQPUF2W2cjs.dabCoverage; exports.dabRect = _chunkFQPUF2W2cjs.dabRect; exports.dexp = _chunkYHDHFJUCcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkYHDHFJUCcjs.dlog; exports.dodgeBurn = _chunkYHDHFJUCcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkYHDHFJUCcjs.dodgeBurnCurve; exports.dpow = _chunkYHDHFJUCcjs.dpow; exports.dsincos = _chunkYHDHFJUCcjs.dsincos; exports.edgeBits = _chunkYHDHFJUCcjs.edgeBits; exports.exchangeRates = _chunkFQPUF2W2cjs.exchangeRates; exports.expNeg = _chunkYHDHFJUCcjs.expNeg; exports.filmPixel = _chunkYHDHFJUCcjs.filmPixel; exports.filmReflectance = _chunkYHDHFJUCcjs.filmReflectance; exports.findWebGpu = _chunkYHDHFJUCcjs.findWebGpu; exports.flowField = _chunkYHDHFJUCcjs.flowField; exports.gradientDabColor = _chunkFQPUF2W2cjs.gradientDabColor; exports.grainCatch = _chunkPXDIAYB6cjs.grainCatch; exports.grainHeights = _chunkPXDIAYB6cjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunkYHDHFJUCcjs.healPixels; exports.hexToPaintRgb = _chunkFQPUF2W2cjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkPXDIAYB6cjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkFQPUF2W2cjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkYHDHFJUCcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkYHDHFJUCcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkYHDHFJUCcjs.linearToSrgb8; exports.loadMixer = _chunkFQPUF2W2cjs.loadMixer; exports.loadWetKernel = _chunkYHDHFJUCcjs.loadWetKernel; exports.luma = _chunkYHDHFJUCcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkFQPUF2W2cjs.mixerRates; exports.moveWetSnapshot = _chunkYHDHFJUCcjs.moveWetSnapshot; exports.normalizeBlender = _chunkFQPUF2W2cjs.normalizeBlender; exports.normalizeBrush = _chunkFQPUF2W2cjs.normalizeBrush; exports.normalizeFlow = _chunkYHDHFJUCcjs.normalizeFlow; exports.normalizeHexColor = _chunkFQPUF2W2cjs.normalizeHexColor; exports.normalizeMixer = _chunkFQPUF2W2cjs.normalizeMixer; exports.normalizeRetouch = _chunkYHDHFJUCcjs.normalizeRetouch; exports.normalizeSmudge = _chunkFQPUF2W2cjs.normalizeSmudge; exports.normalizeTilt = _chunkYHDHFJUCcjs.normalizeTilt; exports.normalizeWetParams = _chunkYHDHFJUCcjs.normalizeWetParams; exports.packWetParams = _chunkYHDHFJUCcjs.packWetParams; exports.paintGradientMappingFor = _chunkFQPUF2W2cjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPXDIAYB6cjs.paintPathStroke; exports.paintSourceColor = _chunkFQPUF2W2cjs.paintSourceColor; exports.paintSourceCss = _chunkFQPUF2W2cjs.paintSourceCss; exports.parsePaintSource = _chunkFQPUF2W2cjs.parsePaintSource; exports.pathStrokeCoverage = _chunkPXDIAYB6cjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkPXDIAYB6cjs.pathStrokeDabs; exports.perDabStrength = _chunkYHDHFJUCcjs.perDabStrength; exports.pigmentColor = _chunkYHDHFJUCcjs.pigmentColor; exports.pigmentOf = _chunkYHDHFJUCcjs.pigmentOf; exports.pixelPigment = _chunkYHDHFJUCcjs.pixelPigment; exports.pointerPressure = _chunkYHDHFJUCcjs.pointerPressure; exports.pointerStrokeSample = _chunkYHDHFJUCcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkYHDHFJUCcjs.pointerStrokeSamples; exports.put255 = _chunkFQPUF2W2cjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkFQPUF2W2cjs.rasterizeDab; exports.readPaintSource = _chunkFQPUF2W2cjs.readPaintSource; exports.readSourceRegion = _chunkYHDHFJUCcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkFQPUF2W2cjs.removePaintGradientStop; exports.renderBrushstroke = _chunkPXDIAYB6cjs.renderBrushstroke; exports.resolvePaintGradient = _chunkFQPUF2W2cjs.resolvePaintGradient; exports.retouchFilter = _chunkYHDHFJUCcjs.retouchFilter; exports.reversePaintGradient = _chunkFQPUF2W2cjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunkYHDHFJUCcjs.rgbaViewOfGrey; exports.saturationOf = _chunkYHDHFJUCcjs.saturationOf; exports.scalePaintGradient = _chunkFQPUF2W2cjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkYHDHFJUCcjs.shadeLightTile; exports.shadeTile = _chunkYHDHFJUCcjs.shadeTile; exports.smoothPoints = _chunkFQPUF2W2cjs.smoothPoints; exports.smudgeEffect = _chunkYHDHFJUCcjs.smudgeEffect; exports.solidPaint = _chunkFQPUF2W2cjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunkYHDHFJUCcjs.sponge; exports.spongeEffect = _chunkYHDHFJUCcjs.spongeEffect; exports.spotHealPixels = _chunkYHDHFJUCcjs.spotHealPixels; exports.spotHealWindow = _chunkYHDHFJUCcjs.spotHealWindow; exports.srgbByteToLinear = _chunkYHDHFJUCcjs.srgbByteToLinear; exports.stepSlotTs = _chunkYHDHFJUCcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPXDIAYB6cjs.strokeGrainCatch; exports.tipFalloff = _chunkFQPUF2W2cjs.tipFalloff; exports.tipReach = _chunkFQPUF2W2cjs.tipReach; exports.tipShape = _chunkFQPUF2W2cjs.tipShape; exports.toneOf = _chunkYHDHFJUCcjs.toneOf; exports.updatePaintGradientStop = _chunkFQPUF2W2cjs.updatePaintGradientStop; exports.walkDabs = _chunkFQPUF2W2cjs.walkDabs; exports.wetGpuSupport = _chunkYHDHFJUCcjs.wetGpuSupport; exports.wetSimdSupported = _chunkYHDHFJUCcjs.wetSimdSupported; exports.wetSupport = _chunkYHDHFJUCcjs.wetSupport;
501
+ exports.BODY_SCATTER = _chunkJ5VQYK7Tcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkPXDIAYB6cjs.BrushstrokeCache; exports.CoverageMap = _chunkFQPUF2W2cjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkFQPUF2W2cjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkFQPUF2W2cjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkJ5VQYK7Tcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkFQPUF2W2cjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunkEXB2EGBEcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkFQPUF2W2cjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkJ5VQYK7Tcjs.DRY_EPS; exports.DabWalker = _chunkFQPUF2W2cjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkFQPUF2W2cjs.EMPTY_MIXER_LOAD; exports.EX = _chunkJ5VQYK7Tcjs.EX; exports.EY = _chunkJ5VQYK7Tcjs.EY; exports.FLAG_ALIVE = _chunkJ5VQYK7Tcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkJ5VQYK7Tcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkJ5VQYK7Tcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkJ5VQYK7Tcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkJ5VQYK7Tcjs.FLAG_TOP; exports.FLAG_WET = _chunkJ5VQYK7Tcjs.FLAG_WET; exports.FLAT = _chunkJ5VQYK7Tcjs.FLAT; exports.FREE_INTERVAL = _chunkJ5VQYK7Tcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkPXDIAYB6cjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPXDIAYB6cjs.GRAIN_TILE; exports.HIDE = _chunkJ5VQYK7Tcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunkEXB2EGBEcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkJ5VQYK7Tcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkJ5VQYK7Tcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkFQPUF2W2cjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkJ5VQYK7Tcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkJ5VQYK7Tcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkJ5VQYK7Tcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkFQPUF2W2cjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkFQPUF2W2cjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkFQPUF2W2cjs.MIXING_MODELS; exports.MixerStroke = _chunkFQPUF2W2cjs.MixerStroke; exports.OPP = _chunkJ5VQYK7Tcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkFQPUF2W2cjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkFQPUF2W2cjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkJ5VQYK7Tcjs.PAPER_CAPACITY; exports.PARAM = _chunkJ5VQYK7Tcjs.PARAM; exports.PARAM_FLOATS = _chunkJ5VQYK7Tcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkJ5VQYK7Tcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkJ5VQYK7Tcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkJ5VQYK7Tcjs.PLANE; exports.PLANE_BYTES = _chunkJ5VQYK7Tcjs.PLANE_BYTES; exports.P_D0 = _chunkJ5VQYK7Tcjs.P_D0; exports.P_DL = _chunkJ5VQYK7Tcjs.P_DL; exports.P_EDGE = _chunkJ5VQYK7Tcjs.P_EDGE; exports.P_FX = _chunkJ5VQYK7Tcjs.P_FX; exports.P_FY = _chunkJ5VQYK7Tcjs.P_FY; exports.P_H = _chunkJ5VQYK7Tcjs.P_H; exports.P_L = _chunkJ5VQYK7Tcjs.P_L; exports.P_P0 = _chunkJ5VQYK7Tcjs.P_P0; exports.P_RHO = _chunkJ5VQYK7Tcjs.P_RHO; exports.P_SW = _chunkJ5VQYK7Tcjs.P_SW; exports.P_UX = _chunkJ5VQYK7Tcjs.P_UX; exports.P_UY = _chunkJ5VQYK7Tcjs.P_UY; exports.PaintExchange = _chunkFQPUF2W2cjs.PaintExchange; exports.PaintGradientSampler = _chunkFQPUF2W2cjs.PaintGradientSampler; exports.PaintSourceError = _chunkFQPUF2W2cjs.PaintSourceError; exports.PaperGrain = _chunkPXDIAYB6cjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunkEXB2EGBEcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunkEXB2EGBEcjs.RegionPixelSource; exports.RetouchDabStroke = _chunkEXB2EGBEcjs.RetouchDabStroke; exports.SET_PLANES = _chunkJ5VQYK7Tcjs.SET_PLANES; exports.SLOT_BYTES = _chunkJ5VQYK7Tcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkJ5VQYK7Tcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkJ5VQYK7Tcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunkEXB2EGBEcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkJ5VQYK7Tcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkJ5VQYK7Tcjs.STRIP; exports.SmudgeTip = _chunkFQPUF2W2cjs.SmudgeTip; exports.StrokeCoverage = _chunkFQPUF2W2cjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkFQPUF2W2cjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunkEXB2EGBEcjs.TONE_RANGES; exports.TileMedium = _chunkFQPUF2W2cjs.TileMedium; exports.TilePixelSource = _chunkEXB2EGBEcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunkEXB2EGBEcjs.TransformedPixelSource; exports.U_MAX = _chunkJ5VQYK7Tcjs.U_MAX; exports.W9 = _chunkJ5VQYK7Tcjs.W9; exports.WET_FLOW_KINDS = _chunkJ5VQYK7Tcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkJ5VQYK7Tcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkJ5VQYK7Tcjs.WET_TILE; exports.WGSL_HALO = _chunkJ5VQYK7Tcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkJ5VQYK7Tcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkJ5VQYK7Tcjs.WGSL_STEP; exports.WetGpuEngine = _chunkJ5VQYK7Tcjs.WetGpuEngine; exports.WetMedium = _chunkJ5VQYK7Tcjs.WetMedium; exports.WetWorkerPool = _chunkJ5VQYK7Tcjs.WetWorkerPool; exports.WetWorld = _chunkJ5VQYK7Tcjs.WetWorld; exports.WetWorldError = _chunkJ5VQYK7Tcjs.WetWorldError; exports.addPaintGradientStop = _chunkFQPUF2W2cjs.addPaintGradientStop; exports.applyRetouchToTile = _chunkEXB2EGBEcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkFQPUF2W2cjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkFQPUF2W2cjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkEXB2EGBEcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkFQPUF2W2cjs.blendRadius; exports.blenderDab = _chunkFQPUF2W2cjs.blenderDab; exports.boxBlurPixels = _chunkEXB2EGBEcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkPXDIAYB6cjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkPXDIAYB6cjs.brushstrokeKey; exports.brushstrokeSamples = _chunkPXDIAYB6cjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkPXDIAYB6cjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkPXDIAYB6cjs.brushstrokeToCanvas; exports.canShareMemory = _chunkJ5VQYK7Tcjs.canShareMemory; exports.cleanMixer = _chunkFQPUF2W2cjs.cleanMixer; exports.cloneSamplePoint = _chunkEXB2EGBEcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkFQPUF2W2cjs.coverageTileCoord; exports.createBlenderScratch = _chunkFQPUF2W2cjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunkEXB2EGBEcjs.createPigmentTools; exports.createWetGpuEngine = _chunkJ5VQYK7Tcjs.createWetGpuEngine; exports.dabCoverage = _chunkFQPUF2W2cjs.dabCoverage; exports.dabRect = _chunkFQPUF2W2cjs.dabRect; exports.dexp = _chunkJ5VQYK7Tcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkJ5VQYK7Tcjs.dlog; exports.dodgeBurn = _chunkEXB2EGBEcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkEXB2EGBEcjs.dodgeBurnCurve; exports.dpow = _chunkJ5VQYK7Tcjs.dpow; exports.dsincos = _chunkJ5VQYK7Tcjs.dsincos; exports.edgeBits = _chunkJ5VQYK7Tcjs.edgeBits; exports.exchangeRates = _chunkFQPUF2W2cjs.exchangeRates; exports.expNeg = _chunkJ5VQYK7Tcjs.expNeg; exports.filmPixel = _chunkJ5VQYK7Tcjs.filmPixel; exports.filmReflectance = _chunkJ5VQYK7Tcjs.filmReflectance; exports.findWebGpu = _chunkJ5VQYK7Tcjs.findWebGpu; exports.flowField = _chunkJ5VQYK7Tcjs.flowField; exports.gradientDabColor = _chunkFQPUF2W2cjs.gradientDabColor; exports.grainCatch = _chunkPXDIAYB6cjs.grainCatch; exports.grainHeights = _chunkPXDIAYB6cjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunkEXB2EGBEcjs.healPixels; exports.hexToPaintRgb = _chunkFQPUF2W2cjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkPXDIAYB6cjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkFQPUF2W2cjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkEXB2EGBEcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkJ5VQYK7Tcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkJ5VQYK7Tcjs.linearToSrgb8; exports.loadMixer = _chunkFQPUF2W2cjs.loadMixer; exports.loadWetKernel = _chunkJ5VQYK7Tcjs.loadWetKernel; exports.luma = _chunkEXB2EGBEcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkFQPUF2W2cjs.mixerRates; exports.moveWetSnapshot = _chunkJ5VQYK7Tcjs.moveWetSnapshot; exports.normalizeBlender = _chunkFQPUF2W2cjs.normalizeBlender; exports.normalizeBrush = _chunkFQPUF2W2cjs.normalizeBrush; exports.normalizeFlow = _chunkJ5VQYK7Tcjs.normalizeFlow; exports.normalizeHexColor = _chunkFQPUF2W2cjs.normalizeHexColor; exports.normalizeMixer = _chunkFQPUF2W2cjs.normalizeMixer; exports.normalizeRetouch = _chunkEXB2EGBEcjs.normalizeRetouch; exports.normalizeSmudge = _chunkFQPUF2W2cjs.normalizeSmudge; exports.normalizeTilt = _chunkJ5VQYK7Tcjs.normalizeTilt; exports.normalizeWetParams = _chunkJ5VQYK7Tcjs.normalizeWetParams; exports.packWetParams = _chunkJ5VQYK7Tcjs.packWetParams; exports.paintGradientMappingFor = _chunkFQPUF2W2cjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPXDIAYB6cjs.paintPathStroke; exports.paintSourceColor = _chunkFQPUF2W2cjs.paintSourceColor; exports.paintSourceCss = _chunkFQPUF2W2cjs.paintSourceCss; exports.parsePaintSource = _chunkFQPUF2W2cjs.parsePaintSource; exports.pathStrokeCoverage = _chunkPXDIAYB6cjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkPXDIAYB6cjs.pathStrokeDabs; exports.perDabStrength = _chunkEXB2EGBEcjs.perDabStrength; exports.pigmentColor = _chunkJ5VQYK7Tcjs.pigmentColor; exports.pigmentOf = _chunkJ5VQYK7Tcjs.pigmentOf; exports.pixelPigment = _chunkJ5VQYK7Tcjs.pixelPigment; exports.pointerPressure = _chunkEXB2EGBEcjs.pointerPressure; exports.pointerStrokeSample = _chunkEXB2EGBEcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkEXB2EGBEcjs.pointerStrokeSamples; exports.put255 = _chunkFQPUF2W2cjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkFQPUF2W2cjs.rasterizeDab; exports.readPaintSource = _chunkFQPUF2W2cjs.readPaintSource; exports.readSourceRegion = _chunkEXB2EGBEcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkFQPUF2W2cjs.removePaintGradientStop; exports.renderBrushstroke = _chunkPXDIAYB6cjs.renderBrushstroke; exports.resolvePaintGradient = _chunkFQPUF2W2cjs.resolvePaintGradient; exports.retouchFilter = _chunkEXB2EGBEcjs.retouchFilter; exports.reversePaintGradient = _chunkFQPUF2W2cjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunkEXB2EGBEcjs.rgbaViewOfGrey; exports.saturationOf = _chunkEXB2EGBEcjs.saturationOf; exports.scalePaintGradient = _chunkFQPUF2W2cjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkJ5VQYK7Tcjs.shadeLightTile; exports.shadeTile = _chunkJ5VQYK7Tcjs.shadeTile; exports.smoothPoints = _chunkFQPUF2W2cjs.smoothPoints; exports.smudgeEffect = _chunkEXB2EGBEcjs.smudgeEffect; exports.solidPaint = _chunkFQPUF2W2cjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunkEXB2EGBEcjs.sponge; exports.spongeEffect = _chunkEXB2EGBEcjs.spongeEffect; exports.spotHealPixels = _chunkEXB2EGBEcjs.spotHealPixels; exports.spotHealWindow = _chunkEXB2EGBEcjs.spotHealWindow; exports.srgbByteToLinear = _chunkJ5VQYK7Tcjs.srgbByteToLinear; exports.stepSlotTs = _chunkJ5VQYK7Tcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPXDIAYB6cjs.strokeGrainCatch; exports.tipFalloff = _chunkFQPUF2W2cjs.tipFalloff; exports.tipReach = _chunkFQPUF2W2cjs.tipReach; exports.tipShape = _chunkFQPUF2W2cjs.tipShape; exports.toneOf = _chunkEXB2EGBEcjs.toneOf; exports.updatePaintGradientStop = _chunkFQPUF2W2cjs.updatePaintGradientStop; exports.walkDabs = _chunkFQPUF2W2cjs.walkDabs; exports.wetGpuSupport = _chunkJ5VQYK7Tcjs.wetGpuSupport; exports.wetSimdSupported = _chunkJ5VQYK7Tcjs.wetSimdSupported; exports.wetSupport = _chunkJ5VQYK7Tcjs.wetSupport;
@@ -1,7 +1,51 @@
1
+ import {
2
+ DEFAULT_RETOUCH,
3
+ IDENTITY_CLONE_TRANSFORM,
4
+ RETOUCH_SAMPLES,
5
+ RegionPixelSource,
6
+ RetouchDabStroke,
7
+ SPOT_HEAL_TYPES,
8
+ TONE_RANGES,
9
+ TilePixelSource,
10
+ TransformedPixelSource,
11
+ applyRetouchToTile,
12
+ applyToneToDeepTile,
13
+ boxBlurPixels,
14
+ cloneSamplePoint,
15
+ createPigmentTools,
16
+ dodgeBurn,
17
+ dodgeBurnCurve,
18
+ healPixels,
19
+ isIdentityCloneTransform,
20
+ luma,
21
+ normalizeRetouch,
22
+ perDabStrength,
23
+ pointerPressure,
24
+ pointerStrokeSample,
25
+ pointerStrokeSamples,
26
+ readSourceRegion,
27
+ retouchFilter,
28
+ rgbaViewOfGrey,
29
+ saturationOf,
30
+ smudgeEffect,
31
+ sponge,
32
+ spongeEffect,
33
+ spotHealPixels,
34
+ spotHealWindow,
35
+ toneOf
36
+ } from "../chunk-7UKFXXWL.js";
37
+ import {
38
+ bestOffset,
39
+ contentAwareFill,
40
+ dilateMask,
41
+ maskBounds,
42
+ membraneFill,
43
+ seamlessClone,
44
+ solveMembrane
45
+ } from "../chunk-VWEWY4FY.js";
1
46
  import {
2
47
  BODY_SCATTER,
3
48
  DEFAULT_FLOW,
4
- DEFAULT_RETOUCH,
5
49
  DEFAULT_WET_PAPER,
6
50
  DEFAULT_WET_PARAMS,
7
51
  DRY_EPS,
@@ -16,7 +60,6 @@ import {
16
60
  FLAT,
17
61
  FREE_INTERVAL,
18
62
  HIDE,
19
- IDENTITY_CLONE_TRANSFORM,
20
63
  MASS_CHANNELS,
21
64
  MAX_BATCH,
22
65
  MAX_TILT_ACCEL,
@@ -42,19 +85,12 @@ import {
42
85
  P_SW,
43
86
  P_UX,
44
87
  P_UY,
45
- RETOUCH_SAMPLES,
46
- RegionPixelSource,
47
- RetouchDabStroke,
48
88
  SET_PLANES,
49
89
  SLOT_BYTES,
50
90
  SLOT_PLANES,
51
91
  SLOT_SIDE,
52
- SPOT_HEAL_TYPES,
53
92
  SRGB_TO_LINEAR,
54
93
  STRIP,
55
- TONE_RANGES,
56
- TilePixelSource,
57
- TransformedPixelSource,
58
94
  U_MAX,
59
95
  W9,
60
96
  WET_FLOW_KINDS,
@@ -68,17 +104,10 @@ import {
68
104
  WetWorkerPool,
69
105
  WetWorld,
70
106
  WetWorldError,
71
- applyRetouchToTile,
72
- applyToneToDeepTile,
73
- boxBlurPixels,
74
107
  canShareMemory,
75
- cloneSamplePoint,
76
- createPigmentTools,
77
108
  createWetGpuEngine,
78
109
  dexp,
79
110
  dlog,
80
- dodgeBurn,
81
- dodgeBurnCurve,
82
111
  dpow,
83
112
  dsincos,
84
113
  edgeBits,
@@ -87,52 +116,25 @@ import {
87
116
  filmReflectance,
88
117
  findWebGpu,
89
118
  flowField,
90
- healPixels,
91
- isIdentityCloneTransform,
92
119
  latticeViscosity,
93
120
  linearToSrgb8,
94
121
  loadWetKernel,
95
- luma,
96
122
  moveWetSnapshot,
97
123
  normalizeFlow,
98
- normalizeRetouch,
99
124
  normalizeTilt,
100
125
  normalizeWetParams,
101
126
  packWetParams,
102
- perDabStrength,
103
127
  pigmentColor,
104
128
  pigmentOf,
105
129
  pixelPigment,
106
- pointerPressure,
107
- pointerStrokeSample,
108
- pointerStrokeSamples,
109
- readSourceRegion,
110
- retouchFilter,
111
- rgbaViewOfGrey,
112
- saturationOf,
113
130
  shadeLightTile,
114
131
  shadeTile,
115
- smudgeEffect,
116
- sponge,
117
- spongeEffect,
118
- spotHealPixels,
119
- spotHealWindow,
120
132
  srgbByteToLinear,
121
133
  stepSlotTs,
122
- toneOf,
123
134
  wetGpuSupport,
124
135
  wetSimdSupported,
125
136
  wetSupport
126
- } from "../chunk-XC6DPRYI.js";
127
- import {
128
- bestOffset,
129
- contentAwareFill,
130
- dilateMask,
131
- maskBounds,
132
- membraneFill,
133
- seamlessClone,
134
- solveMembrane
135
- } from "../chunk-VWEWY4FY.js";
137
+ } from "../chunk-GSTSZPSR.js";
136
138
  import {
137
139
  BrushstrokeCache,
138
140
  GRAIN_PATTERNS,
@@ -478,10 +478,12 @@ export declare class PaintEditorController {
478
478
  withOrigin<T>(origin: string, fn: () => T): T;
479
479
  /**
480
480
  * Runs `fn` as one undo step named `label`: every change it makes (strokes, fills, new layers) is
481
- * undone together. Wet paint can't be grouped. Nested groups join the outer one. If `fn` throws,
482
- * its changes are put back and nothing is recorded.
481
+ * undone together. When `fn` returns a promise, the group holds until it settles; until then other
482
+ * changes (the user's strokes, undo) are refused, except those `fn` makes through `within`, so
483
+ * nothing else lands in (or is lost with) the group's step. Nested groups join the outer one. If
484
+ * `fn` throws or rejects, its changes are put back and nothing is recorded.
483
485
  */
484
- group<T>(label: string, fn: () => T): T;
486
+ group<T>(label: string, fn: (within: <U>(step: () => U) => U) => T): T;
485
487
  /**
486
488
  * What `fn` would paint, without changing anything: it runs on a new empty layer (above the
487
489
  * active layer, another one, or at the bottom), and the layer's pixels and the picture with them
@@ -478,10 +478,12 @@ export declare class PaintEditorController {
478
478
  withOrigin<T>(origin: string, fn: () => T): T;
479
479
  /**
480
480
  * Runs `fn` as one undo step named `label`: every change it makes (strokes, fills, new layers) is
481
- * undone together. Wet paint can't be grouped. Nested groups join the outer one. If `fn` throws,
482
- * its changes are put back and nothing is recorded.
481
+ * undone together. When `fn` returns a promise, the group holds until it settles; until then other
482
+ * changes (the user's strokes, undo) are refused, except those `fn` makes through `within`, so
483
+ * nothing else lands in (or is lost with) the group's step. Nested groups join the outer one. If
484
+ * `fn` throws or rejects, its changes are put back and nothing is recorded.
483
485
  */
484
- group<T>(label: string, fn: () => T): T;
486
+ group<T>(label: string, fn: (within: <U>(step: () => U) => U) => T): T;
485
487
  /**
486
488
  * What `fn` would paint, without changing anything: it runs on a new empty layer (above the
487
489
  * active layer, another one, or at the bottom), and the layer's pixels and the picture with them