@pixerate/editor 0.94.0 → 0.96.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 (41) hide show
  1. package/THIRD_PARTY_NOTICES.md +2 -0
  2. package/dist/{chunk-ZOOEX3WT.cjs → chunk-CRMAXIUV.cjs} +369 -7
  3. package/dist/chunk-CRMAXIUV.cjs.map +1 -0
  4. package/dist/{chunk-D4ZCU72J.js → chunk-HEW6KDNI.js} +366 -4
  5. package/dist/chunk-HEW6KDNI.js.map +1 -0
  6. package/dist/{chunk-ISDCJHTO.js → chunk-IB53LVGV.js} +238 -285
  7. package/dist/chunk-IB53LVGV.js.map +1 -0
  8. package/dist/{chunk-747CGOT2.js → chunk-KFTQ2PKP.js} +29 -2
  9. package/dist/chunk-KFTQ2PKP.js.map +1 -0
  10. package/dist/{chunk-73L6TROJ.cjs → chunk-T422YCHR.cjs} +71 -44
  11. package/dist/chunk-T422YCHR.cjs.map +1 -0
  12. package/dist/{chunk-4F3YDIWW.cjs → chunk-ZZOTHJ4K.cjs} +264 -311
  13. package/dist/chunk-ZZOTHJ4K.cjs.map +1 -0
  14. package/dist/image-editor/index.cjs +1832 -632
  15. package/dist/image-editor/index.cjs.map +1 -1
  16. package/dist/image-editor/index.d.cts +179 -22
  17. package/dist/image-editor/index.d.ts +179 -22
  18. package/dist/image-editor/index.js +1463 -263
  19. package/dist/image-editor/index.js.map +1 -1
  20. package/dist/paint/index.cjs +22 -3
  21. package/dist/paint/index.cjs.map +1 -1
  22. package/dist/paint/index.d.cts +117 -2
  23. package/dist/paint/index.d.ts +117 -2
  24. package/dist/paint/index.js +32 -13
  25. package/dist/raster/index.cjs +7 -3
  26. package/dist/raster/index.cjs.map +1 -1
  27. package/dist/raster/index.d.cts +796 -5
  28. package/dist/raster/index.d.ts +796 -5
  29. package/dist/raster/index.js +6 -2
  30. package/dist/{surface-CuBg2c6k.d.cts → surface-DIA-XatS.d.cts} +23 -11
  31. package/dist/{surface-CuBg2c6k.d.ts → surface-DIA-XatS.d.ts} +23 -11
  32. package/package.json +1 -1
  33. package/skills/pixerate-image-editor/SKILL.md +39 -6
  34. package/dist/chunk-4F3YDIWW.cjs.map +0 -1
  35. package/dist/chunk-73L6TROJ.cjs.map +0 -1
  36. package/dist/chunk-747CGOT2.js.map +0 -1
  37. package/dist/chunk-D4ZCU72J.js.map +0 -1
  38. package/dist/chunk-ISDCJHTO.js.map +0 -1
  39. package/dist/chunk-ZOOEX3WT.cjs.map +0 -1
  40. package/dist/zlib-BJ6U7LuB.d.cts +0 -795
  41. package/dist/zlib-BjQkpMFi.d.ts +0 -795
@@ -25,10 +25,9 @@
25
25
 
26
26
 
27
27
 
28
+ var _chunkZZOTHJ4Kcjs = require('../chunk-ZZOTHJ4K.cjs');
28
29
 
29
30
 
30
- var _chunk4F3YDIWWcjs = require('../chunk-4F3YDIWW.cjs');
31
- require('../chunk-ZOOEX3WT.cjs');
32
31
 
33
32
 
34
33
 
@@ -39,6 +38,7 @@ require('../chunk-ZOOEX3WT.cjs');
39
38
 
40
39
 
41
40
 
41
+ var _chunkCRMAXIUVcjs = require('../chunk-CRMAXIUV.cjs');
42
42
 
43
43
 
44
44
 
@@ -58,5 +58,24 @@ require('../chunk-ZOOEX3WT.cjs');
58
58
 
59
59
 
60
60
 
