@pixerate/editor 0.245.0 → 0.246.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.
- package/dist/animation-editor/index.cjs +59 -59
- package/dist/animation-editor/index.js +3 -3
- package/dist/{brushstrokeRender-4542T5HP.js → brushstrokeRender-AKUI3SEJ.js} +2 -2
- package/dist/{brushstrokeRender-QA5WVIDT.cjs → brushstrokeRender-ZDHMXJAE.cjs} +5 -5
- package/dist/canvas/index.cjs +8 -8
- package/dist/canvas/index.js +1 -1
- package/dist/{chunk-7YQNKSQ7.js → chunk-4PMCMWQS.js} +1 -1
- package/dist/{chunk-HZ547SGQ.cjs → chunk-5MFDD7SP.cjs} +1 -1
- package/dist/{chunk-5RFENYO5.js → chunk-A23PSOBB.js} +1 -1
- package/dist/{chunk-BDIH4DYR.cjs → chunk-CEPKXLBS.cjs} +23 -23
- package/dist/{chunk-OSTKS3YN.js → chunk-DQWPMGH2.js} +1 -1
- package/dist/{chunk-IZL5V5RK.cjs → chunk-FK5LTDOO.cjs} +2 -2
- package/dist/{chunk-L5PB7EG3.js → chunk-LDPLEZ5T.js} +1 -1
- package/dist/{chunk-4EQY4TZJ.js → chunk-N6WUB3Y5.js} +1 -1
- package/dist/{chunk-4T47Z4J3.cjs → chunk-Q2UYUWAZ.cjs} +10 -0
- package/dist/{chunk-SD23XMVJ.cjs → chunk-UVPD55UZ.cjs} +35 -35
- package/dist/{chunk-TBJEMELS.js → chunk-VDAWA546.js} +10 -0
- package/dist/{chunk-M6JORA5Z.cjs → chunk-XTWXBQD4.cjs} +86 -86
- package/dist/image-editor/index.cjs +775 -775
- package/dist/image-editor/index.js +4 -4
- package/dist/paint-editor/index.cjs +136 -136
- package/dist/paint-editor/index.js +4 -4
- package/dist/vector/index.cjs +962 -962
- package/dist/vector/index.js +4 -4
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ var _chunkXNZFVYC2cjs = require('../chunk-XNZFVYC2.cjs');
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkXTWXBQD4cjs = require('../chunk-XTWXBQD4.cjs');
|
|
11
11
|
require('../chunk-A2IS7EHE.cjs');
|
|
12
12
|
require('../chunk-SS53NNZO.cjs');
|
|
13
13
|
|
|
@@ -55,7 +55,7 @@ var _chunkJLWLX52Lcjs = require('../chunk-JLWLX52L.cjs');
|
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
var _chunkK7ENM55Pcjs = require('../chunk-K7ENM55P.cjs');
|
|
58
|
-
require('../chunk-
|
|
58
|
+
require('../chunk-FK5LTDOO.cjs');
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
|
|
@@ -133,7 +133,7 @@ require('../chunk-IZL5V5RK.cjs');
|
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
|
|
136
|
-
var
|
|
136
|
+
var _chunkQ2UYUWAZcjs = require('../chunk-Q2UYUWAZ.cjs');
|
|
137
137
|
require('../chunk-CVFAAZXE.cjs');
|
|
138
138
|
require('../chunk-GF2RBSDM.cjs');
|
|
139
139
|
require('../chunk-NM3G4VQT.cjs');
|
|
@@ -295,7 +295,7 @@ function normalizeCanvas(raw) {
|
|
|
295
295
|
function createPaintDocument(options = {}) {
|
|
296
296
|
const canvas = normalizeCanvas({ width: _nullishCoalesce(options.width, () => ( 2048)), height: _nullishCoalesce(options.height, () => ( 1536)), dpi: options.dpi });
|
|
297
297
|
const layer = createPaintLayer("Layer 1");
|
|
298
|
-
return { canvas, paper:
|
|
298
|
+
return { canvas, paper: _chunkQ2UYUWAZcjs.normalizePaper.call(void 0, _nullishCoalesce(options.paper, () => ( {}))), layers: [layer], activeLayerId: layer.id, strokes: [] };
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
// src/paint-editor/dab-stroke.ts
|
|
@@ -349,13 +349,13 @@ var PaintDabStroke = (_class = class {
|
|
|
349
349
|
constructor(brush, options) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);
|
|
350
350
|
this.brush = brush;
|
|
351
351
|
this.options = options;
|
|
352
|
-
this.smoother = new (0,
|
|
353
|
-
this.copies = _optionalChain([options, 'access', _2 => _2.copies, 'optionalAccess', _3 => _3.length]) ? options.copies : [
|
|
352
|
+
this.smoother = new (0, _chunkQ2UYUWAZcjs.PenSmoother)(brush.tip.smoothing, brush.pressureSmoothing);
|
|
353
|
+
this.copies = _optionalChain([options, 'access', _2 => _2.copies, 'optionalAccess', _3 => _3.length]) ? options.copies : [_chunkQ2UYUWAZcjs.IDENTITY_COPY];
|
|
354
354
|
const exchanging = brush.engine === "mixer" || brush.engine === "dab";
|
|
355
355
|
const rates = brush.engine === "mixer" ? _chunkPQ3H2AANcjs.mixerRates.call(void 0, brush.mixer) : _chunkPQ3H2AANcjs.exchangeRates.call(void 0, brush.behavior.pickup, brush.behavior.mix, 1, brush.behavior.mixing);
|
|
356
356
|
this.mixing = brush.engine === "mixer" ? brush.mixer.mixing : brush.behavior.mixing;
|
|
357
357
|
this.states = this.copies.map((c, i) => ({
|
|
358
|
-
walker: new (0,
|
|
358
|
+
walker: new (0, _chunkQ2UYUWAZcjs.PenDabWalker)(brush, (_nullishCoalesce(options.seed, () => ( 0))) + i * 7919 | 0, c.linear),
|
|
359
359
|
exchange: exchanging ? new (0, _chunkPQ3H2AANcjs.PaintExchange)(rates, options.load) : null,
|
|
360
360
|
smudge: brush.engine === "smudge" ? new (0, _chunkPQ3H2AANcjs.SmudgeTip)(brush.smudge, brush.tip.size * (1 + brush.dynamics.tiltSize * 1.5)) : null
|
|
361
361
|
}));
|
|
@@ -468,7 +468,7 @@ var PaintDabStroke = (_class = class {
|
|
|
468
468
|
let flow = 1;
|
|
469
469
|
if (this.options.effect) {
|
|
470
470
|
const rgb = [0, 0, 0];
|
|
471
|
-
flow =
|
|
471
|
+
flow = _chunkQ2UYUWAZcjs.sampleEffectAt.call(void 0, this.options.effect, d.x, d.y, rgb, d);
|
|
472
472
|
ex.setReservoirColor(rgb[0], rgb[1], rgb[2]);
|
|
473
473
|
} else if (this.sampler && !this.gradient) {
|
|
474
474
|
const g = this.sampler.dab(d, this.sample);
|
|
@@ -699,12 +699,12 @@ var ThickStrokeDriver = (_class3 = class {
|
|
|
699
699
|
constructor(init) {;_class3.prototype.__init12.call(this);_class3.prototype.__init13.call(this);_class3.prototype.__init14.call(this);_class3.prototype.__init15.call(this);_class3.prototype.__init16.call(this);_class3.prototype.__init17.call(this);_class3.prototype.__init18.call(this);_class3.prototype.__init19.call(this);_class3.prototype.__init20.call(this);_class3.prototype.__init21.call(this);
|
|
700
700
|
this.init = init;
|
|
701
701
|
const b = init.brush;
|
|
702
|
-
this.smoother = new (0,
|
|
703
|
-
const copies = init.copies.length ? init.copies : [
|
|
702
|
+
this.smoother = new (0, _chunkQ2UYUWAZcjs.PenSmoother)(b.tip.smoothing, b.pressureSmoothing);
|
|
703
|
+
const copies = init.copies.length ? init.copies : [_chunkQ2UYUWAZcjs.IDENTITY_COPY];
|
|
704
704
|
this.copies = copies;
|
|
705
705
|
const rates = _chunkPQ3H2AANcjs.exchangeRates.call(void 0, b.behavior.pickup, b.behavior.mix, 1, b.behavior.mixing);
|
|
706
706
|
this.states = copies.map((c, i) => ({
|
|
707
|
-
walker: new (0,
|
|
707
|
+
walker: new (0, _chunkQ2UYUWAZcjs.PenDabWalker)(b, init.seed + i * 7919 | 0, c.linear),
|
|
708
708
|
exchange: new (0, _chunkPQ3H2AANcjs.PaintExchange)(rates, init.load),
|
|
709
709
|
smudge: b.impasto.tool === "knife" ? new (0, _chunkPQ3H2AANcjs.SmudgeTip)({ strength: 0.85, length: 0.6 + 0.38 * b.impasto.drag, mixing: b.behavior.mixing }, b.tip.size * 1.2) : null,
|
|
710
710
|
carried: null,
|
|
@@ -850,7 +850,7 @@ var ThickStrokeDriver = (_class3 = class {
|
|
|
850
850
|
let flow = 1;
|
|
851
851
|
const effect = this.init.effect;
|
|
852
852
|
if (effect) {
|
|
853
|
-
|
|
853
|
+
_chunkQ2UYUWAZcjs.sampleEffectAt.call(void 0, effect, d.x, d.y, this.centre, d);
|
|
854
854
|
ex.setReservoirColor(this.centre[0], this.centre[1], this.centre[2]);
|
|
855
855
|
} else if (this.sampler) {
|
|
856
856
|
const g = this.sampler.dab(d, this.sample);
|
|
@@ -867,7 +867,7 @@ var ThickStrokeDriver = (_class3 = class {
|
|
|
867
867
|
let field = null;
|
|
868
868
|
if (effect) {
|
|
869
869
|
field = new Float32Array(n * 3);
|
|
870
|
-
|
|
870
|
+
_chunkQ2UYUWAZcjs.effectDabField.call(void 0, effect, rect, cov, this.centre, this.paint, field, 0, d);
|
|
871
871
|
}
|
|
872
872
|
this.medium.deposit(rect, cov, dep, this.paint, ex.paintPigment, field);
|
|
873
873
|
}
|
|
@@ -1044,7 +1044,7 @@ function shadowToLight(shadow) {
|
|
|
1044
1044
|
return new (0, _chunk474IQG74cjs.TiledSurface)(1, tiles, 0);
|
|
1045
1045
|
}
|
|
1046
1046
|
function lightTwinBrush(brush) {
|
|
1047
|
-
return
|
|
1047
|
+
return _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0,
|
|
1048
1048
|
{
|
|
1049
1049
|
tip: { ...brush.tip, blend: "normal", pressureOpacity: brush.tip.pressureOpacity || brush.light.pressure },
|
|
1050
1050
|
behavior: { ...brush.behavior, mixing: "rgb" },
|
|
@@ -1274,7 +1274,7 @@ var PaintStrokeSession = (_class5 = class _PaintStrokeSession {
|
|
|
1274
1274
|
this.layerId = init.layerId;
|
|
1275
1275
|
this.base = init.surface;
|
|
1276
1276
|
this.live = new Map(this.base.tiles);
|
|
1277
|
-
this.copies = init.copies.length ? init.copies : [
|
|
1277
|
+
this.copies = init.copies.length ? init.copies : [_chunkQ2UYUWAZcjs.IDENTITY_COPY];
|
|
1278
1278
|
const brush = init.brush;
|
|
1279
1279
|
if (init.wet) this.wetDriver = init.wet.driver;
|
|
1280
1280
|
if (init.light && !init.wet && !init.sticker) this.lightTwin = this.makeLightTwin(init.light.surface);
|
|
@@ -1291,11 +1291,11 @@ var PaintStrokeSession = (_class5 = class _PaintStrokeSession {
|
|
|
1291
1291
|
};
|
|
1292
1292
|
if (this.wetDriver) {
|
|
1293
1293
|
} else if (init.sticker) {
|
|
1294
|
-
this.stickerSpray = new (0,
|
|
1294
|
+
this.stickerSpray = new (0, _chunkQ2UYUWAZcjs.StickerSpray)({ brush, target: this.tileTarget(), color: init.colorHex, seed: init.seed, copies: this.copies, nextId: init.sticker.nextId, paint: _nullishCoalesce(init.paint, () => ( null)), effect });
|
|
1295
1295
|
} else if (init.thick) {
|
|
1296
1296
|
const rgb = (c) => [c[0] / 255, c[1] / 255, c[2] / 255];
|
|
1297
1297
|
this.thickDriver = new ThickStrokeDriver({ brush, target: this.tileTarget(), channels: init.thick.channels, color: rgb(init.color), load: init.mixerLoad, seed: init.seed, copies: this.copies, paint: _nullishCoalesce(init.paint, () => ( null)), effect });
|
|
1298
|
-
} else if (brush.engine === "mixer" || brush.engine === "blender" || brush.engine === "smudge" ||
|
|
1298
|
+
} else if (brush.engine === "mixer" || brush.engine === "blender" || brush.engine === "smudge" || _chunkQ2UYUWAZcjs.usesPaintExchange.call(void 0, brush, Boolean(init.paint))) {
|
|
1299
1299
|
const rgb = (c) => [c[0] / 255, c[1] / 255, c[2] / 255];
|
|
1300
1300
|
this.wet = new PaintDabStroke(brush, {
|
|
1301
1301
|
target: this.tileTarget(),
|
|
@@ -1311,7 +1311,7 @@ var PaintStrokeSession = (_class5 = class _PaintStrokeSession {
|
|
|
1311
1311
|
});
|
|
1312
1312
|
} else {
|
|
1313
1313
|
const opts = { grain: init.grain, paperDepth: init.paperDepth, seed: init.seed, copies: this.copies, paint: _nullishCoalesce(init.paint, () => ( null)), effect };
|
|
1314
|
-
this.dry = brush.engine === "particle" ? new (0,
|
|
1314
|
+
this.dry = brush.engine === "particle" ? new (0, _chunkQ2UYUWAZcjs.ParticleStroke)(brush, opts) : brush.engine === "bristle" ? new (0, _chunkQ2UYUWAZcjs.BristleStroke)(brush, opts) : new (0, _chunkQ2UYUWAZcjs.DryStroke)(brush, opts);
|
|
1315
1315
|
}
|
|
1316
1316
|
}
|
|
1317
1317
|
|
|
@@ -1532,7 +1532,7 @@ function brushLoadForStroke(brush, current, color) {
|
|
|
1532
1532
|
if (brush.engine === "mixer") return mixerLoadForStroke(brush, current, color);
|
|
1533
1533
|
if (brush.engine === "impasto") return { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null };
|
|
1534
1534
|
if (brush.engine === "wet") return brush.wet.tool === "paint" ? { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null } : _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD;
|
|
1535
|
-
if (
|
|
1535
|
+
if (_chunkQ2UYUWAZcjs.usesPaintExchange.call(void 0, brush)) return { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null };
|
|
1536
1536
|
return _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD;
|
|
1537
1537
|
}
|
|
1538
1538
|
|
|
@@ -1800,7 +1800,7 @@ function normalizeBrushStroke(raw) {
|
|
|
1800
1800
|
const out = {
|
|
1801
1801
|
id: r.id,
|
|
1802
1802
|
layerId: r.layerId,
|
|
1803
|
-
brush:
|
|
1803
|
+
brush: _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, _nullishCoalesce(r.brush, () => ( {}))),
|
|
1804
1804
|
color: typeof r.color === "string" && /^#[0-9a-f]{6}$/i.test(r.color) ? r.color.toLowerCase() : "#000000",
|
|
1805
1805
|
points,
|
|
1806
1806
|
seed: finite2(r.seed) ? r.seed | 0 : 0
|
|
@@ -1819,7 +1819,7 @@ function normalizeBrushStroke(raw) {
|
|
|
1819
1819
|
}
|
|
1820
1820
|
if (st.length) out.stencils = st;
|
|
1821
1821
|
}
|
|
1822
|
-
const effect =
|
|
1822
|
+
const effect = _chunkQ2UYUWAZcjs.readPaintEffectPaint.call(void 0, r.paint);
|
|
1823
1823
|
const paint = effect ? null : _chunkPQ3H2AANcjs.readPaintSource.call(void 0, r.paint);
|
|
1824
1824
|
if (effect) out.paint = effect;
|
|
1825
1825
|
else if (paint && paint.type === "gradient") out.paint = paint;
|
|
@@ -1859,7 +1859,7 @@ function varyStroke(stroke, m, v) {
|
|
|
1859
1859
|
if (ps !== 1) q.pressure = Math.min(1, Math.max(0, (_nullishCoalesce(p.pressure, () => ( 1))) * ps));
|
|
1860
1860
|
return q;
|
|
1861
1861
|
});
|
|
1862
|
-
const brush = s !== 1 ?
|
|
1862
|
+
const brush = s !== 1 ? _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { ...stroke.brush, tip: { ...stroke.brush.tip, size: stroke.brush.tip.size * s } }) : stroke.brush;
|
|
1863
1863
|
const out = { ...stroke, brush, points };
|
|
1864
1864
|
if (_optionalChain([stroke, 'access', _87 => _87.paint, 'optionalAccess', _88 => _88.type]) === "gradient" && s !== 1) out.paint = _chunkPQ3H2AANcjs.scalePaintGradient.call(void 0, stroke.paint, s);
|
|
1865
1865
|
if (_optionalChain([stroke, 'access', _89 => _89.paint, 'optionalAccess', _90 => _90.type]) === "effect" && stroke.paint.map && s !== 1) out.paint = { ...stroke.paint, map: { ...stroke.paint.map, length: Math.min(4096, Math.max(16, Math.round(stroke.paint.map.length * s))) } };
|
|
@@ -1904,7 +1904,7 @@ function paperTile(paper, r, light) {
|
|
|
1904
1904
|
const key = `${paperKey(paper, light)}|${r.x},${r.y},${r.width},${r.height}`;
|
|
1905
1905
|
let t = tileCache.get(key);
|
|
1906
1906
|
if (!t) {
|
|
1907
|
-
t =
|
|
1907
|
+
t = _chunkQ2UYUWAZcjs.renderPaper.call(void 0, paper, r, paperGrain(paper), light);
|
|
1908
1908
|
if (tileCache.size > 512) tileCache.delete(tileCache.keys().next().value);
|
|
1909
1909
|
tileCache.set(key, t);
|
|
1910
1910
|
}
|
|
@@ -2009,11 +2009,11 @@ function header(state, options) {
|
|
|
2009
2009
|
return out;
|
|
2010
2010
|
}
|
|
2011
2011
|
function serializePaintDocument(state, options = {}) {
|
|
2012
|
-
const { layers, assets } =
|
|
2012
|
+
const { layers, assets } = _chunkXTWXBQD4cjs.serializeLayers.call(void 0, state.layers);
|
|
2013
2013
|
return { ...header(state, options), layers, assets };
|
|
2014
2014
|
}
|
|
2015
2015
|
async function serializePaintDocumentExternal(state, store, options = {}) {
|
|
2016
|
-
const { layers, assets } = await
|
|
2016
|
+
const { layers, assets } = await _chunkXTWXBQD4cjs.serializeLayersExternal.call(void 0, state.layers, store);
|
|
2017
2017
|
return { ...header(state, options), layers, assets };
|
|
2018
2018
|
}
|
|
2019
2019
|
function paintLayersOnly(layers, problems) {
|
|
@@ -2048,9 +2048,9 @@ function deserializePaintDocument(raw) {
|
|
|
2048
2048
|
}
|
|
2049
2049
|
const problems = [];
|
|
2050
2050
|
const canvas = normalizeCanvas({ width: r.width, height: r.height, dpi: _nullishCoalesce(r.dpi, () => ( void 0)) });
|
|
2051
|
-
const paper =
|
|
2051
|
+
const paper = _chunkQ2UYUWAZcjs.normalizePaper.call(void 0, _nullishCoalesce(r.paper, () => ( {})));
|
|
2052
2052
|
const assets = r.assets && typeof r.assets === "object" ? r.assets : {};
|
|
2053
|
-
const layers = paintLayersOnly(
|
|
2053
|
+
const layers = paintLayersOnly(_chunkXTWXBQD4cjs.deserializeLayers.call(void 0, r.layers, { assets, problems }), problems);
|
|
2054
2054
|
const wanted = typeof r.activeLayerId === "string" ? r.activeLayerId : null;
|
|
2055
2055
|
const activeLayerId = wanted && _chunkHB4ICNNAcjs.findLayer.call(void 0, layers, wanted) ? wanted : _nullishCoalesce(_optionalChain([_chunkHB4ICNNAcjs.flattenLayers.call(void 0, layers), 'access', _104 => _104.filter, 'call', _105 => _105((l) => l.type === "pixel"), 'access', _106 => _106.pop, 'call', _107 => _107(), 'optionalAccess', _108 => _108.id]), () => ( null));
|
|
2056
2056
|
const wetEvents = Array.isArray(r.wetEvents) ? r.wetEvents.filter((e) => e && typeof e === "object" && Number.isInteger(e.clock) && typeof e.kind === "string") : [];
|
|
@@ -2066,7 +2066,7 @@ async function deserializePaintDocumentAsync(raw, store) {
|
|
|
2066
2066
|
if (!raw || typeof raw !== "object") throw new Error("Not a paint document: expected a JSON object.");
|
|
2067
2067
|
const r = raw;
|
|
2068
2068
|
const problems = [];
|
|
2069
|
-
const assets = await
|
|
2069
|
+
const assets = await _chunkXTWXBQD4cjs.resolveExternalAssets.call(void 0, _nullishCoalesce(r.assets, () => ( {})), store, problems);
|
|
2070
2070
|
const loaded = deserializePaintDocument({ ...r, assets });
|
|
2071
2071
|
return { ...loaded, problems: [...problems, ...loaded.problems] };
|
|
2072
2072
|
}
|
|
@@ -2149,7 +2149,7 @@ function pointerToPenPoint(e, x, y, view) {
|
|
|
2149
2149
|
const p = { x, y, pressure: samplePressure(e) };
|
|
2150
2150
|
if (typeof e.timeStamp === "number" && Number.isFinite(e.timeStamp)) p.t = e.timeStamp;
|
|
2151
2151
|
if (e.pointerType !== "pen") return p;
|
|
2152
|
-
const o =
|
|
2152
|
+
const o = _chunkQ2UYUWAZcjs.penOrientation.call(void 0, {
|
|
2153
2153
|
x,
|
|
2154
2154
|
y,
|
|
2155
2155
|
altitude: typeof e.altitudeAngle === "number" ? e.altitudeAngle : void 0,
|
|
@@ -2229,7 +2229,7 @@ function wetPaperInput(paper) {
|
|
|
2229
2229
|
absorption: paper.absorption,
|
|
2230
2230
|
permeability: paper.permeability,
|
|
2231
2231
|
roughness: flat ? 0 : paper.roughness,
|
|
2232
|
-
color:
|
|
2232
|
+
color: _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, paper.color),
|
|
2233
2233
|
heightAt: flat ? () => 0.5 : (x, y) => grain.at(x, y)
|
|
2234
2234
|
};
|
|
2235
2235
|
}
|
|
@@ -2237,8 +2237,8 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2237
2237
|
constructor(init) {;_class6.prototype.__init40.call(this);_class6.prototype.__init41.call(this);_class6.prototype.__init42.call(this);_class6.prototype.__init43.call(this);_class6.prototype.__init44.call(this);_class6.prototype.__init45.call(this);_class6.prototype.__init46.call(this);_class6.prototype.__init47.call(this);_class6.prototype.__init48.call(this);_class6.prototype.__init49.call(this);_class6.prototype.__init50.call(this);_class6.prototype.__init51.call(this);_class6.prototype.__init52.call(this);
|
|
2238
2238
|
this.init = init;
|
|
2239
2239
|
const brush = init.brush;
|
|
2240
|
-
this.smoother = new (0,
|
|
2241
|
-
const copies = init.copies.length ? init.copies : [
|
|
2240
|
+
this.smoother = new (0, _chunkQ2UYUWAZcjs.PenSmoother)(brush.tip.smoothing, brush.pressureSmoothing);
|
|
2241
|
+
const copies = init.copies.length ? init.copies : [_chunkQ2UYUWAZcjs.IDENTITY_COPY];
|
|
2242
2242
|
const wet = brush.wet;
|
|
2243
2243
|
const spacing = Math.max(0.02, brush.tip.spacing);
|
|
2244
2244
|
const perDab = Math.min(1, spacing * 1.2);
|
|
@@ -2252,7 +2252,7 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2252
2252
|
this.lightBase = wet.tool === "paint" ? STROKE_LIGHT * brush.light.amount * (1 - 0.6 * thin) * perDab : 0;
|
|
2253
2253
|
const rates = _chunkPQ3H2AANcjs.exchangeRates.call(void 0, brush.behavior.pickup, brush.behavior.mix, wet.load, brush.behavior.mixing);
|
|
2254
2254
|
this.states = copies.map((c, i) => ({
|
|
2255
|
-
walker: new (0,
|
|
2255
|
+
walker: new (0, _chunkQ2UYUWAZcjs.PenDabWalker)(brush, init.seed + i * 7919 | 0, c.linear),
|
|
2256
2256
|
exchange: wet.tool === "paint" ? new (0, _chunkPQ3H2AANcjs.PaintExchange)(rates, init.load) : null,
|
|
2257
2257
|
last: null
|
|
2258
2258
|
}));
|
|
@@ -2382,7 +2382,7 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2382
2382
|
let flow = 1;
|
|
2383
2383
|
const effect = this.init.effect;
|
|
2384
2384
|
if (effect) {
|
|
2385
|
-
|
|
2385
|
+
_chunkQ2UYUWAZcjs.sampleEffectAt.call(void 0, effect, d.x, d.y, this.centre, d);
|
|
2386
2386
|
ex.setReservoirColor(this.centre[0], this.centre[1], this.centre[2]);
|
|
2387
2387
|
} else if (this.sampler) {
|
|
2388
2388
|
const g = this.sampler.dab(d, this.sample);
|
|
@@ -2394,7 +2394,7 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2394
2394
|
if (total > 0 && flow > 0 && effect) {
|
|
2395
2395
|
const ec = cov.slice();
|
|
2396
2396
|
const field = new Float32Array(ec.length * 3);
|
|
2397
|
-
|
|
2397
|
+
_chunkQ2UYUWAZcjs.effectDabField.call(void 0, effect, rect, ec, this.centre, this.paint, field, COVERAGE_STEPS, d);
|
|
2398
2398
|
this.medium.deposit(rect, ec, Math.min(1, total) * k, this.paint, null, field);
|
|
2399
2399
|
} else if (total > 0 && flow > 0) this.medium.deposit(rect, cov, Math.min(1, total) * k * flow, this.paint, null);
|
|
2400
2400
|
else world.paint(laneId, rect, cov, this.medium.options.water * k, null);
|
|
@@ -2897,7 +2897,7 @@ var PaintWetLayers = (_class7 = class {
|
|
|
2897
2897
|
}
|
|
2898
2898
|
}, _class7);
|
|
2899
2899
|
function wetPigmentOf(hex, body) {
|
|
2900
|
-
const [r, g, b] =
|
|
2900
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, hex);
|
|
2901
2901
|
return Array.from(_chunkVMROIWLLcjs.pigmentOf.call(void 0, [r / 255, g / 255, b / 255], body));
|
|
2902
2902
|
}
|
|
2903
2903
|
|
|
@@ -2911,7 +2911,7 @@ function paintWetTestStroke(brush, paper, color, width, height) {
|
|
|
2911
2911
|
const w = thumbWorld;
|
|
2912
2912
|
if (w.hasLane("thumb")) w.removeLane("thumb");
|
|
2913
2913
|
w.ensureLane("thumb");
|
|
2914
|
-
const [r, g, b] =
|
|
2914
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, color);
|
|
2915
2915
|
if (brush.wet.tool !== "paint" && brush.wet.tool !== "water") {
|
|
2916
2916
|
const half = Math.ceil(height / 2);
|
|
2917
2917
|
w.paint("thumb", { x: 0, y: 0, width, height: half }, null, 0.4, Array.from(_chunkVMROIWLLcjs.pigmentOf.call(void 0, [r / 255, g / 255, b / 255], 0), (v) => v * 0.05));
|
|
@@ -2925,9 +2925,9 @@ function paintWetTestStroke(brush, paper, color, width, height) {
|
|
|
2925
2925
|
load: brushLoadForStroke(brush, _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD, [r / 255, g / 255, b / 255]),
|
|
2926
2926
|
grain: paperGrain(paper),
|
|
2927
2927
|
paperDepth: paper.depth,
|
|
2928
|
-
paperColor:
|
|
2928
|
+
paperColor: _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, paper.color),
|
|
2929
2929
|
seed: 7,
|
|
2930
|
-
copies: [
|
|
2930
|
+
copies: [_chunkQ2UYUWAZcjs.IDENTITY_COPY]
|
|
2931
2931
|
});
|
|
2932
2932
|
driver.push(thumbnailStroke(width, height));
|
|
2933
2933
|
driver.finish();
|
|
@@ -2947,7 +2947,7 @@ function thumbnailStroke(width, height) {
|
|
|
2947
2947
|
return pts;
|
|
2948
2948
|
}
|
|
2949
2949
|
function paintTestStroke(surface, brush, paper, color, width, height) {
|
|
2950
|
-
const [r, g, b] =
|
|
2950
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, color);
|
|
2951
2951
|
let result = surface;
|
|
2952
2952
|
let thick = null;
|
|
2953
2953
|
let light = null;
|
|
@@ -2968,13 +2968,13 @@ function paintTestStroke(surface, brush, paper, color, width, height) {
|
|
|
2968
2968
|
lockTransparency: false,
|
|
2969
2969
|
brush,
|
|
2970
2970
|
color: [r, g, b, 255],
|
|
2971
|
-
background: [...
|
|
2971
|
+
background: [..._chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, paper.color), 255],
|
|
2972
2972
|
grain: paperGrain(paper),
|
|
2973
2973
|
paperDepth: paper.depth,
|
|
2974
2974
|
seed: 7,
|
|
2975
2975
|
colorHex: color,
|
|
2976
2976
|
affineCopies: [],
|
|
2977
|
-
copies: [
|
|
2977
|
+
copies: [_chunkQ2UYUWAZcjs.IDENTITY_COPY],
|
|
2978
2978
|
mixerLoad: brushLoadForStroke(brush, _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD, [r / 255, g / 255, b / 255]),
|
|
2979
2979
|
thick: brush.engine === "impasto" ? { channels: emptyThickChannels() } : void 0,
|
|
2980
2980
|
sticker: brush.engine === "sticker" ? { nextId: 1 } : void 0,
|
|
@@ -2990,8 +2990,8 @@ function renderBrushThumbnail(brush, options) {
|
|
|
2990
2990
|
const width = Math.max(16, Math.min(512, Math.round(_nullishCoalesce(options.width, () => ( 160)))));
|
|
2991
2991
|
const height = Math.max(16, Math.min(512, Math.round(_nullishCoalesce(options.height, () => ( 48)))));
|
|
2992
2992
|
const maxSize = height * 0.42;
|
|
2993
|
-
const b = brush.tip.size > maxSize ?
|
|
2994
|
-
const rgba = [...
|
|
2993
|
+
const b = brush.tip.size > maxSize ? _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...brush.tip, size: maxSize } }, brush) : brush;
|
|
2994
|
+
const rgba = [..._chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, options.color), 255];
|
|
2995
2995
|
let surface = _chunk474IQG74cjs.emptySurface.call(void 0, 4);
|
|
2996
2996
|
if (b.engine === "eraser") {
|
|
2997
2997
|
surface = _chunk474IQG74cjs.fillRect.call(void 0, surface, { x: 0, y: 0, width, height }, rgba);
|
|
@@ -3273,7 +3273,7 @@ var DEFAULT_SWATCHES = [
|
|
|
3273
3273
|
// src/paint-editor/mixing-pad.ts
|
|
3274
3274
|
var MIXING_PAD_WIDTH = 360;
|
|
3275
3275
|
var MIXING_PAD_HEIGHT = 220;
|
|
3276
|
-
var PAD_PAINT =
|
|
3276
|
+
var PAD_PAINT = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, {
|
|
3277
3277
|
id: "pad-paint",
|
|
3278
3278
|
name: "Pad paint",
|
|
3279
3279
|
category: "mixer",
|
|
@@ -3281,7 +3281,7 @@ var PAD_PAINT = _chunk4T47Z4J3cjs.normalizePaintBrush.call(void 0, {
|
|
|
3281
3281
|
tip: { size: 28, hardness: 0.75, spacing: 0.1, opacity: 1, flow: 0.7, pressureSize: false, pressureOpacity: false },
|
|
3282
3282
|
mixer: { wet: 0.45, load: 1, mix: 0.4, loadEachStroke: true, cleanEachStroke: true, mixing: "pigment" }
|
|
3283
3283
|
});
|
|
3284
|
-
var PAD_KNIFE =
|
|
3284
|
+
var PAD_KNIFE = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, {
|
|
3285
3285
|
id: "pad-knife",
|
|
3286
3286
|
name: "Palette knife",
|
|
3287
3287
|
category: "smudge",
|
|
@@ -3291,7 +3291,7 @@ var PAD_KNIFE = _chunk4T47Z4J3cjs.normalizePaintBrush.call(void 0, {
|
|
|
3291
3291
|
// A knife drags streaks of paint and folds them into each other, mixing them as pigment.
|
|
3292
3292
|
smudge: { strength: 0.6, length: 0.8, mixing: "pigment" }
|
|
3293
3293
|
});
|
|
3294
|
-
var PAD_BLOB =
|
|
3294
|
+
var PAD_BLOB = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, {
|
|
3295
3295
|
id: "pad-blob",
|
|
3296
3296
|
name: "Pad blob",
|
|
3297
3297
|
category: "custom",
|
|
@@ -3313,12 +3313,12 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3313
3313
|
}
|
|
3314
3314
|
}
|
|
3315
3315
|
let brush = options.tool === "knife" ? PAD_KNIFE : PAD_PAINT;
|
|
3316
|
-
if (options.size !== void 0) brush =
|
|
3316
|
+
if (options.size !== void 0) brush = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...brush.tip, size: options.size } }, brush);
|
|
3317
3317
|
return this.run(brush, points, options.color);
|
|
3318
3318
|
}
|
|
3319
3319
|
/** Paints `points` with `brush` in `color` on the pad. */
|
|
3320
3320
|
run(brush, points, color) {
|
|
3321
|
-
const [r, g, b] =
|
|
3321
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, color);
|
|
3322
3322
|
let result = null;
|
|
3323
3323
|
const session = new PaintStrokeSession(
|
|
3324
3324
|
{ update: () => {
|
|
@@ -3336,7 +3336,7 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3336
3336
|
seed: 1,
|
|
3337
3337
|
colorHex: color,
|
|
3338
3338
|
affineCopies: [],
|
|
3339
|
-
copies: [
|
|
3339
|
+
copies: [_chunkQ2UYUWAZcjs.IDENTITY_COPY],
|
|
3340
3340
|
mixerLoad: brushLoadForStroke(brush, _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD, [r / 255, g / 255, b / 255])
|
|
3341
3341
|
}
|
|
3342
3342
|
);
|
|
@@ -3412,10 +3412,10 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3412
3412
|
const off = used.length === 1 ? 0 : 0.45 * R;
|
|
3413
3413
|
const x = Math.min(cx + R - r, Math.max(cx - R + r, cx + Math.cos(a) * off));
|
|
3414
3414
|
const y = Math.min(cy + R - r, Math.max(cy - R + r, cy + Math.sin(a) * off));
|
|
3415
|
-
const blob =
|
|
3415
|
+
const blob = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_BLOB.tip, size: Math.max(2, 2 * r) } }, PAD_BLOB);
|
|
3416
3416
|
this.run(blob, [{ x, y }], p.color.toLowerCase());
|
|
3417
3417
|
});
|
|
3418
|
-
const knife =
|
|
3418
|
+
const knife = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_KNIFE.tip, size: Math.max(12, R * 0.5) } }, PAD_KNIFE);
|
|
3419
3419
|
for (let k = 0; k < passes; k++) {
|
|
3420
3420
|
const stir = [];
|
|
3421
3421
|
const turns = 1.6;
|
|
@@ -3427,10 +3427,10 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3427
3427
|
this.run(knife, stir, "#000000");
|
|
3428
3428
|
}
|
|
3429
3429
|
const mixed = _chunkOLNIPTB3cjs.mixPigments.call(void 0,
|
|
3430
|
-
paints.map((p) =>
|
|
3430
|
+
paints.map((p) => _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, p.color).map((v) => v / 255)),
|
|
3431
3431
|
paints.map((p) => p.parts)
|
|
3432
3432
|
);
|
|
3433
|
-
const core =
|
|
3433
|
+
const core = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_BLOB.tip, size: R * 1.1, hardness: 0.55 } }, PAD_BLOB);
|
|
3434
3434
|
const hex = "#" + mixed.map((v) => Math.round(v * 255).toString(16).padStart(2, "0")).join("");
|
|
3435
3435
|
this.run(core, [{ x: cx, y: cy }], hex);
|
|
3436
3436
|
return { color: this.pick(cx, cy, 2), bounds };
|
|
@@ -3634,10 +3634,10 @@ function addTiles(a, b) {
|
|
|
3634
3634
|
}
|
|
3635
3635
|
function computeTile(paper, grain, amount, rect, layers) {
|
|
3636
3636
|
const n = rect.width * rect.height;
|
|
3637
|
-
const [p0, p1, p2] =
|
|
3637
|
+
const [p0, p1, p2] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, paper.color);
|
|
3638
3638
|
const pb = [p0, p1, p2];
|
|
3639
3639
|
const pl = [Math.max(1e-4, LIN[p0]), Math.max(1e-4, LIN[p1]), Math.max(1e-4, LIN[p2])];
|
|
3640
|
-
const [c0, c1, c2] =
|
|
3640
|
+
const [c0, c1, c2] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, _nullishCoalesce(paper.backlightColor, () => ( DEFAULT_BACKLIGHT_COLOR)));
|
|
3641
3641
|
const t0 = new Float32Array(n).fill(amount * LIN[c0]);
|
|
3642
3642
|
const t1 = new Float32Array(n).fill(amount * LIN[c1]);
|
|
3643
3643
|
const t2 = new Float32Array(n).fill(amount * LIN[c2]);
|
|
@@ -4045,7 +4045,7 @@ function parseColor(value, what = "color") {
|
|
|
4045
4045
|
return value.trim().toLowerCase();
|
|
4046
4046
|
}
|
|
4047
4047
|
function rgbaOf(hex) {
|
|
4048
|
-
const [r, g, b] =
|
|
4048
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, hex);
|
|
4049
4049
|
return [r, g, b, 255];
|
|
4050
4050
|
}
|
|
4051
4051
|
function rgbToHex(r, g, b) {
|
|
@@ -4142,9 +4142,9 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4142
4142
|
constructor(options = {}) {;_class12.prototype.__init82.call(this);_class12.prototype.__init83.call(this);_class12.prototype.__init84.call(this);_class12.prototype.__init85.call(this);_class12.prototype.__init86.call(this);_class12.prototype.__init87.call(this);_class12.prototype.__init88.call(this);_class12.prototype.__init89.call(this);_class12.prototype.__init90.call(this);_class12.prototype.__init91.call(this);_class12.prototype.__init92.call(this);_class12.prototype.__init93.call(this);_class12.prototype.__init94.call(this);_class12.prototype.__init95.call(this);_class12.prototype.__init96.call(this);_class12.prototype.__init97.call(this);_class12.prototype.__init98.call(this);_class12.prototype.__init99.call(this);_class12.prototype.__init100.call(this);_class12.prototype.__init101.call(this);_class12.prototype.__init102.call(this);_class12.prototype.__init103.call(this);_class12.prototype.__init104.call(this);_class12.prototype.__init105.call(this);_class12.prototype.__init106.call(this);_class12.prototype.__init107.call(this);_class12.prototype.__init108.call(this);_class12.prototype.__init109.call(this);_class12.prototype.__init110.call(this);_class12.prototype.__init111.call(this);_class12.prototype.__init112.call(this);_class12.prototype.__init113.call(this);_class12.prototype.__init114.call(this);_class12.prototype.__init115.call(this);_class12.prototype.__init116.call(this);_class12.prototype.__init117.call(this);_class12.prototype.__init118.call(this);_class12.prototype.__init119.call(this);_class12.prototype.__init120.call(this);_class12.prototype.__init121.call(this);_class12.prototype.__init122.call(this);_class12.prototype.__init123.call(this);_class12.prototype.__init124.call(this);_class12.prototype.__init125.call(this);_class12.prototype.__init126.call(this);_class12.prototype.__init127.call(this);_class12.prototype.__init128.call(this);_class12.prototype.__init129.call(this);_class12.prototype.__init130.call(this);_class12.prototype.__init131.call(this);_class12.prototype.__init132.call(this);_class12.prototype.__init133.call(this);_class12.prototype.__init134.call(this);_class12.prototype.__init135.call(this);_class12.prototype.__init136.call(this);
|
|
4143
4143
|
this.historyLimit = Math.max(1, _nullishCoalesce(options.historyLimit, () => ( 200)));
|
|
4144
4144
|
this.doc = createPaintDocument({ width: options.width, height: options.height, dpi: options.dpi, paper: this.resolvePaper(options.paper) });
|
|
4145
|
-
this.userBrushes = (_nullishCoalesce(options.brushes, () => ( []))).map((b) =>
|
|
4146
|
-
const start = _nullishCoalesce(this.findBrush(_nullishCoalesce(options.brushId, () => (
|
|
4147
|
-
this.brush =
|
|
4145
|
+
this.userBrushes = (_nullishCoalesce(options.brushes, () => ( []))).map((b) => _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { ...b, builtin: false }));
|
|
4146
|
+
const start = _nullishCoalesce(this.findBrush(_nullishCoalesce(options.brushId, () => ( _chunkQ2UYUWAZcjs.DEFAULT_BRUSH_ID))), () => ( this.findBrush(_chunkQ2UYUWAZcjs.DEFAULT_BRUSH_ID)));
|
|
4147
|
+
this.brush = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, start);
|
|
4148
4148
|
this.color = options.color ? parseColor(options.color) : "#1f2937";
|
|
4149
4149
|
this.hand = options.hand === "left" ? "left" : "right";
|
|
4150
4150
|
this.encodeImage = options.encodeImage;
|
|
@@ -4197,7 +4197,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4197
4197
|
this.cached = {
|
|
4198
4198
|
document: this.doc,
|
|
4199
4199
|
brush: this.brush,
|
|
4200
|
-
brushes: this.library ??= [...
|
|
4200
|
+
brushes: this.library ??= [..._chunkQ2UYUWAZcjs.BUILTIN_BRUSHES, ...this.userBrushes],
|
|
4201
4201
|
color: this.color,
|
|
4202
4202
|
secondaryColor: this.secondaryColor,
|
|
4203
4203
|
paint: _nullishCoalesce(this.gradient, () => ( { type: "color", color: this.color })),
|
|
@@ -4393,7 +4393,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4393
4393
|
// --- Canvas and paper ----------------------------------------------------------
|
|
4394
4394
|
resolvePaper(paper) {
|
|
4395
4395
|
if (typeof paper === "string") {
|
|
4396
|
-
const p =
|
|
4396
|
+
const p = _chunkQ2UYUWAZcjs.paperPreset.call(void 0, paper);
|
|
4397
4397
|
if (!p) throw new PaintEditorError(`Unknown paper "${paper}". Call list_papers for the ids.`);
|
|
4398
4398
|
return p;
|
|
4399
4399
|
}
|
|
@@ -4504,19 +4504,19 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4504
4504
|
this.requireIdle("changing the paper");
|
|
4505
4505
|
let base = this.doc.paper;
|
|
4506
4506
|
if (update.preset !== void 0 && update.preset !== this.doc.paper.preset) {
|
|
4507
|
-
const p =
|
|
4507
|
+
const p = _chunkQ2UYUWAZcjs.paperPreset.call(void 0, update.preset);
|
|
4508
4508
|
if (!p) throw new PaintEditorError(`Unknown paper "${update.preset}". Call list_papers for the ids.`);
|
|
4509
4509
|
base = p;
|
|
4510
4510
|
}
|
|
4511
4511
|
const { preset: _p, ...rest } = update;
|
|
4512
4512
|
if (rest.color !== void 0) parseColor(rest.color, "paper color");
|
|
4513
|
-
const paper =
|
|
4513
|
+
const paper = _chunkQ2UYUWAZcjs.normalizePaper.call(void 0, { ...rest, preset: base.preset, offset: _nullishCoalesce(rest.offset, () => ( this.doc.paper.offset)) }, base);
|
|
4514
4514
|
const changedKeys = Object.keys(rest).filter((k) => k !== "name");
|
|
4515
4515
|
if (changedKeys.length && update.preset === void 0) paper.preset = base.preset;
|
|
4516
4516
|
if (this.wet.world) this.beginWetOp();
|
|
4517
4517
|
this.commit("Paper", { ...this.doc, paper });
|
|
4518
4518
|
this.wet.paperChanged();
|
|
4519
|
-
return
|
|
4519
|
+
return _chunkQ2UYUWAZcjs.clonePaper.call(void 0, paper);
|
|
4520
4520
|
}
|
|
4521
4521
|
// --- Layers --------------------------------------------------------------------
|
|
4522
4522
|
getLayer(id) {
|
|
@@ -5027,7 +5027,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5027
5027
|
this.checkTime(source.time);
|
|
5028
5028
|
let map;
|
|
5029
5029
|
try {
|
|
5030
|
-
map =
|
|
5030
|
+
map = _chunkQ2UYUWAZcjs.readEffectStrokeMap.call(void 0, source.map);
|
|
5031
5031
|
} catch (e) {
|
|
5032
5032
|
throw new PaintEditorError(e.message);
|
|
5033
5033
|
}
|
|
@@ -5058,9 +5058,9 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5058
5058
|
}
|
|
5059
5059
|
/** The rendered pixels of an effect paint at the current canvas size, or `null` when it has not been rendered. */
|
|
5060
5060
|
effectPaintImage(p) {
|
|
5061
|
-
const key =
|
|
5061
|
+
const key = _chunkQ2UYUWAZcjs.effectPaintKey.call(void 0, p);
|
|
5062
5062
|
const img = this.effectPaintPixels.get(key);
|
|
5063
|
-
const size =
|
|
5063
|
+
const size = _chunkQ2UYUWAZcjs.effectPaintSize.call(void 0, p, this.doc.canvas);
|
|
5064
5064
|
if (!img || img.width !== size.width || img.height !== size.height) return null;
|
|
5065
5065
|
this.effectPaintPixels.delete(key);
|
|
5066
5066
|
this.effectPaintPixels.set(key, img);
|
|
@@ -5074,7 +5074,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5074
5074
|
const what = `the effect "${p.effect}"${p.provider ? ` from provider "${p.provider}"` : ""}`;
|
|
5075
5075
|
if (!provider) throw new PaintEditorError(`Effect paint needs ${what}, but no effects provider is registered; register it (setEffectsProvider) and try again.`);
|
|
5076
5076
|
if (p.provider && provider.id !== p.provider) throw new PaintEditorError(`Effect paint needs ${what}, but the registered provider is "${provider.id}"; register "${p.provider}" (setEffectsProvider) and try again.`);
|
|
5077
|
-
const { width, height } =
|
|
5077
|
+
const { width, height } = _chunkQ2UYUWAZcjs.effectPaintSize.call(void 0, p, this.doc.canvas);
|
|
5078
5078
|
let pixels;
|
|
5079
5079
|
try {
|
|
5080
5080
|
pixels = await this.effectsRenderer.render(provider, p.effect, { width, height }, { time: p.time, values: p.values });
|
|
@@ -5082,7 +5082,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5082
5082
|
throw new PaintEditorError(`Effect paint could not render ${what}: ${e instanceof Error ? e.message : String(e)}`);
|
|
5083
5083
|
}
|
|
5084
5084
|
const img = { width, height, data: new Uint8ClampedArray(pixels.data), ...p.map ? { map: p.map } : {} };
|
|
5085
|
-
this.effectPaintPixels.set(
|
|
5085
|
+
this.effectPaintPixels.set(_chunkQ2UYUWAZcjs.effectPaintKey.call(void 0, p), img);
|
|
5086
5086
|
while (this.effectPaintPixels.size > _PaintEditorController.EFFECT_PAINT_CACHE) this.effectPaintPixels.delete(this.effectPaintPixels.keys().next().value);
|
|
5087
5087
|
return img;
|
|
5088
5088
|
}
|
|
@@ -5093,7 +5093,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5093
5093
|
async prepareEffectPaints(paints) {
|
|
5094
5094
|
const seen = /* @__PURE__ */ new Set();
|
|
5095
5095
|
for (const p of paints) {
|
|
5096
|
-
const key =
|
|
5096
|
+
const key = _chunkQ2UYUWAZcjs.effectPaintKey.call(void 0, p);
|
|
5097
5097
|
if (seen.has(key)) continue;
|
|
5098
5098
|
seen.add(key);
|
|
5099
5099
|
await this.renderEffectPaint(p);
|
|
@@ -5131,11 +5131,11 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5131
5131
|
* its pixels are not rendered.
|
|
5132
5132
|
*/
|
|
5133
5133
|
strokeEffect(init, brush) {
|
|
5134
|
-
if (!
|
|
5134
|
+
if (!_chunkQ2UYUWAZcjs.brushTakesPaint.call(void 0, brush)) return null;
|
|
5135
5135
|
let source = null;
|
|
5136
5136
|
if (init.paint !== void 0) {
|
|
5137
|
-
if (!
|
|
5138
|
-
source =
|
|
5137
|
+
if (!_chunkQ2UYUWAZcjs.isPaintEffectPaint.call(void 0, init.paint)) return null;
|
|
5138
|
+
source = _chunkQ2UYUWAZcjs.readPaintEffectPaint.call(void 0, init.paint);
|
|
5139
5139
|
if (!source) throw new PaintEditorError("The stroke's effect paint needs an effect id and values (getEffectPaint returns one).");
|
|
5140
5140
|
} else if (init.color === void 0 && !brush.paint) {
|
|
5141
5141
|
if (this.effectPaintPending) throw new PaintEditorError(`The effect paint "${this.effectPaintPending.effect}" is still rendering; wait for set_effect_paint to finish, then paint.`);
|
|
@@ -5185,12 +5185,12 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5185
5185
|
}
|
|
5186
5186
|
// --- Brushes -------------------------------------------------------------------
|
|
5187
5187
|
findBrush(id) {
|
|
5188
|
-
return _nullishCoalesce(
|
|
5188
|
+
return _nullishCoalesce(_chunkQ2UYUWAZcjs.BUILTIN_BRUSHES.find((b) => b.id === id), () => ( this.userBrushes.find((b) => b.id === id)));
|
|
5189
5189
|
}
|
|
5190
5190
|
/** A library brush by id (`undefined` when unknown). */
|
|
5191
5191
|
getBrush(id) {
|
|
5192
5192
|
const b = this.findBrush(id);
|
|
5193
|
-
return b ?
|
|
5193
|
+
return b ? _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, b, b) : void 0;
|
|
5194
5194
|
}
|
|
5195
5195
|
requireBrush(id) {
|
|
5196
5196
|
const b = this.findBrush(id);
|
|
@@ -5205,7 +5205,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5205
5205
|
const { id, ...changes } = update;
|
|
5206
5206
|
const base = id !== void 0 ? this.requireBrush(id) : this.brush;
|
|
5207
5207
|
if (changes.paint !== void 0 && changes.paint !== null) this.readStrokePaint(changes.paint);
|
|
5208
|
-
const next =
|
|
5208
|
+
const next = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { ...changes, id: base.id }, base);
|
|
5209
5209
|
if (base.builtin && !Object.keys(changes).length) next.builtin = true;
|
|
5210
5210
|
else delete next.builtin;
|
|
5211
5211
|
this.brush = next;
|
|
@@ -5214,10 +5214,10 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5214
5214
|
}
|
|
5215
5215
|
/** Saves the active brush (or `brush`) into the user library under `id` / `name`. */
|
|
5216
5216
|
saveBrush(options) {
|
|
5217
|
-
if (!
|
|
5218
|
-
if (
|
|
5219
|
-
const source = options.brush ?
|
|
5220
|
-
const saved =
|
|
5217
|
+
if (!_chunkQ2UYUWAZcjs.BRUSH_ID.test(options.id)) throw new PaintEditorError(`Brush id "${options.id}" is invalid; use lowercase letters, digits and dashes (e.g. "my-pencil").`);
|
|
5218
|
+
if (_chunkQ2UYUWAZcjs.BUILTIN_BRUSHES.some((b) => b.id === options.id)) throw new PaintEditorError(`"${options.id}" is a built-in brush; save under another id.`);
|
|
5219
|
+
const source = options.brush ? _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, options.brush, this.brush) : this.brush;
|
|
5220
|
+
const saved = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { ...source, id: options.id, name: _nullishCoalesce(options.name, () => ( source.name)) });
|
|
5221
5221
|
delete saved.builtin;
|
|
5222
5222
|
const i = this.userBrushes.findIndex((b) => b.id === options.id);
|
|
5223
5223
|
if (i >= 0) this.userBrushes[i] = saved;
|
|
@@ -5227,7 +5227,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5227
5227
|
return saved;
|
|
5228
5228
|
}
|
|
5229
5229
|
removeBrush(id) {
|
|
5230
|
-
if (
|
|
5230
|
+
if (_chunkQ2UYUWAZcjs.BUILTIN_BRUSHES.some((b) => b.id === id)) throw new PaintEditorError(`"${id}" is a built-in brush and cannot be removed.`);
|
|
5231
5231
|
const i = this.userBrushes.findIndex((b) => b.id === id);
|
|
5232
5232
|
if (i < 0) throw new PaintEditorError(`Unknown brush "${id}". Call list_brushes for the ids.`);
|
|
5233
5233
|
this.userBrushes.splice(i, 1);
|
|
@@ -5236,12 +5236,12 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5236
5236
|
}
|
|
5237
5237
|
/** The user's saved brushes. */
|
|
5238
5238
|
getUserBrushes() {
|
|
5239
|
-
return this.userBrushes.map((b) =>
|
|
5239
|
+
return this.userBrushes.map((b) => _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, b, b));
|
|
5240
5240
|
}
|
|
5241
5241
|
/** A brush library file of the given brushes (default: the user's brushes). */
|
|
5242
5242
|
exportBrushes(ids) {
|
|
5243
5243
|
const list = ids ? ids.map((id) => this.requireBrush(id)) : this.userBrushes;
|
|
5244
|
-
return { format: "pixerate-brushes", version: 1, brushes: list.map(
|
|
5244
|
+
return { format: "pixerate-brushes", version: 1, brushes: list.map(_chunkQ2UYUWAZcjs.brushToJSON) };
|
|
5245
5245
|
}
|
|
5246
5246
|
/**
|
|
5247
5247
|
* Adds the brushes of a library file to the user library. A brush whose id is taken is skipped
|
|
@@ -5251,14 +5251,14 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5251
5251
|
const problems = [];
|
|
5252
5252
|
let list;
|
|
5253
5253
|
try {
|
|
5254
|
-
list =
|
|
5254
|
+
list = _chunkQ2UYUWAZcjs.parseBrushLibrary.call(void 0, file, problems);
|
|
5255
5255
|
} catch (e) {
|
|
5256
5256
|
throw new PaintEditorError(e.message);
|
|
5257
5257
|
}
|
|
5258
5258
|
const added = [];
|
|
5259
5259
|
const skipped = [];
|
|
5260
5260
|
for (const b of list) {
|
|
5261
|
-
if (
|
|
5261
|
+
if (_chunkQ2UYUWAZcjs.BUILTIN_BRUSHES.some((x) => x.id === b.id)) {
|
|
5262
5262
|
skipped.push(b.id);
|
|
5263
5263
|
problems.push(`"${b.id}" is a built-in brush id; rename it to import it.`);
|
|
5264
5264
|
continue;
|
|
@@ -5323,10 +5323,10 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5323
5323
|
* brush's gradient, else the editor's gradient paint. Erasers, blenders and smudges take none.
|
|
5324
5324
|
*/
|
|
5325
5325
|
strokeGradient(init, brush, color) {
|
|
5326
|
-
if (!
|
|
5326
|
+
if (!_chunkQ2UYUWAZcjs.brushTakesPaint.call(void 0, brush)) return null;
|
|
5327
5327
|
let g = null;
|
|
5328
5328
|
if (init.paint !== void 0) {
|
|
5329
|
-
if (
|
|
5329
|
+
if (_chunkQ2UYUWAZcjs.isPaintEffectPaint.call(void 0, init.paint)) return null;
|
|
5330
5330
|
const p = this.readStrokePaint(init.paint);
|
|
5331
5331
|
g = p.type === "gradient" ? p : null;
|
|
5332
5332
|
} else g = _nullishCoalesce(brush.paint, () => ( (init.color === void 0 ? this.gradient : null)));
|
|
@@ -5370,7 +5370,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5370
5370
|
// --- Mixer Brush ---------------------------------------------------------------
|
|
5371
5371
|
/** Fills the Mixer Brush reservoir with a colour (default the editor colour). */
|
|
5372
5372
|
loadMixerBrush(color) {
|
|
5373
|
-
const [r, g, b] =
|
|
5373
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, color === void 0 ? this.color : parseColor(color));
|
|
5374
5374
|
this.mixerLoad = _chunkPQ3H2AANcjs.loadMixer.call(void 0, this.mixerLoad, [r / 255, g / 255, b / 255]);
|
|
5375
5375
|
this.emit([]);
|
|
5376
5376
|
return this.mixerLoad;
|
|
@@ -5400,7 +5400,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5400
5400
|
// --- Strokes -------------------------------------------------------------------
|
|
5401
5401
|
strokeBrush(init) {
|
|
5402
5402
|
let brush = init.brushId !== void 0 ? this.requireBrush(init.brushId) : this.brush;
|
|
5403
|
-
if (init.brush) brush =
|
|
5403
|
+
if (init.brush) brush = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { ...init.brush, id: brush.id }, brush);
|
|
5404
5404
|
return brush;
|
|
5405
5405
|
}
|
|
5406
5406
|
/**
|
|
@@ -5416,7 +5416,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5416
5416
|
return symmetryCopies(this.guides.symmetry);
|
|
5417
5417
|
}
|
|
5418
5418
|
sessionFor(doc, init, host) {
|
|
5419
|
-
if (init.paint !== void 0 && !
|
|
5419
|
+
if (init.paint !== void 0 && !_chunkQ2UYUWAZcjs.isPaintEffectPaint.call(void 0, init.paint)) {
|
|
5420
5420
|
const p = this.readStrokePaint(init.paint);
|
|
5421
5421
|
if (p.type === "color") init = { ...init, color: p.color, paint: void 0 };
|
|
5422
5422
|
else init = { ...init, paint: p };
|
|
@@ -5442,9 +5442,9 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5442
5442
|
if (why) throw new PaintEditorError(`Layer "${layer.name}" is a stroke layer. ${why}`);
|
|
5443
5443
|
}
|
|
5444
5444
|
if (_optionalChain([doc, 'access', _324 => _324.liveStrokes, 'optionalAccess', _325 => _325[layer.id]]) && _optionalChain([effect, 'optionalAccess', _326 => _326.source, 'access', _327 => _327.live])) {
|
|
5445
|
-
const key =
|
|
5445
|
+
const key = _chunkQ2UYUWAZcjs.effectPaintKey.call(void 0, effect.source);
|
|
5446
5446
|
const { sources } = this.liveEffects(doc);
|
|
5447
|
-
if (!sources.some((p) =>
|
|
5447
|
+
if (!sources.some((p) => _chunkQ2UYUWAZcjs.effectPaintKey.call(void 0, p) === key) && sources.length >= MAX_LIVE_EFFECT_SOURCES) {
|
|
5448
5448
|
throw new PaintEditorError(`The painting already plays ${MAX_LIVE_EFFECT_SOURCES} live effects, the most it can; paint with one of them, or set_effect_paint with live false to bake this one.`);
|
|
5449
5449
|
}
|
|
5450
5450
|
}
|
|
@@ -5455,7 +5455,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5455
5455
|
throw new PaintEditorError(`Layer "${layer.name}" is a sticker layer (its pixels are drawn from its stickers); paint on another layer (add_layer).`);
|
|
5456
5456
|
}
|
|
5457
5457
|
let wet;
|
|
5458
|
-
if (
|
|
5458
|
+
if (_chunkQ2UYUWAZcjs.isWetBrush.call(void 0, brush)) {
|
|
5459
5459
|
this.requireWetIdle("painting");
|
|
5460
5460
|
if (layer.offset.x || layer.offset.y) {
|
|
5461
5461
|
const moved = { ...layer, surface: _chunk474IQG74cjs.translateSurface.call(void 0, layer.surface, layer.offset.x, layer.offset.y), offset: { x: 0, y: 0 } };
|
|
@@ -5470,7 +5470,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5470
5470
|
const world = this.wet.ensureLane(layer.id, brush.wet.medium);
|
|
5471
5471
|
const id = layer.id;
|
|
5472
5472
|
const wetColor = init.color === void 0 ? this.color : parseColor(init.color);
|
|
5473
|
-
const [r, g, b] =
|
|
5473
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, wetColor);
|
|
5474
5474
|
const wetGradient = this.strokeGradient(init, brush, wetColor);
|
|
5475
5475
|
const load = _nullishCoalesce(init.load, () => ( brushLoadForStroke(brush, this.mixerLoad, [r / 255, g / 255, b / 255])));
|
|
5476
5476
|
const seedW = _nullishCoalesce(init.seed, () => ( _chunkPQ3H2AANcjs.mix32.call(void 0, this.seedCounter * 2654435761 >>> 0) & 2147483647));
|
|
@@ -5483,7 +5483,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5483
5483
|
load,
|
|
5484
5484
|
grain: paperGrain(doc.paper),
|
|
5485
5485
|
paperDepth: doc.paper.depth,
|
|
5486
|
-
paperColor:
|
|
5486
|
+
paperColor: _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, doc.paper.color),
|
|
5487
5487
|
seed: seedW,
|
|
5488
5488
|
copies: [IDENTITY_AFFINE, ...copiesW].map(affineCopy),
|
|
5489
5489
|
mask: init.maskStencils ? this.stencilSelection(init.maskStencils) : init.stencils !== false ? this.stencilSelection() : null,
|
|
@@ -5548,7 +5548,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5548
5548
|
const stroke = {
|
|
5549
5549
|
id: `s${this.strokeCounter++}`,
|
|
5550
5550
|
layerId: session.layerId,
|
|
5551
|
-
brush:
|
|
5551
|
+
brush: _chunkQ2UYUWAZcjs.brushToJSON.call(void 0, init.brush),
|
|
5552
5552
|
color: init.colorHex,
|
|
5553
5553
|
points: session.points.map((p) => ({ ...p })),
|
|
5554
5554
|
seed: init.seed
|
|
@@ -5754,13 +5754,13 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5754
5754
|
let brush = v.brush;
|
|
5755
5755
|
if (options.brushId !== void 0) {
|
|
5756
5756
|
const b = this.requireBrush(options.brushId);
|
|
5757
|
-
brush =
|
|
5757
|
+
brush = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...b.tip, size: b.tip.size * (v.brush.tip.size / s.brush.tip.size) } }, b);
|
|
5758
5758
|
}
|
|
5759
5759
|
const layerId = _nullishCoalesce(options.layerId, () => ( s.layerId));
|
|
5760
5760
|
if (!_chunkHB4ICNNAcjs.findLayer.call(void 0, doc.layers, layerId)) throw new PaintEditorError(`Stroke "${s.id}" was painted on layer "${layerId}", which no longer exists; pass layerId to replay it elsewhere.`);
|
|
5761
5761
|
let load = s.load;
|
|
5762
5762
|
if (load && options.color !== void 0 && load.reservoir) {
|
|
5763
|
-
const [r, g, b] =
|
|
5763
|
+
const [r, g, b] = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, options.color);
|
|
5764
5764
|
load = { ...load, reservoir: [r / 255, g / 255, b / 255] };
|
|
5765
5765
|
}
|
|
5766
5766
|
const paint = v.paint && options.color === void 0 ? { paint: v.paint } : {};
|
|
@@ -6332,7 +6332,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6332
6332
|
const stickers = {};
|
|
6333
6333
|
for (const [id, list] of Object.entries(ext.stickers)) {
|
|
6334
6334
|
if (!_chunkHB4ICNNAcjs.findLayer.call(void 0, state.layers, id) || !Array.isArray(list)) continue;
|
|
6335
|
-
const ok = list.filter((x) => x && typeof x.id === "string" &&
|
|
6335
|
+
const ok = list.filter((x) => x && typeof x.id === "string" && _chunkQ2UYUWAZcjs.STAMP_KINDS.includes(x.stamp) && Number.isFinite(x.x) && Number.isFinite(x.y) && x.size > 0);
|
|
6336
6336
|
if (ok.length !== list.length) problems.push(`Some stickers of layer "${id}" could not be read; they were dropped.`);
|
|
6337
6337
|
stickers[id] = ok.map((x) => ({ ...x }));
|
|
6338
6338
|
}
|
|
@@ -6518,7 +6518,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6518
6518
|
return next.type === "group" ? { ...next, children: toStandard(next.children) } : next;
|
|
6519
6519
|
});
|
|
6520
6520
|
const layers = toStandard(dried);
|
|
6521
|
-
const result =
|
|
6521
|
+
const result = _chunkXTWXBQD4cjs.exportPsd.call(void 0, { width, height, layers: [paperLayer, ...layers], merged, resolution: dpi });
|
|
6522
6522
|
for (const [mode, names] of changed) {
|
|
6523
6523
|
const label = _nullishCoalesce(_optionalChain([_chunkOLNIPTB3cjs.BLEND_MODES, 'access', _410 => _410.find, 'call', _411 => _411((m) => m.id === mode), 'optionalAccess', _412 => _412.label]), () => ( mode));
|
|
6524
6524
|
const std = _nullishCoalesce(_optionalChain([_chunkOLNIPTB3cjs.BLEND_MODES, 'access', _413 => _413.find, 'call', _414 => _414((m) => m.id === _chunkOLNIPTB3cjs.standardBlendMode.call(void 0, mode)), 'optionalAccess', _415 => _415.label]), () => ( _chunkOLNIPTB3cjs.standardBlendMode.call(void 0, mode)));
|
|
@@ -6786,7 +6786,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6786
6786
|
}
|
|
6787
6787
|
redrawStickers(layer, stickers, dirty) {
|
|
6788
6788
|
const partial = dirty && !layer.offset.x && !layer.offset.y;
|
|
6789
|
-
return partial ?
|
|
6789
|
+
return partial ? _chunkQ2UYUWAZcjs.stickerSurface.call(void 0, stickers, layer.surface, dirty) : _chunkQ2UYUWAZcjs.stickerSurface.call(void 0, stickers);
|
|
6790
6790
|
}
|
|
6791
6791
|
/** The document from before the sticker preview on screen, or `null` when none is (anything else changed the document since). */
|
|
6792
6792
|
previewBase() {
|
|
@@ -6794,7 +6794,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6794
6794
|
}
|
|
6795
6795
|
readStickerUpdate(update) {
|
|
6796
6796
|
try {
|
|
6797
|
-
return
|
|
6797
|
+
return _chunkQ2UYUWAZcjs.normalizeStickerUpdate.call(void 0, update);
|
|
6798
6798
|
} catch (e) {
|
|
6799
6799
|
throw new PaintEditorError(e.message);
|
|
6800
6800
|
}
|
|
@@ -6805,7 +6805,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6805
6805
|
const id = _nullishCoalesce(layerId, () => ( this.doc.activeLayerId));
|
|
6806
6806
|
if (!id) return null;
|
|
6807
6807
|
this.requireLayer(id);
|
|
6808
|
-
const hit =
|
|
6808
|
+
const hit = _chunkQ2UYUWAZcjs.stickerAt.call(void 0, _nullishCoalesce(_optionalChain([this, 'access', _434 => _434.doc, 'access', _435 => _435.stickers, 'optionalAccess', _436 => _436[id]]), () => ( [])), x, y);
|
|
6809
6809
|
return hit ? { ...hit } : null;
|
|
6810
6810
|
}
|
|
6811
6811
|
/** Picks a sticker for the panel and canvas (`null` for none). Editor state, not an undo step. */
|
|
@@ -6826,7 +6826,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6826
6826
|
if (i < 0) throw new PaintEditorError(`Layer "${layer.name}" has no sticker "${id}". Call list_stickers for the ids.`);
|
|
6827
6827
|
const next = { ...stickers[i], ...this.readStickerUpdate(update) };
|
|
6828
6828
|
const list = stickers.map((s, j) => j === i ? next : s);
|
|
6829
|
-
const dirty = [
|
|
6829
|
+
const dirty = [_chunkQ2UYUWAZcjs.stickerRect.call(void 0, stickers[i]), _chunkQ2UYUWAZcjs.stickerRect.call(void 0, next)];
|
|
6830
6830
|
const base = _nullishCoalesce(this.previewBase(), () => ( this.doc));
|
|
6831
6831
|
const surface = this.redrawStickers(layer, list, dirty);
|
|
6832
6832
|
this.doc = { ...this.doc, layers: _chunkHB4ICNNAcjs.mapLayer.call(void 0, this.doc.layers, layer.id, () => ({ ...layer, surface, offset: { x: 0, y: 0 } })), stickers: { ..._nullishCoalesce(this.doc.stickers, () => ( {})), [layer.id]: list } };
|
|
@@ -6849,7 +6849,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6849
6849
|
if (i < 0) throw new PaintEditorError(`Layer "${layer.name}" has no sticker "${id}". Call list_stickers for the ids.`);
|
|
6850
6850
|
const u = this.readStickerUpdate(update);
|
|
6851
6851
|
const next = { ...stickers[i], ...u };
|
|
6852
|
-
this.commitStickers("Edit sticker", layer, stickers.map((s, j) => j === i ? next : s), [
|
|
6852
|
+
this.commitStickers("Edit sticker", layer, stickers.map((s, j) => j === i ? next : s), [_chunkQ2UYUWAZcjs.stickerRect.call(void 0, stickers[i]), _chunkQ2UYUWAZcjs.stickerRect.call(void 0, next)]);
|
|
6853
6853
|
return { ...next };
|
|
6854
6854
|
}
|
|
6855
6855
|
/**
|
|
@@ -6878,7 +6878,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6878
6878
|
const id = n++;
|
|
6879
6879
|
return { id: `st${id}`, size: 48, rotation: 0, color: this.color, opacity: 1, seed: _nullishCoalesce(raw.seed, () => ( _chunkPQ3H2AANcjs.mix32.call(void 0, id * 2654435761 >>> 0) & 2147483647)), ...u };
|
|
6880
6880
|
});
|
|
6881
|
-
this.commitStickers("Add stickers", layer, [..._nullishCoalesce(existing, () => ( [])), ...added], _optionalChain([existing, 'optionalAccess', _441 => _441.length]) ? added.map(
|
|
6881
|
+
this.commitStickers("Add stickers", layer, [..._nullishCoalesce(existing, () => ( [])), ...added], _optionalChain([existing, 'optionalAccess', _441 => _441.length]) ? added.map(_chunkQ2UYUWAZcjs.stickerRect) : void 0);
|
|
6882
6882
|
return added.map((s) => ({ ...s }));
|
|
6883
6883
|
}
|
|
6884
6884
|
/** Brings stickers to the top (`front`) or bottom of their layer (one undo step). */
|
|
@@ -6888,7 +6888,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6888
6888
|
const picked = stickers.filter((s) => ids.includes(s.id));
|
|
6889
6889
|
const rest = stickers.filter((s) => !ids.includes(s.id));
|
|
6890
6890
|
const next = to === "front" ? [...rest, ...picked] : [...picked, ...rest];
|
|
6891
|
-
this.commitStickers("Arrange stickers", layer, next, picked.map(
|
|
6891
|
+
this.commitStickers("Arrange stickers", layer, next, picked.map(_chunkQ2UYUWAZcjs.stickerRect));
|
|
6892
6892
|
return next.map((s) => s.id);
|
|
6893
6893
|
}
|
|
6894
6894
|
/** Deletes stickers (`ids`, or all of them on the layer) (one undo step). Returns the ids removed. */
|
|
@@ -6898,7 +6898,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6898
6898
|
for (const id of ids) if (!stickers.some((s) => s.id === id)) throw new PaintEditorError(`Layer "${layer.name}" has no sticker "${id}". Call list_stickers for the ids.`);
|
|
6899
6899
|
}
|
|
6900
6900
|
const removed = ids ? [...ids] : stickers.map((s) => s.id);
|
|
6901
|
-
this.commitStickers("Remove stickers", layer, stickers.filter((s) => !removed.includes(s.id)), ids ? stickers.filter((s) => removed.includes(s.id)).map(
|
|
6901
|
+
this.commitStickers("Remove stickers", layer, stickers.filter((s) => !removed.includes(s.id)), ids ? stickers.filter((s) => removed.includes(s.id)).map(_chunkQ2UYUWAZcjs.stickerRect) : void 0);
|
|
6902
6902
|
return removed;
|
|
6903
6903
|
}
|
|
6904
6904
|
/** Sets a layer's stickers (replays). */
|
|
@@ -6963,15 +6963,15 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6963
6963
|
let brush = was.brush;
|
|
6964
6964
|
if (update.brushId !== void 0) {
|
|
6965
6965
|
const b = this.requireBrush(update.brushId);
|
|
6966
|
-
brush =
|
|
6966
|
+
brush = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { tip: { ...b.tip, size: was.brush.tip.size } }, b);
|
|
6967
6967
|
}
|
|
6968
6968
|
if (update.brush !== void 0) {
|
|
6969
6969
|
if (!update.brush || typeof update.brush !== "object") throw new PaintEditorError("brush must be an object of brush settings (as set_brush takes).");
|
|
6970
|
-
brush =
|
|
6970
|
+
brush = _chunkQ2UYUWAZcjs.normalizePaintBrush.call(void 0, { ...update.brush, id: brush.id }, brush);
|
|
6971
6971
|
}
|
|
6972
6972
|
const why = liveStrokeRefusal(brush);
|
|
6973
6973
|
if (why) throw new PaintEditorError(why);
|
|
6974
|
-
const next = { ...was, brush:
|
|
6974
|
+
const next = { ...was, brush: _chunkQ2UYUWAZcjs.brushToJSON.call(void 0, brush) };
|
|
6975
6975
|
if (update.seed !== void 0) {
|
|
6976
6976
|
if (!Number.isInteger(update.seed) || update.seed < 0) throw new PaintEditorError(`seed ${update.seed} must be a whole number of 0 or more.`);
|
|
6977
6977
|
next.seed = update.seed;
|
|
@@ -6982,7 +6982,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6982
6982
|
}
|
|
6983
6983
|
if (update.paint !== void 0) {
|
|
6984
6984
|
if (update.paint === null) delete next.paint;
|
|
6985
|
-
else if (
|
|
6985
|
+
else if (_chunkQ2UYUWAZcjs.isPaintEffectPaint.call(void 0, update.paint)) {
|
|
6986
6986
|
if (!this.effectPaintImage(update.paint)) throw new PaintEditorError(`The effect "${update.paint.effect}" is not rendered yet; render it first (prepareEffectPaints; the update_stroke tool does this).`);
|
|
6987
6987
|
next.paint = JSON.parse(JSON.stringify(update.paint));
|
|
6988
6988
|
} else {
|
|
@@ -6993,7 +6993,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6993
6993
|
} else next.paint = JSON.parse(JSON.stringify(p));
|
|
6994
6994
|
}
|
|
6995
6995
|
}
|
|
6996
|
-
const rgb =
|
|
6996
|
+
const rgb = _chunkQ2UYUWAZcjs.hexToRgb8.call(void 0, next.color).map((v) => v / 255);
|
|
6997
6997
|
const load = brushLoadForStroke(brush, _chunkPQ3H2AANcjs.EMPTY_MIXER_LOAD, rgb);
|
|
6998
6998
|
if (load.reservoir || load.pickup) next.load = load;
|
|
6999
6999
|
else delete next.load;
|
|
@@ -7200,7 +7200,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7200
7200
|
const live = strokes.filter(isLiveEffect);
|
|
7201
7201
|
if (!isPixelLayer(layer) || !live.length) continue;
|
|
7202
7202
|
layers.push({ layer, strokes });
|
|
7203
|
-
for (const st of live) sources.set(
|
|
7203
|
+
for (const st of live) sources.set(_chunkQ2UYUWAZcjs.effectPaintKey.call(void 0, st.paint), st.paint);
|
|
7204
7204
|
}
|
|
7205
7205
|
return { layers, sources: [...sources.values()] };
|
|
7206
7206
|
}
|
|
@@ -7972,7 +7972,7 @@ function createPaintStickerTools(c) {
|
|
|
7972
7972
|
items: {
|
|
7973
7973
|
type: "object",
|
|
7974
7974
|
properties: {
|
|
7975
|
-
stamp: { type: "string", enum: [...
|
|
7975
|
+
stamp: { type: "string", enum: [..._chunkQ2UYUWAZcjs.STAMP_KINDS], description: "The stamp." },
|
|
7976
7976
|
x: { type: "number", description: "Centre x in document pixels." },
|
|
7977
7977
|
y: { type: "number", description: "Centre y in document pixels." },
|
|
7978
7978
|
size: { type: "number", minimum: 2, maximum: 2048, description: "Diameter in pixels (default 48)." },
|
|
@@ -8002,7 +8002,7 @@ function createPaintStickerTools(c) {
|
|
|
8002
8002
|
properties: {
|
|
8003
8003
|
layerId: LAYER_ID,
|
|
8004
8004
|
id: { type: "string", description: "Sticker id from list_stickers." },
|
|
8005
|
-
stamp: { type: "string", enum: [...
|
|
8005
|
+
stamp: { type: "string", enum: [..._chunkQ2UYUWAZcjs.STAMP_KINDS], description: "Another stamp." },
|
|
8006
8006
|
x: { type: "number", description: "Centre x in document pixels." },
|
|
8007
8007
|
y: { type: "number", description: "Centre y in document pixels." },
|
|
8008
8008
|
size: { type: "number", minimum: 2, maximum: 2048, description: "Diameter in pixels." },
|
|
@@ -8913,7 +8913,7 @@ var BEHAVIOR = {
|
|
|
8913
8913
|
type: "object",
|
|
8914
8914
|
description: "Multi-coloured brush (the older form of paint, the brush's own gradient: tip is across-tip, dab is distance in dabs or random). Read back from paint when it has a multi-colour equivalent. Missing fields keep their current values.",
|
|
8915
8915
|
properties: {
|
|
8916
|
-
mode: { type: "string", enum: [...
|
|
8916
|
+
mode: { type: "string", enum: [..._chunkQ2UYUWAZcjs.MULTI_COLOR_MODES], description: "off; tip: the colours lie side by side across the tip (stripes along the stroke, like a brush loaded with several paints); dab: the colour changes along the stroke." },
|
|
8917
8917
|
colors: { type: "array", maxItems: 8, items: { ...COLOR3 }, description: "2..8 colours #rrggbb; fewer than 2 uses the paint colour and the secondary colour." },
|
|
8918
8918
|
order: { type: "string", enum: ["sequence", "random"], description: "dab mode: sequence runs through the colours in order, blending between them; random picks one per run of dabs (seeded)." },
|
|
8919
8919
|
length: { type: "integer", minimum: 1, maximum: 500, description: "dab mode: dabs per colour (default 12)." },
|
|
@@ -8954,10 +8954,10 @@ var WET_BRUSH = {
|
|
|
8954
8954
|
properties: {
|
|
8955
8955
|
tool: {
|
|
8956
8956
|
type: "string",
|
|
8957
|
-
enum: [...
|
|
8957
|
+
enum: [..._chunkQ2UYUWAZcjs.WET_TOOLS],
|
|
8958
8958
|
description: "paint: water and pigment (picks up and mixes wet paint by behavior.pickup / mix); water: clear water (with rewet it lifts dried paint); dry: a hair dryer, takes water; blow: pushes the water along the stroke; blend: evens out wet pigment; smudge: drags wet paint; blot: a tissue, takes wet paint up (erase wet)."
|
|
8959
8959
|
},
|
|
8960
|
-
medium: { type: "string", enum: [...
|
|
8960
|
+
medium: { type: "string", enum: [..._chunkQ2UYUWAZcjs.WET_MEDIA], description: "The medium: watercolor, gouache or oil. A layer takes the medium's wet settings the first time it holds wet paint (oil: thick, barely flows, stays wet long and blends into the wet paint it meets)." },
|
|
8961
8961
|
load: { type: "number", minimum: 0, maximum: 1, description: "Paint loading: 1 never runs out; lower, the brush runs dry along a long stroke (each stroke reloads)." },
|
|
8962
8962
|
thinner: { type: "number", minimum: 0, maximum: 1, description: "Thinner (water or solvent): more transparent, runnier paint." },
|
|
8963
8963
|
water: { type: "number", minimum: 0, maximum: 1, description: "Wetness: water laid per stroke, 0.2 a damp brush .. 1 a dripping one." },
|
|
@@ -8974,7 +8974,7 @@ var IMPASTO_BRUSH = {
|
|
|
8974
8974
|
properties: {
|
|
8975
8975
|
tool: {
|
|
8976
8976
|
type: "string",
|
|
8977
|
-
enum: [...
|
|
8977
|
+
enum: [..._chunkQ2UYUWAZcjs.IMPASTO_TOOLS],
|
|
8978
8978
|
description: "brush: thick paint with bristle ridges along the stroke; tube: blobs squeezed from the tube; knife: a palette knife that scrapes the relief flat and smears the paint; roller: a flat stippled band; gloop: a thick, glossy, rounded bead."
|
|
8979
8979
|
},
|
|
8980
8980
|
thickness: { type: "number", minimum: 0, maximum: 1, description: "How far the paint stands up." },
|
|
@@ -9001,8 +9001,8 @@ var PARTICLE_BRUSH = {
|
|
|
9001
9001
|
type: "object",
|
|
9002
9002
|
description: "Particle engine settings (procedural brushes). Missing fields keep their current values.",
|
|
9003
9003
|
properties: {
|
|
9004
|
-
kind: { type: "string", enum: [...
|
|
9005
|
-
render: { type: "string", enum: [...
|
|
9004
|
+
kind: { type: "string", enum: [..._chunkQ2UYUWAZcjs.PARTICLE_KINDS], description: "string: strands of masses on springs dragged behind the pen (hair, fur, wet string); spring: particles on springs to the pen, overshooting and wobbling; orbit: particles circling the pen (curls); flow: particles thrown off the pen into a swirling flow until they fade." },
|
|
9005
|
+
render: { type: "string", enum: [..._chunkQ2UYUWAZcjs.PARTICLE_RENDERS], description: "dot: a mark at each step; line: each particle draws a continuous line; sequence: beads spaced along each path." },
|
|
9006
9006
|
count: { type: "integer", minimum: 1, maximum: 64, description: "Particles (flow: how many are thrown per tip of travel)." },
|
|
9007
9007
|
size: { type: "number", minimum: 0, maximum: 1, description: "Mark size as a fraction of the tip size." },
|
|
9008
9008
|
spread: { type: "number", minimum: 0, maximum: 1, description: "How far apart the particles start, as a fraction of the tip size." },
|
|
@@ -9032,7 +9032,7 @@ var STICKER_BRUSH = {
|
|
|
9032
9032
|
type: "object",
|
|
9033
9033
|
description: "Sticker engine settings: stamps sprayed along the stroke as editable stickers. Missing fields keep their current values.",
|
|
9034
9034
|
properties: {
|
|
9035
|
-
stamps: { type: "array", minItems: 1, maxItems: 9, items: { type: "string", enum: [...
|
|
9035
|
+
stamps: { type: "array", minItems: 1, maxItems: 9, items: { type: "string", enum: [..._chunkQ2UYUWAZcjs.STAMP_KINDS], description: "A stamp." }, description: "The stamps to spray (one picked at random per sticker)." },
|
|
9036
9036
|
density: { type: "number", minimum: 0, maximum: 1, description: "How closely stickers follow each other: about density \xD7 4 stickers per tip diameter of travel (0.25 \u2248 one per diameter, 1 \u2248 four). Default 0.4." },
|
|
9037
9037
|
sizeJitter: { type: "number", minimum: 0, maximum: 1, description: "Random size change." },
|
|
9038
9038
|
rotationJitter: { type: "number", minimum: 0, maximum: 1, description: "Random turn as a fraction of \xB1180\xB0." },
|
|
@@ -9043,16 +9043,16 @@ var STICKER_BRUSH = {
|
|
|
9043
9043
|
};
|
|
9044
9044
|
var BRUSH_FIELDS = {
|
|
9045
9045
|
name: { type: "string", minLength: 1, maxLength: 80, description: "Display name." },
|
|
9046
|
-
category: { type: "string", enum: [...
|
|
9046
|
+
category: { type: "string", enum: [..._chunkQ2UYUWAZcjs.PAINT_BRUSH_CATEGORIES], description: "Library category." },
|
|
9047
9047
|
engine: {
|
|
9048
9048
|
type: "string",
|
|
9049
|
-
enum: [...
|
|
9049
|
+
enum: [..._chunkQ2UYUWAZcjs.PAINT_BRUSH_ENGINES],
|
|
9050
9050
|
description: "dab: paints dabs (with behavior.pickup or gradient paint it paints dab by dab, lifting and mixing paint); eraser: removes paint; mixer: the Mixer Brush (a reservoir plus picked-up paint); blender: mixes the colours under and near the tip; smudge: drags paint along the stroke; wet: watercolour, gouache, oil and the wet tools on a simulated wet layer (see wet); impasto: thick paint with relief (see impasto); particle: procedural particle brushes (see particle); bristle: a tuft of bristles that bend and splay (see bristle); sticker: sprays editable sticker stamps (see sticker)."
|
|
9051
9051
|
},
|
|
9052
9052
|
tip: TIP,
|
|
9053
9053
|
grain: { type: "number", minimum: 0, maximum: 1, description: "Paper grain response: 0 ignores the grain, 1 catches only its peaks at light pressure (pencil, pastel, charcoal). Multiplied by the paper depth." },
|
|
9054
9054
|
pressureSmoothing: { type: "number", minimum: 0, maximum: 0.95, description: "Pressure smoothing, separate from the tip position smoothing." },
|
|
9055
|
-
rotation: { type: "string", enum: [...
|
|
9055
|
+
rotation: { type: "string", enum: [..._chunkQ2UYUWAZcjs.BRUSH_ROTATIONS], description: "What turns the tip: fixed (tip.angle), stroke (follows the direction of travel) or barrel (the pen barrel rotation, twist)." },
|
|
9056
9056
|
dynamics: DYNAMICS,
|
|
9057
9057
|
mixer: MIXER,
|
|
9058
9058
|
loadsColor: { type: "boolean", description: "Mixer engine: load the colour each stroke (false for a mixer that only moves paint)." },
|
|
@@ -9104,7 +9104,7 @@ function brushSummary(b) {
|
|
|
9104
9104
|
size: b.tip.size,
|
|
9105
9105
|
grain: b.grain,
|
|
9106
9106
|
rotation: b.rotation,
|
|
9107
|
-
wetCapable:
|
|
9107
|
+
wetCapable: _chunkQ2UYUWAZcjs.isWetCapable.call(void 0, b),
|
|
9108
9108
|
pickup: b.behavior.pickup,
|
|
9109
9109
|
dirty: b.behavior.dirty,
|
|
9110
9110
|
multicolor: b.behavior.multicolor.mode,
|
|
@@ -9213,8 +9213,8 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9213
9213
|
inputSchema: EMPTY3,
|
|
9214
9214
|
annotations: { title: "List papers", ...READ6 },
|
|
9215
9215
|
handler: () => ({
|
|
9216
|
-
papers:
|
|
9217
|
-
families: [...
|
|
9216
|
+
papers: _chunkQ2UYUWAZcjs.PAPER_LIBRARY.map((p) => ({ id: p.preset, name: p.name, family: p.family, pattern: p.pattern, color: p.color, depth: p.depth, absorption: p.absorption, permeability: p.permeability, roughness: p.roughness })),
|
|
9217
|
+
families: [..._chunkQ2UYUWAZcjs.PAPER_FAMILIES],
|
|
9218
9218
|
patterns: [..._chunkPQ3H2AANcjs.GRAIN_PATTERNS]
|
|
9219
9219
|
})
|
|
9220
9220
|
});
|
|
@@ -9431,7 +9431,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9431
9431
|
add({
|
|
9432
9432
|
name: "list_brushes",
|
|
9433
9433
|
title: "List brushes",
|
|
9434
|
-
description: "Lists the brush library: built-in dry media (pencils, pastels, charcoal, airbrush, marker, ink, erasers), paint brushes (dirty round, multi-colour flat, palette dabber), blending tools (blender, smudge, pigment smudge, Mixer Brush), light paint (category light: glow gel, neon marker, light airbrush, spark trail, glow wash; light is the amount they lay) and saved user brushes, with id, name, category, engine, size, grain response, rotation mode, whether it can pick up paint (wetCapable), its pick-up ratio, dirty and multi-colour mode, plus the active brush id.",
|
|
9434
|
+
description: "Lists the brush library: built-in dry media (pencils, pastels, charcoal, airbrush, marker, ink, erasers), paint brushes (dirty round, multi-colour flat, palette dabber), blending tools (blender, smudge, pigment smudge, Mixer Brush), light paint (category light: glow gel, neon marker, light airbrush, spark trail, glow wash, highlighter; light is the amount they lay) and saved user brushes, with id, name, category, engine, size, grain response, rotation mode, whether it can pick up paint (wetCapable), its pick-up ratio, dirty and multi-colour mode, plus the active brush id.",
|
|
9435
9435
|
inputSchema: EMPTY3,
|
|
9436
9436
|
annotations: { title: "List brushes", ...READ6 },
|
|
9437
9437
|
handler: () => {
|
|
@@ -9447,10 +9447,10 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9447
9447
|
annotations: { title: "Get a brush", ...READ6 },
|
|
9448
9448
|
handler: ({ id }) => {
|
|
9449
9449
|
const st = c.getState();
|
|
9450
|
-
if (id === void 0) return { ...
|
|
9450
|
+
if (id === void 0) return { ..._chunkQ2UYUWAZcjs.brushToJSON.call(void 0, st.brush), strokePaint: _nullishCoalesce(st.brush.paint, () => ( st.paint)) };
|
|
9451
9451
|
const b = c.getBrush(id);
|
|
9452
9452
|
if (!b) throw new Error(`Unknown brush "${id}". Call list_brushes for the ids.`);
|
|
9453
|
-
return { ...
|
|
9453
|
+
return { ..._chunkQ2UYUWAZcjs.brushToJSON.call(void 0, b), builtin: Boolean(b.builtin), strokePaint: _nullishCoalesce(b.paint, () => ( st.paint)) };
|
|
9454
9454
|
}
|
|
9455
9455
|
});
|
|
9456
9456
|
add({
|
|
@@ -9459,7 +9459,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9459
9459
|
description: "Chooses the active brush (id) and / or changes its settings; strokes without a brush use it. Editor state, not an undo step. Changes stay on the active brush until save_brush stores them. Returns the active brush.",
|
|
9460
9460
|
inputSchema: { type: "object", properties: { id: { type: "string", description: "Brush id from list_brushes to start from." }, ...BRUSH_FIELDS }, additionalProperties: false },
|
|
9461
9461
|
annotations: { title: "Set the brush", ...SET4 },
|
|
9462
|
-
handler: (a) =>
|
|
9462
|
+
handler: (a) => _chunkQ2UYUWAZcjs.brushToJSON.call(void 0, c.setBrush(a))
|
|
9463
9463
|
});
|
|
9464
9464
|
add({
|
|
9465
9465
|
name: "save_brush",
|
|
@@ -9475,7 +9475,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9475
9475
|
additionalProperties: false
|
|
9476
9476
|
},
|
|
9477
9477
|
annotations: { title: "Save a brush", ...SET4 },
|
|
9478
|
-
handler: ({ id, name }) =>
|
|
9478
|
+
handler: ({ id, name }) => _chunkQ2UYUWAZcjs.brushToJSON.call(void 0, c.saveBrush({ id, name }))
|
|
9479
9479
|
});
|
|
9480
9480
|
add({
|
|
9481
9481
|
name: "remove_brush",
|
|
@@ -11256,4 +11256,4 @@ function createPaintEditorDocument(controller, options = {}) {
|
|
|
11256
11256
|
|
|
11257
11257
|
|
|
11258
11258
|
|
|
11259
|
-
exports.BACKLIGHT_SPILL = BACKLIGHT_SPILL; exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunkOLNIPTB3cjs.BLEND_MODES; exports.BRUSH_ID = _chunk4T47Z4J3cjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunk4T47Z4J3cjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunk4T47Z4J3cjs.BUILTIN_BRUSHES; exports.BristleStroke = _chunk4T47Z4J3cjs.BristleStroke; exports.DEFAULT_BACKLIGHT_COLOR = DEFAULT_BACKLIGHT_COLOR; exports.DEFAULT_BEHAVIOR = _chunk4T47Z4J3cjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunk4T47Z4J3cjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunk4T47Z4J3cjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunk4T47Z4J3cjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkVMROIWLLcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunk4T47Z4J3cjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHT = _chunk4T47Z4J3cjs.DEFAULT_LIGHT; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunk4T47Z4J3cjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = _chunk4T47Z4J3cjs.DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunk4T47Z4J3cjs.DEFAULT_PARTICLE; exports.DEFAULT_STICKER = _chunk4T47Z4J3cjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunk4T47Z4J3cjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkVMROIWLLcjs.DEFAULT_WET_PARAMS; exports.DryStroke = _chunk4T47Z4J3cjs.DryStroke; exports.EFFECT_MAP_REPEATS = _chunk4T47Z4J3cjs.EFFECT_MAP_REPEATS; exports.EFFECT_STRIP_HEIGHT = _chunk4T47Z4J3cjs.EFFECT_STRIP_HEIGHT; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkPQ3H2AANcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPQ3H2AANcjs.GRAIN_TILE; exports.HARMONY_KINDS = _chunk7PT4RJL5cjs.HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = _chunk4T47Z4J3cjs.IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunk4T47Z4J3cjs.IMPASTO_TOOLS; exports.IMPASTO_TOOL_LABELS = IMPASTO_TOOL_LABELS; exports.LIGHT_SLIDERS = LIGHT_SLIDERS; exports.LIVE_STROKE_ENGINES = LIVE_STROKE_ENGINES; exports.LitCache = LitCache; exports.MAX_BRUSH_SIZE = _chunkPQ3H2AANcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; exports.MAX_LIVE_EFFECT_SOURCES = MAX_LIVE_EFFECT_SOURCES; exports.MAX_ZOOM = MAX_ZOOM; exports.MIN_CANVAS_SIDE = MIN_CANVAS_SIDE; exports.MIN_ZOOM = MIN_ZOOM; exports.MIXING_PAD_HEIGHT = MIXING_PAD_HEIGHT; exports.MIXING_PAD_WIDTH = MIXING_PAD_WIDTH; exports.MULTI_COLOR_MODES = _chunk4T47Z4J3cjs.MULTI_COLOR_MODES; exports.MixingPad = MixingPad; exports.PAD_SAMPLE_SIZES = PAD_SAMPLE_SIZES; exports.PAINTERLY_BLEND_MODES = _chunkOLNIPTB3cjs.PAINTERLY_BLEND_MODES; exports.PAINT_BRUSH_CATEGORIES = _chunk4T47Z4J3cjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunk4T47Z4J3cjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkPQ3H2AANcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkPQ3H2AANcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAINT_TARGET = PAINT_TARGET; exports.PAINT_TOOLS = PAINT_TOOLS; exports.PAPER_EFFECT_BLENDS = PAPER_EFFECT_BLENDS; exports.PAPER_EFFECT_NODE_ID = PAPER_EFFECT_NODE_ID; exports.PAPER_FAMILIES = _chunk4T47Z4J3cjs.PAPER_FAMILIES; exports.PAPER_LIBRARY = _chunk4T47Z4J3cjs.PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunk4T47Z4J3cjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunk4T47Z4J3cjs.PARTICLE_RENDERS; exports.PARTICLE_RENDER_LABELS = PARTICLE_RENDER_LABELS; exports.PaintCanvasPresenter = PaintCanvasPresenter; exports.PaintDabStroke = PaintDabStroke; exports.PaintDirector = PaintDirector; exports.PaintDocumentError = PaintDocumentError; exports.PaintEditorController = PaintEditorController; exports.PaintEditorError = PaintEditorError; exports.PaintEffectsRenderer = PaintEffectsRenderer; exports.PaintGesture = PaintGesture; exports.PaintGradientSampler = _chunkPQ3H2AANcjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkPQ3H2AANcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkPQ3H2AANcjs.PaperGrain; exports.ParticleStroke = _chunk4T47Z4J3cjs.ParticleStroke; exports.PenDabWalker = _chunk4T47Z4J3cjs.PenDabWalker; exports.PenSmoother = _chunk4T47Z4J3cjs.PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunk4T47Z4J3cjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.STROKE_SLIDERS = STROKE_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerSpray = _chunk4T47Z4J3cjs.StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunkPQ3H2AANcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkVMROIWLLcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunk4T47Z4J3cjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkVMROIWLLcjs.WET_PARAM_KEYS; exports.WET_PARAM_SCHEMA = WET_PARAM_SCHEMA; exports.WET_PARAM_SLIDERS = WET_PARAM_SLIDERS; exports.WET_SPEED_SLIDER = WET_SPEED_SLIDER; exports.WET_TILT_SLIDERS = WET_TILT_SLIDERS; exports.WET_TOOLS = _chunk4T47Z4J3cjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkPQ3H2AANcjs.addPaintGradientStop; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.backlightOf = backlightOf; exports.brushEngineControls = brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunk4T47Z4J3cjs.brushTakesPaint; exports.brushToJSON = _chunk4T47Z4J3cjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = _chunk4T47Z4J3cjs.clonePaper; exports.colorHarmony = colorHarmony2; exports.composeAffine = composeAffine; exports.contactSheet = contactSheet; exports.createPaintCompositor = createPaintCompositor; exports.createPaintDocument = createPaintDocument; exports.createPaintEditorDocument = createPaintEditorDocument; exports.createPaintEditorToolProvider = createPaintEditorToolProvider; exports.createPaintEffectsToolProvider = createPaintEffectsToolProvider; exports.createPaintLayer = createPaintLayer; exports.createPaintReplayTools = createPaintReplayTools; exports.createPaintStickerTools = createPaintStickerTools; exports.createPaintThickTools = createPaintThickTools; exports.createPaintWetTools = createPaintWetTools; exports.decodeImageBlob = decodeImageBlob; exports.defaultGuides = defaultGuides; exports.defaultImageEncoder = defaultImageEncoder; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = _chunk4T47Z4J3cjs.drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectDabField = _chunk4T47Z4J3cjs.effectDabField; exports.effectLayersToJSON = effectLayersToJSON; exports.effectPaintKey = _chunk4T47Z4J3cjs.effectPaintKey; exports.effectPaintSize = _chunk4T47Z4J3cjs.effectPaintSize; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkPQ3H2AANcjs.grainCatch; exports.grainHeights = _chunkPQ3H2AANcjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunkPQ3H2AANcjs.hash2; exports.hexToPaintRgb = _chunkPQ3H2AANcjs.hexToPaintRgb; exports.hexToRgb8 = _chunk4T47Z4J3cjs.hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = _chunk7PT4RJL5cjs.hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isGradientPaint = _chunkPQ3H2AANcjs.isGradientPaint; exports.isPaintEffectPaint = _chunk4T47Z4J3cjs.isPaintEffectPaint; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunk4T47Z4J3cjs.isWetBrush; exports.isWetCapable = _chunk4T47Z4J3cjs.isWetCapable; exports.lightTile = lightTile; exports.lightingKey = lightingKey; exports.liveStrokeBounds = liveStrokeBounds; exports.liveStrokeRefusal = liveStrokeRefusal; exports.mapPenPoint = mapPenPoint; exports.mix32 = _chunkPQ3H2AANcjs.mix32; exports.mixPixels = mixPixels; exports.mixerLoadForStroke = mixerLoadForStroke; exports.mixerTip = _chunk4T47Z4J3cjs.mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = multiColorSliders; exports.multiColorToPaint = _chunk4T47Z4J3cjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunk4T47Z4J3cjs.normalizeBehavior; exports.normalizeBristle = _chunk4T47Z4J3cjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunk4T47Z4J3cjs.normalizeDynamics; exports.normalizeFlow = _chunkVMROIWLLcjs.normalizeFlow; exports.normalizeHexColor = _chunkPQ3H2AANcjs.normalizeHexColor; exports.normalizeImpasto = _chunk4T47Z4J3cjs.normalizeImpasto; exports.normalizeLight = _chunk4T47Z4J3cjs.normalizeLight; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunk4T47Z4J3cjs.normalizeMultiColor; exports.normalizePaintBrush = _chunk4T47Z4J3cjs.normalizePaintBrush; exports.normalizePaper = _chunk4T47Z4J3cjs.normalizePaper; exports.normalizeParticle = _chunk4T47Z4J3cjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunk4T47Z4J3cjs.normalizeStickerSettings; exports.normalizeStickerUpdate = _chunk4T47Z4J3cjs.normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunk4T47Z4J3cjs.normalizeWetBrush; exports.normalizeWetParams = _chunkVMROIWLLcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintGradientMappingFor = _chunkPQ3H2AANcjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintSourceColor = _chunkPQ3H2AANcjs.paintSourceColor; exports.paintSourceCss = _chunkPQ3H2AANcjs.paintSourceCss; exports.paintToMultiColor = _chunk4T47Z4J3cjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = _chunk4T47Z4J3cjs.paperPreset; exports.parseBrushLibrary = _chunk4T47Z4J3cjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkPQ3H2AANcjs.parsePaintSource; exports.patchBrushValue = patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = _chunk4T47Z4J3cjs.penOrientation; exports.perspectiveDirections = perspectiveDirections; exports.perspectiveGuideLines = perspectiveGuideLines; exports.planPaintToolPlayback = planPaintToolPlayback; exports.pointerToPenPoint = pointerToPenPoint; exports.quickStencil = quickStencil; exports.rand01 = _chunkPQ3H2AANcjs.rand01; exports.randSigned = _chunkPQ3H2AANcjs.randSigned; exports.readEffectStrokeMap = _chunk4T47Z4J3cjs.readEffectStrokeMap; exports.readPaintEffectPaint = _chunk4T47Z4J3cjs.readPaintEffectPaint; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkPQ3H2AANcjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkPQ3H2AANcjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = _chunk4T47Z4J3cjs.renderPaper; exports.renderStickers = _chunk4T47Z4J3cjs.renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkPQ3H2AANcjs.resolvePaintGradient; exports.reversePaintGradient = _chunkPQ3H2AANcjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.sampleEffectAt = _chunk4T47Z4J3cjs.sampleEffectAt; exports.sampleEffectField = _chunk4T47Z4J3cjs.sampleEffectField; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkPQ3H2AANcjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunkPQ3H2AANcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkPQ3H2AANcjs.solidPaint; exports.stampCoverage = _chunk4T47Z4J3cjs.stampCoverage; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerAt = _chunk4T47Z4J3cjs.stickerAt; exports.stickerRect = _chunk4T47Z4J3cjs.stickerRect; exports.stickerSurface = _chunk4T47Z4J3cjs.stickerSurface; exports.strokeBounds = strokeBounds; exports.strokeDuration = strokeDuration; exports.strokeSchedule = strokeSchedule; exports.sweepPath = sweepPath; exports.symmetryAxisAngles = symmetryAxisAngles; exports.symmetryAxisSegments = symmetryAxisSegments; exports.symmetryCopies = symmetryCopies; exports.thickFromJSON = thickFromJSON; exports.thickToJSON = thickToJSON; exports.thumbnailStroke = thumbnailStroke; exports.tiltToOrientation = _chunk4T47Z4J3cjs.tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = _chunk4T47Z4J3cjs.toStrokePoint; exports.toggleStamp = toggleStamp; exports.translateStencil = translateStencil; exports.updatePaintGradientStop = _chunkPQ3H2AANcjs.updatePaintGradientStop; exports.usesPaintExchange = _chunk4T47Z4J3cjs.usesPaintExchange; exports.variationAffine = variationAffine; exports.varyStroke = varyStroke; exports.viewCssTransform = viewCssTransform; exports.viewMatrix = viewMatrix; exports.viewPenToDocument = viewPenToDocument; exports.wetEngineSummary = wetEngineSummary; exports.wetPaperInput = wetPaperInput; exports.wetPigmentOf = wetPigmentOf; exports.wetSupport = _chunkVMROIWLLcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = _chunk7PT4RJL5cjs.wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|
|
11259
|
+
exports.BACKLIGHT_SPILL = BACKLIGHT_SPILL; exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunkOLNIPTB3cjs.BLEND_MODES; exports.BRUSH_ID = _chunkQ2UYUWAZcjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunkQ2UYUWAZcjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunkQ2UYUWAZcjs.BUILTIN_BRUSHES; exports.BristleStroke = _chunkQ2UYUWAZcjs.BristleStroke; exports.DEFAULT_BACKLIGHT_COLOR = DEFAULT_BACKLIGHT_COLOR; exports.DEFAULT_BEHAVIOR = _chunkQ2UYUWAZcjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunkQ2UYUWAZcjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunkQ2UYUWAZcjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunkQ2UYUWAZcjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkVMROIWLLcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunkQ2UYUWAZcjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHT = _chunkQ2UYUWAZcjs.DEFAULT_LIGHT; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunkQ2UYUWAZcjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkPQ3H2AANcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = _chunkQ2UYUWAZcjs.DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunkQ2UYUWAZcjs.DEFAULT_PARTICLE; exports.DEFAULT_STICKER = _chunkQ2UYUWAZcjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunkQ2UYUWAZcjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkVMROIWLLcjs.DEFAULT_WET_PARAMS; exports.DryStroke = _chunkQ2UYUWAZcjs.DryStroke; exports.EFFECT_MAP_REPEATS = _chunkQ2UYUWAZcjs.EFFECT_MAP_REPEATS; exports.EFFECT_STRIP_HEIGHT = _chunkQ2UYUWAZcjs.EFFECT_STRIP_HEIGHT; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkPQ3H2AANcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPQ3H2AANcjs.GRAIN_TILE; exports.HARMONY_KINDS = _chunk7PT4RJL5cjs.HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = _chunkQ2UYUWAZcjs.IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunkQ2UYUWAZcjs.IMPASTO_TOOLS; exports.IMPASTO_TOOL_LABELS = IMPASTO_TOOL_LABELS; exports.LIGHT_SLIDERS = LIGHT_SLIDERS; exports.LIVE_STROKE_ENGINES = LIVE_STROKE_ENGINES; exports.LitCache = LitCache; exports.MAX_BRUSH_SIZE = _chunkPQ3H2AANcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; exports.MAX_LIVE_EFFECT_SOURCES = MAX_LIVE_EFFECT_SOURCES; exports.MAX_ZOOM = MAX_ZOOM; exports.MIN_CANVAS_SIDE = MIN_CANVAS_SIDE; exports.MIN_ZOOM = MIN_ZOOM; exports.MIXING_PAD_HEIGHT = MIXING_PAD_HEIGHT; exports.MIXING_PAD_WIDTH = MIXING_PAD_WIDTH; exports.MULTI_COLOR_MODES = _chunkQ2UYUWAZcjs.MULTI_COLOR_MODES; exports.MixingPad = MixingPad; exports.PAD_SAMPLE_SIZES = PAD_SAMPLE_SIZES; exports.PAINTERLY_BLEND_MODES = _chunkOLNIPTB3cjs.PAINTERLY_BLEND_MODES; exports.PAINT_BRUSH_CATEGORIES = _chunkQ2UYUWAZcjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunkQ2UYUWAZcjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkPQ3H2AANcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkPQ3H2AANcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkPQ3H2AANcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkPQ3H2AANcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAINT_TARGET = PAINT_TARGET; exports.PAINT_TOOLS = PAINT_TOOLS; exports.PAPER_EFFECT_BLENDS = PAPER_EFFECT_BLENDS; exports.PAPER_EFFECT_NODE_ID = PAPER_EFFECT_NODE_ID; exports.PAPER_FAMILIES = _chunkQ2UYUWAZcjs.PAPER_FAMILIES; exports.PAPER_LIBRARY = _chunkQ2UYUWAZcjs.PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunkQ2UYUWAZcjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunkQ2UYUWAZcjs.PARTICLE_RENDERS; exports.PARTICLE_RENDER_LABELS = PARTICLE_RENDER_LABELS; exports.PaintCanvasPresenter = PaintCanvasPresenter; exports.PaintDabStroke = PaintDabStroke; exports.PaintDirector = PaintDirector; exports.PaintDocumentError = PaintDocumentError; exports.PaintEditorController = PaintEditorController; exports.PaintEditorError = PaintEditorError; exports.PaintEffectsRenderer = PaintEffectsRenderer; exports.PaintGesture = PaintGesture; exports.PaintGradientSampler = _chunkPQ3H2AANcjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkPQ3H2AANcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkPQ3H2AANcjs.PaperGrain; exports.ParticleStroke = _chunkQ2UYUWAZcjs.ParticleStroke; exports.PenDabWalker = _chunkQ2UYUWAZcjs.PenDabWalker; exports.PenSmoother = _chunkQ2UYUWAZcjs.PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunkQ2UYUWAZcjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.STROKE_SLIDERS = STROKE_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerSpray = _chunkQ2UYUWAZcjs.StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunkPQ3H2AANcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkVMROIWLLcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunkQ2UYUWAZcjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkVMROIWLLcjs.WET_PARAM_KEYS; exports.WET_PARAM_SCHEMA = WET_PARAM_SCHEMA; exports.WET_PARAM_SLIDERS = WET_PARAM_SLIDERS; exports.WET_SPEED_SLIDER = WET_SPEED_SLIDER; exports.WET_TILT_SLIDERS = WET_TILT_SLIDERS; exports.WET_TOOLS = _chunkQ2UYUWAZcjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkPQ3H2AANcjs.addPaintGradientStop; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.backlightOf = backlightOf; exports.brushEngineControls = brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunkQ2UYUWAZcjs.brushTakesPaint; exports.brushToJSON = _chunkQ2UYUWAZcjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = _chunkQ2UYUWAZcjs.clonePaper; exports.colorHarmony = colorHarmony2; exports.composeAffine = composeAffine; exports.contactSheet = contactSheet; exports.createPaintCompositor = createPaintCompositor; exports.createPaintDocument = createPaintDocument; exports.createPaintEditorDocument = createPaintEditorDocument; exports.createPaintEditorToolProvider = createPaintEditorToolProvider; exports.createPaintEffectsToolProvider = createPaintEffectsToolProvider; exports.createPaintLayer = createPaintLayer; exports.createPaintReplayTools = createPaintReplayTools; exports.createPaintStickerTools = createPaintStickerTools; exports.createPaintThickTools = createPaintThickTools; exports.createPaintWetTools = createPaintWetTools; exports.decodeImageBlob = decodeImageBlob; exports.defaultGuides = defaultGuides; exports.defaultImageEncoder = defaultImageEncoder; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = _chunkQ2UYUWAZcjs.drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectDabField = _chunkQ2UYUWAZcjs.effectDabField; exports.effectLayersToJSON = effectLayersToJSON; exports.effectPaintKey = _chunkQ2UYUWAZcjs.effectPaintKey; exports.effectPaintSize = _chunkQ2UYUWAZcjs.effectPaintSize; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkPQ3H2AANcjs.grainCatch; exports.grainHeights = _chunkPQ3H2AANcjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunkPQ3H2AANcjs.hash2; exports.hexToPaintRgb = _chunkPQ3H2AANcjs.hexToPaintRgb; exports.hexToRgb8 = _chunkQ2UYUWAZcjs.hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = _chunk7PT4RJL5cjs.hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isGradientPaint = _chunkPQ3H2AANcjs.isGradientPaint; exports.isPaintEffectPaint = _chunkQ2UYUWAZcjs.isPaintEffectPaint; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunkQ2UYUWAZcjs.isWetBrush; exports.isWetCapable = _chunkQ2UYUWAZcjs.isWetCapable; exports.lightTile = lightTile; exports.lightingKey = lightingKey; exports.liveStrokeBounds = liveStrokeBounds; exports.liveStrokeRefusal = liveStrokeRefusal; exports.mapPenPoint = mapPenPoint; exports.mix32 = _chunkPQ3H2AANcjs.mix32; exports.mixPixels = mixPixels; exports.mixerLoadForStroke = mixerLoadForStroke; exports.mixerTip = _chunkQ2UYUWAZcjs.mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = multiColorSliders; exports.multiColorToPaint = _chunkQ2UYUWAZcjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunkQ2UYUWAZcjs.normalizeBehavior; exports.normalizeBristle = _chunkQ2UYUWAZcjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunkQ2UYUWAZcjs.normalizeDynamics; exports.normalizeFlow = _chunkVMROIWLLcjs.normalizeFlow; exports.normalizeHexColor = _chunkPQ3H2AANcjs.normalizeHexColor; exports.normalizeImpasto = _chunkQ2UYUWAZcjs.normalizeImpasto; exports.normalizeLight = _chunkQ2UYUWAZcjs.normalizeLight; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunkQ2UYUWAZcjs.normalizeMultiColor; exports.normalizePaintBrush = _chunkQ2UYUWAZcjs.normalizePaintBrush; exports.normalizePaper = _chunkQ2UYUWAZcjs.normalizePaper; exports.normalizeParticle = _chunkQ2UYUWAZcjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunkQ2UYUWAZcjs.normalizeStickerSettings; exports.normalizeStickerUpdate = _chunkQ2UYUWAZcjs.normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunkQ2UYUWAZcjs.normalizeWetBrush; exports.normalizeWetParams = _chunkVMROIWLLcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintGradientMappingFor = _chunkPQ3H2AANcjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintSourceColor = _chunkPQ3H2AANcjs.paintSourceColor; exports.paintSourceCss = _chunkPQ3H2AANcjs.paintSourceCss; exports.paintToMultiColor = _chunkQ2UYUWAZcjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = _chunkQ2UYUWAZcjs.paperPreset; exports.parseBrushLibrary = _chunkQ2UYUWAZcjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkPQ3H2AANcjs.parsePaintSource; exports.patchBrushValue = patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = _chunkQ2UYUWAZcjs.penOrientation; exports.perspectiveDirections = perspectiveDirections; exports.perspectiveGuideLines = perspectiveGuideLines; exports.planPaintToolPlayback = planPaintToolPlayback; exports.pointerToPenPoint = pointerToPenPoint; exports.quickStencil = quickStencil; exports.rand01 = _chunkPQ3H2AANcjs.rand01; exports.randSigned = _chunkPQ3H2AANcjs.randSigned; exports.readEffectStrokeMap = _chunkQ2UYUWAZcjs.readEffectStrokeMap; exports.readPaintEffectPaint = _chunkQ2UYUWAZcjs.readPaintEffectPaint; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkPQ3H2AANcjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkPQ3H2AANcjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = _chunkQ2UYUWAZcjs.renderPaper; exports.renderStickers = _chunkQ2UYUWAZcjs.renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkPQ3H2AANcjs.resolvePaintGradient; exports.reversePaintGradient = _chunkPQ3H2AANcjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.sampleEffectAt = _chunkQ2UYUWAZcjs.sampleEffectAt; exports.sampleEffectField = _chunkQ2UYUWAZcjs.sampleEffectField; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkPQ3H2AANcjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunkPQ3H2AANcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkPQ3H2AANcjs.solidPaint; exports.stampCoverage = _chunkQ2UYUWAZcjs.stampCoverage; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerAt = _chunkQ2UYUWAZcjs.stickerAt; exports.stickerRect = _chunkQ2UYUWAZcjs.stickerRect; exports.stickerSurface = _chunkQ2UYUWAZcjs.stickerSurface; exports.strokeBounds = strokeBounds; exports.strokeDuration = strokeDuration; exports.strokeSchedule = strokeSchedule; exports.sweepPath = sweepPath; exports.symmetryAxisAngles = symmetryAxisAngles; exports.symmetryAxisSegments = symmetryAxisSegments; exports.symmetryCopies = symmetryCopies; exports.thickFromJSON = thickFromJSON; exports.thickToJSON = thickToJSON; exports.thumbnailStroke = thumbnailStroke; exports.tiltToOrientation = _chunkQ2UYUWAZcjs.tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = _chunkQ2UYUWAZcjs.toStrokePoint; exports.toggleStamp = toggleStamp; exports.translateStencil = translateStencil; exports.updatePaintGradientStop = _chunkPQ3H2AANcjs.updatePaintGradientStop; exports.usesPaintExchange = _chunkQ2UYUWAZcjs.usesPaintExchange; exports.variationAffine = variationAffine; exports.varyStroke = varyStroke; exports.viewCssTransform = viewCssTransform; exports.viewMatrix = viewMatrix; exports.viewPenToDocument = viewPenToDocument; exports.wetEngineSummary = wetEngineSummary; exports.wetPaperInput = wetPaperInput; exports.wetPigmentOf = wetPigmentOf; exports.wetSupport = _chunkVMROIWLLcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = _chunk7PT4RJL5cjs.wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|