@pixerate/editor 0.274.0 → 0.275.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/animation-editor/index.cjs +60 -60
  2. package/dist/animation-editor/index.js +4 -4
  3. package/dist/brushes/index.cjs +102 -74
  4. package/dist/brushes/index.js +34 -6
  5. package/dist/brushes/patch.d.cts +1 -1
  6. package/dist/brushes/patch.d.ts +1 -1
  7. package/dist/brushes/preview.d.cts +3 -0
  8. package/dist/brushes/preview.d.ts +3 -0
  9. package/dist/brushes/profiles.d.cts +2 -0
  10. package/dist/brushes/profiles.d.ts +2 -0
  11. package/dist/brushes/schema.d.cts +4 -0
  12. package/dist/brushes/schema.d.ts +4 -0
  13. package/dist/brushes/types.d.cts +47 -0
  14. package/dist/brushes/types.d.ts +47 -0
  15. package/dist/{brushstrokeRender-5YBCLFDQ.cjs → brushstrokeRender-2RQL46WB.cjs} +15 -15
  16. package/dist/{brushstrokeRender-DZGFU3J4.js → brushstrokeRender-WGY4DZHF.js} +3 -3
  17. package/dist/canvas/index.cjs +13 -13
  18. package/dist/canvas/index.js +1 -1
  19. package/dist/chart/contract.d.cts +3 -1
  20. package/dist/chart/contract.d.ts +3 -1
  21. package/dist/{chunk-2XDNF73E.js → chunk-43XJC3PP.js} +1 -1
  22. package/dist/{chunk-GHGBIAWQ.cjs → chunk-6QNDGMK7.cjs} +263 -45
  23. package/dist/{chunk-2F3YDXCN.js → chunk-75SYKUOT.js} +1 -1
  24. package/dist/{chunk-M3RZOF3G.cjs → chunk-C6VB7CPY.cjs} +1 -1
  25. package/dist/{chunk-N5IMDAHM.cjs → chunk-DHC4E2DU.cjs} +89 -37
  26. package/dist/{chunk-NAHJV3O6.js → chunk-G5TCMKX5.js} +28 -11
  27. package/dist/{chunk-DZVRH63Y.js → chunk-IEEY5RJV.js} +1 -1
  28. package/dist/{chunk-7W2EQQBP.cjs → chunk-JDXWLCXF.cjs} +6 -6
  29. package/dist/{chunk-N3SKPQEH.js → chunk-LMG57L5A.js} +62 -10
  30. package/dist/{chunk-5HP2VSAS.js → chunk-MSWLJI4G.js} +1 -1
  31. package/dist/{chunk-SNAFFCAX.cjs → chunk-OLZXXAER.cjs} +221 -196
  32. package/dist/{chunk-YJANF2BL.cjs → chunk-RAPNRK4R.cjs} +86 -86
  33. package/dist/{chunk-CLB2I2FU.js → chunk-RJGW3RQS.js} +2 -2
  34. package/dist/{chunk-FXVCB6YG.cjs → chunk-T6KNJVBP.cjs} +35 -35
  35. package/dist/{chunk-ZEI7ZEA4.js → chunk-Y2ISSVPH.js} +34 -9
  36. package/dist/{chunk-3JKCREEU.cjs → chunk-Y354ETAE.cjs} +76 -59
  37. package/dist/{chunk-TNLKFW7D.cjs → chunk-YYZC2EQO.cjs} +23 -23
  38. package/dist/{chunk-UXYCY3HP.js → chunk-ZM7IKQ4X.js} +239 -21
  39. package/dist/image-editor/index.cjs +789 -789
  40. package/dist/image-editor/index.js +5 -5
  41. package/dist/paint/index.cjs +2 -2
  42. package/dist/paint/index.js +1 -1
  43. package/dist/paint/wet/world.d.cts +15 -2
  44. package/dist/paint/wet/world.d.ts +15 -2
  45. package/dist/paint-editor/brush-controls.d.cts +7 -0
  46. package/dist/paint-editor/brush-controls.d.ts +7 -0
  47. package/dist/paint-editor/brush-model.d.cts +59 -1
  48. package/dist/paint-editor/brush-model.d.ts +59 -1
  49. package/dist/paint-editor/controller.d.cts +168 -1
  50. package/dist/paint-editor/controller.d.ts +168 -1
  51. package/dist/paint-editor/dab-stroke.d.cts +3 -0
  52. package/dist/paint-editor/dab-stroke.d.ts +3 -0
  53. package/dist/paint-editor/document.d.cts +13 -3
  54. package/dist/paint-editor/document.d.ts +13 -3
  55. package/dist/paint-editor/engine.d.cts +3 -0
  56. package/dist/paint-editor/engine.d.ts +3 -0
  57. package/dist/paint-editor/heat.d.cts +156 -0
  58. package/dist/paint-editor/heat.d.ts +156 -0
  59. package/dist/paint-editor/index.cjs +3386 -855
  60. package/dist/paint-editor/index.d.cts +3 -0
  61. package/dist/paint-editor/index.d.ts +3 -0
  62. package/dist/paint-editor/index.js +2731 -200
  63. package/dist/paint-editor/mutation-tools.d.cts +13 -0
  64. package/dist/paint-editor/mutation-tools.d.ts +13 -0
  65. package/dist/paint-editor/mutation.d.cts +67 -0
  66. package/dist/paint-editor/mutation.d.ts +67 -0
  67. package/dist/paint-editor/presence.d.cts +7 -1
  68. package/dist/paint-editor/presence.d.ts +7 -1
  69. package/dist/paint-editor/procedural.d.cts +3 -0
  70. package/dist/paint-editor/procedural.d.ts +3 -0
  71. package/dist/paint-editor/stroke.d.cts +32 -2
  72. package/dist/paint-editor/stroke.d.ts +32 -2
  73. package/dist/paint-editor/thick.d.cts +48 -7
  74. package/dist/paint-editor/thick.d.ts +48 -7
  75. package/dist/paint-editor/ui.d.cts +34 -1
  76. package/dist/paint-editor/ui.d.ts +34 -1
  77. package/dist/paint-editor/wet.d.cts +8 -1
  78. package/dist/paint-editor/wet.d.ts +8 -1
  79. package/dist/vector/index.cjs +999 -999
  80. package/dist/vector/index.js +5 -5
  81. package/package.json +1 -1
  82. package/skills/pixerate-brushes/SKILL.md +1 -0
  83. package/skills/pixerate-paint-editor/SKILL.md +7 -1
  84. package/skills/pixerate-paint-editor/references/brush-facets.md +1 -0
  85. package/skills/pixerate-paint-editor/references/live-patterns.md +41 -0
  86. package/skills/pixerate-paint-watercolour/SKILL.md +8 -0