61
- exports.CoverageMap = _chunk4F3YDIWWcjs.CoverageMap; exports.DEFAULT_BRUSH = _chunk4F3YDIWWcjs.DEFAULT_BRUSH; exports.DabWalker = _chunk4F3YDIWWcjs.DabWalker; exports.MAX_BRUSH_SIZE = _chunk4F3YDIWWcjs.MAX_BRUSH_SIZE; exports.PIGMENT_BANDS = _chunk4F3YDIWWcjs.PIGMENT_BANDS; exports.PIGMENT_LAMBDA_MIN = _chunk4F3YDIWWcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk4F3YDIWWcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_WAVELENGTHS = _chunk4F3YDIWWcjs.PIGMENT_WAVELENGTHS; exports.StrokeCoverage = _chunk4F3YDIWWcjs.StrokeCoverage; exports.applyStrokeToTile = _chunk4F3YDIWWcjs.applyStrokeToTile; exports.coverageTileCoord = _chunk4F3YDIWWcjs.coverageTileCoord; exports.createPigment = _chunk4F3YDIWWcjs.createPigment; exports.createPigmentTools = _chunk4F3YDIWWcjs.createPigmentTools; exports.dabCoverage = _chunk4F3YDIWWcjs.dabCoverage; exports.dabRect = _chunk4F3YDIWWcjs.dabRect; exports.lerpPigment = _chunk4F3YDIWWcjs.lerpPigment; exports.lerpPigmentInto = _chunk4F3YDIWWcjs.lerpPigmentInto; exports.mixPigments = _chunk4F3YDIWWcjs.mixPigments; exports.normalizeBrush = _chunk4F3YDIWWcjs.normalizeBrush; exports.rasterizeDab = _chunk4F3YDIWWcjs.rasterizeDab; exports.reflectanceToRgb = _chunk4F3YDIWWcjs.reflectanceToRgb; exports.rgbToReflectance = _chunk4F3YDIWWcjs.rgbToReflectance; exports.setPigmentColor = _chunk4F3YDIWWcjs.setPigmentColor; exports.smoothPoints = _chunk4F3YDIWWcjs.smoothPoints; exports.tipFalloff = _chunk4F3YDIWWcjs.tipFalloff; exports.tipReach = _chunk4F3YDIWWcjs.tipReach; exports.tipShape = _chunk4F3YDIWWcjs.tipShape; exports.walkDabs = _chunk4F3YDIWWcjs.walkDabs;
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+ exports.CoverageMap = _chunkZZOTHJ4Kcjs.CoverageMap; exports.DEFAULT_BRUSH = _chunkZZOTHJ4Kcjs.DEFAULT_BRUSH; exports.DEFAULT_MIXER = _chunkZZOTHJ4Kcjs.DEFAULT_MIXER; exports.DabWalker = _chunkZZOTHJ4Kcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkZZOTHJ4Kcjs.EMPTY_MIXER_LOAD; exports.MAX_BRUSH_SIZE = _chunkZZOTHJ4Kcjs.MAX_BRUSH_SIZE; exports.MIXER_DRAIN = _chunkZZOTHJ4Kcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkZZOTHJ4Kcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkZZOTHJ4Kcjs.MIXING_MODELS; exports.MixerStroke = _chunkZZOTHJ4Kcjs.MixerStroke; exports.PIGMENT_BANDS = _chunkCRMAXIUVcjs.PIGMENT_BANDS; exports.PIGMENT_LAMBDA_MIN = _chunkCRMAXIUVcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunkCRMAXIUVcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_WAVELENGTHS = _chunkCRMAXIUVcjs.PIGMENT_WAVELENGTHS; exports.StrokeCoverage = _chunkZZOTHJ4Kcjs.StrokeCoverage; exports.applyStrokeToTile = _chunkZZOTHJ4Kcjs.applyStrokeToTile; exports.cleanMixer = _chunkZZOTHJ4Kcjs.cleanMixer; exports.coverageTileCoord = _chunkZZOTHJ4Kcjs.coverageTileCoord; exports.createPigment = _chunkCRMAXIUVcjs.createPigment; exports.createPigmentTools = _chunkZZOTHJ4Kcjs.createPigmentTools; exports.dabCoverage = _chunkZZOTHJ4Kcjs.dabCoverage; exports.dabRect = _chunkZZOTHJ4Kcjs.dabRect; exports.lerpPigment = _chunkCRMAXIUVcjs.lerpPigment; exports.lerpPigmentInto = _chunkCRMAXIUVcjs.lerpPigmentInto; exports.loadMixer = _chunkZZOTHJ4Kcjs.loadMixer; exports.mixPigments = _chunkCRMAXIUVcjs.mixPigments; exports.normalizeBrush = _chunkZZOTHJ4Kcjs.normalizeBrush; exports.normalizeMixer = _chunkZZOTHJ4Kcjs.normalizeMixer; exports.rasterizeDab = _chunkZZOTHJ4Kcjs.rasterizeDab; exports.reflectanceToRgb = _chunkCRMAXIUVcjs.reflectanceToRgb; exports.rgbToReflectance = _chunkCRMAXIUVcjs.rgbToReflectance; exports.setPigmentColor = _chunkCRMAXIUVcjs.setPigmentColor; exports.smoothPoints = _chunkZZOTHJ4Kcjs.smoothPoints; exports.tipFalloff = _chunkZZOTHJ4Kcjs.tipFalloff; exports.tipReach = _chunkZZOTHJ4Kcjs.tipReach; exports.tipShape = _chunkZZOTHJ4Kcjs.tipShape; exports.walkDabs = _chunkZZOTHJ4Kcjs.walkDabs;
62
81
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/paint/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,qkDAAC","file":"/home/runner/work/editor/editor/packages/core/dist/paint/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/paint/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,gkEAAC","file":"/home/runner/work/editor/editor/packages/core/dist/paint/index.cjs"}
@@ -1,4 +1,4 @@
1
- import { B as BlendMode, R as RasterRect, g as TileKey } from '../surface-CuBg2c6k.cjs';
1
+ import { B as BlendMode, R as RasterRect, h as TileKey } from '../surface-DIA-XatS.cjs';
2
2
  import { A as AgentTool } from '../registry-BqA1AZt0.cjs';
3
3
  import '../schema-Di0CS6Pe.cjs';
4
4
 
@@ -166,6 +166,121 @@ declare function coverageTileCoord(key: TileKey): {
166
166
  ty: number;
167
167
  };
168
168
 
