@pixerate/editor 0.271.0 → 0.272.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 (56) 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 +69 -66
  4. package/dist/brushes/index.js +6 -3
  5. package/dist/brushes/patch.d.cts +1 -1
  6. package/dist/brushes/patch.d.ts +1 -1
  7. package/dist/brushes/schema.d.cts +1 -0
  8. package/dist/brushes/schema.d.ts +1 -0
  9. package/dist/brushes/types.d.cts +8 -0
  10. package/dist/brushes/types.d.ts +8 -0
  11. package/dist/{brushstrokeRender-WR2N5HHY.cjs → brushstrokeRender-5YBCLFDQ.cjs} +15 -15
  12. package/dist/{brushstrokeRender-A727TTNQ.js → brushstrokeRender-DZGFU3J4.js} +3 -3
  13. package/dist/canvas/index.cjs +13 -13
  14. package/dist/canvas/index.js +1 -1
  15. package/dist/{chunk-YNFSH72F.js → chunk-2F3YDXCN.js} +1 -1
  16. package/dist/{chunk-QYXUE37Q.js → chunk-2XDNF73E.js} +1 -1
  17. package/dist/{chunk-3KNQ2W6X.cjs → chunk-3JKCREEU.cjs} +59 -53
  18. package/dist/{chunk-B5W677L7.js → chunk-5HP2VSAS.js} +1 -1
  19. package/dist/{chunk-BPJSI4NT.cjs → chunk-7W2EQQBP.cjs} +2 -2
  20. package/dist/{chunk-LETF75CA.js → chunk-CLB2I2FU.js} +1 -1
  21. package/dist/{chunk-BAZMCFVL.js → chunk-DZVRH63Y.js} +1 -1
  22. package/dist/{chunk-U2ASNGO6.cjs → chunk-FXVCB6YG.cjs} +35 -35
  23. package/dist/{chunk-EU2ZZA6L.cjs → chunk-GHGBIAWQ.cjs} +126 -39
  24. package/dist/{chunk-2WOGXEDX.cjs → chunk-M3RZOF3G.cjs} +1 -1
  25. package/dist/{chunk-GSTSZPSR.js → chunk-N3SKPQEH.js} +225 -18
  26. package/dist/{chunk-J5VQYK7T.cjs → chunk-N5IMDAHM.cjs} +251 -44
  27. package/dist/{chunk-ININNHLM.js → chunk-NAHJV3O6.js} +11 -5
  28. package/dist/{chunk-JJ2H25JG.cjs → chunk-SNAFFCAX.cjs} +200 -174
  29. package/dist/{chunk-M2ZVPU7L.cjs → chunk-TNLKFW7D.cjs} +23 -23
  30. package/dist/{chunk-KZI3YWKW.js → chunk-UXYCY3HP.js} +93 -6
  31. package/dist/{chunk-DDL3ZBHK.cjs → chunk-YJANF2BL.cjs} +86 -86
  32. package/dist/{chunk-TNHDCP4R.js → chunk-ZEI7ZEA4.js} +31 -5
  33. package/dist/image-editor/index.cjs +789 -789
  34. package/dist/image-editor/index.js +5 -5
  35. package/dist/paint/index.cjs +2 -2
  36. package/dist/paint/index.js +1 -1
  37. package/dist/paint/wet/world.d.cts +37 -1
  38. package/dist/paint/wet/world.d.ts +37 -1
  39. package/dist/paint-editor/brush-controls.d.cts +2 -0
  40. package/dist/paint-editor/brush-controls.d.ts +2 -0
  41. package/dist/paint-editor/brush-model.d.cts +14 -1
  42. package/dist/paint-editor/brush-model.d.ts +14 -1
  43. package/dist/paint-editor/index.cjs +343 -306
  44. package/dist/paint-editor/index.js +48 -11
  45. package/dist/paint-editor/ui.d.cts +1 -1
  46. package/dist/paint-editor/ui.d.ts +1 -1
  47. package/dist/paint-editor/wet.d.cts +8 -1
  48. package/dist/paint-editor/wet.d.ts +8 -1
  49. package/dist/vector/index.cjs +999 -999
  50. package/dist/vector/index.js +5 -5
  51. package/package.json +1 -1
  52. package/skills/pixerate-brushes/SKILL.md +1 -0
  53. package/skills/pixerate-paint-editor/SKILL.md +4 -11
  54. package/skills/pixerate-paint-editor/references/brush-facets.md +1 -0
  55. package/skills/pixerate-paint-editor/references/ghost.md +47 -0
  56. package/skills/pixerate-paint-watercolour/SKILL.md +1 -0