@@ -8,7 +8,7 @@ import {
8
8
  parseOpenTypeFont,
9
9
  removeAnchorsKeepingShape,
10
10
  traceField
11
- } from "../chunk-2F3YDXCN.js";
11
+ } from "../chunk-75SYKUOT.js";
12
12
  import {
13
13
  ADJUSTMENT_KEYS,
14
14
  ADJUSTMENT_KINDS,
@@ -409,7 +409,7 @@ import {
409
409
  writePsd,
410
410
  xyToTempTint,
411
411
  xyToUv
412
- } from "../chunk-5HP2VSAS.js";
412
+ } from "../chunk-MSWLJI4G.js";
413
413
  import {
414
414
  flattenPath,
415
415
  rasterizeCoverage
@@ -683,14 +683,14 @@ import {
683
683
  warpMeshParamAt,
684
684
  warpMeshRows,
685
685
  warpPresetMesh
686
- } from "../chunk-ZEI7ZEA4.js";
686
+ } from "../chunk-Y2ISSVPH.js";
687
687
  import {
688
688
  IMAGE_PROFILE,
689
689
  checkBrush,
690
690
  closest,
691
691
  createBrushLibrary,
692
692
  resolveBrush
693
- } from "../chunk-UXYCY3HP.js";
693
+ } from "../chunk-ZM7IKQ4X.js";
694
694
  import "../chunk-JL6YH5WD.js";
695
695
  import "../chunk-RWDSSK2I.js";