169
+ /**
170
+ * The Mixer Brush: a reservoir of loaded paint plus a pickup well that takes up colour from the
171
+ * canvas under each dab (photocraft's behavioural model):
172
+ *
173
+ * - Each dab samples the canvas under its footprint (coverage- and alpha-weighted). The pickup
174
+ * colour `P` moves towards that sample by `PICKUP_RATE × wet` (scaled by the sample's coverage).
175
+ * - The dab's paint mixes the reservoir `R` (weight `amount × (1 − mix·wet)`) with the pickup
176
+ * (weight `mix·wet`) and lands at `flow × opacity` times the total weight, over the pixels as
177
+ * they are now, so earlier dabs of the same stroke are picked up again (smearing).
178
+ * - The reservoir drains per dab unless `load` is 1, so low-load strokes run dry. A dry brush
179
+ * (`wet` 0) paints only reservoir colour; an empty, wet brush smears canvas colour.
180
+ *
181
+ * `mixing: 'pigment'` does all three mixes (pickup, paint and deposit) with the Kubelka-Munk model
182
+ * of `./pigment`, so a blue brush dragged through yellow makes green instead of grey. Everything
183
+ * is data in, pixels out: the same canvas, points, settings and load replay identically.
184
+ */
185
+
186
+ /** How the Mixer Brush mixes colours: straight sRGB averages, or like paint (Kubelka-Munk). */
187
+ type MixingModel = 'rgb' | 'pigment';
188
+ declare const MIXING_MODELS: readonly MixingModel[];
189
+ /** Mixer Brush options. */
190
+ interface MixerSettings {
191
+ /** How much colour the brush picks up from the canvas, 0 (dry) .. 1 (default 0.5). */
192
+ wet: number;
193
+ /** How much paint the reservoir holds, 0 .. 1 (default 0.5): below 1 it drains per dab and the stroke runs dry. */
194
+ load: number;
195
+ /** How far each dab's paint moves from the reservoir towards the picked-up colour, 0 .. 1 (default 0.5). */
196
+ mix: number;
197
+ /** Refill the reservoir with the paint colour at the start of each stroke (default true). */
198
+ loadEachStroke: boolean;
199
+ /** Empty the pickup well after each stroke (default true); off keeps the brush dirty for the next stroke. */
200
+ cleanEachStroke: boolean;
201
+ /** `rgb` (default) or `pigment` (blue and yellow make green). */
202
+ mixing: MixingModel;
203
+ }
204
+ declare const DEFAULT_MIXER: Readonly<MixerSettings>;
205
+ /** Fraction of the way the pickup colour moves towards the canvas per dab at 100 % wet. */
206
+ declare const MIXER_PICKUP_RATE = 0.25;
207
+ /** Fraction of the reservoir that drains per dab at 0 % load. */
208
+ declare const MIXER_DRAIN = 0.08;
209
+ /** Mixer settings with every field in range (missing fields from `DEFAULT_MIXER`). */
210
+ declare function normalizeMixer(raw?: Partial<MixerSettings>): MixerSettings;
211
+ /** What the brush carries between strokes. Colours are straight sRGB, 0..1. */
212
+ interface MixerLoad {
213
+ /** Loaded paint, or `null` when the brush is unloaded. */
214
+ readonly reservoir: readonly [number, number, number] | null;
215
+ /** Reservoir left, 0..1. */
216
+ readonly amount: number;
217
+ /** Colour picked up from the canvas, or `null` when the brush is clean. */
218
+ readonly pickup: readonly [number, number, number] | null;
219
+ }
220
+ declare const EMPTY_MIXER_LOAD: MixerLoad;
221
+ /** The brush loaded full with `color` (sRGB 0..1); the pickup well is kept. */
222
+ declare function loadMixer(load: MixerLoad, color: readonly [number, number, number]): MixerLoad;
223
+ /** The brush with its pickup well emptied; the reservoir is kept. */
224
+ declare function cleanMixer(load: MixerLoad): MixerLoad;
225
+ /** The pixels a mixer stroke reads and writes (RGBA tiles in layer space). */
226
+ interface MixerTarget {
227
+ /** The tile (TILE × TILE × 4) at (tx, ty) as it is now, or `null` when it is fully transparent. */
228
+ readTile(tx: number, ty: number): Uint8ClampedArray | null;
229
+ /** A writable tile at (tx, ty), returned by `readTile` from then on. */
230
+ writeTile(tx: number, ty: number): Uint8ClampedArray;
231
+ /** Layer offset: layer pixel = document pixel − offset. */
232
+ offset: {
233
+ x: number;
234
+ y: number;
235
+ };
236
+ /** Keep alpha and paint only where the layer has pixels. */
237
+ lockTransparency: boolean;
238
+ /** Selection coverage (document space, canvas-sized), or `null`. */
239
+ selection: {
240
+ width: number;
241
+ height: number;
242
+ data: ArrayLike<number>;
243
+ } | null;
244
+ }
245
+ /**
246
+ * One Mixer Brush stroke. Feed points with `push` (any chunks give the same dabs), end with
247
+ * `finish`; `load` is the brush load after the dabs so far. Each call returns the document
248
+ * rectangles it touched.
249
+ */
250
+ declare class MixerStroke {
251
+ readonly brush: BrushSettings;
252
+ private readonly target;
253
+ dabCount: number;
254
+ bounds: RasterRect | null;
255
+ private walker;
256
+ private smoothPos;
257
+ private buf;
258
+ private readonly settings;
259
+ private readonly reservoir;
260
+ private amount;
261
+ private pickup;
262
+ private readonly pig;
263
+ private readonly out;
264
+ constructor(brush: BrushSettings, settings: Partial<MixerSettings>, load: MixerLoad, target: MixerTarget);
265
+ /** The brush load after the dabs so far. */
266
+ get load(): MixerLoad;
267
+ push(points: readonly StrokePoint[]): RasterRect[];
268
+ finish(last?: StrokePoint): RasterRect[];
269
+ private smooth;
270
+ /** `a` mixed `t` of the way to `b` into `this.out`, by the mixing model. */
271
+ private mix;
272
+ private paint;
273
+ private tx;
274
+ private ty;
275
+ private tile;
276
+ private writable;
277
+ /** Index of document pixel (dx, dy) in `this.tile`, or -1 when reading an empty tile. */
278
+ private locate;
279
+ private dab;
280
+ /** Lays `paint` over the pixels under the dab at `dep` × coverage (× selection). */
281
+ private deposit;
282
+ }
283
+
169
284
  /**
170
285
  * Pigment-like colour mixing: blue and yellow make green, red and white make pink, as paint does.
171
286
  *
@@ -258,4 +373,4 @@ declare function lerpPigmentInto(a: Pigment, b: Pigment, t: number, out: {
258
373
  */
259
374
  declare function createPigmentTools(): AgentTool[];
260
375
 
