@pixerate/editor 0.249.0 → 0.250.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 +114 -113
- package/dist/animation-editor/index.js +7 -6
- package/dist/{brushstrokeRender-T3JZST44.js → brushstrokeRender-2FHFLSEG.js} +4 -3
- package/dist/{brushstrokeRender-GCKK7V2I.cjs → brushstrokeRender-QGRXOKDA.cjs} +7 -6
- package/dist/canvas/index.cjs +71 -15
- package/dist/canvas/index.d.cts +1 -0
- package/dist/canvas/index.d.ts +1 -0
- package/dist/canvas/index.js +58 -2
- package/dist/canvas/stickers.d.cts +35 -0
- package/dist/canvas/stickers.d.ts +35 -0
- package/dist/{chunk-RXZL4NG5.js → chunk-226QDRO3.js} +1 -1
- package/dist/{chunk-UBRJOIR5.js → chunk-3TWOCSCY.js} +1 -1
- package/dist/{chunk-ZEYMKDYS.cjs → chunk-4JNWA3VT.cjs} +53 -20
- package/dist/{chunk-L3JFOTBQ.js → chunk-5E2Q7ZHI.js} +1 -1
- package/dist/{chunk-AU6MWQKZ.js → chunk-ABL7IWFZ.js} +1 -1
- package/dist/{chunk-LJRCU3BJ.cjs → chunk-ATK6ABN3.cjs} +15 -13
- package/dist/{chunk-H4AOUUBE.cjs → chunk-GT77U7QG.cjs} +18 -16
- package/dist/{chunk-GHCSC2WP.cjs → chunk-ISIO63Q5.cjs} +21 -15
- package/dist/{chunk-OFH6Q67U.js → chunk-JA57JIT5.js} +9 -3
- package/dist/{chunk-PZP2SZIZ.js → chunk-KDLBJ6QR.js} +1 -1
- package/dist/{chunk-LP2MCSBE.cjs → chunk-M2VKFE5L.cjs} +86 -86
- package/dist/{chunk-DOIU7VJG.js → chunk-NOHJP5TK.js} +1 -1
- package/dist/{chunk-O75V4ZS3.js → chunk-NTRAVM2I.js} +1 -1
- package/dist/{chunk-J7T5QZ45.js → chunk-OTEPAQJX.js} +4 -2
- package/dist/{chunk-QOBCBGGI.cjs → chunk-QKXO6JPP.cjs} +14 -14
- package/dist/{chunk-6BIDVPED.js → chunk-SMSGP2HQ.js} +1 -1
- package/dist/chunk-SZTI6EER.js +13 -0
- package/dist/{chunk-EJLRBS5Q.js → chunk-U4NUOKBT.js} +4 -2
- package/dist/chunk-U67EN7GG.cjs +13 -0
- package/dist/{chunk-5RH3VXAK.js → chunk-WKH5ZAUA.js} +45 -12
- package/dist/{chunk-IOFVM3L3.cjs → chunk-WPUXGDH4.cjs} +2 -2
- package/dist/{chunk-2SMMZDMG.cjs → chunk-X7WRL5ZZ.cjs} +35 -35
- package/dist/{chunk-WLJZZHUZ.cjs → chunk-YM6ZBTXG.cjs} +23 -23
- package/dist/{chunk-KYX7NZ5V.cjs → chunk-YW43M56C.cjs} +1 -1
- package/dist/{chunk-K5DS2JTA.cjs → chunk-Z3BRH4JK.cjs} +6 -6
- package/dist/{chunk-XNZFVYC2.cjs → chunk-ZBCT5MEA.cjs} +7 -7
- package/dist/effects/helpers.d.cts +6 -0
- package/dist/effects/helpers.d.ts +6 -0
- package/dist/effects/index.cjs +62 -60
- package/dist/effects/index.js +5 -3
- package/dist/effects/tools.d.cts +6 -0
- package/dist/effects/tools.d.ts +6 -0
- package/dist/image-editor/effects.d.cts +1 -1
- package/dist/image-editor/effects.d.ts +1 -1
- package/dist/image-editor/index.cjs +814 -791
- package/dist/image-editor/index.d.cts +1 -0
- package/dist/image-editor/index.d.ts +1 -0
- package/dist/image-editor/index.js +35 -12
- package/dist/image-editor/stickers.d.cts +9 -0
- package/dist/image-editor/stickers.d.ts +9 -0
- package/dist/paint-editor/index.cjs +165 -164
- package/dist/paint-editor/index.js +8 -7
- package/dist/stickers/index.cjs +22 -16
- package/dist/stickers/index.d.cts +1 -1
- package/dist/stickers/index.d.ts +1 -1
- package/dist/stickers/index.js +9 -3
- package/dist/stickers/tools.d.cts +57 -1
- package/dist/stickers/tools.d.ts +57 -1
- package/dist/vector/index.cjs +1003 -969
- package/dist/vector/index.d.cts +1 -0
- package/dist/vector/index.d.ts +1 -0
- package/dist/vector/index.js +40 -6
- package/dist/vector/stickers.d.cts +11 -0
- package/dist/vector/stickers.d.ts +11 -0
- package/dist/video-editor/index.cjs +344 -344
- package/dist/video-editor/index.js +4 -4
- package/package.json +1 -1
- package/skills/pixerate-image-editor/SKILL.md +1 -1
- package/skills/pixerate-stickers/SKILL.md +13 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12; var _class13; var _class14;
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkATK6ABN3cjs = require('../chunk-ATK6ABN3.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkZBCT5MEAcjs = require('../chunk-ZBCT5MEA.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ var _chunkXNZFVYC2cjs = require('../chunk-XNZFVYC2.cjs');
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkM2VKFE5Lcjs = require('../chunk-M2VKFE5L.cjs');
|
|
16
16
|
require('../chunk-A2IS7EHE.cjs');
|
|
17
17
|
require('../chunk-SS53NNZO.cjs');
|
|
18
18
|
|
|
@@ -68,7 +68,7 @@ var _chunkJLWLX52Lcjs = require('../chunk-JLWLX52L.cjs');
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
var _chunkK7ENM55Pcjs = require('../chunk-K7ENM55P.cjs');
|
|
71
|
-
require('../chunk-
|
|
71
|
+
require('../chunk-WPUXGDH4.cjs');
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
|
|
@@ -155,7 +155,7 @@ require('../chunk-IOFVM3L3.cjs');
|
|
|
155
155
|
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
var
|
|
158
|
+
var _chunkGT77U7QGcjs = require('../chunk-GT77U7QG.cjs');
|
|
159
159
|
|
|
160
160
|
|
|
161
161
|
|
|
@@ -163,10 +163,11 @@ var _chunkH4AOUUBEcjs = require('../chunk-H4AOUUBE.cjs');
|
|
|
163
163
|
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
var
|
|
166
|
+
var _chunk4JNWA3VTcjs = require('../chunk-4JNWA3VT.cjs');
|
|
167
167
|
require('../chunk-CVFAAZXE.cjs');
|
|
168
168
|
require('../chunk-GF2RBSDM.cjs');
|
|
169
169
|
require('../chunk-NM3G4VQT.cjs');
|
|
170
|
+
require('../chunk-U67EN7GG.cjs');
|
|
170
171
|
|
|
171
172
|
|
|
172
173
|
var _chunkPY4GWSE2cjs = require('../chunk-PY4GWSE2.cjs');
|
|
@@ -175,7 +176,7 @@ var _chunkPY4GWSE2cjs = require('../chunk-PY4GWSE2.cjs');
|
|
|
175
176
|
|
|
176
177
|
|
|
177
178
|
|
|
178
|
-
var
|
|
179
|
+
var _chunkISIO63Q5cjs = require('../chunk-ISIO63Q5.cjs');
|
|
179
180
|
require('../chunk-WOFXZ3XU.cjs');
|
|
180
181
|
|
|
181
182
|
|
|
@@ -329,7 +330,7 @@ function normalizeCanvas(raw) {
|
|
|
329
330
|
function createPaintDocument(options = {}) {
|
|
330
331
|
const canvas = normalizeCanvas({ width: _nullishCoalesce(options.width, () => ( 2048)), height: _nullishCoalesce(options.height, () => ( 1536)), dpi: options.dpi });
|
|
331
332
|
const layer = createPaintLayer("Layer 1");
|
|
332
|
-
return { canvas, paper:
|
|
333
|
+
return { canvas, paper: _chunkGT77U7QGcjs.normalizePaper.call(void 0, _nullishCoalesce(options.paper, () => ( {}))), layers: [layer], activeLayerId: layer.id, strokes: [] };
|
|
333
334
|
}
|
|
334
335
|
|
|
335
336
|
// src/paint-editor/dab-stroke.ts
|
|
@@ -383,13 +384,13 @@ var PaintDabStroke = (_class = class {
|
|
|
383
384
|
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);
|
|
384
385
|
this.brush = brush;
|
|
385
386
|
this.options = options;
|
|
386
|
-
this.smoother = new (0,
|
|
387
|
-
this.copies = _optionalChain([options, 'access', _2 => _2.copies, 'optionalAccess', _3 => _3.length]) ? options.copies : [
|
|
387
|
+
this.smoother = new (0, _chunkGT77U7QGcjs.PenSmoother)(brush.tip.smoothing, brush.pressureSmoothing);
|
|
388
|
+
this.copies = _optionalChain([options, 'access', _2 => _2.copies, 'optionalAccess', _3 => _3.length]) ? options.copies : [_chunkGT77U7QGcjs.IDENTITY_COPY];
|
|
388
389
|
const exchanging = brush.engine === "mixer" || brush.engine === "dab";
|
|
389
390
|
const rates = brush.engine === "mixer" ? _chunkI7NJPHWVcjs.mixerRates.call(void 0, brush.mixer) : _chunkI7NJPHWVcjs.exchangeRates.call(void 0, brush.behavior.pickup, brush.behavior.mix, 1, brush.behavior.mixing);
|
|
390
391
|
this.mixing = brush.engine === "mixer" ? brush.mixer.mixing : brush.behavior.mixing;
|
|
391
392
|
this.states = this.copies.map((c, i) => ({
|
|
392
|
-
walker: new (0,
|
|
393
|
+
walker: new (0, _chunkGT77U7QGcjs.PenDabWalker)(brush, (_nullishCoalesce(options.seed, () => ( 0))) + i * 7919 | 0, c.linear),
|
|
393
394
|
exchange: exchanging ? new (0, _chunkI7NJPHWVcjs.PaintExchange)(rates, options.load) : null,
|
|
394
395
|
smudge: brush.engine === "smudge" ? new (0, _chunkI7NJPHWVcjs.SmudgeTip)(brush.smudge, brush.tip.size * (1 + brush.dynamics.tiltSize * 1.5)) : null
|
|
395
396
|
}));
|
|
@@ -502,7 +503,7 @@ var PaintDabStroke = (_class = class {
|
|
|
502
503
|
let flow = 1;
|
|
503
504
|
if (this.options.effect) {
|
|
504
505
|
const rgb = [0, 0, 0];
|
|
505
|
-
flow =
|
|
506
|
+
flow = _chunkGT77U7QGcjs.sampleEffectAt.call(void 0, this.options.effect, d.x, d.y, rgb, d);
|
|
506
507
|
ex.setReservoirColor(rgb[0], rgb[1], rgb[2]);
|
|
507
508
|
} else if (this.sampler && !this.gradient) {
|
|
508
509
|
const g = this.sampler.dab(d, this.sample);
|
|
@@ -733,12 +734,12 @@ var ThickStrokeDriver = (_class3 = class {
|
|
|
733
734
|
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);
|
|
734
735
|
this.init = init;
|
|
735
736
|
const b = init.brush;
|
|
736
|
-
this.smoother = new (0,
|
|
737
|
-
const copies = init.copies.length ? init.copies : [
|
|
737
|
+
this.smoother = new (0, _chunkGT77U7QGcjs.PenSmoother)(b.tip.smoothing, b.pressureSmoothing);
|
|
738
|
+
const copies = init.copies.length ? init.copies : [_chunkGT77U7QGcjs.IDENTITY_COPY];
|
|
738
739
|
this.copies = copies;
|
|
739
740
|
const rates = _chunkI7NJPHWVcjs.exchangeRates.call(void 0, b.behavior.pickup, b.behavior.mix, 1, b.behavior.mixing);
|
|
740
741
|
this.states = copies.map((c, i) => ({
|
|
741
|
-
walker: new (0,
|
|
742
|
+
walker: new (0, _chunkGT77U7QGcjs.PenDabWalker)(b, init.seed + i * 7919 | 0, c.linear),
|
|
742
743
|
exchange: new (0, _chunkI7NJPHWVcjs.PaintExchange)(rates, init.load),
|
|
743
744
|
smudge: b.impasto.tool === "knife" ? new (0, _chunkI7NJPHWVcjs.SmudgeTip)({ strength: 0.85, length: 0.6 + 0.38 * b.impasto.drag, mixing: b.behavior.mixing }, b.tip.size * 1.2) : null,
|
|
744
745
|
carried: null,
|
|
@@ -884,7 +885,7 @@ var ThickStrokeDriver = (_class3 = class {
|
|
|
884
885
|
let flow = 1;
|
|
885
886
|
const effect = this.init.effect;
|
|
886
887
|
if (effect) {
|
|
887
|
-
|
|
888
|
+
_chunkGT77U7QGcjs.sampleEffectAt.call(void 0, effect, d.x, d.y, this.centre, d);
|
|
888
889
|
ex.setReservoirColor(this.centre[0], this.centre[1], this.centre[2]);
|
|
889
890
|
} else if (this.sampler) {
|
|
890
891
|
const g = this.sampler.dab(d, this.sample);
|
|
@@ -901,7 +902,7 @@ var ThickStrokeDriver = (_class3 = class {
|
|
|
901
902
|
let field = null;
|
|
902
903
|
if (effect) {
|
|
903
904
|
field = new Float32Array(n * 3);
|
|
904
|
-
|
|
905
|
+
_chunkGT77U7QGcjs.effectDabField.call(void 0, effect, rect, cov, this.centre, this.paint, field, 0, d);
|
|
905
906
|
}
|
|
906
907
|
this.medium.deposit(rect, cov, dep, this.paint, ex.paintPigment, field);
|
|
907
908
|
}
|
|
@@ -1078,7 +1079,7 @@ function shadowToLight(shadow) {
|
|
|
1078
1079
|
return new (0, _chunk474IQG74cjs.TiledSurface)(1, tiles, 0);
|
|
1079
1080
|
}
|
|
1080
1081
|
function lightTwinBrush(brush) {
|
|
1081
|
-
return
|
|
1082
|
+
return _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0,
|
|
1082
1083
|
{
|
|
1083
1084
|
tip: { ...brush.tip, blend: "normal", pressureOpacity: brush.tip.pressureOpacity || brush.light.pressure },
|
|
1084
1085
|
behavior: { ...brush.behavior, mixing: "rgb" },
|
|
@@ -1308,7 +1309,7 @@ var PaintStrokeSession = (_class5 = class _PaintStrokeSession {
|
|
|
1308
1309
|
this.layerId = init.layerId;
|
|
1309
1310
|
this.base = init.surface;
|
|
1310
1311
|
this.live = new Map(this.base.tiles);
|
|
1311
|
-
this.copies = init.copies.length ? init.copies : [
|
|
1312
|
+
this.copies = init.copies.length ? init.copies : [_chunkGT77U7QGcjs.IDENTITY_COPY];
|
|
1312
1313
|
const brush = init.brush;
|
|
1313
1314
|
if (init.wet) this.wetDriver = init.wet.driver;
|
|
1314
1315
|
if (init.light && !init.wet && !init.sticker) this.lightTwin = this.makeLightTwin(init.light.surface);
|
|
@@ -1325,11 +1326,11 @@ var PaintStrokeSession = (_class5 = class _PaintStrokeSession {
|
|
|
1325
1326
|
};
|
|
1326
1327
|
if (this.wetDriver) {
|
|
1327
1328
|
} else if (init.sticker) {
|
|
1328
|
-
this.stickerSpray = new (0,
|
|
1329
|
+
this.stickerSpray = new (0, _chunkGT77U7QGcjs.StickerSpray)({ brush, target: this.tileTarget(), color: init.colorHex, seed: init.seed, copies: this.copies, nextId: init.sticker.nextId, paint: _nullishCoalesce(init.paint, () => ( null)), effect, art: init.sticker.art });
|
|
1329
1330
|
} else if (init.thick) {
|
|
1330
1331
|
const rgb = (c) => [c[0] / 255, c[1] / 255, c[2] / 255];
|
|
1331
1332
|
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 });
|
|
1332
|
-
} else if (brush.engine === "mixer" || brush.engine === "blender" || brush.engine === "smudge" ||
|
|
1333
|
+
} else if (brush.engine === "mixer" || brush.engine === "blender" || brush.engine === "smudge" || _chunkGT77U7QGcjs.usesPaintExchange.call(void 0, brush, Boolean(init.paint))) {
|
|
1333
1334
|
const rgb = (c) => [c[0] / 255, c[1] / 255, c[2] / 255];
|
|
1334
1335
|
this.wet = new PaintDabStroke(brush, {
|
|
1335
1336
|
target: this.tileTarget(),
|
|
@@ -1345,7 +1346,7 @@ var PaintStrokeSession = (_class5 = class _PaintStrokeSession {
|
|
|
1345
1346
|
});
|
|
1346
1347
|
} else {
|
|
1347
1348
|
const opts = { grain: init.grain, paperDepth: init.paperDepth, seed: init.seed, copies: this.copies, paint: _nullishCoalesce(init.paint, () => ( null)), effect };
|
|
1348
|
-
this.dry = brush.engine === "particle" ? new (0,
|
|
1349
|
+
this.dry = brush.engine === "particle" ? new (0, _chunkGT77U7QGcjs.ParticleStroke)(brush, opts) : brush.engine === "bristle" ? new (0, _chunkGT77U7QGcjs.BristleStroke)(brush, opts) : new (0, _chunkGT77U7QGcjs.DryStroke)(brush, opts);
|
|
1349
1350
|
}
|
|
1350
1351
|
}
|
|
1351
1352
|
|
|
@@ -1567,7 +1568,7 @@ function brushLoadForStroke(brush, current, color) {
|
|
|
1567
1568
|
if (brush.engine === "mixer") return mixerLoadForStroke(brush, current, color);
|
|
1568
1569
|
if (brush.engine === "impasto") return { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null };
|
|
1569
1570
|
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 } : _chunkI7NJPHWVcjs.EMPTY_MIXER_LOAD;
|
|
1570
|
-
if (
|
|
1571
|
+
if (_chunkGT77U7QGcjs.usesPaintExchange.call(void 0, brush)) return { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null };
|
|
1571
1572
|
return _chunkI7NJPHWVcjs.EMPTY_MIXER_LOAD;
|
|
1572
1573
|
}
|
|
1573
1574
|
|
|
@@ -1835,7 +1836,7 @@ function normalizeBrushStroke(raw) {
|
|
|
1835
1836
|
const out = {
|
|
1836
1837
|
id: r.id,
|
|
1837
1838
|
layerId: r.layerId,
|
|
1838
|
-
brush:
|
|
1839
|
+
brush: _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, _nullishCoalesce(r.brush, () => ( {}))),
|
|
1839
1840
|
color: typeof r.color === "string" && /^#[0-9a-f]{6}$/i.test(r.color) ? r.color.toLowerCase() : "#000000",
|
|
1840
1841
|
points,
|
|
1841
1842
|
seed: finite2(r.seed) ? r.seed | 0 : 0
|
|
@@ -1854,7 +1855,7 @@ function normalizeBrushStroke(raw) {
|
|
|
1854
1855
|
}
|
|
1855
1856
|
if (st.length) out.stencils = st;
|
|
1856
1857
|
}
|
|
1857
|
-
const effect =
|
|
1858
|
+
const effect = _chunkGT77U7QGcjs.readPaintEffectPaint.call(void 0, r.paint);
|
|
1858
1859
|
const paint = effect ? null : _chunkI7NJPHWVcjs.readPaintSource.call(void 0, r.paint);
|
|
1859
1860
|
if (effect) out.paint = effect;
|
|
1860
1861
|
else if (paint && paint.type === "gradient") out.paint = paint;
|
|
@@ -1894,7 +1895,7 @@ function varyStroke(stroke, m, v) {
|
|
|
1894
1895
|
if (ps !== 1) q.pressure = Math.min(1, Math.max(0, (_nullishCoalesce(p.pressure, () => ( 1))) * ps));
|
|
1895
1896
|
return q;
|
|
1896
1897
|
});
|
|
1897
|
-
const brush = s !== 1 ?
|
|
1898
|
+
const brush = s !== 1 ? _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { ...stroke.brush, tip: { ...stroke.brush.tip, size: stroke.brush.tip.size * s } }) : stroke.brush;
|
|
1898
1899
|
const out = { ...stroke, brush, points };
|
|
1899
1900
|
if (_optionalChain([stroke, 'access', _90 => _90.paint, 'optionalAccess', _91 => _91.type]) === "gradient" && s !== 1) out.paint = _chunkI7NJPHWVcjs.scalePaintGradient.call(void 0, stroke.paint, s);
|
|
1900
1901
|
if (_optionalChain([stroke, 'access', _92 => _92.paint, 'optionalAccess', _93 => _93.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))) } };
|
|
@@ -1939,7 +1940,7 @@ function paperTile(paper, r, light) {
|
|
|
1939
1940
|
const key = `${paperKey(paper, light)}|${r.x},${r.y},${r.width},${r.height}`;
|
|
1940
1941
|
let t = tileCache.get(key);
|
|
1941
1942
|
if (!t) {
|
|
1942
|
-
t =
|
|
1943
|
+
t = _chunkGT77U7QGcjs.renderPaper.call(void 0, paper, r, paperGrain(paper), light);
|
|
1943
1944
|
if (tileCache.size > 512) tileCache.delete(tileCache.keys().next().value);
|
|
1944
1945
|
tileCache.set(key, t);
|
|
1945
1946
|
}
|
|
@@ -2044,11 +2045,11 @@ function header(state, options) {
|
|
|
2044
2045
|
return out;
|
|
2045
2046
|
}
|
|
2046
2047
|
function serializePaintDocument(state, options = {}) {
|
|
2047
|
-
const { layers, assets } =
|
|
2048
|
+
const { layers, assets } = _chunkM2VKFE5Lcjs.serializeLayers.call(void 0, state.layers);
|
|
2048
2049
|
return { ...header(state, options), layers, assets };
|
|
2049
2050
|
}
|
|
2050
2051
|
async function serializePaintDocumentExternal(state, store, options = {}) {
|
|
2051
|
-
const { layers, assets } = await
|
|
2052
|
+
const { layers, assets } = await _chunkM2VKFE5Lcjs.serializeLayersExternal.call(void 0, state.layers, store);
|
|
2052
2053
|
return { ...header(state, options), layers, assets };
|
|
2053
2054
|
}
|
|
2054
2055
|
function paintLayersOnly(layers, problems) {
|
|
@@ -2083,9 +2084,9 @@ function deserializePaintDocument(raw) {
|
|
|
2083
2084
|
}
|
|
2084
2085
|
const problems = [];
|
|
2085
2086
|
const canvas = normalizeCanvas({ width: r.width, height: r.height, dpi: _nullishCoalesce(r.dpi, () => ( void 0)) });
|
|
2086
|
-
const paper =
|
|
2087
|
+
const paper = _chunkGT77U7QGcjs.normalizePaper.call(void 0, _nullishCoalesce(r.paper, () => ( {})));
|
|
2087
2088
|
const assets = r.assets && typeof r.assets === "object" ? r.assets : {};
|
|
2088
|
-
const layers = paintLayersOnly(
|
|
2089
|
+
const layers = paintLayersOnly(_chunkM2VKFE5Lcjs.deserializeLayers.call(void 0, r.layers, { assets, problems }), problems);
|
|
2089
2090
|
const wanted = typeof r.activeLayerId === "string" ? r.activeLayerId : null;
|
|
2090
2091
|
const activeLayerId = wanted && _chunkDPYAO5U6cjs.findLayer.call(void 0, layers, wanted) ? wanted : _nullishCoalesce(_optionalChain([_chunkDPYAO5U6cjs.flattenLayers.call(void 0, layers), 'access', _107 => _107.filter, 'call', _108 => _108((l) => l.type === "pixel"), 'access', _109 => _109.pop, 'call', _110 => _110(), 'optionalAccess', _111 => _111.id]), () => ( null));
|
|
2091
2092
|
const wetEvents = Array.isArray(r.wetEvents) ? r.wetEvents.filter((e) => e && typeof e === "object" && Number.isInteger(e.clock) && typeof e.kind === "string") : [];
|
|
@@ -2101,7 +2102,7 @@ async function deserializePaintDocumentAsync(raw, store) {
|
|
|
2101
2102
|
if (!raw || typeof raw !== "object") throw new Error("Not a paint document: expected a JSON object.");
|
|
2102
2103
|
const r = raw;
|
|
2103
2104
|
const problems = [];
|
|
2104
|
-
const assets = await
|
|
2105
|
+
const assets = await _chunkM2VKFE5Lcjs.resolveExternalAssets.call(void 0, _nullishCoalesce(r.assets, () => ( {})), store, problems);
|
|
2105
2106
|
const loaded = deserializePaintDocument({ ...r, assets });
|
|
2106
2107
|
return { ...loaded, problems: [...problems, ...loaded.problems] };
|
|
2107
2108
|
}
|
|
@@ -2184,7 +2185,7 @@ function pointerToPenPoint(e, x, y, view) {
|
|
|
2184
2185
|
const p = { x, y, pressure: samplePressure(e) };
|
|
2185
2186
|
if (typeof e.timeStamp === "number" && Number.isFinite(e.timeStamp)) p.t = e.timeStamp;
|
|
2186
2187
|
if (e.pointerType !== "pen") return p;
|
|
2187
|
-
const o =
|
|
2188
|
+
const o = _chunkGT77U7QGcjs.penOrientation.call(void 0, {
|
|
2188
2189
|
x,
|
|
2189
2190
|
y,
|
|
2190
2191
|
altitude: typeof e.altitudeAngle === "number" ? e.altitudeAngle : void 0,
|
|
@@ -2264,7 +2265,7 @@ function wetPaperInput(paper) {
|
|
|
2264
2265
|
absorption: paper.absorption,
|
|
2265
2266
|
permeability: paper.permeability,
|
|
2266
2267
|
roughness: flat ? 0 : paper.roughness,
|
|
2267
|
-
color:
|
|
2268
|
+
color: _chunkGT77U7QGcjs.hexToRgb8.call(void 0, paper.color),
|
|
2268
2269
|
heightAt: flat ? () => 0.5 : (x, y) => grain.at(x, y)
|
|
2269
2270
|
};
|
|
2270
2271
|
}
|
|
@@ -2272,8 +2273,8 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2272
2273
|
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);
|
|
2273
2274
|
this.init = init;
|
|
2274
2275
|
const brush = init.brush;
|
|
2275
|
-
this.smoother = new (0,
|
|
2276
|
-
const copies = init.copies.length ? init.copies : [
|
|
2276
|
+
this.smoother = new (0, _chunkGT77U7QGcjs.PenSmoother)(brush.tip.smoothing, brush.pressureSmoothing);
|
|
2277
|
+
const copies = init.copies.length ? init.copies : [_chunkGT77U7QGcjs.IDENTITY_COPY];
|
|
2277
2278
|
const wet = brush.wet;
|
|
2278
2279
|
const spacing = Math.max(0.02, brush.tip.spacing);
|
|
2279
2280
|
const perDab = Math.min(1, spacing * 1.2);
|
|
@@ -2287,7 +2288,7 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2287
2288
|
this.lightBase = wet.tool === "paint" ? STROKE_LIGHT * brush.light.amount * (1 - 0.6 * thin) * perDab : 0;
|
|
2288
2289
|
const rates = _chunkI7NJPHWVcjs.exchangeRates.call(void 0, brush.behavior.pickup, brush.behavior.mix, wet.load, brush.behavior.mixing);
|
|
2289
2290
|
this.states = copies.map((c, i) => ({
|
|
2290
|
-
walker: new (0,
|
|
2291
|
+
walker: new (0, _chunkGT77U7QGcjs.PenDabWalker)(brush, init.seed + i * 7919 | 0, c.linear),
|
|
2291
2292
|
exchange: wet.tool === "paint" ? new (0, _chunkI7NJPHWVcjs.PaintExchange)(rates, init.load) : null,
|
|
2292
2293
|
last: null
|
|
2293
2294
|
}));
|
|
@@ -2417,7 +2418,7 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2417
2418
|
let flow = 1;
|
|
2418
2419
|
const effect = this.init.effect;
|
|
2419
2420
|
if (effect) {
|
|
2420
|
-
|
|
2421
|
+
_chunkGT77U7QGcjs.sampleEffectAt.call(void 0, effect, d.x, d.y, this.centre, d);
|
|
2421
2422
|
ex.setReservoirColor(this.centre[0], this.centre[1], this.centre[2]);
|
|
2422
2423
|
} else if (this.sampler) {
|
|
2423
2424
|
const g = this.sampler.dab(d, this.sample);
|
|
@@ -2429,7 +2430,7 @@ var WetStrokeDriver = (_class6 = class {
|
|
|
2429
2430
|
if (total > 0 && flow > 0 && effect) {
|
|
2430
2431
|
const ec = cov.slice();
|
|
2431
2432
|
const field = new Float32Array(ec.length * 3);
|
|
2432
|
-
|
|
2433
|
+
_chunkGT77U7QGcjs.effectDabField.call(void 0, effect, rect, ec, this.centre, this.paint, field, COVERAGE_STEPS, d);
|
|
2433
2434
|
this.medium.deposit(rect, ec, Math.min(1, total) * k, this.paint, null, field);
|
|
2434
2435
|
} else if (total > 0 && flow > 0) this.medium.deposit(rect, cov, Math.min(1, total) * k * flow, this.paint, null);
|
|
2435
2436
|
else world.paint(laneId, rect, cov, this.medium.options.water * k, null);
|
|
@@ -2932,7 +2933,7 @@ var PaintWetLayers = (_class7 = class {
|
|
|
2932
2933
|
}
|
|
2933
2934
|
}, _class7);
|
|
2934
2935
|
function wetPigmentOf(hex, body) {
|
|
2935
|
-
const [r, g, b] =
|
|
2936
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, hex);
|
|
2936
2937
|
return Array.from(_chunkKBYB7OWBcjs.pigmentOf.call(void 0, [r / 255, g / 255, b / 255], body));
|
|
2937
2938
|
}
|
|
2938
2939
|
|
|
@@ -2946,7 +2947,7 @@ function paintWetTestStroke(brush, paper, color, width, height) {
|
|
|
2946
2947
|
const w = thumbWorld;
|
|
2947
2948
|
if (w.hasLane("thumb")) w.removeLane("thumb");
|
|
2948
2949
|
w.ensureLane("thumb");
|
|
2949
|
-
const [r, g, b] =
|
|
2950
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, color);
|
|
2950
2951
|
if (brush.wet.tool !== "paint" && brush.wet.tool !== "water") {
|
|
2951
2952
|
const half = Math.ceil(height / 2);
|
|
2952
2953
|
w.paint("thumb", { x: 0, y: 0, width, height: half }, null, 0.4, Array.from(_chunkKBYB7OWBcjs.pigmentOf.call(void 0, [r / 255, g / 255, b / 255], 0), (v) => v * 0.05));
|
|
@@ -2960,9 +2961,9 @@ function paintWetTestStroke(brush, paper, color, width, height) {
|
|
|
2960
2961
|
load: brushLoadForStroke(brush, _chunkI7NJPHWVcjs.EMPTY_MIXER_LOAD, [r / 255, g / 255, b / 255]),
|
|
2961
2962
|
grain: paperGrain(paper),
|
|
2962
2963
|
paperDepth: paper.depth,
|
|
2963
|
-
paperColor:
|
|
2964
|
+
paperColor: _chunkGT77U7QGcjs.hexToRgb8.call(void 0, paper.color),
|
|
2964
2965
|
seed: 7,
|
|
2965
|
-
copies: [
|
|
2966
|
+
copies: [_chunkGT77U7QGcjs.IDENTITY_COPY]
|
|
2966
2967
|
});
|
|
2967
2968
|
driver.push(thumbnailStroke(width, height));
|
|
2968
2969
|
driver.finish();
|
|
@@ -2982,7 +2983,7 @@ function thumbnailStroke(width, height) {
|
|
|
2982
2983
|
return pts;
|
|
2983
2984
|
}
|
|
2984
2985
|
function paintTestStroke(surface, brush, paper, color, width, height) {
|
|
2985
|
-
const [r, g, b] =
|
|
2986
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, color);
|
|
2986
2987
|
let result = surface;
|
|
2987
2988
|
let thick = null;
|
|
2988
2989
|
let light = null;
|
|
@@ -3003,13 +3004,13 @@ function paintTestStroke(surface, brush, paper, color, width, height) {
|
|
|
3003
3004
|
lockTransparency: false,
|
|
3004
3005
|
brush,
|
|
3005
3006
|
color: [r, g, b, 255],
|
|
3006
|
-
background: [...
|
|
3007
|
+
background: [..._chunkGT77U7QGcjs.hexToRgb8.call(void 0, paper.color), 255],
|
|
3007
3008
|
grain: paperGrain(paper),
|
|
3008
3009
|
paperDepth: paper.depth,
|
|
3009
3010
|
seed: 7,
|
|
3010
3011
|
colorHex: color,
|
|
3011
3012
|
affineCopies: [],
|
|
3012
|
-
copies: [
|
|
3013
|
+
copies: [_chunkGT77U7QGcjs.IDENTITY_COPY],
|
|
3013
3014
|
mixerLoad: brushLoadForStroke(brush, _chunkI7NJPHWVcjs.EMPTY_MIXER_LOAD, [r / 255, g / 255, b / 255]),
|
|
3014
3015
|
thick: brush.engine === "impasto" ? { channels: emptyThickChannels() } : void 0,
|
|
3015
3016
|
sticker: brush.engine === "sticker" ? { nextId: 1 } : void 0,
|
|
@@ -3025,8 +3026,8 @@ function renderBrushThumbnail(brush, options) {
|
|
|
3025
3026
|
const width = Math.max(16, Math.min(512, Math.round(_nullishCoalesce(options.width, () => ( 160)))));
|
|
3026
3027
|
const height = Math.max(16, Math.min(512, Math.round(_nullishCoalesce(options.height, () => ( 48)))));
|
|
3027
3028
|
const maxSize = height * 0.42;
|
|
3028
|
-
const b = brush.tip.size > maxSize ?
|
|
3029
|
-
const rgba = [...
|
|
3029
|
+
const b = brush.tip.size > maxSize ? _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...brush.tip, size: maxSize } }, brush) : brush;
|
|
3030
|
+
const rgba = [..._chunkGT77U7QGcjs.hexToRgb8.call(void 0, options.color), 255];
|
|
3030
3031
|
let surface = _chunk474IQG74cjs.emptySurface.call(void 0, 4);
|
|
3031
3032
|
if (b.engine === "eraser") {
|
|
3032
3033
|
surface = _chunk474IQG74cjs.fillRect.call(void 0, surface, { x: 0, y: 0, width, height }, rgba);
|
|
@@ -3308,7 +3309,7 @@ var DEFAULT_SWATCHES = [
|
|
|
3308
3309
|
// src/paint-editor/mixing-pad.ts
|
|
3309
3310
|
var MIXING_PAD_WIDTH = 360;
|
|
3310
3311
|
var MIXING_PAD_HEIGHT = 220;
|
|
3311
|
-
var PAD_PAINT =
|
|
3312
|
+
var PAD_PAINT = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, {
|
|
3312
3313
|
id: "pad-paint",
|
|
3313
3314
|
name: "Pad paint",
|
|
3314
3315
|
category: "mixer",
|
|
@@ -3316,7 +3317,7 @@ var PAD_PAINT = _chunkH4AOUUBEcjs.normalizePaintBrush.call(void 0, {
|
|
|
3316
3317
|
tip: { size: 28, hardness: 0.75, spacing: 0.1, opacity: 1, flow: 0.7, pressureSize: false, pressureOpacity: false },
|
|
3317
3318
|
mixer: { wet: 0.45, load: 1, mix: 0.4, loadEachStroke: true, cleanEachStroke: true, mixing: "pigment" }
|
|
3318
3319
|
});
|
|
3319
|
-
var PAD_KNIFE =
|
|
3320
|
+
var PAD_KNIFE = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, {
|
|
3320
3321
|
id: "pad-knife",
|
|
3321
3322
|
name: "Palette knife",
|
|
3322
3323
|
category: "smudge",
|
|
@@ -3326,7 +3327,7 @@ var PAD_KNIFE = _chunkH4AOUUBEcjs.normalizePaintBrush.call(void 0, {
|
|
|
3326
3327
|
// A knife drags streaks of paint and folds them into each other, mixing them as pigment.
|
|
3327
3328
|
smudge: { strength: 0.6, length: 0.8, mixing: "pigment" }
|
|
3328
3329
|
});
|
|
3329
|
-
var PAD_BLOB =
|
|
3330
|
+
var PAD_BLOB = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, {
|
|
3330
3331
|
id: "pad-blob",
|
|
3331
3332
|
name: "Pad blob",
|
|
3332
3333
|
category: "custom",
|
|
@@ -3348,12 +3349,12 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3348
3349
|
}
|
|
3349
3350
|
}
|
|
3350
3351
|
let brush = options.tool === "knife" ? PAD_KNIFE : PAD_PAINT;
|
|
3351
|
-
if (options.size !== void 0) brush =
|
|
3352
|
+
if (options.size !== void 0) brush = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...brush.tip, size: options.size } }, brush);
|
|
3352
3353
|
return this.run(brush, points, options.color);
|
|
3353
3354
|
}
|
|
3354
3355
|
/** Paints `points` with `brush` in `color` on the pad. */
|
|
3355
3356
|
run(brush, points, color) {
|
|
3356
|
-
const [r, g, b] =
|
|
3357
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, color);
|
|
3357
3358
|
let result = null;
|
|
3358
3359
|
const session = new PaintStrokeSession(
|
|
3359
3360
|
{ update: () => {
|
|
@@ -3371,7 +3372,7 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3371
3372
|
seed: 1,
|
|
3372
3373
|
colorHex: color,
|
|
3373
3374
|
affineCopies: [],
|
|
3374
|
-
copies: [
|
|
3375
|
+
copies: [_chunkGT77U7QGcjs.IDENTITY_COPY],
|
|
3375
3376
|
mixerLoad: brushLoadForStroke(brush, _chunkI7NJPHWVcjs.EMPTY_MIXER_LOAD, [r / 255, g / 255, b / 255])
|
|
3376
3377
|
}
|
|
3377
3378
|
);
|
|
@@ -3447,10 +3448,10 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3447
3448
|
const off = used.length === 1 ? 0 : 0.45 * R;
|
|
3448
3449
|
const x = Math.min(cx + R - r, Math.max(cx - R + r, cx + Math.cos(a) * off));
|
|
3449
3450
|
const y = Math.min(cy + R - r, Math.max(cy - R + r, cy + Math.sin(a) * off));
|
|
3450
|
-
const blob =
|
|
3451
|
+
const blob = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_BLOB.tip, size: Math.max(2, 2 * r) } }, PAD_BLOB);
|
|
3451
3452
|
this.run(blob, [{ x, y }], p.color.toLowerCase());
|
|
3452
3453
|
});
|
|
3453
|
-
const knife =
|
|
3454
|
+
const knife = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_KNIFE.tip, size: Math.max(12, R * 0.5) } }, PAD_KNIFE);
|
|
3454
3455
|
for (let k = 0; k < passes; k++) {
|
|
3455
3456
|
const stir = [];
|
|
3456
3457
|
const turns = 1.6;
|
|
@@ -3462,10 +3463,10 @@ var MixingPad = (_class9 = class {constructor() { _class9.prototype.__init71.cal
|
|
|
3462
3463
|
this.run(knife, stir, "#000000");
|
|
3463
3464
|
}
|
|
3464
3465
|
const mixed = _chunk2VX55NFMcjs.mixPigments.call(void 0,
|
|
3465
|
-
paints.map((p) =>
|
|
3466
|
+
paints.map((p) => _chunkGT77U7QGcjs.hexToRgb8.call(void 0, p.color).map((v) => v / 255)),
|
|
3466
3467
|
paints.map((p) => p.parts)
|
|
3467
3468
|
);
|
|
3468
|
-
const core =
|
|
3469
|
+
const core = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_BLOB.tip, size: R * 1.1, hardness: 0.55 } }, PAD_BLOB);
|
|
3469
3470
|
const hex = "#" + mixed.map((v) => Math.round(v * 255).toString(16).padStart(2, "0")).join("");
|
|
3470
3471
|
this.run(core, [{ x: cx, y: cy }], hex);
|
|
3471
3472
|
return { color: this.pick(cx, cy, 2), bounds };
|
|
@@ -3671,10 +3672,10 @@ function addTiles(a, b) {
|
|
|
3671
3672
|
}
|
|
3672
3673
|
function computeTile(paper, grain, amount, rect, layers) {
|
|
3673
3674
|
const n = rect.width * rect.height;
|
|
3674
|
-
const [p0, p1, p2] =
|
|
3675
|
+
const [p0, p1, p2] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, paper.color);
|
|
3675
3676
|
const pb = [p0, p1, p2];
|
|
3676
3677
|
const pl = [Math.max(1e-4, LIN[p0]), Math.max(1e-4, LIN[p1]), Math.max(1e-4, LIN[p2])];
|
|
3677
|
-
const [c0, c1, c2] =
|
|
3678
|
+
const [c0, c1, c2] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, _nullishCoalesce(paper.backlightColor, () => ( DEFAULT_BACKLIGHT_COLOR)));
|
|
3678
3679
|
const t0 = new Float32Array(n).fill(amount * LIN[c0]);
|
|
3679
3680
|
const t1 = new Float32Array(n).fill(amount * LIN[c1]);
|
|
3680
3681
|
const t2 = new Float32Array(n).fill(amount * LIN[c2]);
|
|
@@ -3885,7 +3886,7 @@ function timeLapseVideo(frameCount, width, height, fps, holdMs, name = "Time-lap
|
|
|
3885
3886
|
}
|
|
3886
3887
|
const video = { version: 1, name, width: w, height: h, fps, background: "#000000", assets, tracks: [{ id: "v1", kind: "video", clips }] };
|
|
3887
3888
|
const durationMs = frameCount ? clips[clips.length - 1].start + clips[clips.length - 1].duration : 0;
|
|
3888
|
-
return { video, ffmpeg:
|
|
3889
|
+
return { video, ffmpeg: _chunkZBCT5MEAcjs.toVideoFfmpeg.call(void 0, video, { output: "timelapse.mp4" }), durationMs };
|
|
3889
3890
|
}
|
|
3890
3891
|
async function buildTimeLapse(source, target, options = {}) {
|
|
3891
3892
|
const maxSide = Math.max(32, Math.min(4096, Math.round(_nullishCoalesce(options.maxSide, () => ( 720)))));
|
|
@@ -3968,7 +3969,7 @@ function checkPaintEffectPlace(d, place) {
|
|
|
3968
3969
|
else if (d.uses.includes("filter") && place !== "light") instead = "; run it on a layer's dried paint with apply_effect instead";
|
|
3969
3970
|
else if (place === "light" && d.uses.some((u) => PAINT_EFFECT_PLACES.layer.includes(u))) instead = "; add it as an effect layer (add_effect_layer) or fill a layer with it (fill_layer_with_effect) instead";
|
|
3970
3971
|
else if (place === "paper" && d.uses.some((u) => u === "overlay" || u === "title")) instead = "; add it as an effect layer with add_effect_layer instead";
|
|
3971
|
-
throw new (0,
|
|
3972
|
+
throw new (0, _chunkISIO63Q5cjs.EffectUnsupportedError)(`"${d.id}" (${d.name}) is a ${d.uses.join(" / ") || d.kind} effect, and ${PLACE_WORDS[place]}${instead}.`, d.id);
|
|
3972
3973
|
}
|
|
3973
3974
|
var PAPER_EFFECT_BLENDS = ["multiply", "normal", "overlay", "soft-light", "screen", "color"];
|
|
3974
3975
|
var paperVersion = 1;
|
|
@@ -4090,7 +4091,7 @@ function parseColor(value, what = "color") {
|
|
|
4090
4091
|
return value.trim().toLowerCase();
|
|
4091
4092
|
}
|
|
4092
4093
|
function rgbaOf(hex) {
|
|
4093
|
-
const [r, g, b] =
|
|
4094
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, hex);
|
|
4094
4095
|
return [r, g, b, 255];
|
|
4095
4096
|
}
|
|
4096
4097
|
function rgbToHex(r, g, b) {
|
|
@@ -4181,21 +4182,21 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4181
4182
|
/** Set while an operation that changes wet paint runs: the simulation before it (for undo). */
|
|
4182
4183
|
__init129() {this.wetOp = null}
|
|
4183
4184
|
/** The effects provider slot (see `setEffectsProvider`). */
|
|
4184
|
-
__init130() {this.effects = new (0,
|
|
4185
|
+
__init130() {this.effects = new (0, _chunkISIO63Q5cjs.EffectsSlot)()}
|
|
4185
4186
|
/** The sticker library slot (see `setStickersProvider`). */
|
|
4186
|
-
__init131() {this.stickers = new (0,
|
|
4187
|
-
__init132() {this.stickerArt = new (0,
|
|
4187
|
+
__init131() {this.stickers = new (0, _chunk4JNWA3VTcjs.StickersSlot)(_chunkATK6ABN3cjs.editorStickers.call(void 0, ))}
|
|
4188
|
+
__init132() {this.stickerArt = new (0, _chunkGT77U7QGcjs.StickerArtCache)()}
|
|
4188
4189
|
|
|
4189
4190
|
__init133() {this.effectsRenderer = new PaintEffectsRenderer()}
|
|
4190
4191
|
__init134() {this.paperEffectNodeCache = null}
|
|
4191
4192
|
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);_class12.prototype.__init137.call(this);_class12.prototype.__init138.call(this);
|
|
4192
4193
|
this.historyLimit = Math.max(1, _nullishCoalesce(options.historyLimit, () => ( 200)));
|
|
4193
|
-
this.rasterizeSticker = _nullishCoalesce(options.rasterizeSticker, () => (
|
|
4194
|
+
this.rasterizeSticker = _nullishCoalesce(options.rasterizeSticker, () => ( _chunkGT77U7QGcjs.defaultStickerRasterizer));
|
|
4194
4195
|
if (options.stickers) this.stickers.set(options.stickers);
|
|
4195
4196
|
this.doc = createPaintDocument({ width: options.width, height: options.height, dpi: options.dpi, paper: this.resolvePaper(options.paper) });
|
|
4196
|
-
this.userBrushes = (_nullishCoalesce(options.brushes, () => ( []))).map((b) =>
|
|
4197
|
-
const start = _nullishCoalesce(this.findBrush(_nullishCoalesce(options.brushId, () => (
|
|
4198
|
-
this.brush =
|
|
4197
|
+
this.userBrushes = (_nullishCoalesce(options.brushes, () => ( []))).map((b) => _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { ...b, builtin: false }));
|
|
4198
|
+
const start = _nullishCoalesce(this.findBrush(_nullishCoalesce(options.brushId, () => ( _chunkGT77U7QGcjs.DEFAULT_BRUSH_ID))), () => ( this.findBrush(_chunkGT77U7QGcjs.DEFAULT_BRUSH_ID)));
|
|
4199
|
+
this.brush = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, start);
|
|
4199
4200
|
this.color = options.color ? parseColor(options.color) : "#1f2937";
|
|
4200
4201
|
this.hand = options.hand === "left" ? "left" : "right";
|
|
4201
4202
|
this.encodeImage = options.encodeImage;
|
|
@@ -4248,7 +4249,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4248
4249
|
this.cached = {
|
|
4249
4250
|
document: this.doc,
|
|
4250
4251
|
brush: this.brush,
|
|
4251
|
-
brushes: this.library ??= [...
|
|
4252
|
+
brushes: this.library ??= [..._chunkGT77U7QGcjs.BUILTIN_BRUSHES, ...this.userBrushes],
|
|
4252
4253
|
color: this.color,
|
|
4253
4254
|
secondaryColor: this.secondaryColor,
|
|
4254
4255
|
paint: _nullishCoalesce(this.gradient, () => ( { type: "color", color: this.color })),
|
|
@@ -4444,7 +4445,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4444
4445
|
// --- Canvas and paper ----------------------------------------------------------
|
|
4445
4446
|
resolvePaper(paper) {
|
|
4446
4447
|
if (typeof paper === "string") {
|
|
4447
|
-
const p =
|
|
4448
|
+
const p = _chunkGT77U7QGcjs.paperPreset.call(void 0, paper);
|
|
4448
4449
|
if (!p) throw new PaintEditorError(`Unknown paper "${paper}". Call list_papers for the ids.`);
|
|
4449
4450
|
return p;
|
|
4450
4451
|
}
|
|
@@ -4555,19 +4556,19 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4555
4556
|
this.requireIdle("changing the paper");
|
|
4556
4557
|
let base = this.doc.paper;
|
|
4557
4558
|
if (update.preset !== void 0 && update.preset !== this.doc.paper.preset) {
|
|
4558
|
-
const p =
|
|
4559
|
+
const p = _chunkGT77U7QGcjs.paperPreset.call(void 0, update.preset);
|
|
4559
4560
|
if (!p) throw new PaintEditorError(`Unknown paper "${update.preset}". Call list_papers for the ids.`);
|
|
4560
4561
|
base = p;
|
|
4561
4562
|
}
|
|
4562
4563
|
const { preset: _p, ...rest } = update;
|
|
4563
4564
|
if (rest.color !== void 0) parseColor(rest.color, "paper color");
|
|
4564
|
-
const paper =
|
|
4565
|
+
const paper = _chunkGT77U7QGcjs.normalizePaper.call(void 0, { ...rest, preset: base.preset, offset: _nullishCoalesce(rest.offset, () => ( this.doc.paper.offset)) }, base);
|
|
4565
4566
|
const changedKeys = Object.keys(rest).filter((k) => k !== "name");
|
|
4566
4567
|
if (changedKeys.length && update.preset === void 0) paper.preset = base.preset;
|
|
4567
4568
|
if (this.wet.world) this.beginWetOp();
|
|
4568
4569
|
this.commit("Paper", { ...this.doc, paper });
|
|
4569
4570
|
this.wet.paperChanged();
|
|
4570
|
-
return
|
|
4571
|
+
return _chunkGT77U7QGcjs.clonePaper.call(void 0, paper);
|
|
4571
4572
|
}
|
|
4572
4573
|
// --- Layers --------------------------------------------------------------------
|
|
4573
4574
|
getLayer(id) {
|
|
@@ -4975,7 +4976,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
4975
4976
|
if (v === null) merged[k] = d.defaults[k];
|
|
4976
4977
|
else given[k] = v;
|
|
4977
4978
|
}
|
|
4978
|
-
return { ...merged, ...
|
|
4979
|
+
return { ...merged, ..._chunkISIO63Q5cjs.resolveEffectValues.call(void 0, { ...d, defaults: merged }, given) };
|
|
4979
4980
|
}
|
|
4980
4981
|
/** Renders a generator, overlay or title effect at the canvas size. */
|
|
4981
4982
|
renderEffectCanvas(d, values, time = 0) {
|
|
@@ -5167,7 +5168,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5167
5168
|
this.checkTime(source.time);
|
|
5168
5169
|
let map;
|
|
5169
5170
|
try {
|
|
5170
|
-
map =
|
|
5171
|
+
map = _chunkGT77U7QGcjs.readEffectStrokeMap.call(void 0, source.map);
|
|
5171
5172
|
} catch (e) {
|
|
5172
5173
|
throw new PaintEditorError(e.message);
|
|
5173
5174
|
}
|
|
@@ -5198,9 +5199,9 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5198
5199
|
}
|
|
5199
5200
|
/** The rendered pixels of an effect paint at the current canvas size, or `null` when it has not been rendered. */
|
|
5200
5201
|
effectPaintImage(p) {
|
|
5201
|
-
const key =
|
|
5202
|
+
const key = _chunkGT77U7QGcjs.effectPaintKey.call(void 0, p);
|
|
5202
5203
|
const img = this.effectPaintPixels.get(key);
|
|
5203
|
-
const size =
|
|
5204
|
+
const size = _chunkGT77U7QGcjs.effectPaintSize.call(void 0, p, this.doc.canvas);
|
|
5204
5205
|
if (!img || img.width !== size.width || img.height !== size.height) return null;
|
|
5205
5206
|
this.effectPaintPixels.delete(key);
|
|
5206
5207
|
this.effectPaintPixels.set(key, img);
|
|
@@ -5214,7 +5215,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5214
5215
|
const what = `the effect "${p.effect}"${p.provider ? ` from provider "${p.provider}"` : ""}`;
|
|
5215
5216
|
if (!provider) throw new PaintEditorError(`Effect paint needs ${what}, but no effects provider is registered; register it (setEffectsProvider) and try again.`);
|
|
5216
5217
|
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.`);
|
|
5217
|
-
const { width, height } =
|
|
5218
|
+
const { width, height } = _chunkGT77U7QGcjs.effectPaintSize.call(void 0, p, this.doc.canvas);
|
|
5218
5219
|
let pixels;
|
|
5219
5220
|
try {
|
|
5220
5221
|
pixels = await this.effectsRenderer.render(provider, p.effect, { width, height }, { time: p.time, values: p.values });
|
|
@@ -5222,7 +5223,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5222
5223
|
throw new PaintEditorError(`Effect paint could not render ${what}: ${e instanceof Error ? e.message : String(e)}`);
|
|
5223
5224
|
}
|
|
5224
5225
|
const img = { width, height, data: new Uint8ClampedArray(pixels.data), ...p.map ? { map: p.map } : {} };
|
|
5225
|
-
this.effectPaintPixels.set(
|
|
5226
|
+
this.effectPaintPixels.set(_chunkGT77U7QGcjs.effectPaintKey.call(void 0, p), img);
|
|
5226
5227
|
while (this.effectPaintPixels.size > _PaintEditorController.EFFECT_PAINT_CACHE) this.effectPaintPixels.delete(this.effectPaintPixels.keys().next().value);
|
|
5227
5228
|
return img;
|
|
5228
5229
|
}
|
|
@@ -5233,7 +5234,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5233
5234
|
async prepareEffectPaints(paints) {
|
|
5234
5235
|
const seen = /* @__PURE__ */ new Set();
|
|
5235
5236
|
for (const p of paints) {
|
|
5236
|
-
const key =
|
|
5237
|
+
const key = _chunkGT77U7QGcjs.effectPaintKey.call(void 0, p);
|
|
5237
5238
|
if (seen.has(key)) continue;
|
|
5238
5239
|
seen.add(key);
|
|
5239
5240
|
await this.renderEffectPaint(p);
|
|
@@ -5271,11 +5272,11 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5271
5272
|
* its pixels are not rendered.
|
|
5272
5273
|
*/
|
|
5273
5274
|
strokeEffect(init, brush) {
|
|
5274
|
-
if (!
|
|
5275
|
+
if (!_chunkGT77U7QGcjs.brushTakesPaint.call(void 0, brush)) return null;
|
|
5275
5276
|
let source = null;
|
|
5276
5277
|
if (init.paint !== void 0) {
|
|
5277
|
-
if (!
|
|
5278
|
-
source =
|
|
5278
|
+
if (!_chunkGT77U7QGcjs.isPaintEffectPaint.call(void 0, init.paint)) return null;
|
|
5279
|
+
source = _chunkGT77U7QGcjs.readPaintEffectPaint.call(void 0, init.paint);
|
|
5279
5280
|
if (!source) throw new PaintEditorError("The stroke's effect paint needs an effect id and values (getEffectPaint returns one).");
|
|
5280
5281
|
} else if (init.color === void 0 && !brush.paint) {
|
|
5281
5282
|
if (this.effectPaintPending) throw new PaintEditorError(`The effect paint "${this.effectPaintPending.effect}" is still rendering; wait for set_effect_paint to finish, then paint.`);
|
|
@@ -5325,12 +5326,12 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5325
5326
|
}
|
|
5326
5327
|
// --- Brushes -------------------------------------------------------------------
|
|
5327
5328
|
findBrush(id) {
|
|
5328
|
-
return _nullishCoalesce(
|
|
5329
|
+
return _nullishCoalesce(_chunkGT77U7QGcjs.BUILTIN_BRUSHES.find((b) => b.id === id), () => ( this.userBrushes.find((b) => b.id === id)));
|
|
5329
5330
|
}
|
|
5330
5331
|
/** A library brush by id (`undefined` when unknown). */
|
|
5331
5332
|
getBrush(id) {
|
|
5332
5333
|
const b = this.findBrush(id);
|
|
5333
|
-
return b ?
|
|
5334
|
+
return b ? _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, b, b) : void 0;
|
|
5334
5335
|
}
|
|
5335
5336
|
requireBrush(id) {
|
|
5336
5337
|
const b = this.findBrush(id);
|
|
@@ -5345,20 +5346,20 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5345
5346
|
const { id, ...changes } = update;
|
|
5346
5347
|
const base = id !== void 0 ? this.requireBrush(id) : this.brush;
|
|
5347
5348
|
if (changes.paint !== void 0 && changes.paint !== null) this.readStrokePaint(changes.paint);
|
|
5348
|
-
const next =
|
|
5349
|
+
const next = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { ...changes, id: base.id }, base);
|
|
5349
5350
|
if (base.builtin && !Object.keys(changes).length) next.builtin = true;
|
|
5350
5351
|
else delete next.builtin;
|
|
5351
5352
|
this.brush = next;
|
|
5352
5353
|
this.emit([]);
|
|
5353
|
-
if (next.engine === "sticker" && next.sticker.stamps.some((r) => !
|
|
5354
|
+
if (next.engine === "sticker" && next.sticker.stamps.some((r) => !_chunk4JNWA3VTcjs.editorStampOf.call(void 0, r))) void this.prepareStickers(next.sticker.stamps).catch(() => this.emit([]));
|
|
5354
5355
|
return this.brush;
|
|
5355
5356
|
}
|
|
5356
5357
|
/** Saves the active brush (or `brush`) into the user library under `id` / `name`. */
|
|
5357
5358
|
saveBrush(options) {
|
|
5358
|
-
if (!
|
|
5359
|
-
if (
|
|
5360
|
-
const source = options.brush ?
|
|
5361
|
-
const saved =
|
|
5359
|
+
if (!_chunkGT77U7QGcjs.BRUSH_ID.test(options.id)) throw new PaintEditorError(`Brush id "${options.id}" is invalid; use lowercase letters, digits and dashes (e.g. "my-pencil").`);
|
|
5360
|
+
if (_chunkGT77U7QGcjs.BUILTIN_BRUSHES.some((b) => b.id === options.id)) throw new PaintEditorError(`"${options.id}" is a built-in brush; save under another id.`);
|
|
5361
|
+
const source = options.brush ? _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, options.brush, this.brush) : this.brush;
|
|
5362
|
+
const saved = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { ...source, id: options.id, name: _nullishCoalesce(options.name, () => ( source.name)) });
|
|
5362
5363
|
delete saved.builtin;
|
|
5363
5364
|
const i = this.userBrushes.findIndex((b) => b.id === options.id);
|
|
5364
5365
|
if (i >= 0) this.userBrushes[i] = saved;
|
|
@@ -5368,7 +5369,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5368
5369
|
return saved;
|
|
5369
5370
|
}
|
|
5370
5371
|
removeBrush(id) {
|
|
5371
|
-
if (
|
|
5372
|
+
if (_chunkGT77U7QGcjs.BUILTIN_BRUSHES.some((b) => b.id === id)) throw new PaintEditorError(`"${id}" is a built-in brush and cannot be removed.`);
|
|
5372
5373
|
const i = this.userBrushes.findIndex((b) => b.id === id);
|
|
5373
5374
|
if (i < 0) throw new PaintEditorError(`Unknown brush "${id}". Call list_brushes for the ids.`);
|
|
5374
5375
|
this.userBrushes.splice(i, 1);
|
|
@@ -5377,12 +5378,12 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5377
5378
|
}
|
|
5378
5379
|
/** The user's saved brushes. */
|
|
5379
5380
|
getUserBrushes() {
|
|
5380
|
-
return this.userBrushes.map((b) =>
|
|
5381
|
+
return this.userBrushes.map((b) => _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, b, b));
|
|
5381
5382
|
}
|
|
5382
5383
|
/** A brush library file of the given brushes (default: the user's brushes). */
|
|
5383
5384
|
exportBrushes(ids) {
|
|
5384
5385
|
const list = ids ? ids.map((id) => this.requireBrush(id)) : this.userBrushes;
|
|
5385
|
-
return { format: "pixerate-brushes", version: 1, brushes: list.map(
|
|
5386
|
+
return { format: "pixerate-brushes", version: 1, brushes: list.map(_chunkGT77U7QGcjs.brushToJSON) };
|
|
5386
5387
|
}
|
|
5387
5388
|
/**
|
|
5388
5389
|
* Adds the brushes of a library file to the user library. A brush whose id is taken is skipped
|
|
@@ -5392,14 +5393,14 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5392
5393
|
const problems = [];
|
|
5393
5394
|
let list;
|
|
5394
5395
|
try {
|
|
5395
|
-
list =
|
|
5396
|
+
list = _chunkGT77U7QGcjs.parseBrushLibrary.call(void 0, file, problems);
|
|
5396
5397
|
} catch (e) {
|
|
5397
5398
|
throw new PaintEditorError(e.message);
|
|
5398
5399
|
}
|
|
5399
5400
|
const added = [];
|
|
5400
5401
|
const skipped = [];
|
|
5401
5402
|
for (const b of list) {
|
|
5402
|
-
if (
|
|
5403
|
+
if (_chunkGT77U7QGcjs.BUILTIN_BRUSHES.some((x) => x.id === b.id)) {
|
|
5403
5404
|
skipped.push(b.id);
|
|
5404
5405
|
problems.push(`"${b.id}" is a built-in brush id; rename it to import it.`);
|
|
5405
5406
|
continue;
|
|
@@ -5464,10 +5465,10 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5464
5465
|
* brush's gradient, else the editor's gradient paint. Erasers, blenders and smudges take none.
|
|
5465
5466
|
*/
|
|
5466
5467
|
strokeGradient(init, brush, color) {
|
|
5467
|
-
if (!
|
|
5468
|
+
if (!_chunkGT77U7QGcjs.brushTakesPaint.call(void 0, brush)) return null;
|
|
5468
5469
|
let g = null;
|
|
5469
5470
|
if (init.paint !== void 0) {
|
|
5470
|
-
if (
|
|
5471
|
+
if (_chunkGT77U7QGcjs.isPaintEffectPaint.call(void 0, init.paint)) return null;
|
|
5471
5472
|
const p = this.readStrokePaint(init.paint);
|
|
5472
5473
|
g = p.type === "gradient" ? p : null;
|
|
5473
5474
|
} else g = _nullishCoalesce(brush.paint, () => ( (init.color === void 0 ? this.gradient : null)));
|
|
@@ -5511,7 +5512,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5511
5512
|
// --- Mixer Brush ---------------------------------------------------------------
|
|
5512
5513
|
/** Fills the Mixer Brush reservoir with a colour (default the editor colour). */
|
|
5513
5514
|
loadMixerBrush(color) {
|
|
5514
|
-
const [r, g, b] =
|
|
5515
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, color === void 0 ? this.color : parseColor(color));
|
|
5515
5516
|
this.mixerLoad = _chunkI7NJPHWVcjs.loadMixer.call(void 0, this.mixerLoad, [r / 255, g / 255, b / 255]);
|
|
5516
5517
|
this.emit([]);
|
|
5517
5518
|
return this.mixerLoad;
|
|
@@ -5541,7 +5542,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5541
5542
|
// --- Strokes -------------------------------------------------------------------
|
|
5542
5543
|
strokeBrush(init) {
|
|
5543
5544
|
let brush = init.brushId !== void 0 ? this.requireBrush(init.brushId) : this.brush;
|
|
5544
|
-
if (init.brush) brush =
|
|
5545
|
+
if (init.brush) brush = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { ...init.brush, id: brush.id }, brush);
|
|
5545
5546
|
return brush;
|
|
5546
5547
|
}
|
|
5547
5548
|
/**
|
|
@@ -5557,7 +5558,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5557
5558
|
return symmetryCopies(this.guides.symmetry);
|
|
5558
5559
|
}
|
|
5559
5560
|
sessionFor(doc, init, host) {
|
|
5560
|
-
if (init.paint !== void 0 && !
|
|
5561
|
+
if (init.paint !== void 0 && !_chunkGT77U7QGcjs.isPaintEffectPaint.call(void 0, init.paint)) {
|
|
5561
5562
|
const p = this.readStrokePaint(init.paint);
|
|
5562
5563
|
if (p.type === "color") init = { ...init, color: p.color, paint: void 0 };
|
|
5563
5564
|
else init = { ...init, paint: p };
|
|
@@ -5583,9 +5584,9 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5583
5584
|
if (why) throw new PaintEditorError(`Layer "${layer.name}" is a stroke layer. ${why}`);
|
|
5584
5585
|
}
|
|
5585
5586
|
if (_optionalChain([doc, 'access', _332 => _332.liveStrokes, 'optionalAccess', _333 => _333[layer.id]]) && _optionalChain([effect, 'optionalAccess', _334 => _334.source, 'access', _335 => _335.live])) {
|
|
5586
|
-
const key =
|
|
5587
|
+
const key = _chunkGT77U7QGcjs.effectPaintKey.call(void 0, effect.source);
|
|
5587
5588
|
const { sources } = this.liveEffects(doc);
|
|
5588
|
-
if (!sources.some((p) =>
|
|
5589
|
+
if (!sources.some((p) => _chunkGT77U7QGcjs.effectPaintKey.call(void 0, p) === key) && sources.length >= MAX_LIVE_EFFECT_SOURCES) {
|
|
5589
5590
|
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.`);
|
|
5590
5591
|
}
|
|
5591
5592
|
}
|
|
@@ -5596,7 +5597,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5596
5597
|
throw new PaintEditorError(`Layer "${layer.name}" is a sticker layer (its pixels are drawn from its stickers); paint on another layer (add_layer).`);
|
|
5597
5598
|
}
|
|
5598
5599
|
let wet;
|
|
5599
|
-
if (
|
|
5600
|
+
if (_chunkGT77U7QGcjs.isWetBrush.call(void 0, brush)) {
|
|
5600
5601
|
this.requireWetIdle("painting");
|
|
5601
5602
|
if (layer.offset.x || layer.offset.y) {
|
|
5602
5603
|
const moved = { ...layer, surface: _chunk474IQG74cjs.translateSurface.call(void 0, layer.surface, layer.offset.x, layer.offset.y), offset: { x: 0, y: 0 } };
|
|
@@ -5611,7 +5612,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5611
5612
|
const world = this.wet.ensureLane(layer.id, brush.wet.medium);
|
|
5612
5613
|
const id = layer.id;
|
|
5613
5614
|
const wetColor = init.color === void 0 ? this.color : parseColor(init.color);
|
|
5614
|
-
const [r, g, b] =
|
|
5615
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, wetColor);
|
|
5615
5616
|
const wetGradient = this.strokeGradient(init, brush, wetColor);
|
|
5616
5617
|
const load = _nullishCoalesce(init.load, () => ( brushLoadForStroke(brush, this.mixerLoad, [r / 255, g / 255, b / 255])));
|
|
5617
5618
|
const seedW = _nullishCoalesce(init.seed, () => ( _chunk3K6HWEXZcjs.mix32.call(void 0, this.seedCounter * 2654435761 >>> 0) & 2147483647));
|
|
@@ -5624,7 +5625,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5624
5625
|
load,
|
|
5625
5626
|
grain: paperGrain(doc.paper),
|
|
5626
5627
|
paperDepth: doc.paper.depth,
|
|
5627
|
-
paperColor:
|
|
5628
|
+
paperColor: _chunkGT77U7QGcjs.hexToRgb8.call(void 0, doc.paper.color),
|
|
5628
5629
|
seed: seedW,
|
|
5629
5630
|
copies: [IDENTITY_AFFINE, ...copiesW].map(affineCopy),
|
|
5630
5631
|
mask: init.maskStencils ? this.stencilSelection(init.maskStencils) : init.stencils !== false ? this.stencilSelection() : null,
|
|
@@ -5689,7 +5690,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5689
5690
|
const stroke = {
|
|
5690
5691
|
id: `s${this.strokeCounter++}`,
|
|
5691
5692
|
layerId: session.layerId,
|
|
5692
|
-
brush:
|
|
5693
|
+
brush: _chunkGT77U7QGcjs.brushToJSON.call(void 0, init.brush),
|
|
5693
5694
|
color: init.colorHex,
|
|
5694
5695
|
points: session.points.map((p) => ({ ...p })),
|
|
5695
5696
|
seed: init.seed
|
|
@@ -5895,13 +5896,13 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
5895
5896
|
let brush = v.brush;
|
|
5896
5897
|
if (options.brushId !== void 0) {
|
|
5897
5898
|
const b = this.requireBrush(options.brushId);
|
|
5898
|
-
brush =
|
|
5899
|
+
brush = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...b.tip, size: b.tip.size * (v.brush.tip.size / s.brush.tip.size) } }, b);
|
|
5899
5900
|
}
|
|
5900
5901
|
const layerId = _nullishCoalesce(options.layerId, () => ( s.layerId));
|
|
5901
5902
|
if (!_chunkDPYAO5U6cjs.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.`);
|
|
5902
5903
|
let load = s.load;
|
|
5903
5904
|
if (load && options.color !== void 0 && load.reservoir) {
|
|
5904
|
-
const [r, g, b] =
|
|
5905
|
+
const [r, g, b] = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, options.color);
|
|
5905
5906
|
load = { ...load, reservoir: [r / 255, g / 255, b / 255] };
|
|
5906
5907
|
}
|
|
5907
5908
|
const paint = v.paint && options.color === void 0 ? { paint: v.paint } : {};
|
|
@@ -6476,8 +6477,8 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6476
6477
|
const ok = list.flatMap((x) => {
|
|
6477
6478
|
if (!x || typeof x.id !== "string" || !Number.isFinite(x.x) || !Number.isFinite(x.y) || !(x.size > 0)) return [];
|
|
6478
6479
|
try {
|
|
6479
|
-
const ref2 =
|
|
6480
|
-
const stamp =
|
|
6480
|
+
const ref2 = _chunk4JNWA3VTcjs.normalizeStickerRef.call(void 0, _nullishCoalesce(x.ref, () => ( x.stamp)));
|
|
6481
|
+
const stamp = _chunk4JNWA3VTcjs.editorStampOf.call(void 0, ref2);
|
|
6481
6482
|
const { stamp: _old, ...rest } = x;
|
|
6482
6483
|
return [{ ...rest, ref: ref2, ...stamp ? { stamp } : {} }];
|
|
6483
6484
|
} catch (e4) {
|
|
@@ -6590,7 +6591,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6590
6591
|
this.viewCompositor.clear();
|
|
6591
6592
|
this.emit();
|
|
6592
6593
|
const refs = Object.values(_nullishCoalesce(this.doc.stickers, () => ( {}))).flatMap((list) => list.map((x) => x.ref));
|
|
6593
|
-
if (refs.some((r) => !
|
|
6594
|
+
if (refs.some((r) => !_chunk4JNWA3VTcjs.editorStampOf.call(void 0, r))) void this.prepareStickers(refs).catch(() => this.emit([]));
|
|
6594
6595
|
return loaded.problems;
|
|
6595
6596
|
}
|
|
6596
6597
|
/** Opens a saved document (clears the history). Returns what could not be read. */
|
|
@@ -6671,7 +6672,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6671
6672
|
return next.type === "group" ? { ...next, children: toStandard(next.children) } : next;
|
|
6672
6673
|
});
|
|
6673
6674
|
const layers = toStandard(dried);
|
|
6674
|
-
const result =
|
|
6675
|
+
const result = _chunkM2VKFE5Lcjs.exportPsd.call(void 0, { width, height, layers: [paperLayer, ...layers], merged, resolution: dpi });
|
|
6675
6676
|
for (const [mode, names] of changed) {
|
|
6676
6677
|
const label = _nullishCoalesce(_optionalChain([_chunk2VX55NFMcjs.BLEND_MODES, 'access', _418 => _418.find, 'call', _419 => _419((m) => m.id === mode), 'optionalAccess', _420 => _420.label]), () => ( mode));
|
|
6677
6678
|
const std = _nullishCoalesce(_optionalChain([_chunk2VX55NFMcjs.BLEND_MODES, 'access', _421 => _421.find, 'call', _422 => _422((m) => m.id === _chunk2VX55NFMcjs.standardBlendMode.call(void 0, mode)), 'optionalAccess', _423 => _423.label]), () => ( _chunk2VX55NFMcjs.standardBlendMode.call(void 0, mode)));
|
|
@@ -6940,7 +6941,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6940
6941
|
* ones, or a sticker whose art failed. Emits when art arrives, so views redraw.
|
|
6941
6942
|
*/
|
|
6942
6943
|
async prepareStickers(refs) {
|
|
6943
|
-
const list = [...new Set(refs.map((r) => this.readStickerRef(r)))].filter((r) => !
|
|
6944
|
+
const list = [...new Set(refs.map((r) => this.readStickerRef(r)))].filter((r) => !_chunk4JNWA3VTcjs.editorStampOf.call(void 0, r));
|
|
6944
6945
|
try {
|
|
6945
6946
|
await Promise.all(list.map((r) => this.stickerArt.ensure(this.stickers.provider, r, this.rasterizeSticker)));
|
|
6946
6947
|
} catch (e) {
|
|
@@ -6955,14 +6956,14 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6955
6956
|
}
|
|
6956
6957
|
readStickerRef(ref2) {
|
|
6957
6958
|
try {
|
|
6958
|
-
return
|
|
6959
|
+
return _chunk4JNWA3VTcjs.normalizeStickerRef.call(void 0, ref2);
|
|
6959
6960
|
} catch (e) {
|
|
6960
6961
|
throw new PaintEditorError(e.message);
|
|
6961
6962
|
}
|
|
6962
6963
|
}
|
|
6963
6964
|
/** Refuses to redraw stickers whose art has not loaded (they would vanish), naming them and what to call. */
|
|
6964
6965
|
requireStickerArt(stickers) {
|
|
6965
|
-
const missing = [...new Set(stickers.filter((s) => !
|
|
6966
|
+
const missing = [...new Set(stickers.filter((s) => !_chunkGT77U7QGcjs.stickerStamp.call(void 0, s) && !this.stickerArt.get(s.ref)).map((s) => s.ref))];
|
|
6966
6967
|
if (missing.length) {
|
|
6967
6968
|
for (const r of missing) void this.stickerArt.ensure(this.stickers.provider, r, this.rasterizeSticker).then(() => this.emit([]), () => this.emit([]));
|
|
6968
6969
|
throw new PaintEditorError(`The art for ${missing.map((r) => `"${r}"`).join(", ")} has not loaded yet; it is loading now (prepareStickers), so try again when it has.`);
|
|
@@ -6990,7 +6991,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6990
6991
|
}
|
|
6991
6992
|
redrawStickers(layer, stickers, dirty) {
|
|
6992
6993
|
const partial = dirty && !layer.offset.x && !layer.offset.y;
|
|
6993
|
-
return partial ?
|
|
6994
|
+
return partial ? _chunkGT77U7QGcjs.stickerSurface.call(void 0, stickers, layer.surface, dirty, this.stickerArt.get) : _chunkGT77U7QGcjs.stickerSurface.call(void 0, stickers, void 0, void 0, this.stickerArt.get);
|
|
6994
6995
|
}
|
|
6995
6996
|
/** The document from before the sticker preview on screen, or `null` when none is (anything else changed the document since). */
|
|
6996
6997
|
previewBase() {
|
|
@@ -6998,7 +6999,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
6998
6999
|
}
|
|
6999
7000
|
readStickerUpdate(update) {
|
|
7000
7001
|
try {
|
|
7001
|
-
return
|
|
7002
|
+
return _chunkGT77U7QGcjs.normalizeStickerUpdate.call(void 0, update);
|
|
7002
7003
|
} catch (e) {
|
|
7003
7004
|
throw new PaintEditorError(e.message);
|
|
7004
7005
|
}
|
|
@@ -7009,7 +7010,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7009
7010
|
const id = _nullishCoalesce(layerId, () => ( this.doc.activeLayerId));
|
|
7010
7011
|
if (!id) return null;
|
|
7011
7012
|
this.requireLayer(id);
|
|
7012
|
-
const hit =
|
|
7013
|
+
const hit = _chunkGT77U7QGcjs.stickerAt.call(void 0, _nullishCoalesce(_optionalChain([this, 'access', _442 => _442.doc, 'access', _443 => _443.stickers, 'optionalAccess', _444 => _444[id]]), () => ( [])), x, y, this.stickerArt.get);
|
|
7013
7014
|
return hit ? { ...hit } : null;
|
|
7014
7015
|
}
|
|
7015
7016
|
/** Picks a sticker for the panel and canvas (`null` for none). Editor state, not an undo step. */
|
|
@@ -7030,7 +7031,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7030
7031
|
if (i < 0) throw new PaintEditorError(`Layer "${layer.name}" has no sticker "${id}". Call list_stickers for the ids.`);
|
|
7031
7032
|
const next = { ...stickers[i], ...this.readStickerUpdate(update) };
|
|
7032
7033
|
const list = stickers.map((s, j) => j === i ? next : s);
|
|
7033
|
-
const dirty = [
|
|
7034
|
+
const dirty = [_chunkGT77U7QGcjs.stickerRect.call(void 0, stickers[i]), _chunkGT77U7QGcjs.stickerRect.call(void 0, next)];
|
|
7034
7035
|
const base = _nullishCoalesce(this.previewBase(), () => ( this.doc));
|
|
7035
7036
|
const surface = this.redrawStickers(layer, list, dirty);
|
|
7036
7037
|
this.doc = { ...this.doc, layers: _chunkDPYAO5U6cjs.mapLayer.call(void 0, this.doc.layers, layer.id, () => ({ ...layer, surface, offset: { x: 0, y: 0 } })), stickers: { ..._nullishCoalesce(this.doc.stickers, () => ( {})), [layer.id]: list } };
|
|
@@ -7053,7 +7054,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7053
7054
|
if (i < 0) throw new PaintEditorError(`Layer "${layer.name}" has no sticker "${id}". Call list_stickers for the ids.`);
|
|
7054
7055
|
const u = this.readStickerUpdate(update);
|
|
7055
7056
|
const next = { ...stickers[i], ...u };
|
|
7056
|
-
this.commitStickers("Edit sticker", layer, stickers.map((s, j) => j === i ? next : s), [
|
|
7057
|
+
this.commitStickers("Edit sticker", layer, stickers.map((s, j) => j === i ? next : s), [_chunkGT77U7QGcjs.stickerRect.call(void 0, stickers[i]), _chunkGT77U7QGcjs.stickerRect.call(void 0, next)]);
|
|
7057
7058
|
return { ...next };
|
|
7058
7059
|
}
|
|
7059
7060
|
/**
|
|
@@ -7083,7 +7084,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7083
7084
|
const id = n++;
|
|
7084
7085
|
return { id: `st${id}`, size: 48, rotation: 0, color: this.color, opacity: 1, seed: _nullishCoalesce(raw.seed, () => ( _chunk3K6HWEXZcjs.mix32.call(void 0, id * 2654435761 >>> 0) & 2147483647)), ...u };
|
|
7085
7086
|
});
|
|
7086
|
-
this.commitStickers("Add stickers", layer, [..._nullishCoalesce(existing, () => ( [])), ...added], _optionalChain([existing, 'optionalAccess', _449 => _449.length]) ? added.map(
|
|
7087
|
+
this.commitStickers("Add stickers", layer, [..._nullishCoalesce(existing, () => ( [])), ...added], _optionalChain([existing, 'optionalAccess', _449 => _449.length]) ? added.map(_chunkGT77U7QGcjs.stickerRect) : void 0);
|
|
7087
7088
|
return added.map((s) => ({ ...s }));
|
|
7088
7089
|
}
|
|
7089
7090
|
/** Brings stickers to the top (`front`) or bottom of their layer (one undo step). */
|
|
@@ -7093,7 +7094,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7093
7094
|
const picked = stickers.filter((s) => ids.includes(s.id));
|
|
7094
7095
|
const rest = stickers.filter((s) => !ids.includes(s.id));
|
|
7095
7096
|
const next = to === "front" ? [...rest, ...picked] : [...picked, ...rest];
|
|
7096
|
-
this.commitStickers("Arrange stickers", layer, next, picked.map(
|
|
7097
|
+
this.commitStickers("Arrange stickers", layer, next, picked.map(_chunkGT77U7QGcjs.stickerRect));
|
|
7097
7098
|
return next.map((s) => s.id);
|
|
7098
7099
|
}
|
|
7099
7100
|
/** Deletes stickers (`ids`, or all of them on the layer) (one undo step). Returns the ids removed. */
|
|
@@ -7103,7 +7104,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7103
7104
|
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.`);
|
|
7104
7105
|
}
|
|
7105
7106
|
const removed = ids ? [...ids] : stickers.map((s) => s.id);
|
|
7106
|
-
this.commitStickers("Remove stickers", layer, stickers.filter((s) => !removed.includes(s.id)), ids ? stickers.filter((s) => removed.includes(s.id)).map(
|
|
7107
|
+
this.commitStickers("Remove stickers", layer, stickers.filter((s) => !removed.includes(s.id)), ids ? stickers.filter((s) => removed.includes(s.id)).map(_chunkGT77U7QGcjs.stickerRect) : void 0);
|
|
7107
7108
|
return removed;
|
|
7108
7109
|
}
|
|
7109
7110
|
/** Sets a layer's stickers (replays). */
|
|
@@ -7168,15 +7169,15 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7168
7169
|
let brush = was.brush;
|
|
7169
7170
|
if (update.brushId !== void 0) {
|
|
7170
7171
|
const b = this.requireBrush(update.brushId);
|
|
7171
|
-
brush =
|
|
7172
|
+
brush = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { tip: { ...b.tip, size: was.brush.tip.size } }, b);
|
|
7172
7173
|
}
|
|
7173
7174
|
if (update.brush !== void 0) {
|
|
7174
7175
|
if (!update.brush || typeof update.brush !== "object") throw new PaintEditorError("brush must be an object of brush settings (as set_brush takes).");
|
|
7175
|
-
brush =
|
|
7176
|
+
brush = _chunkGT77U7QGcjs.normalizePaintBrush.call(void 0, { ...update.brush, id: brush.id }, brush);
|
|
7176
7177
|
}
|
|
7177
7178
|
const why = liveStrokeRefusal(brush);
|
|
7178
7179
|
if (why) throw new PaintEditorError(why);
|
|
7179
|
-
const next = { ...was, brush:
|
|
7180
|
+
const next = { ...was, brush: _chunkGT77U7QGcjs.brushToJSON.call(void 0, brush) };
|
|
7180
7181
|
if (update.seed !== void 0) {
|
|
7181
7182
|
if (!Number.isInteger(update.seed) || update.seed < 0) throw new PaintEditorError(`seed ${update.seed} must be a whole number of 0 or more.`);
|
|
7182
7183
|
next.seed = update.seed;
|
|
@@ -7187,7 +7188,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7187
7188
|
}
|
|
7188
7189
|
if (update.paint !== void 0) {
|
|
7189
7190
|
if (update.paint === null) delete next.paint;
|
|
7190
|
-
else if (
|
|
7191
|
+
else if (_chunkGT77U7QGcjs.isPaintEffectPaint.call(void 0, update.paint)) {
|
|
7191
7192
|
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).`);
|
|
7192
7193
|
next.paint = JSON.parse(JSON.stringify(update.paint));
|
|
7193
7194
|
} else {
|
|
@@ -7198,7 +7199,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7198
7199
|
} else next.paint = JSON.parse(JSON.stringify(p));
|
|
7199
7200
|
}
|
|
7200
7201
|
}
|
|
7201
|
-
const rgb =
|
|
7202
|
+
const rgb = _chunkGT77U7QGcjs.hexToRgb8.call(void 0, next.color).map((v) => v / 255);
|
|
7202
7203
|
const load = brushLoadForStroke(brush, _chunkI7NJPHWVcjs.EMPTY_MIXER_LOAD, rgb);
|
|
7203
7204
|
if (load.reservoir || load.pickup) next.load = load;
|
|
7204
7205
|
else delete next.load;
|
|
@@ -7405,7 +7406,7 @@ var PaintEditorController = (_class12 = class _PaintEditorController {
|
|
|
7405
7406
|
const live = strokes.filter(isLiveEffect);
|
|
7406
7407
|
if (!isPixelLayer(layer) || !live.length) continue;
|
|
7407
7408
|
layers.push({ layer, strokes });
|
|
7408
|
-
for (const st of live) sources.set(
|
|
7409
|
+
for (const st of live) sources.set(_chunkGT77U7QGcjs.effectPaintKey.call(void 0, st.paint), st.paint);
|
|
7409
7410
|
}
|
|
7410
7411
|
return { layers, sources: [...sources.values()] };
|
|
7411
7412
|
}
|
|
@@ -8178,7 +8179,7 @@ function createPaintStickerTools(c) {
|
|
|
8178
8179
|
type: "object",
|
|
8179
8180
|
properties: {
|
|
8180
8181
|
ref: { type: "string", minLength: 1, description: "The sticker: a ref provider:id from find_stickers (e.g. editor:star). Give ref or stamp." },
|
|
8181
|
-
stamp: { type: "string", enum: [...
|
|
8182
|
+
stamp: { type: "string", enum: [..._chunk4JNWA3VTcjs.STAMP_KINDS], description: "Older form: an editor stamp (same as ref editor:<stamp>)." },
|
|
8182
8183
|
x: { type: "number", description: "Centre x in document pixels." },
|
|
8183
8184
|
y: { type: "number", description: "Centre y in document pixels." },
|
|
8184
8185
|
size: { type: "number", minimum: 2, maximum: 2048, description: "Diameter in pixels (default 48)." },
|
|
@@ -8216,7 +8217,7 @@ function createPaintStickerTools(c) {
|
|
|
8216
8217
|
layerId: LAYER_ID,
|
|
8217
8218
|
id: { type: "string", description: "Sticker id from list_stickers." },
|
|
8218
8219
|
ref: { type: "string", minLength: 1, description: "Another sticker: a ref provider:id from find_stickers." },
|
|
8219
|
-
stamp: { type: "string", enum: [...
|
|
8220
|
+
stamp: { type: "string", enum: [..._chunk4JNWA3VTcjs.STAMP_KINDS], description: "Older form: another editor stamp (same as ref editor:<stamp>)." },
|
|
8220
8221
|
x: { type: "number", description: "Centre x in document pixels." },
|
|
8221
8222
|
y: { type: "number", description: "Centre y in document pixels." },
|
|
8222
8223
|
size: { type: "number", minimum: 2, maximum: 2048, description: "Diameter in pixels." },
|
|
@@ -9137,7 +9138,7 @@ var BEHAVIOR = {
|
|
|
9137
9138
|
type: "object",
|
|
9138
9139
|
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.",
|
|
9139
9140
|
properties: {
|
|
9140
|
-
mode: { type: "string", enum: [...
|
|
9141
|
+
mode: { type: "string", enum: [..._chunkGT77U7QGcjs.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." },
|
|
9141
9142
|
colors: { type: "array", maxItems: 8, items: { ...COLOR3 }, description: "2..8 colours #rrggbb; fewer than 2 uses the paint colour and the secondary colour." },
|
|
9142
9143
|
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)." },
|
|
9143
9144
|
length: { type: "integer", minimum: 1, maximum: 500, description: "dab mode: dabs per colour (default 12)." },
|
|
@@ -9178,10 +9179,10 @@ var WET_BRUSH = {
|
|
|
9178
9179
|
properties: {
|
|
9179
9180
|
tool: {
|
|
9180
9181
|
type: "string",
|
|
9181
|
-
enum: [...
|
|
9182
|
+
enum: [..._chunkGT77U7QGcjs.WET_TOOLS],
|
|
9182
9183
|
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)."
|
|
9183
9184
|
},
|
|
9184
|
-
medium: { type: "string", enum: [...
|
|
9185
|
+
medium: { type: "string", enum: [..._chunkGT77U7QGcjs.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)." },
|
|
9185
9186
|
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)." },
|
|
9186
9187
|
thinner: { type: "number", minimum: 0, maximum: 1, description: "Thinner (water or solvent): more transparent, runnier paint." },
|
|
9187
9188
|
water: { type: "number", minimum: 0, maximum: 1, description: "Wetness: water laid per stroke, 0.2 a damp brush .. 1 a dripping one." },
|
|
@@ -9198,7 +9199,7 @@ var IMPASTO_BRUSH = {
|
|
|
9198
9199
|
properties: {
|
|
9199
9200
|
tool: {
|
|
9200
9201
|
type: "string",
|
|
9201
|
-
enum: [...
|
|
9202
|
+
enum: [..._chunkGT77U7QGcjs.IMPASTO_TOOLS],
|
|
9202
9203
|
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."
|
|
9203
9204
|
},
|
|
9204
9205
|
thickness: { type: "number", minimum: 0, maximum: 1, description: "How far the paint stands up." },
|
|
@@ -9227,12 +9228,12 @@ var PARTICLE_BRUSH = {
|
|
|
9227
9228
|
properties: {
|
|
9228
9229
|
kind: {
|
|
9229
9230
|
type: "string",
|
|
9230
|
-
enum: [...
|
|
9231
|
+
enum: [..._chunkGT77U7QGcjs.PARTICLE_KINDS],
|
|
9231
9232
|
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; elastic: strands whose links keep a rest length, stretching when the pen is fast and snapping back; fuzzy: winding strings, each strand waving out of step with the others (always waves by at least 0.12 of the tip size)."
|
|
9232
9233
|
},
|
|
9233
9234
|
render: {
|
|
9234
9235
|
type: "string",
|
|
9235
|
-
enum: [...
|
|
9236
|
+
enum: [..._chunkGT77U7QGcjs.PARTICLE_RENDERS],
|
|
9236
9237
|
description: "dot: a mark at each step (round, or dotTextures); line: each particle draws a continuous line; sequence: beads spaced along each path (round, or dotTextures); ribbon: the band between neighbouring particles' paths filled (ribbonFill), with the paths drawn as its edges at the mark size (flame, silk, smoke)."
|
|
9237
9238
|
},
|
|
9238
9239
|
count: { type: "integer", minimum: 1, maximum: 64, description: "Particles (flow: how many are thrown per tip of travel)." },
|
|
@@ -9245,19 +9246,19 @@ var PARTICLE_BRUSH = {
|
|
|
9245
9246
|
life: { type: "number", minimum: 0, maximum: 1, description: "Flow particles: how long they live." },
|
|
9246
9247
|
interval: { type: "number", minimum: 0, maximum: 1, description: "Sequence: spacing of the beads." },
|
|
9247
9248
|
ribbonFill: { type: "number", minimum: 0, maximum: 1, description: "Ribbon: opacity of the fill between the paths, relative to their edges (default 0.5; 0 draws only the edges)." },
|
|
9248
|
-
ribbonPairs: { type: "string", enum: [...
|
|
9249
|
+
ribbonPairs: { type: "string", enum: [..._chunkGT77U7QGcjs.RIBBON_PAIRS], description: "Ribbon: adjacent (default) joins each particle to its neighbour around the pen; first-last makes one band between the outermost two." },
|
|
9249
9250
|
waveAmplitude: { type: "number", minimum: 0, maximum: 1, description: "Wave: how far each particle's drawn place swings sideways to the stroke, as a fraction of the tip size (default 0: no wave). Works with every kind and render." },
|
|
9250
9251
|
waveLength: { type: "number", minimum: 4, maximum: 2e3, description: "Wave: wavelength in px of pen travel (default 60)." },
|
|
9251
9252
|
waveSpeed: { type: "number", minimum: 0, maximum: 1, description: "Wave: how fast the waves run, by stroke time (0 default: they stand still on the path; 1: about four a second, so slow strokes wave more). Strokes without times run at a nominal 0.5 px/ms." },
|
|
9252
9253
|
wavePhaseJitter: { type: "number", minimum: 0, maximum: 1, description: "Wave: how far out of step the particles' waves are (default 0: all in step, a wavy band; 1: random phases, tangled strands)." },
|
|
9253
9254
|
dotTextures: {
|
|
9254
9255
|
type: "array",
|
|
9255
|
-
maxItems:
|
|
9256
|
-
items: { type: "string", enum: [...
|
|
9257
|
-
description: `Dot and sequence renders: up to ${
|
|
9256
|
+
maxItems: _chunkGT77U7QGcjs.MAX_DOT_TEXTURES,
|
|
9257
|
+
items: { type: "string", enum: [..._chunk4JNWA3VTcjs.STAMP_KINDS], description: "A stamp." },
|
|
9258
|
+
description: `Dot and sequence renders: up to ${_chunkGT77U7QGcjs.MAX_DOT_TEXTURES} sticker stamps (list_stickers) drawn instead of round marks; repeats are allowed (they weight the order). Empty (default): round marks.`
|
|
9258
9259
|
},
|
|
9259
|
-
dotTextureOrder: { type: "string", enum: [...
|
|
9260
|
-
dotRotation: { type: "string", enum: [...
|
|
9260
|
+
dotTextureOrder: { type: "string", enum: [..._chunkGT77U7QGcjs.DOT_TEXTURE_ORDERS], description: "Textured dots: sequence (default) uses the stamps in turn; random picks one per dot (seeded, so replays are exact)." },
|
|
9261
|
+
dotRotation: { type: "string", enum: [..._chunkGT77U7QGcjs.DOT_ROTATIONS], description: "Textured dots: follow turns each with its particle's motion; random (default) turns each at random; fixed uses the tip angle." }
|
|
9261
9262
|
},
|
|
9262
9263
|
additionalProperties: false
|
|
9263
9264
|
};
|
|
@@ -9281,9 +9282,9 @@ var STICKER_BRUSH = {
|
|
|
9281
9282
|
stamps: {
|
|
9282
9283
|
type: "array",
|
|
9283
9284
|
minItems: 1,
|
|
9284
|
-
maxItems:
|
|
9285
|
+
maxItems: _chunkGT77U7QGcjs.MAX_STICKER_STAMPS,
|
|
9285
9286
|
items: { type: "string", minLength: 1, description: "A sticker ref provider:id from find_stickers (e.g. editor:star); a bare editor stamp (star) means editor:star." },
|
|
9286
|
-
description: `The stickers to spray, one picked at random per sticker: refs from find_stickers (the editor's own: ${
|
|
9287
|
+
description: `The stickers to spray, one picked at random per sticker: refs from find_stickers (the editor's own: ${_chunk4JNWA3VTcjs.STAMP_KINDS.map((k) => `editor:${k}`).join(", ")}). Each is checked against the sticker library and an unknown ref is refused with the closest ones. A provider's sticker is drawn from its art (tinted to the paint colour when tintable), loaded before the stroke.`
|
|
9287
9288
|
},
|
|
9288
9289
|
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." },
|
|
9289
9290
|
sizeJitter: { type: "number", minimum: 0, maximum: 1, description: "Random size change." },
|
|
@@ -9295,16 +9296,16 @@ var STICKER_BRUSH = {
|
|
|
9295
9296
|
};
|
|
9296
9297
|
var BRUSH_FIELDS = {
|
|
9297
9298
|
name: { type: "string", minLength: 1, maxLength: 80, description: "Display name." },
|
|
9298
|
-
category: { type: "string", enum: [...
|
|
9299
|
+
category: { type: "string", enum: [..._chunkGT77U7QGcjs.PAINT_BRUSH_CATEGORIES], description: "Library category." },
|
|
9299
9300
|
engine: {
|
|
9300
9301
|
type: "string",
|
|
9301
|
-
enum: [...
|
|
9302
|
+
enum: [..._chunkGT77U7QGcjs.PAINT_BRUSH_ENGINES],
|
|
9302
9303
|
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)."
|
|
9303
9304
|
},
|
|
9304
9305
|
tip: TIP,
|
|
9305
9306
|
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." },
|
|
9306
9307
|
pressureSmoothing: { type: "number", minimum: 0, maximum: 0.95, description: "Pressure smoothing, separate from the tip position smoothing." },
|
|
9307
|
-
rotation: { type: "string", enum: [...
|
|
9308
|
+
rotation: { type: "string", enum: [..._chunkGT77U7QGcjs.BRUSH_ROTATIONS], description: "What turns the tip: fixed (tip.angle), stroke (follows the direction of travel) or barrel (the pen barrel rotation, twist)." },
|
|
9308
9309
|
dynamics: DYNAMICS,
|
|
9309
9310
|
mixer: MIXER,
|
|
9310
9311
|
loadsColor: { type: "boolean", description: "Mixer engine: load the colour each stroke (false for a mixer that only moves paint)." },
|
|
@@ -9356,7 +9357,7 @@ function brushSummary(b) {
|
|
|
9356
9357
|
size: b.tip.size,
|
|
9357
9358
|
grain: b.grain,
|
|
9358
9359
|
rotation: b.rotation,
|
|
9359
|
-
wetCapable:
|
|
9360
|
+
wetCapable: _chunkGT77U7QGcjs.isWetCapable.call(void 0, b),
|
|
9360
9361
|
pickup: b.behavior.pickup,
|
|
9361
9362
|
dirty: b.behavior.dirty,
|
|
9362
9363
|
multicolor: b.behavior.multicolor.mode,
|
|
@@ -9465,8 +9466,8 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9465
9466
|
inputSchema: EMPTY3,
|
|
9466
9467
|
annotations: { title: "List papers", ...READ6 },
|
|
9467
9468
|
handler: () => ({
|
|
9468
|
-
papers:
|
|
9469
|
-
families: [...
|
|
9469
|
+
papers: _chunkGT77U7QGcjs.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 })),
|
|
9470
|
+
families: [..._chunkGT77U7QGcjs.PAPER_FAMILIES],
|
|
9470
9471
|
patterns: [..._chunkI7NJPHWVcjs.GRAIN_PATTERNS]
|
|
9471
9472
|
})
|
|
9472
9473
|
});
|
|
@@ -9699,10 +9700,10 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9699
9700
|
annotations: { title: "Get a brush", ...READ6 },
|
|
9700
9701
|
handler: ({ id }) => {
|
|
9701
9702
|
const st = c.getState();
|
|
9702
|
-
if (id === void 0) return { ...
|
|
9703
|
+
if (id === void 0) return { ..._chunkGT77U7QGcjs.brushToJSON.call(void 0, st.brush), strokePaint: _nullishCoalesce(st.brush.paint, () => ( st.paint)) };
|
|
9703
9704
|
const b = c.getBrush(id);
|
|
9704
9705
|
if (!b) throw new Error(`Unknown brush "${id}". Call list_brushes for the ids.`);
|
|
9705
|
-
return { ...
|
|
9706
|
+
return { ..._chunkGT77U7QGcjs.brushToJSON.call(void 0, b), builtin: Boolean(b.builtin), strokePaint: _nullishCoalesce(b.paint, () => ( st.paint)) };
|
|
9706
9707
|
}
|
|
9707
9708
|
});
|
|
9708
9709
|
add({
|
|
@@ -9714,7 +9715,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9714
9715
|
handler: async (a) => {
|
|
9715
9716
|
const stamps = _optionalChain([a, 'access', _502 => _502.sticker, 'optionalAccess', _503 => _503.stamps]);
|
|
9716
9717
|
if (stamps) await c.prepareStickers(stamps);
|
|
9717
|
-
return
|
|
9718
|
+
return _chunkGT77U7QGcjs.brushToJSON.call(void 0, c.setBrush(a));
|
|
9718
9719
|
}
|
|
9719
9720
|
});
|
|
9720
9721
|
add({
|
|
@@ -9731,7 +9732,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
9731
9732
|
additionalProperties: false
|
|
9732
9733
|
},
|
|
9733
9734
|
annotations: { title: "Save a brush", ...SET4 },
|
|
9734
|
-
handler: ({ id, name }) =>
|
|
9735
|
+
handler: ({ id, name }) => _chunkGT77U7QGcjs.brushToJSON.call(void 0, c.saveBrush({ id, name }))
|
|
9735
9736
|
});
|
|
9736
9737
|
add({
|
|
9737
9738
|
name: "remove_brush",
|
|
@@ -10202,9 +10203,9 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
10202
10203
|
tools.push(...createPaintReplayTools(c));
|
|
10203
10204
|
tools.push(...createPaintStickerTools(c));
|
|
10204
10205
|
tools.push(..._chunkKBYB7OWBcjs.createPigmentTools.call(void 0, ));
|
|
10205
|
-
tools.push(...
|
|
10206
|
+
tools.push(..._chunk4JNWA3VTcjs.createStickerTools.call(void 0, { provider: () => c.stickersProvider }));
|
|
10206
10207
|
tools.push(
|
|
10207
|
-
...
|
|
10208
|
+
..._chunkM2VKFE5Lcjs.createLayerEffectTools.call(void 0,
|
|
10208
10209
|
{
|
|
10209
10210
|
requireLayer: (id) => void c.getLayerEffects(id),
|
|
10210
10211
|
getLayerEffects: (id) => c.getLayerEffects(id),
|
|
@@ -10914,7 +10915,7 @@ var DOT_ROTATION_LABELS = { follow: "Follow motion", random: "Random", fixed: "T
|
|
|
10914
10915
|
var STAMP_LABELS = { dot: "Dot", star: "Star", heart: "Heart", leaf: "Leaf", flower: "Flower", confetti: "Confetti", splat: "Splat", sparkle: "Sparkle", ring: "Ring" };
|
|
10915
10916
|
function toggleStickerRef(refs, ref2) {
|
|
10916
10917
|
if (refs.includes(ref2)) return refs.length > 1 ? refs.filter((r) => r !== ref2) : [...refs];
|
|
10917
|
-
return refs.length <
|
|
10918
|
+
return refs.length < _chunkGT77U7QGcjs.MAX_STICKER_STAMPS ? [...refs, ref2] : [...refs];
|
|
10918
10919
|
}
|
|
10919
10920
|
function stickerRefLabel(ref2) {
|
|
10920
10921
|
const stamp = ref2.startsWith("editor:") ? ref2.slice(7) : null;
|
|
@@ -10927,7 +10928,7 @@ function toggleStamp(stamps, stamp) {
|
|
|
10927
10928
|
}
|
|
10928
10929
|
function toggleDotTexture(textures, stamp) {
|
|
10929
10930
|
if (textures.includes(stamp)) return textures.filter((s) => s !== stamp);
|
|
10930
|
-
return textures.length <
|
|
10931
|
+
return textures.length < _chunkGT77U7QGcjs.MAX_DOT_TEXTURES ? [...textures, stamp] : [...textures];
|
|
10931
10932
|
}
|
|
10932
10933
|
var STROKE_SLIDERS = [
|
|
10933
10934
|
{ path: "tip.size", label: "Size", min: 1, max: 400, step: 1 },
|
|
@@ -10998,7 +10999,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
10998
10999
|
if (changes.enabled !== void 0) throw new Error("enabled does not apply here: hide an effect layer with update_layer visible false, or remove the effect paper.");
|
|
10999
11000
|
};
|
|
11000
11001
|
const values = (v) => v;
|
|
11001
|
-
return withPaintPlayback(
|
|
11002
|
+
return withPaintPlayback(_chunkISIO63Q5cjs.createEffectToolProvider.call(void 0, {
|
|
11002
11003
|
id: _nullishCoalesce(options.id, () => ( "paint-effects")),
|
|
11003
11004
|
namespace: options.namespace,
|
|
11004
11005
|
title: "Paint effects",
|
|
@@ -11568,4 +11569,4 @@ function createPaintEditorDocument(controller, options = {}) {
|
|
|
11568
11569
|
|
|
11569
11570
|
|
|
11570
11571
|
|
|
11571
|
-
exports.BACKLIGHT_SPILL = BACKLIGHT_SPILL; exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunk2VX55NFMcjs.BLEND_MODES; exports.BRUSH_ID = _chunkH4AOUUBEcjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunkH4AOUUBEcjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunkH4AOUUBEcjs.BUILTIN_BRUSHES; exports.BristleStroke = _chunkH4AOUUBEcjs.BristleStroke; exports.DEFAULT_BACKLIGHT_COLOR = DEFAULT_BACKLIGHT_COLOR; exports.DEFAULT_BEHAVIOR = _chunkH4AOUUBEcjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunkH4AOUUBEcjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunkH4AOUUBEcjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunkH4AOUUBEcjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkKBYB7OWBcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunkH4AOUUBEcjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHT = _chunkH4AOUUBEcjs.DEFAULT_LIGHT; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunkH4AOUUBEcjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkI7NJPHWVcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkI7NJPHWVcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = _chunkH4AOUUBEcjs.DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunkH4AOUUBEcjs.DEFAULT_PARTICLE; exports.DEFAULT_STICKER = _chunkH4AOUUBEcjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunkH4AOUUBEcjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkKBYB7OWBcjs.DEFAULT_WET_PARAMS; exports.DOT_ROTATIONS = _chunkH4AOUUBEcjs.DOT_ROTATIONS; exports.DOT_ROTATION_LABELS = DOT_ROTATION_LABELS; exports.DOT_TEXTURE_ORDERS = _chunkH4AOUUBEcjs.DOT_TEXTURE_ORDERS; exports.DOT_TEXTURE_ORDER_LABELS = DOT_TEXTURE_ORDER_LABELS; exports.DryStroke = _chunkH4AOUUBEcjs.DryStroke; exports.EFFECT_MAP_REPEATS = _chunkH4AOUUBEcjs.EFFECT_MAP_REPEATS; exports.EFFECT_STRIP_HEIGHT = _chunkH4AOUUBEcjs.EFFECT_STRIP_HEIGHT; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkI7NJPHWVcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkI7NJPHWVcjs.GRAIN_TILE; exports.HARMONY_KINDS = _chunk7PT4RJL5cjs.HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = _chunkH4AOUUBEcjs.IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunkH4AOUUBEcjs.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 = _chunkI7NJPHWVcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_DOT_TEXTURES = _chunkH4AOUUBEcjs.MAX_DOT_TEXTURES; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; exports.MAX_LIVE_EFFECT_SOURCES = MAX_LIVE_EFFECT_SOURCES; exports.MAX_STICKER_STAMPS = _chunkH4AOUUBEcjs.MAX_STICKER_STAMPS; 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 = _chunkH4AOUUBEcjs.MULTI_COLOR_MODES; exports.MixingPad = MixingPad; exports.PAD_SAMPLE_SIZES = PAD_SAMPLE_SIZES; exports.PAINTERLY_BLEND_MODES = _chunk2VX55NFMcjs.PAINTERLY_BLEND_MODES; exports.PAINT_BRUSH_CATEGORIES = _chunkH4AOUUBEcjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunkH4AOUUBEcjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkI7NJPHWVcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkI7NJPHWVcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkI7NJPHWVcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkI7NJPHWVcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkI7NJPHWVcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkI7NJPHWVcjs.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 = _chunkH4AOUUBEcjs.PAPER_FAMILIES; exports.PAPER_LIBRARY = _chunkH4AOUUBEcjs.PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunkH4AOUUBEcjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunkH4AOUUBEcjs.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 = _chunkI7NJPHWVcjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkI7NJPHWVcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkI7NJPHWVcjs.PaperGrain; exports.ParticleStroke = _chunkH4AOUUBEcjs.ParticleStroke; exports.PenDabWalker = _chunkH4AOUUBEcjs.PenDabWalker; exports.PenSmoother = _chunkH4AOUUBEcjs.PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.RIBBON_PAIRS = _chunkH4AOUUBEcjs.RIBBON_PAIRS; exports.RIBBON_PAIR_LABELS = RIBBON_PAIR_LABELS; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunkZEYMKDYScjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_ART_SIZE = _chunkH4AOUUBEcjs.STICKER_ART_SIZE; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.STROKE_SLIDERS = STROKE_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerArtCache = _chunkH4AOUUBEcjs.StickerArtCache; exports.StickerBrowser = _chunkLJRCU3BJcjs.StickerBrowser; exports.StickerSpray = _chunkH4AOUUBEcjs.StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkKBYB7OWBcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunkH4AOUUBEcjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkKBYB7OWBcjs.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 = _chunkH4AOUUBEcjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkI7NJPHWVcjs.addPaintGradientStop; exports.addPolygonArea = _chunkH4AOUUBEcjs.addPolygonArea; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.backlightOf = backlightOf; exports.brushEngineControls = brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunkH4AOUUBEcjs.brushTakesPaint; exports.brushToJSON = _chunkH4AOUUBEcjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = _chunkH4AOUUBEcjs.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.defaultStickerRasterizer = _chunkH4AOUUBEcjs.defaultStickerRasterizer; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = _chunkH4AOUUBEcjs.drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectDabField = _chunkH4AOUUBEcjs.effectDabField; exports.effectLayersToJSON = effectLayersToJSON; exports.effectPaintKey = _chunkH4AOUUBEcjs.effectPaintKey; exports.effectPaintSize = _chunkH4AOUUBEcjs.effectPaintSize; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkI7NJPHWVcjs.grainCatch; exports.grainHeights = _chunkI7NJPHWVcjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.hexToPaintRgb = _chunkI7NJPHWVcjs.hexToPaintRgb; exports.hexToRgb8 = _chunkH4AOUUBEcjs.hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = _chunk7PT4RJL5cjs.hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunk2VX55NFMcjs.isBlendMode; exports.isGradientPaint = _chunkI7NJPHWVcjs.isGradientPaint; exports.isPaintEffectPaint = _chunkH4AOUUBEcjs.isPaintEffectPaint; exports.isPainterlyBlendMode = _chunk2VX55NFMcjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunkH4AOUUBEcjs.isWetBrush; exports.isWetCapable = _chunkH4AOUUBEcjs.isWetCapable; exports.lightTile = lightTile; exports.lightingKey = lightingKey; exports.liveStrokeBounds = liveStrokeBounds; exports.liveStrokeRefusal = liveStrokeRefusal; exports.mapPenPoint = mapPenPoint; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPixels = mixPixels; exports.mixerLoadForStroke = mixerLoadForStroke; exports.mixerTip = _chunkH4AOUUBEcjs.mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = multiColorSliders; exports.multiColorToPaint = _chunkH4AOUUBEcjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunkH4AOUUBEcjs.normalizeBehavior; exports.normalizeBristle = _chunkH4AOUUBEcjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunkH4AOUUBEcjs.normalizeDynamics; exports.normalizeFlow = _chunkKBYB7OWBcjs.normalizeFlow; exports.normalizeHexColor = _chunkI7NJPHWVcjs.normalizeHexColor; exports.normalizeImpasto = _chunkH4AOUUBEcjs.normalizeImpasto; exports.normalizeLight = _chunkH4AOUUBEcjs.normalizeLight; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunkH4AOUUBEcjs.normalizeMultiColor; exports.normalizePaintBrush = _chunkH4AOUUBEcjs.normalizePaintBrush; exports.normalizePaper = _chunkH4AOUUBEcjs.normalizePaper; exports.normalizeParticle = _chunkH4AOUUBEcjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunkH4AOUUBEcjs.normalizeStickerSettings; exports.normalizeStickerUpdate = _chunkH4AOUUBEcjs.normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunkH4AOUUBEcjs.normalizeWetBrush; exports.normalizeWetParams = _chunkKBYB7OWBcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintGradientMappingFor = _chunkI7NJPHWVcjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintSourceColor = _chunkI7NJPHWVcjs.paintSourceColor; exports.paintSourceCss = _chunkI7NJPHWVcjs.paintSourceCss; exports.paintToMultiColor = _chunkH4AOUUBEcjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = _chunkH4AOUUBEcjs.paperPreset; exports.parseBrushLibrary = _chunkH4AOUUBEcjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkI7NJPHWVcjs.parsePaintSource; exports.patchBrushValue = patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = _chunkH4AOUUBEcjs.penOrientation; exports.perspectiveDirections = perspectiveDirections; exports.perspectiveGuideLines = perspectiveGuideLines; exports.planPaintToolPlayback = planPaintToolPlayback; exports.pointerToPenPoint = pointerToPenPoint; exports.quickStencil = quickStencil; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.readEffectStrokeMap = _chunkH4AOUUBEcjs.readEffectStrokeMap; exports.readPaintEffectPaint = _chunkH4AOUUBEcjs.readPaintEffectPaint; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkI7NJPHWVcjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkI7NJPHWVcjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = _chunkH4AOUUBEcjs.renderPaper; exports.renderStickers = _chunkH4AOUUBEcjs.renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkI7NJPHWVcjs.resolvePaintGradient; exports.reversePaintGradient = _chunkI7NJPHWVcjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.sampleArt = _chunkH4AOUUBEcjs.sampleArt; exports.sampleEffectAt = _chunkH4AOUUBEcjs.sampleEffectAt; exports.sampleEffectField = _chunkH4AOUUBEcjs.sampleEffectField; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkI7NJPHWVcjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkI7NJPHWVcjs.solidPaint; exports.stampCoverage = _chunkZEYMKDYScjs.stampCoverage; exports.standardBlendMode = _chunk2VX55NFMcjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerAt = _chunkH4AOUUBEcjs.stickerAt; exports.stickerRect = _chunkH4AOUUBEcjs.stickerRect; exports.stickerRefLabel = stickerRefLabel; exports.stickerStamp = _chunkH4AOUUBEcjs.stickerStamp; exports.stickerSurface = _chunkH4AOUUBEcjs.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 = _chunkH4AOUUBEcjs.tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = _chunkH4AOUUBEcjs.toStrokePoint; exports.toggleDotTexture = toggleDotTexture; exports.toggleStamp = toggleStamp; exports.toggleStickerRef = toggleStickerRef; exports.translateStencil = translateStencil; exports.updatePaintGradientStop = _chunkI7NJPHWVcjs.updatePaintGradientStop; exports.usesPaintExchange = _chunkH4AOUUBEcjs.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 = _chunkKBYB7OWBcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = _chunk7PT4RJL5cjs.wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|
|
11572
|
+
exports.BACKLIGHT_SPILL = BACKLIGHT_SPILL; exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunk2VX55NFMcjs.BLEND_MODES; exports.BRUSH_ID = _chunkGT77U7QGcjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunkGT77U7QGcjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunkGT77U7QGcjs.BUILTIN_BRUSHES; exports.BristleStroke = _chunkGT77U7QGcjs.BristleStroke; exports.DEFAULT_BACKLIGHT_COLOR = DEFAULT_BACKLIGHT_COLOR; exports.DEFAULT_BEHAVIOR = _chunkGT77U7QGcjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunkGT77U7QGcjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunkGT77U7QGcjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunkGT77U7QGcjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkKBYB7OWBcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunkGT77U7QGcjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHT = _chunkGT77U7QGcjs.DEFAULT_LIGHT; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunkGT77U7QGcjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkI7NJPHWVcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkI7NJPHWVcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = _chunkGT77U7QGcjs.DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunkGT77U7QGcjs.DEFAULT_PARTICLE; exports.DEFAULT_STICKER = _chunkGT77U7QGcjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunkGT77U7QGcjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkKBYB7OWBcjs.DEFAULT_WET_PARAMS; exports.DOT_ROTATIONS = _chunkGT77U7QGcjs.DOT_ROTATIONS; exports.DOT_ROTATION_LABELS = DOT_ROTATION_LABELS; exports.DOT_TEXTURE_ORDERS = _chunkGT77U7QGcjs.DOT_TEXTURE_ORDERS; exports.DOT_TEXTURE_ORDER_LABELS = DOT_TEXTURE_ORDER_LABELS; exports.DryStroke = _chunkGT77U7QGcjs.DryStroke; exports.EFFECT_MAP_REPEATS = _chunkGT77U7QGcjs.EFFECT_MAP_REPEATS; exports.EFFECT_STRIP_HEIGHT = _chunkGT77U7QGcjs.EFFECT_STRIP_HEIGHT; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkI7NJPHWVcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkI7NJPHWVcjs.GRAIN_TILE; exports.HARMONY_KINDS = _chunk7PT4RJL5cjs.HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = _chunkGT77U7QGcjs.IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunkGT77U7QGcjs.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 = _chunkI7NJPHWVcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_DOT_TEXTURES = _chunkGT77U7QGcjs.MAX_DOT_TEXTURES; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; exports.MAX_LIVE_EFFECT_SOURCES = MAX_LIVE_EFFECT_SOURCES; exports.MAX_STICKER_STAMPS = _chunkGT77U7QGcjs.MAX_STICKER_STAMPS; 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 = _chunkGT77U7QGcjs.MULTI_COLOR_MODES; exports.MixingPad = MixingPad; exports.PAD_SAMPLE_SIZES = PAD_SAMPLE_SIZES; exports.PAINTERLY_BLEND_MODES = _chunk2VX55NFMcjs.PAINTERLY_BLEND_MODES; exports.PAINT_BRUSH_CATEGORIES = _chunkGT77U7QGcjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunkGT77U7QGcjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkI7NJPHWVcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkI7NJPHWVcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkI7NJPHWVcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkI7NJPHWVcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkI7NJPHWVcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkI7NJPHWVcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkI7NJPHWVcjs.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 = _chunkGT77U7QGcjs.PAPER_FAMILIES; exports.PAPER_LIBRARY = _chunkGT77U7QGcjs.PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunkGT77U7QGcjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunkGT77U7QGcjs.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 = _chunkI7NJPHWVcjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkI7NJPHWVcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkI7NJPHWVcjs.PaperGrain; exports.ParticleStroke = _chunkGT77U7QGcjs.ParticleStroke; exports.PenDabWalker = _chunkGT77U7QGcjs.PenDabWalker; exports.PenSmoother = _chunkGT77U7QGcjs.PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.RIBBON_PAIRS = _chunkGT77U7QGcjs.RIBBON_PAIRS; exports.RIBBON_PAIR_LABELS = RIBBON_PAIR_LABELS; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunk4JNWA3VTcjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_ART_SIZE = _chunkGT77U7QGcjs.STICKER_ART_SIZE; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.STROKE_SLIDERS = STROKE_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerArtCache = _chunkGT77U7QGcjs.StickerArtCache; exports.StickerBrowser = _chunkATK6ABN3cjs.StickerBrowser; exports.StickerSpray = _chunkGT77U7QGcjs.StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkKBYB7OWBcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunkGT77U7QGcjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkKBYB7OWBcjs.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 = _chunkGT77U7QGcjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkI7NJPHWVcjs.addPaintGradientStop; exports.addPolygonArea = _chunkGT77U7QGcjs.addPolygonArea; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.backlightOf = backlightOf; exports.brushEngineControls = brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunkGT77U7QGcjs.brushTakesPaint; exports.brushToJSON = _chunkGT77U7QGcjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = _chunkGT77U7QGcjs.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.defaultStickerRasterizer = _chunkGT77U7QGcjs.defaultStickerRasterizer; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = _chunkGT77U7QGcjs.drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectDabField = _chunkGT77U7QGcjs.effectDabField; exports.effectLayersToJSON = effectLayersToJSON; exports.effectPaintKey = _chunkGT77U7QGcjs.effectPaintKey; exports.effectPaintSize = _chunkGT77U7QGcjs.effectPaintSize; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkI7NJPHWVcjs.grainCatch; exports.grainHeights = _chunkI7NJPHWVcjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.hexToPaintRgb = _chunkI7NJPHWVcjs.hexToPaintRgb; exports.hexToRgb8 = _chunkGT77U7QGcjs.hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = _chunk7PT4RJL5cjs.hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunk2VX55NFMcjs.isBlendMode; exports.isGradientPaint = _chunkI7NJPHWVcjs.isGradientPaint; exports.isPaintEffectPaint = _chunkGT77U7QGcjs.isPaintEffectPaint; exports.isPainterlyBlendMode = _chunk2VX55NFMcjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunkGT77U7QGcjs.isWetBrush; exports.isWetCapable = _chunkGT77U7QGcjs.isWetCapable; exports.lightTile = lightTile; exports.lightingKey = lightingKey; exports.liveStrokeBounds = liveStrokeBounds; exports.liveStrokeRefusal = liveStrokeRefusal; exports.mapPenPoint = mapPenPoint; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPixels = mixPixels; exports.mixerLoadForStroke = mixerLoadForStroke; exports.mixerTip = _chunkGT77U7QGcjs.mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = multiColorSliders; exports.multiColorToPaint = _chunkGT77U7QGcjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunkGT77U7QGcjs.normalizeBehavior; exports.normalizeBristle = _chunkGT77U7QGcjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunkGT77U7QGcjs.normalizeDynamics; exports.normalizeFlow = _chunkKBYB7OWBcjs.normalizeFlow; exports.normalizeHexColor = _chunkI7NJPHWVcjs.normalizeHexColor; exports.normalizeImpasto = _chunkGT77U7QGcjs.normalizeImpasto; exports.normalizeLight = _chunkGT77U7QGcjs.normalizeLight; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunkGT77U7QGcjs.normalizeMultiColor; exports.normalizePaintBrush = _chunkGT77U7QGcjs.normalizePaintBrush; exports.normalizePaper = _chunkGT77U7QGcjs.normalizePaper; exports.normalizeParticle = _chunkGT77U7QGcjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunkGT77U7QGcjs.normalizeStickerSettings; exports.normalizeStickerUpdate = _chunkGT77U7QGcjs.normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunkGT77U7QGcjs.normalizeWetBrush; exports.normalizeWetParams = _chunkKBYB7OWBcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintGradientMappingFor = _chunkI7NJPHWVcjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintSourceColor = _chunkI7NJPHWVcjs.paintSourceColor; exports.paintSourceCss = _chunkI7NJPHWVcjs.paintSourceCss; exports.paintToMultiColor = _chunkGT77U7QGcjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = _chunkGT77U7QGcjs.paperPreset; exports.parseBrushLibrary = _chunkGT77U7QGcjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkI7NJPHWVcjs.parsePaintSource; exports.patchBrushValue = patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = _chunkGT77U7QGcjs.penOrientation; exports.perspectiveDirections = perspectiveDirections; exports.perspectiveGuideLines = perspectiveGuideLines; exports.planPaintToolPlayback = planPaintToolPlayback; exports.pointerToPenPoint = pointerToPenPoint; exports.quickStencil = quickStencil; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.readEffectStrokeMap = _chunkGT77U7QGcjs.readEffectStrokeMap; exports.readPaintEffectPaint = _chunkGT77U7QGcjs.readPaintEffectPaint; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkI7NJPHWVcjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkI7NJPHWVcjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = _chunkGT77U7QGcjs.renderPaper; exports.renderStickers = _chunkGT77U7QGcjs.renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkI7NJPHWVcjs.resolvePaintGradient; exports.reversePaintGradient = _chunkI7NJPHWVcjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.sampleArt = _chunkGT77U7QGcjs.sampleArt; exports.sampleEffectAt = _chunkGT77U7QGcjs.sampleEffectAt; exports.sampleEffectField = _chunkGT77U7QGcjs.sampleEffectField; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkI7NJPHWVcjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkI7NJPHWVcjs.solidPaint; exports.stampCoverage = _chunk4JNWA3VTcjs.stampCoverage; exports.standardBlendMode = _chunk2VX55NFMcjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerAt = _chunkGT77U7QGcjs.stickerAt; exports.stickerRect = _chunkGT77U7QGcjs.stickerRect; exports.stickerRefLabel = stickerRefLabel; exports.stickerStamp = _chunkGT77U7QGcjs.stickerStamp; exports.stickerSurface = _chunkGT77U7QGcjs.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 = _chunkGT77U7QGcjs.tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = _chunkGT77U7QGcjs.toStrokePoint; exports.toggleDotTexture = toggleDotTexture; exports.toggleStamp = toggleStamp; exports.toggleStickerRef = toggleStickerRef; exports.translateStencil = translateStencil; exports.updatePaintGradientStop = _chunkI7NJPHWVcjs.updatePaintGradientStop; exports.usesPaintExchange = _chunkGT77U7QGcjs.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 = _chunkKBYB7OWBcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = _chunk7PT4RJL5cjs.wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|