@@ -8,7 +8,7 @@ import {
8
8
  parseOpenTypeFont,
9
9
  removeAnchorsKeepingShape,
10
10
  traceField
11
- } from "../chunk-YNFSH72F.js";
11
+ } from "../chunk-2F3YDXCN.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-B5W677L7.js";
412
+ } from "../chunk-5HP2VSAS.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-TNHDCP4R.js";
686
+ } from "../chunk-ZEI7ZEA4.js";
687
687
  import {
688
688
  IMAGE_PROFILE,
689
689
  checkBrush,
690
690
  closest,
691
691
  createBrushLibrary,
692
692
  resolveBrush
693
- } from "../chunk-KZI3YWKW.js";
693
+ } from "../chunk-UXYCY3HP.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-GSTSZPSR.js";
811
+ } from "../chunk-N3SKPQEH.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 _chunkJ5VQYK7Tcjs = require('../chunk-J5VQYK7T.cjs');
137
+ var _chunkN5IMDAHMcjs = require('../chunk-N5IMDAHM.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 = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkJ5VQYK7Tcjs.DRY_EPS; exports.DabWalker = _chunkNIBFKXMDcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkNIBFKXMDcjs.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 = _chunkNIBFKXMDcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkNIBFKXMDcjs.GRAIN_TILE; exports.HIDE = _chunkJ5VQYK7Tcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunk62MFUHSIcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkJ5VQYK7Tcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkJ5VQYK7Tcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkNIBFKXMDcjs.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 = _chunkNIBFKXMDcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkNIBFKXMDcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkNIBFKXMDcjs.MIXING_MODELS; exports.MixerStroke = _chunkNIBFKXMDcjs.MixerStroke; exports.OPP = _chunkJ5VQYK7Tcjs.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 = _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 = _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 = _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 = _chunk62MFUHSIcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkJ5VQYK7Tcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkJ5VQYK7Tcjs.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 = _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 = _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 = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.createWetGpuEngine; exports.dabCoverage = _chunkNIBFKXMDcjs.dabCoverage; exports.dabRect = _chunkNIBFKXMDcjs.dabRect; exports.dexp = _chunkJ5VQYK7Tcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkJ5VQYK7Tcjs.dlog; exports.dodgeBurn = _chunk62MFUHSIcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk62MFUHSIcjs.dodgeBurnCurve; exports.dpow = _chunkJ5VQYK7Tcjs.dpow; exports.dsincos = _chunkJ5VQYK7Tcjs.dsincos; exports.edgeBits = _chunkJ5VQYK7Tcjs.edgeBits; exports.exchangeRates = _chunkNIBFKXMDcjs.exchangeRates; exports.expNeg = _chunkJ5VQYK7Tcjs.expNeg; exports.filmPixel = _chunkJ5VQYK7Tcjs.filmPixel; exports.filmReflectance = _chunkJ5VQYK7Tcjs.filmReflectance; exports.findWebGpu = _chunkJ5VQYK7Tcjs.findWebGpu; exports.flowField = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkJ5VQYK7Tcjs.linearToSrgb8; exports.loadMixer = _chunkNIBFKXMDcjs.loadMixer; exports.loadWetKernel = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.moveWetSnapshot; exports.normalizeBlender = _chunkNIBFKXMDcjs.normalizeBlender; exports.normalizeBrush = _chunkNIBFKXMDcjs.normalizeBrush; exports.normalizeFlow = _chunkJ5VQYK7Tcjs.normalizeFlow; exports.normalizeHexColor = _chunkNIBFKXMDcjs.normalizeHexColor; exports.normalizeMixer = _chunkNIBFKXMDcjs.normalizeMixer; exports.normalizeRetouch = _chunk62MFUHSIcjs.normalizeRetouch; exports.normalizeSmudge = _chunkNIBFKXMDcjs.normalizeSmudge; exports.normalizeTilt = _chunkJ5VQYK7Tcjs.normalizeTilt; exports.normalizeWetParams = _chunkJ5VQYK7Tcjs.normalizeWetParams; exports.packWetParams = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.pigmentColor; exports.pigmentOf = _chunkJ5VQYK7Tcjs.pigmentOf; exports.pixelPigment = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.shadeLightTile; exports.shadeTile = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.srgbByteToLinear; exports.stepSlotTs = _chunkJ5VQYK7Tcjs.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 = _chunkJ5VQYK7Tcjs.wetGpuSupport; exports.wetSimdSupported = _chunkJ5VQYK7Tcjs.wetSimdSupported; exports.wetSupport = _chunkJ5VQYK7Tcjs.wetSupport;
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;
@@ -134,7 +134,7 @@ import {
134
134
  wetGpuSupport,
135
135
  wetSimdSupported,
136
136
  wetSupport
137
- } from "../chunk-GSTSZPSR.js";
137
+ } from "../chunk-N3SKPQEH.js";
138
138
  import {
139
139
  BrushstrokeCache,
140
140
  brushstrokeDataUrl,
@@ -59,6 +59,17 @@ export interface WetWorldOptions {
59
59
  /** Worker threads for the wasm kernel: `auto` (default: cores − 1, at most 10) or a number (0: none). */
60
60
  threads?: number | 'auto';
61
61
  }
62
+ /** A wet layer's active ghost paint state: pigment per unit tracer and fade countdown. */
63
+ export interface WetGhostState {
64
+ /** Pigment per unit of tracer (K_r, K_g, K_b, S). */
65
+ pigment: [number, number, number, number];
66
+ /** Free-interval ticks left before the ghost has fully faded. */
67
+ remaining: number;
68
+ /** Total free-interval ticks configured for the current ghost fade. */
69
+ total: number;
70
+ /** Linger seconds configured for the current ghost fade. */
71
+ linger: number;
72
+ }
62
73
  export interface WetLaneOptions {
63
74
  params?: Partial<WetParams>;
64
75
  /** The layer's pixels under the wet paint (default empty). */
@@ -68,6 +79,8 @@ export interface WetLaneOptions {
68
79
  flowStrength?: number;
69
80
  /** The layer's light paint under the wet paint (one channel; default none). */
70
81
  light?: TiledSurface | null;
82
+ /** Active ghost paint state on the layer, if any. */
83
+ ghost?: WetGhostState | null;
71
84
  }
72
85
  /** Totals for one wet layer. */
73
86
  export interface WetLaneStats {
@@ -95,6 +108,7 @@ export interface WetSnapshot {
95
108
  base: TiledSurface;
96
109
  light?: TiledSurface;
97
110
  lit?: boolean;
111
+ ghost?: WetGhostState | null;
98
112
  }>;
99
113
  /** Per active key: the current set and the deposit planes; and its last flags. */
100
114
  readonly slots: ReadonlyMap<number, {
@@ -191,6 +205,15 @@ export declare class WetWorld {
191
205
  isLit(id: string): boolean;
192
206
  /** Replaces the light paint under a layer's wet paint. */
193
207
  setLight(id: string, light: TiledSurface): void;
208
+ /** Active ghost paint state on the layer, or `null`. */
209
+ getGhost(id: string): WetGhostState | null;
210
+ /** Sets or clears a layer's active ghost paint state. */
211
+ setGhost(id: string, ghost: WetGhostState | null): void;
212
+ /**
213
+ * 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.
215
+ */
216
+ startGhost(id: string, pigment: readonly [number, number, number, number], linger: number, stepsPerSecond?: number): void;
194
217
  private pack;
195
218
  private touchAll;
196
219
  private laneIndexOf;
@@ -287,7 +310,20 @@ export declare class WetWorld {
287
310
  * the paper as settled pigment, so water can move it again, and the same share of its light
288
311
  * paint (`light`) as settled light. Only where there is surface water.
289
312
  */
290
- rewet(id: string, rect: RasterRect, cov: ArrayLike<number> | null, amount: number, paper: readonly [number, number, number]): void;
313
+ rewet(id: string, rect: RasterRect, cov: ArrayLike<number> | null, amount: number, paper: readonly [number, number, number], suspend?: boolean): void;
314
+ /**
315
+ * Subtracts `amount` (0..1) of a ghost lane's remaining tracer (`P_L`, `P_DL`) and proportional
316
+ * ghost pigment (`lane.ghost.pigment`) across all live tiles of `id`. Speeds up in cells that
317
+ * are nearly dry so drying paint never pops. Clears the lane's `ghost` state once no tracer remains.
318
+ */
319
+ fadeGhost(id: string, amount: number): void;
320
+ /** Whether any live tile of `lane` still holds ghost tracer (`P_L > 0` or `P_DL > 0`). */
321
+ private hasGhostTracer;
322
+ /**
323
+ * Fades ghost tracer and pigment in one slot by `amount` (0..1). Returns whether any tracer
324
+ * remains in the slot.
325
+ */
326
+ private fadeGhostKey;
291
327
  /**
292
328
  * Dries wet paint at once (everything settles where it is, the water goes): in `rect`, or the
293
329
  * whole layer. Whole tiles that end up dry are baked into the base and freed. Returns the
@@ -59,6 +59,17 @@ export interface WetWorldOptions {
59
59
  /** Worker threads for the wasm kernel: `auto` (default: cores − 1, at most 10) or a number (0: none). */
60
60
  threads?: number | 'auto';
61
61
  }
62
+ /** A wet layer's active ghost paint state: pigment per unit tracer and fade countdown. */
63
+ export interface WetGhostState {
64
+ /** Pigment per unit of tracer (K_r, K_g, K_b, S). */
65
+ pigment: [number, number, number, number];
66
+ /** Free-interval ticks left before the ghost has fully faded. */
67
+ remaining: number;
68
+ /** Total free-interval ticks configured for the current ghost fade. */
69
+ total: number;
70
+ /** Linger seconds configured for the current ghost fade. */
71
+ linger: number;
72
+ }
62
73
  export interface WetLaneOptions {
63
74
  params?: Partial<WetParams>;
64
75
  /** The layer's pixels under the wet paint (default empty). */
@@ -68,6 +79,8 @@ export interface WetLaneOptions {
68
79
  flowStrength?: number;
69
80
  /** The layer's light paint under the wet paint (one channel; default none). */
70
81
  light?: TiledSurface | null;
82
+ /** Active ghost paint state on the layer, if any. */
83
+ ghost?: WetGhostState | null;
71
84
  }
72
85
  /** Totals for one wet layer. */
73
86
  export interface WetLaneStats {
@@ -95,6 +108,7 @@ export interface WetSnapshot {
95
108
  base: TiledSurface;
96
109
  light?: TiledSurface;
97
110
  lit?: boolean;
111
+ ghost?: WetGhostState | null;
98
112
  }>;
99
113
  /** Per active key: the current set and the deposit planes; and its last flags. */
100
114
  readonly slots: ReadonlyMap<number, {
@@ -191,6 +205,15 @@ export declare class WetWorld {
191
205
  isLit(id: string): boolean;
192
206
  /** Replaces the light paint under a layer's wet paint. */
193
207
  setLight(id: string, light: TiledSurface): void;
208
+ /** Active ghost paint state on the layer, or `null`. */
209
+ getGhost(id: string): WetGhostState | null;
210
+ /** Sets or clears a layer's active ghost paint state. */
211
+ setGhost(id: string, ghost: WetGhostState | null): void;
212
+ /**
213
+ * 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.
215
+ */
216
+ startGhost(id: string, pigment: readonly [number, number, number, number], linger: number, stepsPerSecond?: number): void;
194
217
  private pack;
195
218
  private touchAll;
196
219
  private laneIndexOf;
@@ -287,7 +310,20 @@ export declare class WetWorld {
287
310
  * the paper as settled pigment, so water can move it again, and the same share of its light
288
311
  * paint (`light`) as settled light. Only where there is surface water.
289
312
  */
290
- rewet(id: string, rect: RasterRect, cov: ArrayLike<number> | null, amount: number, paper: readonly [number, number, number]): void;
313
+ rewet(id: string, rect: RasterRect, cov: ArrayLike<number> | null, amount: number, paper: readonly [number, number, number], suspend?: boolean): void;
314
+ /**
315
+ * Subtracts `amount` (0..1) of a ghost lane's remaining tracer (`P_L`, `P_DL`) and proportional
316
+ * ghost pigment (`lane.ghost.pigment`) across all live tiles of `id`. Speeds up in cells that
317
+ * are nearly dry so drying paint never pops. Clears the lane's `ghost` state once no tracer remains.
318
+ */
319
+ fadeGhost(id: string, amount: number): void;
320
+ /** Whether any live tile of `lane` still holds ghost tracer (`P_L > 0` or `P_DL > 0`). */
321
+ private hasGhostTracer;
322
+ /**
323
+ * Fades ghost tracer and pigment in one slot by `amount` (0..1). Returns whether any tracer
324
+ * remains in the slot.
325
+ */
326
+ private fadeGhostKey;
291
327
  /**
292
328
  * Dries wet paint at once (everything settles where it is, the water goes): in `rect`, or the
293
329
  * whole layer. Whole tiles that end up dry are baked into the base and freed. Returns the
@@ -41,6 +41,7 @@ export interface BrushEngineControls {
41
41
  /** Light paint: the "light follows pressure" toggle (`light.pressure`); the Light slider is in `sliders`. */
42
42
  light?: boolean;
43
43
  }
44
+ export declare const GHOST_SLIDERS: readonly SliderControl[];
44
45
  /**
45
46
  * The controls the active brush's engine adds to the brush panel (`null` for the eraser):
46
47
  * blender strength and blend distance; smudge strength and length; the Mixer Brush's pick-up,
@@ -50,6 +51,7 @@ export interface BrushEngineControls {
50
51
  */
51
52
  export declare function brushEngineControls(brush: Pick<PaintBrush, 'engine'> & {
52
53
  wet?: PaintBrush['wet'];
54
+ ghost?: PaintBrush['ghost'];
53
55
  }): BrushEngineControls | null;
54
56
  /** The multi-colour sliders for a mode: softness, and dabs per colour in `dab` mode. */
55
57
  export declare function multiColorSliders(mode: string): readonly SliderControl[];
@@ -41,6 +41,7 @@ export interface BrushEngineControls {
41
41
  /** Light paint: the "light follows pressure" toggle (`light.pressure`); the Light slider is in `sliders`. */
42
42
  light?: boolean;
43
43
  }
44
+ export declare const GHOST_SLIDERS: readonly SliderControl[];
44
45
  /**
45
46
  * The controls the active brush's engine adds to the brush panel (`null` for the eraser):
46
47
  * blender strength and blend distance; smudge strength and length; the Mixer Brush's pick-up,
@@ -50,6 +51,7 @@ export interface BrushEngineControls {
50
51
  */
51
52
  export declare function brushEngineControls(brush: Pick<PaintBrush, 'engine'> & {
52
53
  wet?: PaintBrush['wet'];
54
+ ghost?: PaintBrush['ghost'];
53
55
  }): BrushEngineControls | null;
54
56
  /** The multi-colour sliders for a mode: softness, and dabs per colour in `dab` mode. */
55
57
  export declare function multiColorSliders(mode: string): readonly SliderControl[];
@@ -94,6 +94,15 @@ 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
+ /** Ghost paint: wet paint whose colour vanishes after `linger` seconds, leaving only what it smeared. */
98
+ export interface GhostSettings {
99
+ /** Seconds of simulated time before the ghost paint has fully faded, 0.5..60 (default 4). */
100
+ linger: number;
101
+ /** How much the ghost paint drags and lifts the paint it passes through, 0..1 (default 0.3). */
102
+ smear: number;
103
+ }
104
+ export declare const DEFAULT_GHOST: Readonly<GhostSettings>;
105
+ export declare function normalizeGhost(raw?: Partial<GhostSettings>, base?: GhostSettings): GhostSettings;
97
106
  export declare function normalizeImpasto(raw?: Partial<ImpastoSettings>, base?: ImpastoSettings): ImpastoSettings;
98
107
  /** Multi-coloured brush: `tip` lays the colours across the tip, `dab` changes colour from dab to dab. */
99
108
  export type MultiColorMode = 'off' | 'tip' | 'dab';
@@ -218,6 +227,8 @@ export interface PaintBrush {
218
227
  sticker: StickerSettings;
219
228
  /** Light paint: the light it lays with its colour (amount 0: none). */
220
229
  light: LightSettings;
230
+ /** Wet engine: ghost paint settings (missing when not a ghost brush). */
231
+ ghost?: GhostSettings;
221
232
  /**
222
233
  * Dab engine: a stamp tip. Each dab (and each spray droplet) is this sticker's shape, an editor
223
234
  * stamp (`editor:star`) or any sticker ref from the sticker library, laid in the paint colour;
@@ -254,10 +265,12 @@ export interface SpraySettings {
254
265
  size: number;
255
266
  }
256
267
  export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
257
- export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray' | 'tipGrain'>> & {
268
+ export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'ghost' | 'spray' | 'tipGrain'>> & {
258
269
  spray?: Partial<SpraySettings> | null;
259
270
  /** Tip grain (`null` removes it). */
260
271
  tipGrain?: Partial<TipGrainSettings> | null;
272
+ /** Ghost paint (`null` removes it). */
273
+ ghost?: Partial<GhostSettings> | null;
261
274
  light?: Partial<LightSettings>;
262
275
  /** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
263
276
  paint?: PaintSource | null;
@@ -94,6 +94,15 @@ 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
+ /** Ghost paint: wet paint whose colour vanishes after `linger` seconds, leaving only what it smeared. */
98
+ export interface GhostSettings {
99
+ /** Seconds of simulated time before the ghost paint has fully faded, 0.5..60 (default 4). */
100
+ linger: number;
101
+ /** How much the ghost paint drags and lifts the paint it passes through, 0..1 (default 0.3). */
102
+ smear: number;
103
+ }
104
+ export declare const DEFAULT_GHOST: Readonly<GhostSettings>;
105
+ export declare function normalizeGhost(raw?: Partial<GhostSettings>, base?: GhostSettings): GhostSettings;
97
106
  export declare function normalizeImpasto(raw?: Partial<ImpastoSettings>, base?: ImpastoSettings): ImpastoSettings;
98
107
  /** Multi-coloured brush: `tip` lays the colours across the tip, `dab` changes colour from dab to dab. */
99
108
  export type MultiColorMode = 'off' | 'tip' | 'dab';
@@ -218,6 +227,8 @@ export interface PaintBrush {
218
227
  sticker: StickerSettings;
219
228
  /** Light paint: the light it lays with its colour (amount 0: none). */
220
229
  light: LightSettings;
230
+ /** Wet engine: ghost paint settings (missing when not a ghost brush). */
231
+ ghost?: GhostSettings;
221
232
  /**
222
233
  * Dab engine: a stamp tip. Each dab (and each spray droplet) is this sticker's shape, an editor
223
234
  * stamp (`editor:star`) or any sticker ref from the sticker library, laid in the paint colour;
@@ -254,10 +265,12 @@ export interface SpraySettings {
254
265
  size: number;
255
266
  }
256
267
  export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
257
- export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray' | 'tipGrain'>> & {
268
+ export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'ghost' | 'spray' | 'tipGrain'>> & {
258
269
  spray?: Partial<SpraySettings> | null;
259
270
  /** Tip grain (`null` removes it). */
260
271
  tipGrain?: Partial<TipGrainSettings> | null;
272
+ /** Ghost paint (`null` removes it). */
273
+ ghost?: Partial<GhostSettings> | null;
261
274
  light?: Partial<LightSettings>;
262
275
  /** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
263
276
  paint?: PaintSource | null;