261
- export { type BrushSettings, CoverageMap, DEFAULT_BRUSH, type Dab, DabWalker, MAX_BRUSH_SIZE, PIGMENT_BANDS, PIGMENT_LAMBDA_MIN, PIGMENT_LAMBDA_STEP, PIGMENT_WAVELENGTHS, type Pigment, type PigmentOptions, type PigmentRgb, type StrokeApply, StrokeCoverage, type StrokePoint, applyStrokeToTile, coverageTileCoord, createPigment, createPigmentTools, dabCoverage, dabRect, lerpPigment, lerpPigmentInto, mixPigments, normalizeBrush, rasterizeDab, reflectanceToRgb, rgbToReflectance, setPigmentColor, smoothPoints, tipFalloff, tipReach, tipShape, walkDabs };
376
+ export { type BrushSettings, CoverageMap, DEFAULT_BRUSH, DEFAULT_MIXER, type Dab, DabWalker, EMPTY_MIXER_LOAD, MAX_BRUSH_SIZE, MIXER_DRAIN, MIXER_PICKUP_RATE, MIXING_MODELS, type MixerLoad, type MixerSettings, MixerStroke, type MixerTarget, type MixingModel, PIGMENT_BANDS, PIGMENT_LAMBDA_MIN, PIGMENT_LAMBDA_STEP, PIGMENT_WAVELENGTHS, type Pigment, type PigmentOptions, type PigmentRgb, type StrokeApply, StrokeCoverage, type StrokePoint, applyStrokeToTile, cleanMixer, coverageTileCoord, createPigment, createPigmentTools, dabCoverage, dabRect, lerpPigment, lerpPigmentInto, loadMixer, mixPigments, normalizeBrush, normalizeMixer, rasterizeDab, reflectanceToRgb, rgbToReflectance, setPigmentColor, smoothPoints, tipFalloff, tipReach, tipShape, walkDabs };
@@ -1,4 +1,4 @@
1
- import { B as BlendMode, R as RasterRect, g as TileKey } from '../surface-CuBg2c6k.js';
1
+ import { B as BlendMode, R as RasterRect, h as TileKey } from '../surface-DIA-XatS.js';
2
2
  import { A as AgentTool } from '../registry-D-4fit9C.js';
3
3
  import '../schema-Di0CS6Pe.js';
4
4
 
@@ -166,6 +166,121 @@ declare function coverageTileCoord(key: TileKey): {
166
166
  ty: number;
167
167
  };
168
168
 
169
+ /**
170
+ * The Mixer Brush: a reservoir of loaded paint plus a pickup well that takes up colour from the
171
+ * canvas under each dab (photocraft's behavioural model):
172
+ *
173
+ * - Each dab samples the canvas under its footprint (coverage- and alpha-weighted). The pickup
174
+ * colour `P` moves towards that sample by `PICKUP_RATE × wet` (scaled by the sample's coverage).
175
+ * - The dab's paint mixes the reservoir `R` (weight `amount × (1 − mix·wet)`) with the pickup
176
+ * (weight `mix·wet`) and lands at `flow × opacity` times the total weight, over the pixels as
177
+ * they are now, so earlier dabs of the same stroke are picked up again (smearing).
178
+ * - The reservoir drains per dab unless `load` is 1, so low-load strokes run dry. A dry brush
179
+ * (`wet` 0) paints only reservoir colour; an empty, wet brush smears canvas colour.
180
+ *
181
+ * `mixing: 'pigment'` does all three mixes (pickup, paint and deposit) with the Kubelka-Munk model
182
+ * of `./pigment`, so a blue brush dragged through yellow makes green instead of grey. Everything
183
+ * is data in, pixels out: the same canvas, points, settings and load replay identically.
184
+ */
185
+
186
+ /** How the Mixer Brush mixes colours: straight sRGB averages, or like paint (Kubelka-Munk). */
187
+ type MixingModel = 'rgb' | 'pigment';
188
+ declare const MIXING_MODELS: readonly MixingModel[];
189
+ /** Mixer Brush options. */
190
+ interface MixerSettings {
191
+ /** How much colour the brush picks up from the canvas, 0 (dry) .. 1 (default 0.5). */
192
+ wet: number;
193
+ /** How much paint the reservoir holds, 0 .. 1 (default 0.5): below 1 it drains per dab and the stroke runs dry. */
194
+ load: number;
195
+ /** How far each dab's paint moves from the reservoir towards the picked-up colour, 0 .. 1 (default 0.5). */
196
+ mix: number;
197
+ /** Refill the reservoir with the paint colour at the start of each stroke (default true). */
198
+ loadEachStroke: boolean;
199
+ /** Empty the pickup well after each stroke (default true); off keeps the brush dirty for the next stroke. */
200
+ cleanEachStroke: boolean;
201
+ /** `rgb` (default) or `pigment` (blue and yellow make green). */
202
+ mixing: MixingModel;
203
+ }
204
+ declare const DEFAULT_MIXER: Readonly<MixerSettings>;
205
+ /** Fraction of the way the pickup colour moves towards the canvas per dab at 100 % wet. */
206
+ declare const MIXER_PICKUP_RATE = 0.25;
207
+ /** Fraction of the reservoir that drains per dab at 0 % load. */
208
+ declare const MIXER_DRAIN = 0.08;
209
+ /** Mixer settings with every field in range (missing fields from `DEFAULT_MIXER`). */
210
+ declare function normalizeMixer(raw?: Partial<MixerSettings>): MixerSettings;
211
+ /** What the brush carries between strokes. Colours are straight sRGB, 0..1. */
212
+ interface MixerLoad {
213
+ /** Loaded paint, or `null` when the brush is unloaded. */
214
+ readonly reservoir: readonly [number, number, number] | null;
215
+ /** Reservoir left, 0..1. */
216
+ readonly amount: number;
217
+ /** Colour picked up from the canvas, or `null` when the brush is clean. */
218
+ readonly pickup: readonly [number, number, number] | null;
219
+ }
220
+ declare const EMPTY_MIXER_LOAD: MixerLoad;
221
+ /** The brush loaded full with `color` (sRGB 0..1); the pickup well is kept. */
222
+ declare function loadMixer(load: MixerLoad, color: readonly [number, number, number]): MixerLoad;
223
+ /** The brush with its pickup well emptied; the reservoir is kept. */
224
+ declare function cleanMixer(load: MixerLoad): MixerLoad;
225
+ /** The pixels a mixer stroke reads and writes (RGBA tiles in layer space). */
226
+ interface MixerTarget {
227
+ /** The tile (TILE × TILE × 4) at (tx, ty) as it is now, or `null` when it is fully transparent. */
228
+ readTile(tx: number, ty: number): Uint8ClampedArray | null;
229
+ /** A writable tile at (tx, ty), returned by `readTile` from then on. */
230
+ writeTile(tx: number, ty: number): Uint8ClampedArray;
231
+ /** Layer offset: layer pixel = document pixel − offset. */
232
+ offset: {
233
+ x: number;
234
+ y: number;
235
+ };
236
+ /** Keep alpha and paint only where the layer has pixels. */
237
+ lockTransparency: boolean;
238
+ /** Selection coverage (document space, canvas-sized), or `null`. */
239
+ selection: {
240
+ width: number;
241
+ height: number;
242
+ data: ArrayLike<number>;
243
+ } | null;
244
+ }
245
+ /**
246
+ * One Mixer Brush stroke. Feed points with `push` (any chunks give the same dabs), end with
247
+ * `finish`; `load` is the brush load after the dabs so far. Each call returns the document
248
+ * rectangles it touched.
249
+ */
250
+ declare class MixerStroke {
251
+ readonly brush: BrushSettings;
252
+ private readonly target;
253
+ dabCount: number;
254
+ bounds: RasterRect | null;
255
+ private walker;
256
+ private smoothPos;
257
+ private buf;
258
+ private readonly settings;
259
+ private readonly reservoir;
260
+ private amount;
261
+ private pickup;
262
+ private readonly pig;
263
+ private readonly out;
264
+ constructor(brush: BrushSettings, settings: Partial<MixerSettings>, load: MixerLoad, target: MixerTarget);
265
+ /** The brush load after the dabs so far. */
266
+ get load(): MixerLoad;
267
+ push(points: readonly StrokePoint[]): RasterRect[];
268
+ finish(last?: StrokePoint): RasterRect[];
269
+ private smooth;
270
+ /** `a` mixed `t` of the way to `b` into `this.out`, by the mixing model. */
271
+ private mix;
272
+ private paint;
273
+ private tx;
274
+ private ty;
275
+ private tile;
276
+ private writable;
277
+ /** Index of document pixel (dx, dy) in `this.tile`, or -1 when reading an empty tile. */
278
+ private locate;
279
+ private dab;
280
+ /** Lays `paint` over the pixels under the dab at `dep` × coverage (× selection). */
281
+ private deposit;
282
+ }
283
+
169
284
  /**
170
285
  * Pigment-like colour mixing: blue and yellow make green, red and white make pink, as paint does.
171
286
  *
@@ -258,4 +373,4 @@ declare function lerpPigmentInto(a: Pigment, b: Pigment, t: number, out: {
258
373
  */