696
696
  import {
@@ -808,7 +808,7 @@ import {
808
808
  wetGpuSupport,
809
809
  wetSimdSupported,
810
810
  wetSupport
811
- } from "../chunk-N3SKPQEH.js";
811
+ } from "../chunk-LMG57L5A.js";
812
812
  import {
813
813
  BrushstrokeCache,
814
814
  brushstrokeDataUrl,
@@ -134,7 +134,7 @@ var _chunkBB6TR422cjs = require('../chunk-BB6TR422.cjs');
134
134
 
135
135
 
136
136
 
137
- var _chunkN5IMDAHMcjs = require('../chunk-N5IMDAHM.cjs');
137
+ var _chunkDHC4E2DUcjs = require('../chunk-DHC4E2DU.cjs');
138
138
 
139
139
 
140
140
 
@@ -498,4 +498,4 @@ require('../chunk-XFM3OCHU.cjs');
498
498
 
499
499
 
500
500
 
501
- exports.BODY_SCATTER = _chunkN5IMDAHMcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkSTLTOISWcjs.BrushstrokeCache; exports.CoverageMap = _chunkNIBFKXMDcjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkNIBFKXMDcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkNIBFKXMDcjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkN5IMDAHMcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkNIBFKXMDcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunk62MFUHSIcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkNIBFKXMDcjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkN5IMDAHMcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkN5IMDAHMcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkN5IMDAHMcjs.DRY_EPS; exports.DabWalker = _chunkNIBFKXMDcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkNIBFKXMDcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkN5IMDAHMcjs.EX; exports.EY = _chunkN5IMDAHMcjs.EY; exports.FLAG_ALIVE = _chunkN5IMDAHMcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkN5IMDAHMcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkN5IMDAHMcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkN5IMDAHMcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkN5IMDAHMcjs.FLAG_TOP; exports.FLAG_WET = _chunkN5IMDAHMcjs.FLAG_WET; exports.FLAT = _chunkN5IMDAHMcjs.FLAT; exports.FREE_INTERVAL = _chunkN5IMDAHMcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkNIBFKXMDcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkNIBFKXMDcjs.GRAIN_TILE; exports.HIDE = _chunkN5IMDAHMcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunk62MFUHSIcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkN5IMDAHMcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkN5IMDAHMcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkNIBFKXMDcjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkN5IMDAHMcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkN5IMDAHMcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkN5IMDAHMcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkNIBFKXMDcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkNIBFKXMDcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkNIBFKXMDcjs.MIXING_MODELS; exports.MixerStroke = _chunkNIBFKXMDcjs.MixerStroke; exports.OPP = _chunkN5IMDAHMcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkNIBFKXMDcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkNIBFKXMDcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkN5IMDAHMcjs.PAPER_CAPACITY; exports.PARAM = _chunkN5IMDAHMcjs.PARAM; exports.PARAM_FLOATS = _chunkN5IMDAHMcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkN5IMDAHMcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkN5IMDAHMcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkN5IMDAHMcjs.PLANE; exports.PLANE_BYTES = _chunkN5IMDAHMcjs.PLANE_BYTES; exports.P_D0 = _chunkN5IMDAHMcjs.P_D0; exports.P_DL = _chunkN5IMDAHMcjs.P_DL; exports.P_EDGE = _chunkN5IMDAHMcjs.P_EDGE; exports.P_FX = _chunkN5IMDAHMcjs.P_FX; exports.P_FY = _chunkN5IMDAHMcjs.P_FY; exports.P_H = _chunkN5IMDAHMcjs.P_H; exports.P_L = _chunkN5IMDAHMcjs.P_L; exports.P_P0 = _chunkN5IMDAHMcjs.P_P0; exports.P_RHO = _chunkN5IMDAHMcjs.P_RHO; exports.P_SW = _chunkN5IMDAHMcjs.P_SW; exports.P_UX = _chunkN5IMDAHMcjs.P_UX; exports.P_UY = _chunkN5IMDAHMcjs.P_UY; exports.PaintExchange = _chunkNIBFKXMDcjs.PaintExchange; exports.PaintGradientSampler = _chunkNIBFKXMDcjs.PaintGradientSampler; exports.PaintSourceError = _chunkNIBFKXMDcjs.PaintSourceError; exports.PaperGrain = _chunkNIBFKXMDcjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunk62MFUHSIcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunk62MFUHSIcjs.RegionPixelSource; exports.RetouchDabStroke = _chunk62MFUHSIcjs.RetouchDabStroke; exports.SET_PLANES = _chunkN5IMDAHMcjs.SET_PLANES; exports.SLOT_BYTES = _chunkN5IMDAHMcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkN5IMDAHMcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkN5IMDAHMcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunk62MFUHSIcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkN5IMDAHMcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkN5IMDAHMcjs.STRIP; exports.SmudgeTip = _chunkNIBFKXMDcjs.SmudgeTip; exports.StrokeCoverage = _chunkNIBFKXMDcjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkNIBFKXMDcjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunk62MFUHSIcjs.TONE_RANGES; exports.TileMedium = _chunkNIBFKXMDcjs.TileMedium; exports.TilePixelSource = _chunk62MFUHSIcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunk62MFUHSIcjs.TransformedPixelSource; exports.U_MAX = _chunkN5IMDAHMcjs.U_MAX; exports.W9 = _chunkN5IMDAHMcjs.W9; exports.WET_FLOW_KINDS = _chunkN5IMDAHMcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkN5IMDAHMcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkN5IMDAHMcjs.WET_TILE; exports.WGSL_HALO = _chunkN5IMDAHMcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkN5IMDAHMcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkN5IMDAHMcjs.WGSL_STEP; exports.WetGpuEngine = _chunkN5IMDAHMcjs.WetGpuEngine; exports.WetMedium = _chunkN5IMDAHMcjs.WetMedium; exports.WetWorkerPool = _chunkN5IMDAHMcjs.WetWorkerPool; exports.WetWorld = _chunkN5IMDAHMcjs.WetWorld; exports.WetWorldError = _chunkN5IMDAHMcjs.WetWorldError; exports.addPaintGradientStop = _chunkNIBFKXMDcjs.addPaintGradientStop; exports.applyRetouchToTile = _chunk62MFUHSIcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkNIBFKXMDcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkNIBFKXMDcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunk62MFUHSIcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkNIBFKXMDcjs.blendRadius; exports.blenderDab = _chunkNIBFKXMDcjs.blenderDab; exports.boxBlurPixels = _chunk62MFUHSIcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkSTLTOISWcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkSTLTOISWcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkSTLTOISWcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkSTLTOISWcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkSTLTOISWcjs.brushstrokeToCanvas; exports.canShareMemory = _chunkN5IMDAHMcjs.canShareMemory; exports.cleanMixer = _chunkNIBFKXMDcjs.cleanMixer; exports.cloneSamplePoint = _chunk62MFUHSIcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkNIBFKXMDcjs.coverageTileCoord; exports.createBlenderScratch = _chunkNIBFKXMDcjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunk62MFUHSIcjs.createPigmentTools; exports.createWetGpuEngine = _chunkN5IMDAHMcjs.createWetGpuEngine; exports.dabCoverage = _chunkNIBFKXMDcjs.dabCoverage; exports.dabRect = _chunkNIBFKXMDcjs.dabRect; exports.dexp = _chunkN5IMDAHMcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkN5IMDAHMcjs.dlog; exports.dodgeBurn = _chunk62MFUHSIcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk62MFUHSIcjs.dodgeBurnCurve; exports.dpow = _chunkN5IMDAHMcjs.dpow; exports.dsincos = _chunkN5IMDAHMcjs.dsincos; exports.edgeBits = _chunkN5IMDAHMcjs.edgeBits; exports.exchangeRates = _chunkNIBFKXMDcjs.exchangeRates; exports.expNeg = _chunkN5IMDAHMcjs.expNeg; exports.filmPixel = _chunkN5IMDAHMcjs.filmPixel; exports.filmReflectance = _chunkN5IMDAHMcjs.filmReflectance; exports.findWebGpu = _chunkN5IMDAHMcjs.findWebGpu; exports.flowField = _chunkN5IMDAHMcjs.flowField; exports.gradientDabColor = _chunkNIBFKXMDcjs.gradientDabColor; exports.grainCatch = _chunkNIBFKXMDcjs.grainCatch; exports.grainHeights = _chunkNIBFKXMDcjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunk62MFUHSIcjs.healPixels; exports.hexToPaintRgb = _chunkNIBFKXMDcjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkSTLTOISWcjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkNIBFKXMDcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunk62MFUHSIcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkN5IMDAHMcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkN5IMDAHMcjs.linearToSrgb8; exports.loadMixer = _chunkNIBFKXMDcjs.loadMixer; exports.loadWetKernel = _chunkN5IMDAHMcjs.loadWetKernel; exports.luma = _chunk62MFUHSIcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkNIBFKXMDcjs.mixerRates; exports.moveWetSnapshot = _chunkN5IMDAHMcjs.moveWetSnapshot; exports.normalizeBlender = _chunkNIBFKXMDcjs.normalizeBlender; exports.normalizeBrush = _chunkNIBFKXMDcjs.normalizeBrush; exports.normalizeFlow = _chunkN5IMDAHMcjs.normalizeFlow; exports.normalizeHexColor = _chunkNIBFKXMDcjs.normalizeHexColor; exports.normalizeMixer = _chunkNIBFKXMDcjs.normalizeMixer; exports.normalizeRetouch = _chunk62MFUHSIcjs.normalizeRetouch; exports.normalizeSmudge = _chunkNIBFKXMDcjs.normalizeSmudge; exports.normalizeTilt = _chunkN5IMDAHMcjs.normalizeTilt; exports.normalizeWetParams = _chunkN5IMDAHMcjs.normalizeWetParams; exports.packWetParams = _chunkN5IMDAHMcjs.packWetParams; exports.paintGradientMappingFor = _chunkNIBFKXMDcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkSTLTOISWcjs.paintPathStroke; exports.paintSourceColor = _chunkNIBFKXMDcjs.paintSourceColor; exports.paintSourceCss = _chunkNIBFKXMDcjs.paintSourceCss; exports.parsePaintSource = _chunkNIBFKXMDcjs.parsePaintSource; exports.pathStrokeCoverage = _chunkSTLTOISWcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkSTLTOISWcjs.pathStrokeDabs; exports.perDabStrength = _chunk62MFUHSIcjs.perDabStrength; exports.pigmentColor = _chunkN5IMDAHMcjs.pigmentColor; exports.pigmentOf = _chunkN5IMDAHMcjs.pigmentOf; exports.pixelPigment = _chunkN5IMDAHMcjs.pixelPigment; exports.pointerPressure = _chunk62MFUHSIcjs.pointerPressure; exports.pointerStrokeSample = _chunk62MFUHSIcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunk62MFUHSIcjs.pointerStrokeSamples; exports.put255 = _chunkNIBFKXMDcjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkNIBFKXMDcjs.rasterizeDab; exports.readPaintSource = _chunkNIBFKXMDcjs.readPaintSource; exports.readSourceRegion = _chunk62MFUHSIcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkNIBFKXMDcjs.removePaintGradientStop; exports.renderBrushstroke = _chunkSTLTOISWcjs.renderBrushstroke; exports.resolvePaintGradient = _chunkNIBFKXMDcjs.resolvePaintGradient; exports.retouchFilter = _chunk62MFUHSIcjs.retouchFilter; exports.reversePaintGradient = _chunkNIBFKXMDcjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunk62MFUHSIcjs.rgbaViewOfGrey; exports.saturationOf = _chunk62MFUHSIcjs.saturationOf; exports.scalePaintGradient = _chunkNIBFKXMDcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkN5IMDAHMcjs.shadeLightTile; exports.shadeTile = _chunkN5IMDAHMcjs.shadeTile; exports.smoothPoints = _chunkNIBFKXMDcjs.smoothPoints; exports.smudgeEffect = _chunk62MFUHSIcjs.smudgeEffect; exports.solidPaint = _chunkNIBFKXMDcjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunk62MFUHSIcjs.sponge; exports.spongeEffect = _chunk62MFUHSIcjs.spongeEffect; exports.spotHealPixels = _chunk62MFUHSIcjs.spotHealPixels; exports.spotHealWindow = _chunk62MFUHSIcjs.spotHealWindow; exports.srgbByteToLinear = _chunkN5IMDAHMcjs.srgbByteToLinear; exports.stepSlotTs = _chunkN5IMDAHMcjs.stepSlotTs; exports.strokeGrainCatch = _chunkNIBFKXMDcjs.strokeGrainCatch; exports.tipFalloff = _chunkNIBFKXMDcjs.tipFalloff; exports.tipReach = _chunkNIBFKXMDcjs.tipReach; exports.tipShape = _chunkNIBFKXMDcjs.tipShape; exports.toneOf = _chunk62MFUHSIcjs.toneOf; exports.updatePaintGradientStop = _chunkNIBFKXMDcjs.updatePaintGradientStop; exports.walkDabs = _chunkNIBFKXMDcjs.walkDabs; exports.wetGpuSupport = _chunkN5IMDAHMcjs.wetGpuSupport; exports.wetSimdSupported = _chunkN5IMDAHMcjs.wetSimdSupported; exports.wetSupport = _chunkN5IMDAHMcjs.wetSupport;
501
+ exports.BODY_SCATTER = _chunkDHC4E2DUcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkSTLTOISWcjs.BrushstrokeCache; exports.CoverageMap = _chunkNIBFKXMDcjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkNIBFKXMDcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkNIBFKXMDcjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkDHC4E2DUcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkNIBFKXMDcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunk62MFUHSIcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkNIBFKXMDcjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkDHC4E2DUcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkDHC4E2DUcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkDHC4E2DUcjs.DRY_EPS; exports.DabWalker = _chunkNIBFKXMDcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkNIBFKXMDcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkDHC4E2DUcjs.EX; exports.EY = _chunkDHC4E2DUcjs.EY; exports.FLAG_ALIVE = _chunkDHC4E2DUcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkDHC4E2DUcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkDHC4E2DUcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkDHC4E2DUcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkDHC4E2DUcjs.FLAG_TOP; exports.FLAG_WET = _chunkDHC4E2DUcjs.FLAG_WET; exports.FLAT = _chunkDHC4E2DUcjs.FLAT; exports.FREE_INTERVAL = _chunkDHC4E2DUcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkNIBFKXMDcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkNIBFKXMDcjs.GRAIN_TILE; exports.HIDE = _chunkDHC4E2DUcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunk62MFUHSIcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkDHC4E2DUcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkDHC4E2DUcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkNIBFKXMDcjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkDHC4E2DUcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkDHC4E2DUcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkDHC4E2DUcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkNIBFKXMDcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkNIBFKXMDcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkNIBFKXMDcjs.MIXING_MODELS; exports.MixerStroke = _chunkNIBFKXMDcjs.MixerStroke; exports.OPP = _chunkDHC4E2DUcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkNIBFKXMDcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkNIBFKXMDcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkDHC4E2DUcjs.PAPER_CAPACITY; exports.PARAM = _chunkDHC4E2DUcjs.PARAM; exports.PARAM_FLOATS = _chunkDHC4E2DUcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkDHC4E2DUcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkDHC4E2DUcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkDHC4E2DUcjs.PLANE; exports.PLANE_BYTES = _chunkDHC4E2DUcjs.PLANE_BYTES; exports.P_D0 = _chunkDHC4E2DUcjs.P_D0; exports.P_DL = _chunkDHC4E2DUcjs.P_DL; exports.P_EDGE = _chunkDHC4E2DUcjs.P_EDGE; exports.P_FX = _chunkDHC4E2DUcjs.P_FX; exports.P_FY = _chunkDHC4E2DUcjs.P_FY; exports.P_H = _chunkDHC4E2DUcjs.P_H; exports.P_L = _chunkDHC4E2DUcjs.P_L; exports.P_P0 = _chunkDHC4E2DUcjs.P_P0; exports.P_RHO = _chunkDHC4E2DUcjs.P_RHO; exports.P_SW = _chunkDHC4E2DUcjs.P_SW; exports.P_UX = _chunkDHC4E2DUcjs.P_UX; exports.P_UY = _chunkDHC4E2DUcjs.P_UY; exports.PaintExchange = _chunkNIBFKXMDcjs.PaintExchange; exports.PaintGradientSampler = _chunkNIBFKXMDcjs.PaintGradientSampler; exports.PaintSourceError = _chunkNIBFKXMDcjs.PaintSourceError; exports.PaperGrain = _chunkNIBFKXMDcjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunk62MFUHSIcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunk62MFUHSIcjs.RegionPixelSource; exports.RetouchDabStroke = _chunk62MFUHSIcjs.RetouchDabStroke; exports.SET_PLANES = _chunkDHC4E2DUcjs.SET_PLANES; exports.SLOT_BYTES = _chunkDHC4E2DUcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkDHC4E2DUcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkDHC4E2DUcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunk62MFUHSIcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkDHC4E2DUcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkDHC4E2DUcjs.STRIP; exports.SmudgeTip = _chunkNIBFKXMDcjs.SmudgeTip; exports.StrokeCoverage = _chunkNIBFKXMDcjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkNIBFKXMDcjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunk62MFUHSIcjs.TONE_RANGES; exports.TileMedium = _chunkNIBFKXMDcjs.TileMedium; exports.TilePixelSource = _chunk62MFUHSIcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunk62MFUHSIcjs.TransformedPixelSource; exports.U_MAX = _chunkDHC4E2DUcjs.U_MAX; exports.W9 = _chunkDHC4E2DUcjs.W9; exports.WET_FLOW_KINDS = _chunkDHC4E2DUcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkDHC4E2DUcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkDHC4E2DUcjs.WET_TILE; exports.WGSL_HALO = _chunkDHC4E2DUcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkDHC4E2DUcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkDHC4E2DUcjs.WGSL_STEP; exports.WetGpuEngine = _chunkDHC4E2DUcjs.WetGpuEngine; exports.WetMedium = _chunkDHC4E2DUcjs.WetMedium; exports.WetWorkerPool = _chunkDHC4E2DUcjs.WetWorkerPool; exports.WetWorld = _chunkDHC4E2DUcjs.WetWorld; exports.WetWorldError = _chunkDHC4E2DUcjs.WetWorldError; exports.addPaintGradientStop = _chunkNIBFKXMDcjs.addPaintGradientStop; exports.applyRetouchToTile = _chunk62MFUHSIcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkNIBFKXMDcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkNIBFKXMDcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunk62MFUHSIcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkNIBFKXMDcjs.blendRadius; exports.blenderDab = _chunkNIBFKXMDcjs.blenderDab; exports.boxBlurPixels = _chunk62MFUHSIcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkSTLTOISWcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkSTLTOISWcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkSTLTOISWcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkSTLTOISWcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkSTLTOISWcjs.brushstrokeToCanvas; exports.canShareMemory = _chunkDHC4E2DUcjs.canShareMemory; exports.cleanMixer = _chunkNIBFKXMDcjs.cleanMixer; exports.cloneSamplePoint = _chunk62MFUHSIcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkNIBFKXMDcjs.coverageTileCoord; exports.createBlenderScratch = _chunkNIBFKXMDcjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunk62MFUHSIcjs.createPigmentTools; exports.createWetGpuEngine = _chunkDHC4E2DUcjs.createWetGpuEngine; exports.dabCoverage = _chunkNIBFKXMDcjs.dabCoverage; exports.dabRect = _chunkNIBFKXMDcjs.dabRect; exports.dexp = _chunkDHC4E2DUcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkDHC4E2DUcjs.dlog; exports.dodgeBurn = _chunk62MFUHSIcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk62MFUHSIcjs.dodgeBurnCurve; exports.dpow = _chunkDHC4E2DUcjs.dpow; exports.dsincos = _chunkDHC4E2DUcjs.dsincos; exports.edgeBits = _chunkDHC4E2DUcjs.edgeBits; exports.exchangeRates = _chunkNIBFKXMDcjs.exchangeRates; exports.expNeg = _chunkDHC4E2DUcjs.expNeg; exports.filmPixel = _chunkDHC4E2DUcjs.filmPixel; exports.filmReflectance = _chunkDHC4E2DUcjs.filmReflectance; exports.findWebGpu = _chunkDHC4E2DUcjs.findWebGpu; exports.flowField = _chunkDHC4E2DUcjs.flowField; exports.gradientDabColor = _chunkNIBFKXMDcjs.gradientDabColor; exports.grainCatch = _chunkNIBFKXMDcjs.grainCatch; exports.grainHeights = _chunkNIBFKXMDcjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunk62MFUHSIcjs.healPixels; exports.hexToPaintRgb = _chunkNIBFKXMDcjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkSTLTOISWcjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkNIBFKXMDcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunk62MFUHSIcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkDHC4E2DUcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkDHC4E2DUcjs.linearToSrgb8; exports.loadMixer = _chunkNIBFKXMDcjs.loadMixer; exports.loadWetKernel = _chunkDHC4E2DUcjs.loadWetKernel; exports.luma = _chunk62MFUHSIcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkNIBFKXMDcjs.mixerRates; exports.moveWetSnapshot = _chunkDHC4E2DUcjs.moveWetSnapshot; exports.normalizeBlender = _chunkNIBFKXMDcjs.normalizeBlender; exports.normalizeBrush = _chunkNIBFKXMDcjs.normalizeBrush; exports.normalizeFlow = _chunkDHC4E2DUcjs.normalizeFlow; exports.normalizeHexColor = _chunkNIBFKXMDcjs.normalizeHexColor; exports.normalizeMixer = _chunkNIBFKXMDcjs.normalizeMixer; exports.normalizeRetouch = _chunk62MFUHSIcjs.normalizeRetouch; exports.normalizeSmudge = _chunkNIBFKXMDcjs.normalizeSmudge; exports.normalizeTilt = _chunkDHC4E2DUcjs.normalizeTilt; exports.normalizeWetParams = _chunkDHC4E2DUcjs.normalizeWetParams; exports.packWetParams = _chunkDHC4E2DUcjs.packWetParams; exports.paintGradientMappingFor = _chunkNIBFKXMDcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkSTLTOISWcjs.paintPathStroke; exports.paintSourceColor = _chunkNIBFKXMDcjs.paintSourceColor; exports.paintSourceCss = _chunkNIBFKXMDcjs.paintSourceCss; exports.parsePaintSource = _chunkNIBFKXMDcjs.parsePaintSource; exports.pathStrokeCoverage = _chunkSTLTOISWcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkSTLTOISWcjs.pathStrokeDabs; exports.perDabStrength = _chunk62MFUHSIcjs.perDabStrength; exports.pigmentColor = _chunkDHC4E2DUcjs.pigmentColor; exports.pigmentOf = _chunkDHC4E2DUcjs.pigmentOf; exports.pixelPigment = _chunkDHC4E2DUcjs.pixelPigment; exports.pointerPressure = _chunk62MFUHSIcjs.pointerPressure; exports.pointerStrokeSample = _chunk62MFUHSIcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunk62MFUHSIcjs.pointerStrokeSamples; exports.put255 = _chunkNIBFKXMDcjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkNIBFKXMDcjs.rasterizeDab; exports.readPaintSource = _chunkNIBFKXMDcjs.readPaintSource; exports.readSourceRegion = _chunk62MFUHSIcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkNIBFKXMDcjs.removePaintGradientStop; exports.renderBrushstroke = _chunkSTLTOISWcjs.renderBrushstroke; exports.resolvePaintGradient = _chunkNIBFKXMDcjs.resolvePaintGradient; exports.retouchFilter = _chunk62MFUHSIcjs.retouchFilter; exports.reversePaintGradient = _chunkNIBFKXMDcjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunk62MFUHSIcjs.rgbaViewOfGrey; exports.saturationOf = _chunk62MFUHSIcjs.saturationOf; exports.scalePaintGradient = _chunkNIBFKXMDcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkDHC4E2DUcjs.shadeLightTile; exports.shadeTile = _chunkDHC4E2DUcjs.shadeTile; exports.smoothPoints = _chunkNIBFKXMDcjs.smoothPoints; exports.smudgeEffect = _chunk62MFUHSIcjs.smudgeEffect; exports.solidPaint = _chunkNIBFKXMDcjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunk62MFUHSIcjs.sponge; exports.spongeEffect = _chunk62MFUHSIcjs.spongeEffect; exports.spotHealPixels = _chunk62MFUHSIcjs.spotHealPixels; exports.spotHealWindow = _chunk62MFUHSIcjs.spotHealWindow; exports.srgbByteToLinear = _chunkDHC4E2DUcjs.srgbByteToLinear; exports.stepSlotTs = _chunkDHC4E2DUcjs.stepSlotTs; exports.strokeGrainCatch = _chunkNIBFKXMDcjs.strokeGrainCatch; exports.tipFalloff = _chunkNIBFKXMDcjs.tipFalloff; exports.tipReach = _chunkNIBFKXMDcjs.tipReach; exports.tipShape = _chunkNIBFKXMDcjs.tipShape; exports.toneOf = _chunk62MFUHSIcjs.toneOf; exports.updatePaintGradientStop = _chunkNIBFKXMDcjs.updatePaintGradientStop; exports.walkDabs = _chunkNIBFKXMDcjs.walkDabs; exports.wetGpuSupport = _chunkDHC4E2DUcjs.wetGpuSupport; exports.wetSimdSupported = _chunkDHC4E2DUcjs.wetSimdSupported; exports.wetSupport = _chunkDHC4E2DUcjs.wetSupport;
@@ -134,7 +134,7 @@ import {
134
134
  wetGpuSupport,
135
135
  wetSimdSupported,
136
136
  wetSupport
137
- } from "../chunk-N3SKPQEH.js";
137
+ } from "../chunk-LMG57L5A.js";
138
138
  import {
139
139
  BrushstrokeCache,
140
140
  brushstrokeDataUrl,
@@ -69,6 +69,8 @@ export interface WetGhostState {
69
69
  total: number;
70
70
  /** Linger seconds configured for the current ghost fade. */
71
71
  linger: number;
72
+ /** When the fade starts: `immediate` (default, omitted) or `agent` (waits until `releaseGhost`). */
73
+ trigger?: 'immediate' | 'agent';
72
74
  }
73
75
  export interface WetLaneOptions {
74
76
  params?: Partial<WetParams>;
@@ -211,9 +213,20 @@ export declare class WetWorld {
211
213
  setGhost(id: string, ghost: WetGhostState | null): void;
212
214
  /**
213
215
  * Starts a ghost paint fade on `id` with `pigment` per unit tracer and `linger` seconds. If an
214
- * earlier ghost of a different colour is still fading on the layer, it finishes at once first.
216
+ * earlier ghost of a different colour is still fading on the layer, it finishes at once first
217
+ * (or keeps its paint when it was an unclaimed agent-triggered ghost).
215
218
  */
216
- startGhost(id: string, pigment: readonly [number, number, number, number], linger: number, stepsPerSecond?: number): void;
219
+ startGhost(id: string, pigment: readonly [number, number, number, number], linger: number, stepsPerSecond?: number, trigger?: 'immediate' | 'agent'): void;
220
+ /**
221
+ * Releases a held (`trigger: 'agent'`) ghost on `id` so its fade starts counting down on the
222
+ * simulation clock over `linger` seconds (default: the lane's configured `linger`).
223
+ */
224
+ releaseGhost(id: string, linger?: number, stepsPerSecond?: number): void;
225
+ /**
226
+ * Drops a ghost lane's tracer (`P_L`, `P_DL`) without subtracting its pigment, so an unclaimed
227
+ * or declined wet mutation stroke stays as ordinary wet paint.
228
+ */
229
+ keepGhost(id: string): void;
217
230
  private pack;
218
231
  private touchAll;
219
232
  private laneIndexOf;
@@ -69,6 +69,8 @@ export interface WetGhostState {
69
69
  total: number;
70
70
  /** Linger seconds configured for the current ghost fade. */
71
71
  linger: number;
72
+ /** When the fade starts: `immediate` (default, omitted) or `agent` (waits until `releaseGhost`). */
73
+ trigger?: 'immediate' | 'agent';
72
74
  }
73
75
  export interface WetLaneOptions {
74
76
  params?: Partial<WetParams>;
@@ -211,9 +213,20 @@ export declare class WetWorld {
211
213
  setGhost(id: string, ghost: WetGhostState | null): void;
212
214
  /**
213
215
  * Starts a ghost paint fade on `id` with `pigment` per unit tracer and `linger` seconds. If an
214
- * earlier ghost of a different colour is still fading on the layer, it finishes at once first.
216
+ * earlier ghost of a different colour is still fading on the layer, it finishes at once first
217
+ * (or keeps its paint when it was an unclaimed agent-triggered ghost).
215
218
  */
216
- startGhost(id: string, pigment: readonly [number, number, number, number], linger: number, stepsPerSecond?: number): void;
219
+ startGhost(id: string, pigment: readonly [number, number, number, number], linger: number, stepsPerSecond?: number, trigger?: 'immediate' | 'agent'): void;
220
+ /**
221
+ * Releases a held (`trigger: 'agent'`) ghost on `id` so its fade starts counting down on the
222
+ * simulation clock over `linger` seconds (default: the lane's configured `linger`).
223
+ */
224
+ releaseGhost(id: string, linger?: number, stepsPerSecond?: number): void;
225
+ /**
226
+ * Drops a ghost lane's tracer (`P_L`, `P_DL`) without subtracting its pigment, so an unclaimed
227
+ * or declined wet mutation stroke stays as ordinary wet paint.
228
+ */
229
+ keepGhost(id: string): void;
217
230
  private pack;
218
231
  private touchAll;
219
232
  private laneIndexOf;
@@ -40,8 +40,13 @@ export interface BrushEngineControls {
40
40
  stickerStamps?: boolean;
41
41
  /** Light paint: the "light follows pressure" toggle (`light.pressure`); the Light slider is in `sliders`. */
42
42
  light?: boolean;
43
+ /** Thin-film iridescence: whether the brush can lay a thin-film iridescent coat (`iridescence`; `IRIDESCENCE_SLIDERS` are in `sliders` when enabled). */
44
+ iridescence?: boolean;
43
45
  }
46
+ /** The thin-film iridescence sliders (appended when `brush.iridescence` is set). */
47
+ export declare const IRIDESCENCE_SLIDERS: readonly SliderControl[];
44
48
  export declare const GHOST_SLIDERS: readonly SliderControl[];
49
+ export declare const MUTATION_SLIDERS: readonly SliderControl[];
45
50
  /**
46
51
  * The controls the active brush's engine adds to the brush panel (`null` for the eraser):
47
52
  * blender strength and blend distance; smudge strength and length; the Mixer Brush's pick-up,
@@ -51,7 +56,9 @@ export declare const GHOST_SLIDERS: readonly SliderControl[];
51
56
  */
52
57
  export declare function brushEngineControls(brush: Pick<PaintBrush, 'engine'> & {
53
58
  wet?: PaintBrush['wet'];
59
+ iridescence?: PaintBrush['iridescence'];
54
60
  ghost?: PaintBrush['ghost'];
61
+ mutation?: PaintBrush['mutation'];
55
62
  }): BrushEngineControls | null;
56
63
  /** The multi-colour sliders for a mode: softness, and dabs per colour in `dab` mode. */
57
64
  export declare function multiColorSliders(mode: string): readonly SliderControl[];
@@ -40,8 +40,13 @@ export interface BrushEngineControls {
40
40
  stickerStamps?: boolean;
41
41
  /** Light paint: the "light follows pressure" toggle (`light.pressure`); the Light slider is in `sliders`. */
42
42
  light?: boolean;
43
+ /** Thin-film iridescence: whether the brush can lay a thin-film iridescent coat (`iridescence`; `IRIDESCENCE_SLIDERS` are in `sliders` when enabled). */
44
+ iridescence?: boolean;
43
45
  }
46
+ /** The thin-film iridescence sliders (appended when `brush.iridescence` is set). */
47
+ export declare const IRIDESCENCE_SLIDERS: readonly SliderControl[];
44
48
  export declare const GHOST_SLIDERS: readonly SliderControl[];
49
+ export declare const MUTATION_SLIDERS: readonly SliderControl[];
45
50
  /**
46
51
  * The controls the active brush's engine adds to the brush panel (`null` for the eraser):
47
52
  * blender strength and blend distance; smudge strength and length; the Mixer Brush's pick-up,
@@ -51,7 +56,9 @@ export declare const GHOST_SLIDERS: readonly SliderControl[];
51
56
  */
52
57
  export declare function brushEngineControls(brush: Pick<PaintBrush, 'engine'> & {
53
58
  wet?: PaintBrush['wet'];
59
+ iridescence?: PaintBrush['iridescence'];
54
60
  ghost?: PaintBrush['ghost'];
61
+ mutation?: PaintBrush['mutation'];
55
62
  }): BrushEngineControls | null;
56
63
  /** The multi-colour sliders for a mode: softness, and dabs per colour in `dab` mode. */
57
64
  export declare function multiColorSliders(mode: string): readonly SliderControl[];
@@ -94,15 +94,59 @@ export interface LightSettings {
94
94
  }
95
95
  export declare const DEFAULT_LIGHT: Readonly<LightSettings>;
96
96
  export declare function normalizeLight(raw?: Partial<LightSettings>, base?: LightSettings): LightSettings;
97
+ /** UV-fluorescent ink: paint that glows in its colour under the UV blacklight (`doc.fluor`). */
98
+ export interface FluorescenceSettings {
99
+ /** Fluorescence intensity under UV blacklight (0..1, default 0: none). */
100
+ amount: number;
101
+ /** Invisible ink in normal light: lays no daylight pigment and glows only under UV (default false). */
102
+ invisible: boolean;
103
+ }
104
+ export declare const DEFAULT_FLUORESCENCE: Readonly<FluorescenceSettings>;
105
+ export declare function normalizeFluorescence(raw?: Partial<FluorescenceSettings> | number, base?: FluorescenceSettings): FluorescenceSettings;
106
+ /** Thermochromic ink: paint that shifts toward `hotColor` where the canvas is heated above `threshold` (`doc.thermo`). */
107
+ export interface ThermochromicSettings {
108
+ /** Colour (#rrggbb) the ink turns when heated above `threshold` (`null`: off). */
109
+ hotColor: string | null;
110
+ /** Temperature 0.05..0.95 at which the colour shift is halfway (default 0.5). */
111
+ threshold: number;
112
+ }
113
+ export declare const DEFAULT_THERMOCHROMIC: Readonly<ThermochromicSettings>;
114
+ export declare function normalizeThermochromic(raw?: Partial<ThermochromicSettings>, base?: ThermochromicSettings): ThermochromicSettings;
115
+ /** Thin-film iridescence: structural colour whose hue shifts with the light and view angle (see `doc.thick`). */
116
+ export interface IridescenceSettings {
117
+ /** Film thickness in nanometres (100..1000, default 400). */
118
+ thickness: number;
119
+ /** How much pen pressure shifts the film thickness (0..1, default 0). */
120
+ pressureToThickness: number;
121
+ /** Film refractive index (1.2..2.0, default 1.5). */
122
+ ior: number;
123
+ }
124
+ export declare const DEFAULT_IRIDESCENCE: Readonly<IridescenceSettings>;
125
+ /** When a ghost brush's fade starts: immediately (`immediate`, default) or once claimed by an agent (`agent`). */
126
+ export type GhostTrigger = 'immediate' | 'agent';
127
+ export declare const GHOST_TRIGGERS: readonly GhostTrigger[];
97
128
  /** Ghost paint: wet paint whose colour vanishes after `linger` seconds, leaving only what it smeared. */
98
129
  export interface GhostSettings {
99
130
  /** Seconds of simulated time before the ghost paint has fully faded, 0.5..60 (default 4). */
100
131
  linger: number;
101
132
  /** How much the ghost paint drags and lifts the paint it passes through, 0..1 (default 0.3). */
102
133
  smear: number;
134
+ /** When the fade starts: `immediate` (default, omitted) or `agent` (waits until claimed by `read_mutation`). */
135
+ trigger?: GhostTrigger;
103
136
  }
104
137
  export declare const DEFAULT_GHOST: Readonly<GhostSettings>;
105
138
  export declare function normalizeGhost(raw?: Partial<GhostSettings>, base?: GhostSettings): GhostSettings;
139
+ /** Mutation paint: your stroke sinks away once claimed by an agent, which paints its own answer. */
140
+ export interface MutationSettings {
141
+ /** Seconds after the last stroke before it counts as finished, 0.5..10 (default 1.5). */
142
+ settle: number;
143
+ /** Seconds to wait for an agent before giving up and keeping the paint, 5..300 (default 45). */
144
+ patience: number;
145
+ /** Seconds the paint takes to sink away once claimed, 0.5..10 (default 2). */
146
+ fade: number;
147
+ }
148
+ export declare const DEFAULT_MUTATION: Readonly<MutationSettings>;
149
+ export declare function normalizeMutation(raw?: Partial<MutationSettings>, base?: MutationSettings): MutationSettings;
106
150
  export declare function normalizeImpasto(raw?: Partial<ImpastoSettings>, base?: ImpastoSettings): ImpastoSettings;
107
151
  /** Multi-coloured brush: `tip` lays the colours across the tip, `dab` changes colour from dab to dab. */
108
152
  export type MultiColorMode = 'off' | 'tip' | 'dab';
@@ -227,8 +271,16 @@ export interface PaintBrush {
227
271
  sticker: StickerSettings;
228
272
  /** Light paint: the light it lays with its colour (amount 0: none). */
229
273
  light: LightSettings;
274
+ /** UV-fluorescent ink: glows under the virtual UV blacklight (amount 0: none). */
275
+ fluorescence: FluorescenceSettings;
276
+ /** Thermochromic ink: shifts toward `hotColor` where the canvas is heated (`hotColor: null`: off). */
277
+ thermochromic: ThermochromicSettings;
278
+ /** Thin-film iridescence: structural colour film laid over the paint (missing: none). */
279
+ iridescence?: IridescenceSettings;
230
280
  /** Wet engine: ghost paint settings (missing when not a ghost brush). */
231
281
  ghost?: GhostSettings;
282
+ /** Mutation paint settings (missing when not a mutation brush). */
283
+ mutation?: MutationSettings;
232
284
  /**
233
285
  * Dab engine: a stamp tip. Each dab (and each spray droplet) is this sticker's shape, an editor
234
286
  * stamp (`editor:star`) or any sticker ref from the sticker library, laid in the paint colour;
@@ -265,13 +317,19 @@ export interface SpraySettings {
265
317
  size: number;
266
318
  }
267
319
  export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
268
- export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'ghost' | 'spray' | 'tipGrain'>> & {
320
+ export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'fluorescence' | 'thermochromic' | 'iridescence' | 'ghost' | 'mutation' | 'spray' | 'tipGrain'>> & {
269
321
  spray?: Partial<SpraySettings> | null;
270
322
  /** Tip grain (`null` removes it). */
271
323
  tipGrain?: Partial<TipGrainSettings> | null;
272
324
  /** Ghost paint (`null` removes it). */
273
325
  ghost?: Partial<GhostSettings> | null;
326
+ /** Mutation paint (`null` removes it). */
327
+ mutation?: Partial<MutationSettings> | null;
274
328
  light?: Partial<LightSettings>;
329
+ fluorescence?: Partial<FluorescenceSettings> | number;
330
+ thermochromic?: Partial<ThermochromicSettings>;
331
+ /** Thin-film iridescence (`null` removes it). */
332
+ iridescence?: Partial<IridescenceSettings> | null;
275
333
  /** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
276
334
  paint?: PaintSource | null;
277
335
  tip?: Partial<BrushSettings>;
@@ -94,15 +94,59 @@ export interface LightSettings {
94
94
  }
95
95
  export declare const DEFAULT_LIGHT: Readonly<LightSettings>;
96
96
  export declare function normalizeLight(raw?: Partial<LightSettings>, base?: LightSettings): LightSettings;
97
+ /** UV-fluorescent ink: paint that glows in its colour under the UV blacklight (`doc.fluor`). */
98
+ export interface FluorescenceSettings {
99
+ /** Fluorescence intensity under UV blacklight (0..1, default 0: none). */
100
+ amount: number;
101
+ /** Invisible ink in normal light: lays no daylight pigment and glows only under UV (default false). */
102
+ invisible: boolean;
103
+ }
104
+ export declare const DEFAULT_FLUORESCENCE: Readonly<FluorescenceSettings>;
105
+ export declare function normalizeFluorescence(raw?: Partial<FluorescenceSettings> | number, base?: FluorescenceSettings): FluorescenceSettings;
106
+ /** Thermochromic ink: paint that shifts toward `hotColor` where the canvas is heated above `threshold` (`doc.thermo`). */
107
+ export interface ThermochromicSettings {
108
+ /** Colour (#rrggbb) the ink turns when heated above `threshold` (`null`: off). */
109
+ hotColor: string | null;
110
+ /** Temperature 0.05..0.95 at which the colour shift is halfway (default 0.5). */
111
+ threshold: number;
112
+ }
113
+ export declare const DEFAULT_THERMOCHROMIC: Readonly<ThermochromicSettings>;
114
+ export declare function normalizeThermochromic(raw?: Partial<ThermochromicSettings>, base?: ThermochromicSettings): ThermochromicSettings;
115
+ /** Thin-film iridescence: structural colour whose hue shifts with the light and view angle (see `doc.thick`). */
116
+ export interface IridescenceSettings {
117
+ /** Film thickness in nanometres (100..1000, default 400). */
118
+ thickness: number;
119
+ /** How much pen pressure shifts the film thickness (0..1, default 0). */
120
+ pressureToThickness: number;
121
+ /** Film refractive index (1.2..2.0, default 1.5). */
122
+ ior: number;
123
+ }
124
+ export declare const DEFAULT_IRIDESCENCE: Readonly<IridescenceSettings>;
125
+ /** When a ghost brush's fade starts: immediately (`immediate`, default) or once claimed by an agent (`agent`). */
126
+ export type GhostTrigger = 'immediate' | 'agent';
127
+ export declare const GHOST_TRIGGERS: readonly GhostTrigger[];
97
128
  /** Ghost paint: wet paint whose colour vanishes after `linger` seconds, leaving only what it smeared. */
98
129
  export interface GhostSettings {
99
130
  /** Seconds of simulated time before the ghost paint has fully faded, 0.5..60 (default 4). */
100
131
  linger: number;
101
132
  /** How much the ghost paint drags and lifts the paint it passes through, 0..1 (default 0.3). */
102
133
  smear: number;
134
+ /** When the fade starts: `immediate` (default, omitted) or `agent` (waits until claimed by `read_mutation`). */
135
+ trigger?: GhostTrigger;
103
136
  }
104
137
  export declare const DEFAULT_GHOST: Readonly<GhostSettings>;
105
138
  export declare function normalizeGhost(raw?: Partial<GhostSettings>, base?: GhostSettings): GhostSettings;
139
+ /** Mutation paint: your stroke sinks away once claimed by an agent, which paints its own answer. */
140
+ export interface MutationSettings {
141
+ /** Seconds after the last stroke before it counts as finished, 0.5..10 (default 1.5). */
142
+ settle: number;
143
+ /** Seconds to wait for an agent before giving up and keeping the paint, 5..300 (default 45). */
144
+ patience: number;
145
+ /** Seconds the paint takes to sink away once claimed, 0.5..10 (default 2). */
146
+ fade: number;
147
+ }
148
+ export declare const DEFAULT_MUTATION: Readonly<MutationSettings>;
149
+ export declare function normalizeMutation(raw?: Partial<MutationSettings>, base?: MutationSettings): MutationSettings;
106
150
  export declare function normalizeImpasto(raw?: Partial<ImpastoSettings>, base?: ImpastoSettings): ImpastoSettings;
107
151
  /** Multi-coloured brush: `tip` lays the colours across the tip, `dab` changes colour from dab to dab. */
108
152
  export type MultiColorMode = 'off' | 'tip' | 'dab';
@@ -227,8 +271,16 @@ export interface PaintBrush {
227
271
  sticker: StickerSettings;
228
272
  /** Light paint: the light it lays with its colour (amount 0: none). */
229
273
  light: LightSettings;
274
+ /** UV-fluorescent ink: glows under the virtual UV blacklight (amount 0: none). */
275
+ fluorescence: FluorescenceSettings;
276
+ /** Thermochromic ink: shifts toward `hotColor` where the canvas is heated (`hotColor: null`: off). */
277
+ thermochromic: ThermochromicSettings;
278
+ /** Thin-film iridescence: structural colour film laid over the paint (missing: none). */
279
+ iridescence?: IridescenceSettings;
230
280
  /** Wet engine: ghost paint settings (missing when not a ghost brush). */
231
281
  ghost?: GhostSettings;
282
+ /** Mutation paint settings (missing when not a mutation brush). */
283
+ mutation?: MutationSettings;
232
284
  /**
233
285
  * Dab engine: a stamp tip. Each dab (and each spray droplet) is this sticker's shape, an editor
234
286
  * stamp (`editor:star`) or any sticker ref from the sticker library, laid in the paint colour;
@@ -265,13 +317,19 @@ export interface SpraySettings {
265
317
  size: number;
266
318
  }
267
319
  export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
268
- export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'ghost' | 'spray' | 'tipGrain'>> & {
320
+ export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'fluorescence' | 'thermochromic' | 'iridescence' | 'ghost' | 'mutation' | 'spray' | 'tipGrain'>> & {
269
321
  spray?: Partial<SpraySettings> | null;
270
322
  /** Tip grain (`null` removes it). */
271
323
  tipGrain?: Partial<TipGrainSettings> | null;
272
324
  /** Ghost paint (`null` removes it). */
273
325
  ghost?: Partial<GhostSettings> | null;
326
+ /** Mutation paint (`null` removes it). */
327
+ mutation?: Partial<MutationSettings> | null;
274
328
  light?: Partial<LightSettings>;
329
+ fluorescence?: Partial<FluorescenceSettings> | number;
330
+ thermochromic?: Partial<ThermochromicSettings>;
331
+ /** Thin-film iridescence (`null` removes it). */
332
+ iridescence?: Partial<IridescenceSettings> | null;
275
333
  /** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
276
334
  paint?: PaintSource | null;
277
335
  tip?: Partial<BrushSettings>;