259
374
  declare function createPigmentTools(): AgentTool[];
260
375
 
261
- export { type BrushSettings, CoverageMap, DEFAULT_BRUSH, type Dab, DabWalker, MAX_BRUSH_SIZE, PIGMENT_BANDS, PIGMENT_LAMBDA_MIN, PIGMENT_LAMBDA_STEP, PIGMENT_WAVELENGTHS, type Pigment, type PigmentOptions, type PigmentRgb, type StrokeApply, StrokeCoverage, type StrokePoint, applyStrokeToTile, coverageTileCoord, createPigment, createPigmentTools, dabCoverage, dabRect, lerpPigment, lerpPigmentInto, mixPigments, normalizeBrush, rasterizeDab, reflectanceToRgb, rgbToReflectance, setPigmentColor, smoothPoints, tipFalloff, tipReach, tipShape, walkDabs };
376
+ export { type BrushSettings, CoverageMap, DEFAULT_BRUSH, DEFAULT_MIXER, type Dab, DabWalker, EMPTY_MIXER_LOAD, MAX_BRUSH_SIZE, MIXER_DRAIN, MIXER_PICKUP_RATE, MIXING_MODELS, type MixerLoad, type MixerSettings, MixerStroke, type MixerTarget, type MixingModel, PIGMENT_BANDS, PIGMENT_LAMBDA_MIN, PIGMENT_LAMBDA_STEP, PIGMENT_WAVELENGTHS, type Pigment, type PigmentOptions, type PigmentRgb, type StrokeApply, StrokeCoverage, type StrokePoint, applyStrokeToTile, cleanMixer, coverageTileCoord, createPigment, createPigmentTools, dabCoverage, dabRect, lerpPigment, lerpPigmentInto, loadMixer, mixPigments, normalizeBrush, normalizeMixer, rasterizeDab, reflectanceToRgb, rgbToReflectance, setPigmentColor, smoothPoints, tipFalloff, tipReach, tipShape, walkDabs };
@@ -1,45 +1,62 @@
1
1
  import {
2
2
  CoverageMap,
3
3
  DEFAULT_BRUSH,
4
+ DEFAULT_MIXER,
4
5
  DabWalker,
6
+ EMPTY_MIXER_LOAD,
5
7
  MAX_BRUSH_SIZE,
6
- PIGMENT_BANDS,
7
- PIGMENT_LAMBDA_MIN,
8
- PIGMENT_LAMBDA_STEP,
9
- PIGMENT_WAVELENGTHS,
8
+ MIXER_DRAIN,
9
+ MIXER_PICKUP_RATE,
10
+ MIXING_MODELS,
11
+ MixerStroke,
10
12
  StrokeCoverage,
11
13
  applyStrokeToTile,
14
+ cleanMixer,
12
15
  coverageTileCoord,
13
- createPigment,
14
16
  createPigmentTools,
15
17
  dabCoverage,
16
18
  dabRect,
17
- lerpPigment,
18
- lerpPigmentInto,
19
- mixPigments,
19
+ loadMixer,
20
20
  normalizeBrush,
21
+ normalizeMixer,
21
22
  rasterizeDab,
22
- reflectanceToRgb,
23
- rgbToReflectance,
24
- setPigmentColor,
25
23
  smoothPoints,
26
24
  tipFalloff,
27
25
  tipReach,
28
26
  tipShape,
29
27
  walkDabs
30
- } from "../chunk-ISDCJHTO.js";
31
- import "../chunk-D4ZCU72J.js";
28
+ } from "../chunk-IB53LVGV.js";
29
+ import {
30
+ PIGMENT_BANDS,
31
+ PIGMENT_LAMBDA_MIN,
32
+ PIGMENT_LAMBDA_STEP,
33
+ PIGMENT_WAVELENGTHS,
34
+ createPigment,
35
+ lerpPigment,
36
+ lerpPigmentInto,
37
+ mixPigments,
38
+ reflectanceToRgb,
39
+ rgbToReflectance,
40
+ setPigmentColor
41
+ } from "../chunk-HEW6KDNI.js";
32
42
  export {
33
43
  CoverageMap,
34
44
  DEFAULT_BRUSH,
45
+ DEFAULT_MIXER,
35
46
  DabWalker,
47
+ EMPTY_MIXER_LOAD,
36
48
  MAX_BRUSH_SIZE,
49
+ MIXER_DRAIN,
50
+ MIXER_PICKUP_RATE,
51
+ MIXING_MODELS,
52
+ MixerStroke,
37
53
  PIGMENT_BANDS,
38
54
  PIGMENT_LAMBDA_MIN,
39
55
  PIGMENT_LAMBDA_STEP,
40
56
  PIGMENT_WAVELENGTHS,
41
57
  StrokeCoverage,
42
58
  applyStrokeToTile,
59
+ cleanMixer,
43
60
  coverageTileCoord,
44
61
  createPigment,
45
62
  createPigmentTools,
@@ -47,8 +64,10 @@ export {
47
64
  dabRect,
48
65
  lerpPigment,
49
66
  lerpPigmentInto,
67
+ loadMixer,
50
68
  mixPigments,
51
69
  normalizeBrush,
70
+ normalizeMixer,
52
71
  rasterizeDab,
53
72
  reflectanceToRgb,
54
73
  rgbToReflectance,
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- var _chunk73L6TROJcjs = require('../chunk-73L6TROJ.cjs');
63
+ var _chunkT422YCHRcjs = require('../chunk-T422YCHR.cjs');
64
64
 
65
65
 
66
66
 
@@ -96,9 +96,9 @@ var _chunk73L6TROJcjs = require('../chunk-73L6TROJ.cjs');
96
96
 
97
97
 
98
98
 
99
- var _chunkZOOEX3WTcjs = require('../chunk-ZOOEX3WT.cjs');
100
99
 
101
100
 
101
+ var _chunkCRMAXIUVcjs = require('../chunk-CRMAXIUV.cjs');
102
102
 
103
103
 
104
104
 
@@ -193,5 +193,9 @@ var _chunkZOOEX3WTcjs = require('../chunk-ZOOEX3WT.cjs');
193
193
 
194
194
 
195
195
 
196
- exports.BLEND_MODES = _chunkZOOEX3WTcjs.BLEND_MODES; exports.CURVE_LUT_SIZE = _chunk73L6TROJcjs.CURVE_LUT_SIZE; exports.DEFAULT_GLOBAL_LIGHT = _chunk73L6TROJcjs.DEFAULT_GLOBAL_LIGHT; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunk73L6TROJcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.LAYER_EFFECT_KINDS = _chunk73L6TROJcjs.LAYER_EFFECT_KINDS; exports.LayerEffectError = _chunk73L6TROJcjs.LayerEffectError; exports.MAX_EFFECT_REACH = _chunk73L6TROJcjs.MAX_EFFECT_REACH; exports.PatternPlacement = _chunk73L6TROJcjs.PatternPlacement; exports.PatternTile = _chunk73L6TROJcjs.PatternTile; exports.RasterCompositor = _chunk73L6TROJcjs.RasterCompositor; exports.STROKE_CHAMFER_MAX = _chunk73L6TROJcjs.STROKE_CHAMFER_MAX; exports.SurfaceDraft = _chunkZOOEX3WTcjs.SurfaceDraft; exports.TILE = _chunkZOOEX3WTcjs.TILE; exports.TILE_SHIFT = _chunkZOOEX3WTcjs.TILE_SHIFT; exports.TiledSurface = _chunkZOOEX3WTcjs.TiledSurface; exports.ZlibError = _chunk73L6TROJcjs.ZlibError; exports.activeEffectItems = _chunk73L6TROJcjs.activeEffectItems; exports.adler32 = _chunk73L6TROJcjs.adler32; exports.base64ToBytes = _chunk73L6TROJcjs.base64ToBytes; exports.blendChannel = _chunkZOOEX3WTcjs.blendChannel; exports.blendImageData = _chunkZOOEX3WTcjs.blendImageData; exports.blendLum = _chunkZOOEX3WTcjs.blendLum; exports.blendPixel = _chunkZOOEX3WTcjs.blendPixel; exports.blendRgb = _chunkZOOEX3WTcjs.blendRgb; exports.blendTile = _chunk73L6TROJcjs.blendTile; exports.buildEffectMaps = _chunk73L6TROJcjs.buildEffectMaps; exports.builtinPattern = _chunk73L6TROJcjs.builtinPattern; exports.builtinPatternIds = _chunk73L6TROJcjs.builtinPatternIds; exports.bytesToBase64 = _chunk73L6TROJcjs.bytesToBase64; exports.canvasCompositeOperation = _chunkZOOEX3WTcjs.canvasCompositeOperation; exports.changedTiles = _chunk73L6TROJcjs.changedTiles; exports.collectTiles = _chunkZOOEX3WTcjs.collectTiles; exports.compositeLayerEffects = _chunk73L6TROJcjs.compositeLayerEffects; exports.contentBounds = _chunkZOOEX3WTcjs.contentBounds; exports.contourLut = _chunk73L6TROJcjs.contourLut; exports.curveLut = _chunk73L6TROJcjs.curveLut; exports.decodePng = _chunk73L6TROJcjs.decodePng; exports.defaultEffectGradient = _chunk73L6TROJcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunk73L6TROJcjs.defaultLayerEffect; exports.deflate = _chunk73L6TROJcjs.deflate; exports.deflateRaw = _chunk73L6TROJcjs.deflateRaw; exports.effectColorHex = _chunk73L6TROJcjs.effectColorHex; exports.effectReach = _chunk73L6TROJcjs.effectReach; exports.effectsAreLocal = _chunk73L6TROJcjs.effectsAreLocal; exports.effectsFingerprint = _chunk73L6TROJcjs.effectsFingerprint; exports.effectsMargin = _chunk73L6TROJcjs.effectsMargin; exports.effectsScale = _chunk73L6TROJcjs.effectsScale; exports.emptySurface = _chunkZOOEX3WTcjs.emptySurface; exports.encodePng = _chunk73L6TROJcjs.encodePng; exports.fillRect = _chunkZOOEX3WTcjs.fillRect; exports.findLayer = _chunk73L6TROJcjs.findLayer; exports.finishTile = _chunkZOOEX3WTcjs.finishTile; exports.flattenLayers = _chunk73L6TROJcjs.flattenLayers; exports.gaussianBlur = _chunk73L6TROJcjs.gaussianBlur; exports.gradientT = _chunk73L6TROJcjs.gradientT; exports.hasActiveEffects = _chunk73L6TROJcjs.hasActiveEffects; exports.hashNoise = _chunk73L6TROJcjs.hashNoise; exports.inflate = _chunk73L6TROJcjs.inflate; exports.inflateRaw = _chunk73L6TROJcjs.inflateRaw; exports.insertLayer = _chunk73L6TROJcjs.insertLayer; exports.isBlendMode = _chunkZOOEX3WTcjs.isBlendMode; exports.isLayerEffectKind = _chunk73L6TROJcjs.isLayerEffectKind; exports.isLayerLocked = _chunk73L6TROJcjs.isLayerLocked; exports.isPng = _chunk73L6TROJcjs.isPng; exports.isSeparableBlendMode = _chunkZOOEX3WTcjs.isSeparableBlendMode; exports.layerEffectFields = _chunk73L6TROJcjs.layerEffectFields; exports.layerEffectLabel = _chunk73L6TROJcjs.layerEffectLabel; exports.mapLayer = _chunk73L6TROJcjs.mapLayer; exports.mergeLayerEffect = _chunk73L6TROJcjs.mergeLayerEffect; exports.newEffectId = _chunk73L6TROJcjs.newEffectId; exports.normalizeBlendMode = _chunkZOOEX3WTcjs.normalizeBlendMode; exports.normalizeLayerEffects = _chunk73L6TROJcjs.normalizeLayerEffects; exports.packRgba = _chunkZOOEX3WTcjs.packRgba; exports.parseDataUrl = _chunk73L6TROJcjs.parseDataUrl; exports.parseEffectColor = _chunk73L6TROJcjs.parseEffectColor; exports.pngDataUrl = _chunk73L6TROJcjs.pngDataUrl; exports.readPixel = _chunkZOOEX3WTcjs.readPixel; exports.readRegion = _chunkZOOEX3WTcjs.readRegion; exports.renderLayerEffects = _chunk73L6TROJcjs.renderLayerEffects; exports.scaleLayerEffect = _chunk73L6TROJcjs.scaleLayerEffect; exports.setLum = _chunkZOOEX3WTcjs.setLum; exports.solidSurface = _chunkZOOEX3WTcjs.solidSurface; exports.surfaceBytes = _chunkZOOEX3WTcjs.surfaceBytes; exports.surfaceFromPixels = _chunkZOOEX3WTcjs.surfaceFromPixels; exports.surfacesEqual = _chunkZOOEX3WTcjs.surfacesEqual; exports.tileCoord = _chunkZOOEX3WTcjs.tileCoord; exports.tileKey = _chunkZOOEX3WTcjs.tileKey; exports.tileRect = _chunkZOOEX3WTcjs.tileRect; exports.tilesInRect = _chunkZOOEX3WTcjs.tilesInRect; exports.translateSurface = _chunkZOOEX3WTcjs.translateSurface; exports.uniformTile = _chunkZOOEX3WTcjs.uniformTile; exports.validateEffectGradient = _chunk73L6TROJcjs.validateEffectGradient; exports.validateLayerEffect = _chunk73L6TROJcjs.validateLayerEffect; exports.validateLayerEffects = _chunk73L6TROJcjs.validateLayerEffects; exports.writeRegion = _chunkZOOEX3WTcjs.writeRegion;
196
+
197
+
198
+
199
+
200
+ exports.BLEND_MODES = _chunkCRMAXIUVcjs.BLEND_MODES; exports.CURVE_LUT_SIZE = _chunkT422YCHRcjs.CURVE_LUT_SIZE; exports.DEFAULT_GLOBAL_LIGHT = _chunkT422YCHRcjs.DEFAULT_GLOBAL_LIGHT; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkT422YCHRcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.LAYER_EFFECT_KINDS = _chunkT422YCHRcjs.LAYER_EFFECT_KINDS; exports.LayerEffectError = _chunkT422YCHRcjs.LayerEffectError; exports.MAX_EFFECT_REACH = _chunkT422YCHRcjs.MAX_EFFECT_REACH; exports.PatternPlacement = _chunkT422YCHRcjs.PatternPlacement; exports.PatternTile = _chunkT422YCHRcjs.PatternTile; exports.RasterCompositor = _chunkT422YCHRcjs.RasterCompositor; exports.STROKE_CHAMFER_MAX = _chunkT422YCHRcjs.STROKE_CHAMFER_MAX; exports.SurfaceDraft = _chunkCRMAXIUVcjs.SurfaceDraft; exports.TILE = _chunkCRMAXIUVcjs.TILE; exports.TILE_SHIFT = _chunkCRMAXIUVcjs.TILE_SHIFT; exports.TiledSurface = _chunkCRMAXIUVcjs.TiledSurface; exports.ZlibError = _chunkT422YCHRcjs.ZlibError; exports.activeEffectItems = _chunkT422YCHRcjs.activeEffectItems; exports.adler32 = _chunkT422YCHRcjs.adler32; exports.base64ToBytes = _chunkT422YCHRcjs.base64ToBytes; exports.blendChannel = _chunkCRMAXIUVcjs.blendChannel; exports.blendImageData = _chunkCRMAXIUVcjs.blendImageData; exports.blendLum = _chunkCRMAXIUVcjs.blendLum; exports.blendPixel = _chunkCRMAXIUVcjs.blendPixel; exports.blendRgb = _chunkCRMAXIUVcjs.blendRgb; exports.blendTile = _chunkT422YCHRcjs.blendTile; exports.buildEffectMaps = _chunkT422YCHRcjs.buildEffectMaps; exports.builtinPattern = _chunkT422YCHRcjs.builtinPattern; exports.builtinPatternIds = _chunkT422YCHRcjs.builtinPatternIds; exports.bytesToBase64 = _chunkT422YCHRcjs.bytesToBase64; exports.canvasCompositeOperation = _chunkCRMAXIUVcjs.canvasCompositeOperation; exports.changedTiles = _chunkT422YCHRcjs.changedTiles; exports.collectTiles = _chunkCRMAXIUVcjs.collectTiles; exports.compositeLayerEffects = _chunkT422YCHRcjs.compositeLayerEffects; exports.contentBounds = _chunkCRMAXIUVcjs.contentBounds; exports.contourLut = _chunkT422YCHRcjs.contourLut; exports.curveLut = _chunkT422YCHRcjs.curveLut; exports.decodePng = _chunkT422YCHRcjs.decodePng; exports.defaultEffectGradient = _chunkT422YCHRcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkT422YCHRcjs.defaultLayerEffect; exports.deflate = _chunkT422YCHRcjs.deflate; exports.deflateRaw = _chunkT422YCHRcjs.deflateRaw; exports.effectColorHex = _chunkT422YCHRcjs.effectColorHex; exports.effectReach = _chunkT422YCHRcjs.effectReach; exports.effectsAreLocal = _chunkT422YCHRcjs.effectsAreLocal; exports.effectsFingerprint = _chunkT422YCHRcjs.effectsFingerprint; exports.effectsMargin = _chunkT422YCHRcjs.effectsMargin; exports.effectsScale = _chunkT422YCHRcjs.effectsScale; exports.emptySurface = _chunkCRMAXIUVcjs.emptySurface; exports.encodePng = _chunkT422YCHRcjs.encodePng; exports.fillRect = _chunkCRMAXIUVcjs.fillRect; exports.findLayer = _chunkT422YCHRcjs.findLayer; exports.finishTile = _chunkCRMAXIUVcjs.finishTile; exports.flattenLayers = _chunkT422YCHRcjs.flattenLayers; exports.gaussianBlur = _chunkT422YCHRcjs.gaussianBlur; exports.gradientT = _chunkT422YCHRcjs.gradientT; exports.hasActiveEffects = _chunkT422YCHRcjs.hasActiveEffects; exports.hashNoise = _chunkT422YCHRcjs.hashNoise; exports.inflate = _chunkT422YCHRcjs.inflate; exports.inflateRaw = _chunkT422YCHRcjs.inflateRaw; exports.insertLayer = _chunkT422YCHRcjs.insertLayer; exports.isBlendMode = _chunkCRMAXIUVcjs.isBlendMode; exports.isLayerEffectKind = _chunkT422YCHRcjs.isLayerEffectKind; exports.isLayerLocked = _chunkT422YCHRcjs.isLayerLocked; exports.isPng = _chunkT422YCHRcjs.isPng; exports.isSeparableBlendMode = _chunkCRMAXIUVcjs.isSeparableBlendMode; exports.layerEffectFields = _chunkT422YCHRcjs.layerEffectFields; exports.layerEffectLabel = _chunkT422YCHRcjs.layerEffectLabel; exports.mapLayer = _chunkT422YCHRcjs.mapLayer; exports.mergeLayerEffect = _chunkT422YCHRcjs.mergeLayerEffect; exports.mixPigment8 = _chunkCRMAXIUVcjs.mixPigment8; exports.mixPigmentRgb = _chunkCRMAXIUVcjs.mixPigmentRgb; exports.newEffectId = _chunkT422YCHRcjs.newEffectId; exports.normalizeBlendMode = _chunkCRMAXIUVcjs.normalizeBlendMode; exports.normalizeLayerEffects = _chunkT422YCHRcjs.normalizeLayerEffects; exports.packRgba = _chunkCRMAXIUVcjs.packRgba; exports.parseDataUrl = _chunkT422YCHRcjs.parseDataUrl; exports.parseEffectColor = _chunkT422YCHRcjs.parseEffectColor; exports.pngDataUrl = _chunkT422YCHRcjs.pngDataUrl; exports.readPixel = _chunkCRMAXIUVcjs.readPixel; exports.readRegion = _chunkCRMAXIUVcjs.readRegion; exports.renderLayerEffects = _chunkT422YCHRcjs.renderLayerEffects; exports.scaleLayerEffect = _chunkT422YCHRcjs.scaleLayerEffect; exports.setLum = _chunkCRMAXIUVcjs.setLum; exports.solidSurface = _chunkCRMAXIUVcjs.solidSurface; exports.surfaceBytes = _chunkCRMAXIUVcjs.surfaceBytes; exports.surfaceFromPixels = _chunkCRMAXIUVcjs.surfaceFromPixels; exports.surfacesEqual = _chunkCRMAXIUVcjs.surfacesEqual; exports.tileCoord = _chunkCRMAXIUVcjs.tileCoord; exports.tileKey = _chunkCRMAXIUVcjs.tileKey; exports.tileRect = _chunkCRMAXIUVcjs.tileRect; exports.tilesInRect = _chunkCRMAXIUVcjs.tilesInRect; exports.translateSurface = _chunkCRMAXIUVcjs.translateSurface; exports.uniformTile = _chunkCRMAXIUVcjs.uniformTile; exports.validateEffectGradient = _chunkT422YCHRcjs.validateEffectGradient; exports.validateLayerEffect = _chunkT422YCHRcjs.validateLayerEffect; exports.validateLayerEffects = _chunkT422YCHRcjs.validateLayerEffects; exports.writeRegion = _chunkCRMAXIUVcjs.writeRegion;
197
201
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,oyKAAC","file":"/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,k5KAAC","file":"/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"}