@pixerate/editor 0.264.0 → 0.265.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 +60 -61
- package/dist/animation-editor/index.js +4 -5
- package/dist/brushes/index.cjs +73 -60
- package/dist/brushes/index.d.cts +1 -0
- package/dist/brushes/index.d.ts +1 -0
- package/dist/brushes/index.js +17 -4
- package/dist/brushes/preview.d.cts +59 -0
- package/dist/brushes/preview.d.ts +59 -0
- package/dist/brushes/tools.d.cts +12 -5
- package/dist/brushes/tools.d.ts +12 -5
- package/dist/{brushstrokeRender-3MOI7PH4.js → brushstrokeRender-4UB6NRJW.js} +11 -4
- package/dist/{brushstrokeRender-SMMPIJF2.cjs → brushstrokeRender-JQ2XQRUD.cjs} +22 -15
- package/dist/canvas/brushstroke.d.cts +6 -1
- package/dist/canvas/brushstroke.d.ts +6 -1
- package/dist/canvas/index.cjs +16 -17
- package/dist/canvas/index.js +2 -3
- package/dist/{chunk-F3KKR6DD.cjs → chunk-5OE4ZZ6V.cjs} +30 -30
- package/dist/{chunk-BY5EBP26.cjs → chunk-677777GH.cjs} +3 -3
- package/dist/{chunk-G5ADO47G.cjs → chunk-7NQOGWLM.cjs} +3 -2
- package/dist/{chunk-WWI6FLH2.js → chunk-7PW6VCNW.js} +2 -2
- package/dist/{chunk-CECCP2V7.js → chunk-BLR4KWYQ.js} +1 -1
- package/dist/chunk-DEBIFWY6.cjs +77 -0
- package/dist/{chunk-KXNZNOEF.cjs → chunk-DGXTEPCU.cjs} +94 -94
- package/dist/{chunk-3CI7FRMK.js → chunk-DVPQFMH6.js} +13 -1
- package/dist/{chunk-EE7SAYBF.js → chunk-J4SGJCPW.js} +3 -3
- package/dist/{chunk-A2IS7EHE.cjs → chunk-JBZRVLXV.cjs} +14 -2
- package/dist/{chunk-V7MJ4HIN.cjs → chunk-NOP4Y5AB.cjs} +23 -23
- package/dist/{chunk-FQC5TDB6.cjs → chunk-O53MOGXG.cjs} +35 -35
- package/dist/{chunk-4OJC4MCD.js → chunk-Q6RVVJW6.js} +1 -1
- package/dist/{chunk-HAUDEVMC.js → chunk-WY23AUCA.js} +2 -2
- package/dist/{chunk-JEML4FSA.js → chunk-XDNWQMHY.js} +3 -2
- package/dist/{chunk-ROBSFJ6F.js → chunk-Z2Z2OHRM.js} +1 -1
- package/dist/{chunk-USJX5SW4.cjs → chunk-ZHRVCW3M.cjs} +12 -12
- package/dist/chunk-ZS7LB2MV.js +77 -0
- package/dist/image-editor/index.cjs +788 -790
- package/dist/image-editor/index.js +6 -8
- package/dist/paint-editor/controller.d.cts +1 -1
- package/dist/paint-editor/controller.d.ts +1 -1
- package/dist/paint-editor/index.cjs +92 -87
- package/dist/paint-editor/index.js +16 -11
- package/dist/vector/index.cjs +970 -971
- package/dist/vector/index.js +5 -6
- package/package.json +1 -1
- package/skills/pixerate-brushes/SKILL.md +7 -2
- package/dist/chunk-FJBQTZS4.js +0 -17
- package/dist/chunk-LRTR4ASZ.cjs +0 -17
|
@@ -11,13 +11,17 @@ var _chunkXORJ7UZOcjs = require('../chunk-XORJ7UZO.cjs');
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk5OE4ZZ6Vcjs = require('../chunk-5OE4ZZ6V.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
var _chunkPE6YJMQTcjs = require('../chunk-PE6YJMQT.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
|
|
22
|
+
var _chunkDEBIFWY6cjs = require('../chunk-DEBIFWY6.cjs');
|
|
23
|
+
|
|
24
|
+
|
|
21
25
|
var _chunkCBVNCWJMcjs = require('../chunk-CBVNCWJM.cjs');
|
|
22
26
|
|
|
23
27
|
|
|
@@ -30,7 +34,7 @@ var _chunk7TD63DZPcjs = require('../chunk-7TD63DZP.cjs');
|
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
|
|
33
|
-
var
|
|
37
|
+
var _chunkDGXTEPCUcjs = require('../chunk-DGXTEPCU.cjs');
|
|
34
38
|
require('../chunk-3ZRNK3RO.cjs');
|
|
35
39
|
|
|
36
40
|
|
|
@@ -88,7 +92,7 @@ var _chunkJLWLX52Lcjs = require('../chunk-JLWLX52L.cjs');
|
|
|
88
92
|
|
|
89
93
|
|
|
90
94
|
var _chunkK7ENM55Pcjs = require('../chunk-K7ENM55P.cjs');
|
|
91
|
-
require('../chunk-
|
|
95
|
+
require('../chunk-ZHRVCW3M.cjs');
|
|
92
96
|
|
|
93
97
|
|
|
94
98
|
|
|
@@ -143,7 +147,7 @@ require('../chunk-USJX5SW4.cjs');
|
|
|
143
147
|
|
|
144
148
|
|
|
145
149
|
|
|
146
|
-
var
|
|
150
|
+
var _chunk677777GHcjs = require('../chunk-677777GH.cjs');
|
|
147
151
|
|
|
148
152
|
|
|
149
153
|
|
|
@@ -162,8 +166,7 @@ var _chunkGF2RBSDMcjs = require('../chunk-GF2RBSDM.cjs');
|
|
|
162
166
|
require('../chunk-NM3G4VQT.cjs');
|
|
163
167
|
|
|
164
168
|
|
|
165
|
-
var
|
|
166
|
-
require('../chunk-A2IS7EHE.cjs');
|
|
169
|
+
var _chunkJBZRVLXVcjs = require('../chunk-JBZRVLXV.cjs');
|
|
167
170
|
|
|
168
171
|
|
|
169
172
|
var _chunkU67EN7GGcjs = require('../chunk-U67EN7GG.cjs');
|
|
@@ -1738,7 +1741,7 @@ function shadowToLight(shadow) {
|
|
|
1738
1741
|
return new (0, _chunk474IQG74cjs.TiledSurface)(1, tiles, 0);
|
|
1739
1742
|
}
|
|
1740
1743
|
function lightTwinBrush(brush) {
|
|
1741
|
-
return
|
|
1744
|
+
return _chunk677777GHcjs.normalizePaintBrush.call(void 0,
|
|
1742
1745
|
{
|
|
1743
1746
|
tip: { ...brush.tip, blend: "normal", pressureOpacity: brush.tip.pressureOpacity || brush.light.pressure },
|
|
1744
1747
|
behavior: { ...brush.behavior, mixing: "rgb" },
|
|
@@ -3002,7 +3005,7 @@ var PaintStrokeSession = (_class12 = class _PaintStrokeSession {
|
|
|
3002
3005
|
} else if (init.thick) {
|
|
3003
3006
|
const rgb = (c) => [c[0] / 255, c[1] / 255, c[2] / 255];
|
|
3004
3007
|
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 });
|
|
3005
|
-
} else if (brush.engine === "mixer" || brush.engine === "blender" || brush.engine === "smudge" ||
|
|
3008
|
+
} else if (brush.engine === "mixer" || brush.engine === "blender" || brush.engine === "smudge" || _chunk677777GHcjs.usesPaintExchange.call(void 0, brush, Boolean(init.paint))) {
|
|
3006
3009
|
const rgb = (c) => [c[0] / 255, c[1] / 255, c[2] / 255];
|
|
3007
3010
|
this.wet = new PaintDabStroke(brush, {
|
|
3008
3011
|
target: this.tileTarget(),
|
|
@@ -3242,7 +3245,7 @@ function brushLoadForStroke(brush, current, color) {
|
|
|
3242
3245
|
if (brush.engine === "mixer") return mixerLoadForStroke(brush, current, color);
|
|
3243
3246
|
if (brush.engine === "impasto") return { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null };
|
|
3244
3247
|
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 } : _chunkFQPUF2W2cjs.EMPTY_MIXER_LOAD;
|
|
3245
|
-
if (
|
|
3248
|
+
if (_chunk677777GHcjs.usesPaintExchange.call(void 0, brush)) return { reservoir: [color[0], color[1], color[2]], amount: 1, pickup: brush.behavior.dirty ? current.pickup : null };
|
|
3246
3249
|
return _chunkFQPUF2W2cjs.EMPTY_MIXER_LOAD;
|
|
3247
3250
|
}
|
|
3248
3251
|
|
|
@@ -3504,15 +3507,15 @@ function readLoad(raw) {
|
|
|
3504
3507
|
function readStrokeBrush(raw) {
|
|
3505
3508
|
if (raw && typeof raw === "object" && "kind" in raw && !("engine" in raw)) {
|
|
3506
3509
|
try {
|
|
3507
|
-
return
|
|
3510
|
+
return _chunk677777GHcjs.resolveBrush.call(void 0, _chunk677777GHcjs.normalizeBrushSpec.call(void 0, raw));
|
|
3508
3511
|
} catch (e5) {
|
|
3509
3512
|
}
|
|
3510
3513
|
}
|
|
3511
|
-
return
|
|
3514
|
+
return _chunk677777GHcjs.normalizePaintBrush.call(void 0, _nullishCoalesce(raw, () => ( {})));
|
|
3512
3515
|
}
|
|
3513
3516
|
function strokeToJSON(stroke) {
|
|
3514
3517
|
const { brush, ...rest } = stroke;
|
|
3515
|
-
return { ...JSON.parse(JSON.stringify(rest)), brush:
|
|
3518
|
+
return { ...JSON.parse(JSON.stringify(rest)), brush: _chunk677777GHcjs.migrateBrushV1.call(void 0, brush) };
|
|
3516
3519
|
}
|
|
3517
3520
|
function normalizeBrushStroke(raw) {
|
|
3518
3521
|
if (!raw || typeof raw !== "object") return null;
|
|
@@ -3582,7 +3585,7 @@ function varyStroke(stroke, m, v) {
|
|
|
3582
3585
|
if (ps !== 1) q.pressure = Math.min(1, Math.max(0, (_nullishCoalesce(p.pressure, () => ( 1))) * ps));
|
|
3583
3586
|
return q;
|
|
3584
3587
|
});
|
|
3585
|
-
const brush = s !== 1 ?
|
|
3588
|
+
const brush = s !== 1 ? _chunk677777GHcjs.normalizePaintBrush.call(void 0, { ...stroke.brush, tip: { ...stroke.brush.tip, size: stroke.brush.tip.size * s } }) : stroke.brush;
|
|
3586
3589
|
const out = { ...stroke, brush, points };
|
|
3587
3590
|
if (_optionalChain([stroke, 'access', _120 => _120.paint, 'optionalAccess', _121 => _121.type]) === "gradient" && s !== 1) out.paint = _chunkFQPUF2W2cjs.scalePaintGradient.call(void 0, stroke.paint, s);
|
|
3588
3591
|
if (_optionalChain([stroke, 'access', _122 => _122.paint, 'optionalAccess', _123 => _123.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))) } };
|
|
@@ -3732,11 +3735,11 @@ function header(state, options) {
|
|
|
3732
3735
|
return out;
|
|
3733
3736
|
}
|
|
3734
3737
|
function serializePaintDocument(state, options = {}) {
|
|
3735
|
-
const { layers, assets } =
|
|
3738
|
+
const { layers, assets } = _chunkDGXTEPCUcjs.serializeLayers.call(void 0, state.layers);
|
|
3736
3739
|
return { ...header(state, options), layers, assets };
|
|
3737
3740
|
}
|
|
3738
3741
|
async function serializePaintDocumentExternal(state, store, options = {}) {
|
|
3739
|
-
const { layers, assets } = await
|
|
3742
|
+
const { layers, assets } = await _chunkDGXTEPCUcjs.serializeLayersExternal.call(void 0, state.layers, store);
|
|
3740
3743
|
return { ...header(state, options), layers, assets };
|
|
3741
3744
|
}
|
|
3742
3745
|
function paintLayersOnly(layers, problems) {
|
|
@@ -3773,7 +3776,7 @@ function deserializePaintDocument(raw) {
|
|
|
3773
3776
|
const canvas = normalizeCanvas({ width: r.width, height: r.height, dpi: _nullishCoalesce(r.dpi, () => ( void 0)) });
|
|
3774
3777
|
const paper = normalizePaper(_nullishCoalesce(r.paper, () => ( {})));
|
|
3775
3778
|
const assets = r.assets && typeof r.assets === "object" ? r.assets : {};
|
|
3776
|
-
const layers = paintLayersOnly(
|
|
3779
|
+
const layers = paintLayersOnly(_chunkDGXTEPCUcjs.deserializeLayers.call(void 0, r.layers, { assets, problems }), problems);
|
|
3777
3780
|
const wanted = typeof r.activeLayerId === "string" ? r.activeLayerId : null;
|
|
3778
3781
|
const activeLayerId = wanted && _chunkPVJMTLPJcjs.findLayer.call(void 0, layers, wanted) ? wanted : _nullishCoalesce(_optionalChain([_chunkPVJMTLPJcjs.flattenLayers.call(void 0, layers), 'access', _137 => _137.filter, 'call', _138 => _138((l) => l.type === "pixel"), 'access', _139 => _139.pop, 'call', _140 => _140(), 'optionalAccess', _141 => _141.id]), () => ( null));
|
|
3779
3782
|
const wetEvents = Array.isArray(r.wetEvents) ? r.wetEvents.filter((e) => e && typeof e === "object" && Number.isInteger(e.clock) && typeof e.kind === "string") : [];
|
|
@@ -3789,7 +3792,7 @@ async function deserializePaintDocumentAsync(raw, store) {
|
|
|
3789
3792
|
if (!raw || typeof raw !== "object") throw new Error("Not a paint document: expected a JSON object.");
|
|
3790
3793
|
const r = raw;
|
|
3791
3794
|
const problems = [];
|
|
3792
|
-
const assets = await
|
|
3795
|
+
const assets = await _chunkDGXTEPCUcjs.resolveExternalAssets.call(void 0, _nullishCoalesce(r.assets, () => ( {})), store, problems);
|
|
3793
3796
|
const loaded = deserializePaintDocument({ ...r, assets });
|
|
3794
3797
|
return { ...loaded, problems: [...problems, ...loaded.problems] };
|
|
3795
3798
|
}
|
|
@@ -4713,7 +4716,7 @@ function renderBrushThumbnail(brush, options) {
|
|
|
4713
4716
|
const width = Math.max(16, Math.min(512, Math.round(_nullishCoalesce(options.width, () => ( 160)))));
|
|
4714
4717
|
const height = Math.max(16, Math.min(512, Math.round(_nullishCoalesce(options.height, () => ( 48)))));
|
|
4715
4718
|
const maxSize = height * 0.42;
|
|
4716
|
-
const b = brush.tip.size > maxSize ?
|
|
4719
|
+
const b = brush.tip.size > maxSize ? _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...brush.tip, size: maxSize } }, brush) : brush;
|
|
4717
4720
|
const rgba = [...hexToRgb8(options.color), 255];
|
|
4718
4721
|
let surface = _chunk474IQG74cjs.emptySurface.call(void 0, 4);
|
|
4719
4722
|
if (b.engine === "eraser") {
|
|
@@ -4728,7 +4731,7 @@ function renderBrushThumbnail(brush, options) {
|
|
|
4728
4731
|
if (b.engine === "wet") surface = paintWetTestStroke(b, options.paper, options.color, width, height);
|
|
4729
4732
|
else ({ surface, light } = paintTestStroke(surface, b, options.paper, options.color, width, height));
|
|
4730
4733
|
const layer = { type: "pixel", id: "thumbnail", name: "thumbnail", visible: true, opacity: 1, blend: "normal", surface, offset: { x: 0, y: 0 } };
|
|
4731
|
-
const paper = light ? { ...options.paper, color:
|
|
4734
|
+
const paper = light && _chunkDEBIFWY6cjs.brushPreviewsOnDark.call(void 0, b) ? { ...options.paper, color: _chunkDEBIFWY6cjs.BRUSH_PREVIEW_DARK_PAPER } : options.paper;
|
|
4732
4735
|
const spill = light ? computeSpill(surface, light, { radius: Math.max(4, height / 6), strength: 1 }) : null;
|
|
4733
4736
|
const layers = [paperNode(paper), layer];
|
|
4734
4737
|
if (spill) layers.push({ type: "pixel", id: "thumbnail-light", name: "light", visible: true, opacity: 1, blend: "linear-dodge", surface: spill, offset: { x: 0, y: 0 } });
|
|
@@ -4996,7 +4999,7 @@ var DEFAULT_SWATCHES = [
|
|
|
4996
4999
|
// src/paint-editor/mixing-pad.ts
|
|
4997
5000
|
var MIXING_PAD_WIDTH = 360;
|
|
4998
5001
|
var MIXING_PAD_HEIGHT = 220;
|
|
4999
|
-
var PAD_PAINT =
|
|
5002
|
+
var PAD_PAINT = _chunk677777GHcjs.normalizePaintBrush.call(void 0, {
|
|
5000
5003
|
id: "pad-paint",
|
|
5001
5004
|
name: "Pad paint",
|
|
5002
5005
|
category: "mixer",
|
|
@@ -5004,7 +5007,7 @@ var PAD_PAINT = _chunkBY5EBP26cjs.normalizePaintBrush.call(void 0, {
|
|
|
5004
5007
|
tip: { size: 28, hardness: 0.75, spacing: 0.1, opacity: 1, flow: 0.7, pressureSize: false, pressureOpacity: false },
|
|
5005
5008
|
mixer: { wet: 0.45, load: 1, mix: 0.4, loadEachStroke: true, cleanEachStroke: true, mixing: "pigment" }
|
|
5006
5009
|
});
|
|
5007
|
-
var PAD_KNIFE =
|
|
5010
|
+
var PAD_KNIFE = _chunk677777GHcjs.normalizePaintBrush.call(void 0, {
|
|
5008
5011
|
id: "pad-knife",
|
|
5009
5012
|
name: "Palette knife",
|
|
5010
5013
|
category: "smudge",
|
|
@@ -5014,7 +5017,7 @@ var PAD_KNIFE = _chunkBY5EBP26cjs.normalizePaintBrush.call(void 0, {
|
|
|
5014
5017
|
// A knife drags streaks of paint and folds them into each other, mixing them as pigment.
|
|
5015
5018
|
smudge: { strength: 0.6, length: 0.8, mixing: "pigment" }
|
|
5016
5019
|
});
|
|
5017
|
-
var PAD_BLOB =
|
|
5020
|
+
var PAD_BLOB = _chunk677777GHcjs.normalizePaintBrush.call(void 0, {
|
|
5018
5021
|
id: "pad-blob",
|
|
5019
5022
|
name: "Pad blob",
|
|
5020
5023
|
category: "custom",
|
|
@@ -5036,7 +5039,7 @@ var MixingPad = (_class16 = class {constructor() { _class16.prototype.__init108.
|
|
|
5036
5039
|
}
|
|
5037
5040
|
}
|
|
5038
5041
|
let brush = options.tool === "knife" ? PAD_KNIFE : PAD_PAINT;
|
|
5039
|
-
if (options.size !== void 0) brush =
|
|
5042
|
+
if (options.size !== void 0) brush = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...brush.tip, size: options.size } }, brush);
|
|
5040
5043
|
return this.run(brush, points, options.color);
|
|
5041
5044
|
}
|
|
5042
5045
|
/** Paints `points` with `brush` in `color` on the pad. */
|
|
@@ -5135,10 +5138,10 @@ var MixingPad = (_class16 = class {constructor() { _class16.prototype.__init108.
|
|
|
5135
5138
|
const off = used.length === 1 ? 0 : 0.45 * R;
|
|
5136
5139
|
const x = Math.min(cx + R - r, Math.max(cx - R + r, cx + Math.cos(a) * off));
|
|
5137
5140
|
const y = Math.min(cy + R - r, Math.max(cy - R + r, cy + Math.sin(a) * off));
|
|
5138
|
-
const blob =
|
|
5141
|
+
const blob = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_BLOB.tip, size: Math.max(2, 2 * r) } }, PAD_BLOB);
|
|
5139
5142
|
this.run(blob, [{ x, y }], p.color.toLowerCase());
|
|
5140
5143
|
});
|
|
5141
|
-
const knife =
|
|
5144
|
+
const knife = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_KNIFE.tip, size: Math.max(12, R * 0.5) } }, PAD_KNIFE);
|
|
5142
5145
|
for (let k = 0; k < passes; k++) {
|
|
5143
5146
|
const stir = [];
|
|
5144
5147
|
const turns = 1.6;
|
|
@@ -5153,7 +5156,7 @@ var MixingPad = (_class16 = class {constructor() { _class16.prototype.__init108.
|
|
|
5153
5156
|
paints2.map((p) => hexToRgb8(p.color).map((v) => v / 255)),
|
|
5154
5157
|
paints2.map((p) => p.parts)
|
|
5155
5158
|
);
|
|
5156
|
-
const core =
|
|
5159
|
+
const core = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...PAD_BLOB.tip, size: R * 1.1, hardness: 0.55 } }, PAD_BLOB);
|
|
5157
5160
|
const hex2 = "#" + mixed.map((v) => Math.round(v * 255).toString(16).padStart(2, "0")).join("");
|
|
5158
5161
|
this.run(core, [{ x: cx, y: cy }], hex2);
|
|
5159
5162
|
return { color: this.pick(cx, cy, 2), bounds };
|
|
@@ -5193,21 +5196,21 @@ var MixingPad = (_class16 = class {constructor() { _class16.prototype.__init108.
|
|
|
5193
5196
|
var copyJSON = (v) => JSON.parse(JSON.stringify(v));
|
|
5194
5197
|
var isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
5195
5198
|
function libraryBrush(spec, builtin, resolved) {
|
|
5196
|
-
const brush = resolved ?
|
|
5199
|
+
const brush = resolved ? _chunk677777GHcjs.normalizePaintBrush.call(void 0, resolved, resolved) : _chunk677777GHcjs.resolveBrush.call(void 0, spec);
|
|
5197
5200
|
if (builtin) brush.builtin = true;
|
|
5198
5201
|
else delete brush.builtin;
|
|
5199
5202
|
return { spec, brush, builtin };
|
|
5200
5203
|
}
|
|
5201
5204
|
var builtins = null;
|
|
5202
5205
|
function builtinLibraryBrushes() {
|
|
5203
|
-
return builtins ??=
|
|
5204
|
-
const resolved =
|
|
5206
|
+
return builtins ??= _chunk677777GHcjs.BRUSH_PRESETS.map((spec) => {
|
|
5207
|
+
const resolved = _chunk677777GHcjs.BUILTIN_BRUSHES.find((b) => b.id === spec.id);
|
|
5205
5208
|
return libraryBrush(spec, true, resolved);
|
|
5206
5209
|
});
|
|
5207
5210
|
}
|
|
5208
5211
|
function seededStorage(brushes) {
|
|
5209
5212
|
if (!brushes.length) return void 0;
|
|
5210
|
-
let stored = JSON.stringify({ format: "pixerate-brushes", version: 1, brushes: brushes.map(
|
|
5213
|
+
let stored = JSON.stringify({ format: "pixerate-brushes", version: 1, brushes: brushes.map(_chunk677777GHcjs.brushToJSON) });
|
|
5211
5214
|
return {
|
|
5212
5215
|
get: async () => stored,
|
|
5213
5216
|
set: async (_key, value) => {
|
|
@@ -5220,7 +5223,7 @@ var paints = (b) => {
|
|
|
5220
5223
|
return JSON.stringify(rest);
|
|
5221
5224
|
};
|
|
5222
5225
|
function brushSpecOf(next, from) {
|
|
5223
|
-
const plain =
|
|
5226
|
+
const plain = _chunk677777GHcjs.migrateBrushV1.call(void 0, next);
|
|
5224
5227
|
const out = copyJSON(plain);
|
|
5225
5228
|
if (from.description) out.description = from.description;
|
|
5226
5229
|
if (_optionalChain([from, 'access', _221 => _221.tags, 'optionalAccess', _222 => _222.length])) out.tags = [...from.tags];
|
|
@@ -5240,8 +5243,8 @@ function brushSpecOf(next, from) {
|
|
|
5240
5243
|
out.motion = { ..._nullishCoalesce(out.motion, () => ( {})), ...from.motion.live !== void 0 ? { live: from.motion.live } : {}, ...from.motion.fps !== void 0 ? { fps: from.motion.fps } : {} };
|
|
5241
5244
|
}
|
|
5242
5245
|
try {
|
|
5243
|
-
const hinted =
|
|
5244
|
-
if (paints(
|
|
5246
|
+
const hinted = _chunk677777GHcjs.normalizeBrushSpec.call(void 0, out, []);
|
|
5247
|
+
if (paints(_chunk677777GHcjs.resolveBrush.call(void 0, hinted)) === paints(_chunk677777GHcjs.resolveBrush.call(void 0, plain))) return hinted;
|
|
5245
5248
|
} catch (e7) {
|
|
5246
5249
|
}
|
|
5247
5250
|
return plain;
|
|
@@ -5579,7 +5582,8 @@ async function replayPainting(source, target, options = {}) {
|
|
|
5579
5582
|
const maxStrokes = _nullishCoalesce(options.strokes, () => ( source.strokes.length));
|
|
5580
5583
|
const chunk = Math.max(1, _nullishCoalesce(options.wetChunk, () => ( 0))) || Infinity;
|
|
5581
5584
|
let strokes = 0;
|
|
5582
|
-
|
|
5585
|
+
const scaled = source.strokes.slice(0, maxStrokes).map((st) => s === 1 ? st : varyStroke(st, scaleM, { scale: s }));
|
|
5586
|
+
await target.prepareEffectPaints(scaled.flatMap((st) => _optionalChain([st, 'access', _247 => _247.paint, 'optionalAccess', _248 => _248.type]) === "effect" ? [st.paint] : []));
|
|
5583
5587
|
const advanceTo = async (clock) => {
|
|
5584
5588
|
const now = target.getState().wet.clock;
|
|
5585
5589
|
let left = clock - now;
|
|
@@ -5897,7 +5901,7 @@ async function libraryCall(call) {
|
|
|
5897
5901
|
try {
|
|
5898
5902
|
return await call();
|
|
5899
5903
|
} catch (e) {
|
|
5900
|
-
throw e instanceof
|
|
5904
|
+
throw e instanceof _chunk677777GHcjs.BrushLibraryError ? new PaintEditorError(e.message) : e;
|
|
5901
5905
|
}
|
|
5902
5906
|
}
|
|
5903
5907
|
var HEX3 = /^#[0-9a-f]{6}$/i;
|
|
@@ -6027,15 +6031,15 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
6027
6031
|
this.rasterizeSticker = _nullishCoalesce(options.rasterizeSticker, () => ( defaultStickerRasterizer));
|
|
6028
6032
|
if (options.stickers) this.stickers.set(options.stickers);
|
|
6029
6033
|
this.doc = createPaintDocument({ width: options.width, height: options.height, dpi: options.dpi, paper: this.resolvePaper(options.paper) });
|
|
6030
|
-
const seed = (_nullishCoalesce(options.brushes, () => ( []))).map((b) =>
|
|
6031
|
-
this.brushLibrary = _nullishCoalesce(options.brushLibrary, () => (
|
|
6032
|
-
this.brushEntries = [...builtinLibraryBrushes(), ...seed.map((b) => libraryBrush(
|
|
6033
|
-
const wanted = _nullishCoalesce(options.brushId, () => (
|
|
6034
|
-
const start = _nullishCoalesce(this.findEntry(wanted), () => ( this.findEntry(
|
|
6035
|
-
this.brush =
|
|
6034
|
+
const seed = (_nullishCoalesce(options.brushes, () => ( []))).map((b) => _chunk677777GHcjs.normalizePaintBrush.call(void 0, { ...b, builtin: false }));
|
|
6035
|
+
this.brushLibrary = _nullishCoalesce(options.brushLibrary, () => ( _chunk677777GHcjs.createBrushLibrary.call(void 0, { storage: seededStorage(seed) })));
|
|
6036
|
+
this.brushEntries = [...builtinLibraryBrushes(), ...seed.map((b) => libraryBrush(_chunk677777GHcjs.migrateBrushV1.call(void 0, b), false, b))];
|
|
6037
|
+
const wanted = _nullishCoalesce(options.brushId, () => ( _chunk677777GHcjs.DEFAULT_BRUSH_ID));
|
|
6038
|
+
const start = _nullishCoalesce(this.findEntry(wanted), () => ( this.findEntry(_chunk677777GHcjs.DEFAULT_BRUSH_ID)));
|
|
6039
|
+
this.brush = _chunk677777GHcjs.normalizePaintBrush.call(void 0, start.brush);
|
|
6036
6040
|
this.brushSpec = copyJSON(start.spec);
|
|
6037
6041
|
this.unsubscribeLibrary = this.brushLibrary.subscribe(() => void this.refreshBrushes().catch(() => void 0));
|
|
6038
|
-
if (options.brushLibrary && seed.length) void this.brushLibrary.importFile(seed.map(
|
|
6042
|
+
if (options.brushLibrary && seed.length) void this.brushLibrary.importFile(seed.map(_chunk677777GHcjs.brushToJSON)).catch(() => void 0);
|
|
6039
6043
|
void this.refreshBrushes().catch(() => void 0);
|
|
6040
6044
|
this.pendingBrushId = start.brush.id === wanted ? null : wanted;
|
|
6041
6045
|
this.color = options.color ? parseColor(options.color) : "#1f2937";
|
|
@@ -7265,7 +7269,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7265
7269
|
* its pixels are not rendered.
|
|
7266
7270
|
*/
|
|
7267
7271
|
strokeEffect(init, brush) {
|
|
7268
|
-
if (!
|
|
7272
|
+
if (!_chunk677777GHcjs.brushTakesPaint.call(void 0, brush)) return null;
|
|
7269
7273
|
let source = null;
|
|
7270
7274
|
if (init.paint !== void 0) {
|
|
7271
7275
|
if (!isPaintEffectPaint(init.paint)) return null;
|
|
@@ -7326,7 +7330,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7326
7330
|
}
|
|
7327
7331
|
requireEntry(id) {
|
|
7328
7332
|
const e = this.findEntry(id);
|
|
7329
|
-
if (!e) throw new PaintEditorError(`Unknown brush "${id}". ${
|
|
7333
|
+
if (!e) throw new PaintEditorError(`Unknown brush "${id}". ${_chunk677777GHcjs.closest.call(void 0, id, this.brushEntries.map((x) => x.brush.id))}Call list_brush_presets for the ids.`);
|
|
7330
7334
|
return e;
|
|
7331
7335
|
}
|
|
7332
7336
|
requireBrush(id) {
|
|
@@ -7352,7 +7356,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7352
7356
|
/** A library brush by id, as the engine paints it (`undefined` when unknown). */
|
|
7353
7357
|
getBrush(id) {
|
|
7354
7358
|
const b = this.findBrush(id);
|
|
7355
|
-
return b ?
|
|
7359
|
+
return b ? _chunk677777GHcjs.normalizePaintBrush.call(void 0, b, b) : void 0;
|
|
7356
7360
|
}
|
|
7357
7361
|
/** A library brush by id as stored (its facets), or without an id the active brush as edited. */
|
|
7358
7362
|
getBrushSpec(id) {
|
|
@@ -7370,7 +7374,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7370
7374
|
const baseSpec = entry ? entry.spec : this.brushSpec;
|
|
7371
7375
|
if (changes.paint !== void 0 && changes.paint !== null) this.readStrokePaint(changes.paint);
|
|
7372
7376
|
const unchanged = !Object.keys(changes).length;
|
|
7373
|
-
const next =
|
|
7377
|
+
const next = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { ...changes, id: base.id }, base);
|
|
7374
7378
|
if (entry) this.takeBrushColour(entry.spec);
|
|
7375
7379
|
this.useBrush(next, unchanged ? baseSpec : brushSpecOf(next, baseSpec), unchanged && base.builtin === true);
|
|
7376
7380
|
return this.brush;
|
|
@@ -7389,7 +7393,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7389
7393
|
for (const k of unset) delete base[k];
|
|
7390
7394
|
const spec = this.readBrushPatch(base, patch, problems);
|
|
7391
7395
|
if (entry || _optionalChain([patch, 'access', _381 => _381.colour, 'optionalAccess', _382 => _382.default]) !== void 0) this.takeBrushColour(spec);
|
|
7392
|
-
this.useBrush(unchanged && entry ? entry.brush :
|
|
7396
|
+
this.useBrush(unchanged && entry ? entry.brush : _chunk677777GHcjs.resolveBrush.call(void 0, spec), spec, unchanged && _optionalChain([entry, 'optionalAccess', _383 => _383.builtin]) === true);
|
|
7393
7397
|
return { brush: this.brush, spec: copyJSON(this.brushSpec), problems };
|
|
7394
7398
|
}
|
|
7395
7399
|
/**
|
|
@@ -7403,11 +7407,11 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7403
7407
|
if (paint && typeof paint === "object" && "type" in paint && paint.type === "gradient") this.readStrokePaint(paint);
|
|
7404
7408
|
let next;
|
|
7405
7409
|
try {
|
|
7406
|
-
next =
|
|
7410
|
+
next = _chunk677777GHcjs.normalizeBrushSpec.call(void 0, { ...spec, id: this.brush.id }, problems);
|
|
7407
7411
|
} catch (e) {
|
|
7408
7412
|
throw new PaintEditorError(e.message);
|
|
7409
7413
|
}
|
|
7410
|
-
this.useBrush(
|
|
7414
|
+
this.useBrush(_chunk677777GHcjs.resolveBrush.call(void 0, next), next, false);
|
|
7411
7415
|
return { brush: this.brush, spec: copyJSON(this.brushSpec), problems };
|
|
7412
7416
|
}
|
|
7413
7417
|
/**
|
|
@@ -7416,22 +7420,22 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7416
7420
|
*/
|
|
7417
7421
|
brushChanges(patch, from) {
|
|
7418
7422
|
const entry = typeof from === "string" ? this.requireEntry(from) : null;
|
|
7419
|
-
const base = entry ? entry.brush : typeof from === "object" ?
|
|
7420
|
-
const spec = entry ? entry.spec : typeof from === "object" ?
|
|
7421
|
-
return engineChanges(base,
|
|
7423
|
+
const base = entry ? entry.brush : typeof from === "object" ? _chunk677777GHcjs.normalizePaintBrush.call(void 0, from, from) : this.brush;
|
|
7424
|
+
const spec = entry ? entry.spec : typeof from === "object" ? _chunk677777GHcjs.migrateBrushV1.call(void 0, base) : this.brushSpec;
|
|
7425
|
+
return engineChanges(base, _chunk677777GHcjs.resolveBrush.call(void 0, this.readBrushPatch(spec, patch, [])));
|
|
7422
7426
|
}
|
|
7423
7427
|
readBrushPatch(base, patch, problems) {
|
|
7424
7428
|
const { id: _id, name, ...rest } = patch;
|
|
7425
7429
|
const paint = _optionalChain([rest, 'access', _386 => _386.colour, 'optionalAccess', _387 => _387.default]);
|
|
7426
7430
|
if (paint && typeof paint === "object" && "type" in paint && paint.type === "gradient") this.readStrokePaint(paint);
|
|
7427
7431
|
try {
|
|
7428
|
-
return
|
|
7432
|
+
return _chunk677777GHcjs.normalizeBrushSpec.call(void 0, _chunk5OE4ZZ6Vcjs.mergeBrushPatch.call(void 0, base, { ...rest, ...name !== void 0 ? { name } : {} }), problems);
|
|
7429
7433
|
} catch (e) {
|
|
7430
7434
|
throw new PaintEditorError(e.message);
|
|
7431
7435
|
}
|
|
7432
7436
|
}
|
|
7433
7437
|
useBrush(next, spec, builtin) {
|
|
7434
|
-
next =
|
|
7438
|
+
next = _chunk677777GHcjs.normalizePaintBrush.call(void 0, next, next);
|
|
7435
7439
|
if (builtin) next.builtin = true;
|
|
7436
7440
|
else delete next.builtin;
|
|
7437
7441
|
this.brush = next;
|
|
@@ -7447,9 +7451,9 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7447
7451
|
* saved brush.
|
|
7448
7452
|
*/
|
|
7449
7453
|
async saveBrush(options) {
|
|
7450
|
-
if (!
|
|
7454
|
+
if (!_chunk677777GHcjs.BRUSH_ID.test(options.id)) throw new PaintEditorError(`Brush id "${options.id}" is invalid; use lowercase letters, digits and dashes (e.g. "my-pencil").`);
|
|
7451
7455
|
if (this.brushLibrary.isBuiltin(options.id)) throw new PaintEditorError(`"${options.id}" is a built-in brush; save under another id.`);
|
|
7452
|
-
const spec = options.brush ? brushSpecOf(
|
|
7456
|
+
const spec = options.brush ? brushSpecOf(_chunk677777GHcjs.normalizePaintBrush.call(void 0, options.brush, this.brush), this.brushSpec) : this.brushSpec;
|
|
7453
7457
|
const { brush } = await libraryCall(() => this.brushLibrary.save({ ...spec, id: options.id, name: _nullishCoalesce(options.name, () => ( spec.name)) }, { overwrite: true }));
|
|
7454
7458
|
await this.refreshBrushes();
|
|
7455
7459
|
return this.requireBrush(brush.id);
|
|
@@ -7462,7 +7466,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7462
7466
|
}
|
|
7463
7467
|
/** The user's saved brushes, as the engine paints them. */
|
|
7464
7468
|
getUserBrushes() {
|
|
7465
|
-
return this.brushEntries.filter((e) => !e.builtin).map((e) =>
|
|
7469
|
+
return this.brushEntries.filter((e) => !e.builtin).map((e) => _chunk677777GHcjs.normalizePaintBrush.call(void 0, e.brush, e.brush));
|
|
7466
7470
|
}
|
|
7467
7471
|
/** A brush library file (version 2) of the given brushes (default: the user's brushes). */
|
|
7468
7472
|
exportBrushes(ids) {
|
|
@@ -7496,7 +7500,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7496
7500
|
const next = scheme === "dark" ? "dark" : "light";
|
|
7497
7501
|
if (next === this.colorScheme) return;
|
|
7498
7502
|
this.colorScheme = next;
|
|
7499
|
-
const hex2 = this.brushColour ?
|
|
7503
|
+
const hex2 = this.brushColour ? _chunkJBZRVLXVcjs.brushColourHex.call(void 0, this.brushColour, next) : null;
|
|
7500
7504
|
if (hex2) this.color = hex2;
|
|
7501
7505
|
const refs = brushStickerRefs(this.brush);
|
|
7502
7506
|
if (refs.some((r) => !_chunkOTN6VB5Scjs.editorStampOf.call(void 0, r))) void this.prepareStickers(refs).catch(() => this.emit([]));
|
|
@@ -7516,7 +7520,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7516
7520
|
takeBrushColour(spec) {
|
|
7517
7521
|
if (this.colorLocked) return;
|
|
7518
7522
|
const d = _optionalChain([spec, 'access', _388 => _388.colour, 'optionalAccess', _389 => _389.default]);
|
|
7519
|
-
const hex2 = d !== void 0 ?
|
|
7523
|
+
const hex2 = d !== void 0 ? _chunkJBZRVLXVcjs.brushColourHex.call(void 0, d, this.colorScheme) : null;
|
|
7520
7524
|
if (!hex2) return;
|
|
7521
7525
|
this.color = hex2;
|
|
7522
7526
|
this.gradient = null;
|
|
@@ -7528,7 +7532,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7528
7532
|
ownColour(brushId) {
|
|
7529
7533
|
const spec = brushId !== void 0 ? _optionalChain([this, 'access', _390 => _390.findEntry, 'call', _391 => _391(brushId), 'optionalAccess', _392 => _392.spec]) : this.brushSpec;
|
|
7530
7534
|
const d = _optionalChain([spec, 'optionalAccess', _393 => _393.colour, 'optionalAccess', _394 => _394.own]) ? spec.colour.default : void 0;
|
|
7531
|
-
return d !== void 0 ?
|
|
7535
|
+
return d !== void 0 ? _chunkJBZRVLXVcjs.brushColourHex.call(void 0, d, this.colorScheme) : null;
|
|
7532
7536
|
}
|
|
7533
7537
|
/** Sets the paint colour (and goes back to one colour from gradient paint). */
|
|
7534
7538
|
setColor(color) {
|
|
@@ -7570,7 +7574,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7570
7574
|
* brush's gradient, else the editor's gradient paint. Erasers, blenders and smudges take none.
|
|
7571
7575
|
*/
|
|
7572
7576
|
strokeGradient(init, brush, color) {
|
|
7573
|
-
if (!
|
|
7577
|
+
if (!_chunk677777GHcjs.brushTakesPaint.call(void 0, brush)) return null;
|
|
7574
7578
|
let g = null;
|
|
7575
7579
|
if (init.paint !== void 0) {
|
|
7576
7580
|
if (isPaintEffectPaint(init.paint)) return null;
|
|
@@ -7647,7 +7651,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7647
7651
|
// --- Strokes -------------------------------------------------------------------
|
|
7648
7652
|
strokeBrush(init) {
|
|
7649
7653
|
let brush = init.brushId !== void 0 ? this.requireBrush(init.brushId) : this.brush;
|
|
7650
|
-
if (init.brush) brush =
|
|
7654
|
+
if (init.brush) brush = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { ...init.brush, id: brush.id }, brush);
|
|
7651
7655
|
return brush;
|
|
7652
7656
|
}
|
|
7653
7657
|
/**
|
|
@@ -7680,7 +7684,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7680
7684
|
return l;
|
|
7681
7685
|
})();
|
|
7682
7686
|
const brush = this.strokeBrush(init);
|
|
7683
|
-
if (this.previewing &&
|
|
7687
|
+
if (this.previewing && _chunk677777GHcjs.isWetBrush.call(void 0, brush)) throw new PaintEditorError(`Wet paint can't be previewed; the ${brush.name} brush paints wet media. Suggest it with a dry brush.`);
|
|
7684
7688
|
const effect = this.strokeEffect(init, brush);
|
|
7685
7689
|
if (brush.light.amount > 0) {
|
|
7686
7690
|
if (brush.engine === "sticker") throw new PaintEditorError(`The ${brush.name} brush sprays stickers, which don't take light yet; paint light with a dab or particle light brush (glow-gel, neon-marker; list_brush_presets lists them), or set light.amount to 0 (set_brush).`);
|
|
@@ -7703,7 +7707,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7703
7707
|
throw new PaintEditorError(`Layer "${layer.name}" is a sticker layer (its pixels are drawn from its stickers); paint on another layer (add_layer).`);
|
|
7704
7708
|
}
|
|
7705
7709
|
let wet;
|
|
7706
|
-
if (
|
|
7710
|
+
if (_chunk677777GHcjs.isWetBrush.call(void 0, brush)) {
|
|
7707
7711
|
this.requireWetIdle("painting");
|
|
7708
7712
|
if (layer.offset.x || layer.offset.y) {
|
|
7709
7713
|
const moved = { ...layer, surface: _chunk474IQG74cjs.translateSurface.call(void 0, layer.surface, layer.offset.x, layer.offset.y), offset: { x: 0, y: 0 } };
|
|
@@ -7797,7 +7801,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
7797
7801
|
const stroke = {
|
|
7798
7802
|
id: `s${this.strokeCounter++}`,
|
|
7799
7803
|
layerId: session.layerId,
|
|
7800
|
-
brush:
|
|
7804
|
+
brush: _chunk677777GHcjs.brushToJSON.call(void 0, init.brush),
|
|
7801
7805
|
color: init.colorHex,
|
|
7802
7806
|
points: session.points.map((p) => ({ ...p })),
|
|
7803
7807
|
seed: init.seed
|
|
@@ -8048,7 +8052,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
8048
8052
|
let brush = v.brush;
|
|
8049
8053
|
if (options.brushId !== void 0) {
|
|
8050
8054
|
const b = this.requireBrush(options.brushId);
|
|
8051
|
-
brush =
|
|
8055
|
+
brush = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...b.tip, size: b.tip.size * (v.brush.tip.size / s.brush.tip.size) } }, b);
|
|
8052
8056
|
}
|
|
8053
8057
|
const layerId = _nullishCoalesce(options.layerId, () => ( s.layerId));
|
|
8054
8058
|
if (!_chunkPVJMTLPJcjs.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.`);
|
|
@@ -8826,7 +8830,7 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
8826
8830
|
return next.type === "group" ? { ...next, children: toStandard(next.children) } : next;
|
|
8827
8831
|
});
|
|
8828
8832
|
const layers = toStandard(dried);
|
|
8829
|
-
const result =
|
|
8833
|
+
const result = _chunkDGXTEPCUcjs.exportPsd.call(void 0, { width, height, layers: [paperLayer, ...layers], merged, resolution: dpi });
|
|
8830
8834
|
for (const [mode, names] of changed) {
|
|
8831
8835
|
const label = _nullishCoalesce(_optionalChain([_chunk2VX55NFMcjs.BLEND_MODES, 'access', _493 => _493.find, 'call', _494 => _494((m) => m.id === mode), 'optionalAccess', _495 => _495.label]), () => ( mode));
|
|
8832
8836
|
const std = _nullishCoalesce(_optionalChain([_chunk2VX55NFMcjs.BLEND_MODES, 'access', _496 => _496.find, 'call', _497 => _497((m) => m.id === _chunk2VX55NFMcjs.standardBlendMode.call(void 0, mode)), 'optionalAccess', _498 => _498.label]), () => ( _chunk2VX55NFMcjs.standardBlendMode.call(void 0, mode)));
|
|
@@ -9341,15 +9345,15 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
9341
9345
|
let brush = was.brush;
|
|
9342
9346
|
if (update.brushId !== void 0) {
|
|
9343
9347
|
const b = this.requireBrush(update.brushId);
|
|
9344
|
-
brush =
|
|
9348
|
+
brush = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { tip: { ...b.tip, size: was.brush.tip.size } }, b);
|
|
9345
9349
|
}
|
|
9346
9350
|
if (update.brush !== void 0) {
|
|
9347
9351
|
if (!update.brush || typeof update.brush !== "object") throw new PaintEditorError("brush must be an object of brush settings (as set_brush takes).");
|
|
9348
|
-
brush =
|
|
9352
|
+
brush = _chunk677777GHcjs.normalizePaintBrush.call(void 0, { ...update.brush, id: brush.id }, brush);
|
|
9349
9353
|
}
|
|
9350
9354
|
const why = liveStrokeRefusal(brush);
|
|
9351
9355
|
if (why) throw new PaintEditorError(why);
|
|
9352
|
-
const next = { ...was, brush:
|
|
9356
|
+
const next = { ...was, brush: _chunk677777GHcjs.brushToJSON.call(void 0, brush) };
|
|
9353
9357
|
if (update.seed !== void 0) {
|
|
9354
9358
|
if (!Number.isInteger(update.seed) || update.seed < 0) throw new PaintEditorError(`seed ${update.seed} must be a whole number of 0 or more.`);
|
|
9355
9359
|
next.seed = update.seed;
|
|
@@ -9588,11 +9592,11 @@ var PaintEditorController = (_class19 = class _PaintEditorController {
|
|
|
9588
9592
|
if (!layers.length) return null;
|
|
9589
9593
|
return { layerIds: layers.map((x) => x.layer.id), strokes: layers.reduce((n, x) => n + x.strokes.filter(isLiveEffect).length, 0), sources: sources.length };
|
|
9590
9594
|
}
|
|
9591
|
-
/** Plays or pauses live effect paint, and caps its frame rate (1..60). Editor state, not an undo step. */
|
|
9595
|
+
/** Plays or pauses live effect paint, and caps its frame rate (1..60); a setting left out keeps its value. Editor state, not an undo step. */
|
|
9592
9596
|
setEffectPlayback(update) {
|
|
9593
9597
|
if (update.playing !== void 0 && typeof update.playing !== "boolean") throw new PaintEditorError("playing must be true or false.");
|
|
9594
9598
|
if (update.fps !== void 0 && !(Number.isInteger(update.fps) && update.fps >= 1 && update.fps <= 60)) throw new PaintEditorError(`fps ${update.fps} is out of range; use a whole number 1..60.`);
|
|
9595
|
-
this.effectPlaybackState = {
|
|
9599
|
+
this.effectPlaybackState = { playing: _nullishCoalesce(update.playing, () => ( this.effectPlaybackState.playing)), fps: _nullishCoalesce(update.fps, () => ( this.effectPlaybackState.fps)) };
|
|
9596
9600
|
this.emit([]);
|
|
9597
9601
|
return { ...this.effectPlaybackState, time: this.effectTime };
|
|
9598
9602
|
}
|
|
@@ -11610,7 +11614,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
11610
11614
|
name: "set_brush",
|
|
11611
11615
|
title: "Set the brush",
|
|
11612
11616
|
description: "Chooses the active brush (id, from list_brush_presets) and / or changes it with facets laid over it (objects merge, lists and values replace, marks of another kind replace the marks; the brush library's create_brush fields); unset removes whole facets first (unset colour drops a brush's own gradient). Strokes without a brush use it. Editor state, not an undo step: the changes stay on the active brush until the library's create_brush or update_brush stores a brush. Returns the active brush as facets, the engine it paints with, and problems (values clamped or dropped).",
|
|
11613
|
-
inputSchema: { type: "object", properties: { id: { type: "string", description: "Brush id from list_brush_presets to start from (default the active brush)." }, name: { type: "string", minLength: 1, maxLength: 80, description: "Display name." }, ...
|
|
11617
|
+
inputSchema: { type: "object", properties: { id: { type: "string", description: "Brush id from list_brush_presets to start from (default the active brush)." }, name: { type: "string", minLength: 1, maxLength: 80, description: "Display name." }, ..._chunk5OE4ZZ6Vcjs.BRUSH_PATCH_PROPERTIES, unset: _chunk5OE4ZZ6Vcjs.BRUSH_UNSET_PROPERTY }, additionalProperties: false },
|
|
11614
11618
|
annotations: { title: "Set the brush", ...SET4 },
|
|
11615
11619
|
handler: async ({ id, unset, ...patch }) => {
|
|
11616
11620
|
const stamps = _optionalChain([patch, 'access', _574 => _574.tip, 'optionalAccess', _575 => _575.stamps]);
|
|
@@ -11706,7 +11710,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
11706
11710
|
points: POINTS,
|
|
11707
11711
|
layerId: LAYER_ID4,
|
|
11708
11712
|
brushId: { type: "string", description: "Brush id from list_brush_presets (default the active brush)." },
|
|
11709
|
-
brush: { type: "object", description: "Facets to change for this stroke only, laid over brushId or the active brush (as set_brush takes them).", properties:
|
|
11713
|
+
brush: { type: "object", description: "Facets to change for this stroke only, laid over brushId or the active brush (as set_brush takes them).", properties: _chunk5OE4ZZ6Vcjs.BRUSH_PATCH_PROPERTIES, additionalProperties: false },
|
|
11710
11714
|
color: { ...COLOR3, description: "Paint colour #rrggbb (default the paint colour)." },
|
|
11711
11715
|
paint: { ..._chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA, description: "What this stroke paints with instead of the editor's paint: a colour, or gradient paint that changes colour as the stroke goes (by distance, pressure, tilt, speed, direction, time, across the tip or at random). Wins over the brush's own gradient." },
|
|
11712
11716
|
seed: { type: "integer", minimum: 0, description: "Jitter seed (default a new one); the same seed and points give the same marks." },
|
|
@@ -11722,7 +11726,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
11722
11726
|
const base = a.brushId ? c.getBrush(a.brushId) : c.getState().brush;
|
|
11723
11727
|
const brush = a.brush ? c.brushChanges(a.brush, a.brushId) : void 0;
|
|
11724
11728
|
if (base) {
|
|
11725
|
-
const refs = brushStickerRefs(
|
|
11729
|
+
const refs = brushStickerRefs(_chunk677777GHcjs.normalizePaintBrush.call(void 0, { ..._nullishCoalesce(brush, () => ( {})), id: base.id }, base));
|
|
11726
11730
|
if (refs.length) await c.prepareStickers(refs);
|
|
11727
11731
|
}
|
|
11728
11732
|
const stroke = { points: a.points, layerId: a.layerId, brushId: a.brushId, brush, color: a.color, paint: a.paint, seed: a.seed, snapToPerspective: a.snapToPerspective };
|
|
@@ -11742,7 +11746,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
11742
11746
|
pressure: { type: "array", minItems: 1, maxItems: 64, items: { type: "number", minimum: 0, maximum: 1 }, description: "Pen pressure along each subpath, spread evenly from start to end (default full pressure); [0.2, 1, 0.2] tapers both ends." },
|
|
11743
11747
|
layerId: LAYER_ID4,
|
|
11744
11748
|
brushId: { type: "string", description: "Brush id from list_brush_presets (default the active brush)." },
|
|
11745
|
-
brush: { type: "object", description: "Facets to change for this stroke only, laid over brushId or the active brush (as set_brush takes them).", properties:
|
|
11749
|
+
brush: { type: "object", description: "Facets to change for this stroke only, laid over brushId or the active brush (as set_brush takes them).", properties: _chunk5OE4ZZ6Vcjs.BRUSH_PATCH_PROPERTIES, additionalProperties: false },
|
|
11746
11750
|
color: { ...COLOR3, description: "Paint colour #rrggbb (default the paint colour)." },
|
|
11747
11751
|
paint: { ..._chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA, description: "What the strokes paint with instead of the editor's paint: a colour, or gradient paint that changes colour as each stroke goes." },
|
|
11748
11752
|
seed: { type: "integer", minimum: 0, description: "Jitter seed of the first subpath, the next ones take the following seeds (default new ones); the same seed and path give the same marks." }
|
|
@@ -11757,7 +11761,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
11757
11761
|
const base = a.brushId ? c.getBrush(a.brushId) : c.getState().brush;
|
|
11758
11762
|
const brush = a.brush ? c.brushChanges(a.brush, a.brushId) : void 0;
|
|
11759
11763
|
if (base) {
|
|
11760
|
-
const refs = brushStickerRefs(
|
|
11764
|
+
const refs = brushStickerRefs(_chunk677777GHcjs.normalizePaintBrush.call(void 0, { ..._nullishCoalesce(brush, () => ( {})), id: base.id }, base));
|
|
11761
11765
|
if (refs.length) await c.prepareStickers(refs);
|
|
11762
11766
|
}
|
|
11763
11767
|
const path = options.origin && typeof a.path === "string" && a.path.trim() ? _chunkGF2RBSDMcjs.bezierPathToSvg.call(void 0, a.path, { offset: { x: -options.origin.x, y: -options.origin.y } }) : a.path;
|
|
@@ -11841,7 +11845,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
11841
11845
|
properties: {
|
|
11842
11846
|
id: { type: "string", description: "Stroke id from list_strokes {live: true}." },
|
|
11843
11847
|
brushId: { type: "string", description: "Brush id from list_brush_presets; the stroke keeps its size." },
|
|
11844
|
-
brush: { type: "object", properties:
|
|
11848
|
+
brush: { type: "object", properties: _chunk5OE4ZZ6Vcjs.BRUSH_PATCH_PROPERTIES, additionalProperties: false, description: "Facets to change on top of brushId or the stroke\u2019s brush (as set_brush takes them); missing fields keep their values." },
|
|
11845
11849
|
color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: "New colour #rrggbb (replaces gradient paint)." },
|
|
11846
11850
|
paint: { anyOf: [_chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA, { type: "null", description: "Back to the stroke\u2019s plain colour." }], description: "A colour or gradient paint for the stroke; null drops its gradient." },
|
|
11847
11851
|
seed: { type: "integer", minimum: 0, description: "Another jitter seed: particles, scatter and texture fall differently." }
|
|
@@ -12092,7 +12096,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
12092
12096
|
tools.push(..._chunkYHDHFJUCcjs.createPigmentTools.call(void 0, ));
|
|
12093
12097
|
tools.push(..._chunkPE6YJMQTcjs.createStickerTools.call(void 0, { provider: () => c.stickersProvider }));
|
|
12094
12098
|
tools.push(
|
|
12095
|
-
...
|
|
12099
|
+
..._chunkDGXTEPCUcjs.createLayerEffectTools.call(void 0,
|
|
12096
12100
|
{
|
|
12097
12101
|
requireLayer: (id) => void c.getLayerEffects(id),
|
|
12098
12102
|
getLayerEffects: (id) => c.getLayerEffects(id),
|
|
@@ -12151,14 +12155,15 @@ function strokeSummary(s, withPoints, live) {
|
|
|
12151
12155
|
|
|
12152
12156
|
// src/paint-editor/brush-library-tools.ts
|
|
12153
12157
|
function paintBrushPreviewRenderer(paper = () => DEFAULT_PAPER) {
|
|
12154
|
-
|
|
12155
|
-
const t = renderBrushThumbnail(
|
|
12158
|
+
const render = (brush, { width, height, color }) => {
|
|
12159
|
+
const t = renderBrushThumbnail(_chunk677777GHcjs.resolveBrush.call(void 0, brush), { paper: paper(), width, height, color: color.toLowerCase() });
|
|
12156
12160
|
return { data: _chunkW5M3J7PVcjs.bytesToBase64.call(void 0, _chunkW5M3J7PVcjs.encodePng.call(void 0, t.width, t.height, t.data)), mimeType: "image/png" };
|
|
12157
12161
|
};
|
|
12162
|
+
return Object.defineProperty(render, "paper", { get: () => paper().color, enumerable: true });
|
|
12158
12163
|
}
|
|
12159
12164
|
function createPaintBrushLibraryToolProvider(controller, options = {}) {
|
|
12160
|
-
return
|
|
12161
|
-
profile:
|
|
12165
|
+
return _chunk5OE4ZZ6Vcjs.createBrushLibraryToolProvider.call(void 0, controller.brushLibrary, {
|
|
12166
|
+
profile: _chunk677777GHcjs.PAINT_PROFILE,
|
|
12162
12167
|
stickers: () => controller.stickers.provider,
|
|
12163
12168
|
...options,
|
|
12164
12169
|
renderPreview: paintBrushPreviewRenderer(() => controller.getState().document.paper)
|
|
@@ -12654,7 +12659,7 @@ var DOT_ROTATION_LABELS = { follow: "Follow motion", random: "Random", fixed: "T
|
|
|
12654
12659
|
var STAMP_LABELS = { dot: "Dot", star: "Star", heart: "Heart", leaf: "Leaf", flower: "Flower", confetti: "Confetti", splat: "Splat", sparkle: "Sparkle", ring: "Ring" };
|
|
12655
12660
|
function toggleStickerRef(refs, ref2) {
|
|
12656
12661
|
if (refs.includes(ref2)) return refs.length > 1 ? refs.filter((r) => r !== ref2) : [...refs];
|
|
12657
|
-
return refs.length <
|
|
12662
|
+
return refs.length < _chunk677777GHcjs.MAX_STICKER_STAMPS ? [...refs, ref2] : [...refs];
|
|
12658
12663
|
}
|
|
12659
12664
|
function stickerRefLabel(ref2) {
|
|
12660
12665
|
const stamp = ref2.startsWith("editor:") ? ref2.slice(7) : null;
|
|
@@ -12667,7 +12672,7 @@ function toggleStamp(stamps, stamp) {
|
|
|
12667
12672
|
}
|
|
12668
12673
|
function toggleDotTexture(textures, stamp) {
|
|
12669
12674
|
if (textures.includes(stamp)) return textures.filter((s) => s !== stamp);
|
|
12670
|
-
return textures.length <
|
|
12675
|
+
return textures.length < _chunk677777GHcjs.MAX_DOT_TEXTURES ? [...textures, stamp] : [...textures];
|
|
12671
12676
|
}
|
|
12672
12677
|
var PATH_STROKE_TAPERS = [
|
|
12673
12678
|
{ id: "even", label: "Even" },
|
|
@@ -13461,7 +13466,7 @@ function toolList(provider) {
|
|
|
13461
13466
|
function uiTables() {
|
|
13462
13467
|
return {
|
|
13463
13468
|
tools: PAINT_TOOLS,
|
|
13464
|
-
brushOptions:
|
|
13469
|
+
brushOptions: _chunkDGXTEPCUcjs.BRUSH_OPTION_CONTROLS,
|
|
13465
13470
|
blendMenu: BLEND_MENU_GROUPS,
|
|
13466
13471
|
layerEffects: _chunkPVJMTLPJcjs.LAYER_EFFECT_MENU.map(({ kind, label }) => ({ kind, label, controls: _chunkPVJMTLPJcjs.layerEffectControls.call(void 0, _chunkPVJMTLPJcjs.defaultLayerEffect.call(void 0, kind, kind)) })),
|
|
13467
13472
|
sliders: { paper: PAPER_SLIDERS, wet: WET_PARAM_SLIDERS, wetTilt: WET_TILT_SLIDERS, wetSpeed: WET_SPEED_SLIDER, light: LIGHT_SLIDERS, stroke: STROKE_SLIDERS, sticker: STICKER_SLIDERS },
|
|
@@ -13888,4 +13893,4 @@ function createPaintConformanceHost(setup, options) {
|
|
|
13888
13893
|
|
|
13889
13894
|
|
|
13890
13895
|
|
|
13891
|
-
exports.BACKLIGHT_SPILL = BACKLIGHT_SPILL; exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunk2VX55NFMcjs.BLEND_MODES; exports.BRUSH_ID = _chunkBY5EBP26cjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunkBY5EBP26cjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = _chunkF3KKR6DDcjs.BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunkBY5EBP26cjs.BUILTIN_BRUSHES; exports.BristleStroke = BristleStroke; exports.DEFAULT_BACKLIGHT_COLOR = DEFAULT_BACKLIGHT_COLOR; exports.DEFAULT_BEHAVIOR = _chunkBY5EBP26cjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunkBY5EBP26cjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunkBY5EBP26cjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunkBY5EBP26cjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkYHDHFJUCcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunkBY5EBP26cjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHT = _chunkBY5EBP26cjs.DEFAULT_LIGHT; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunkBY5EBP26cjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunkBY5EBP26cjs.DEFAULT_PARTICLE; exports.DEFAULT_SPRAY = _chunkBY5EBP26cjs.DEFAULT_SPRAY; exports.DEFAULT_STICKER = _chunkBY5EBP26cjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunkBY5EBP26cjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkYHDHFJUCcjs.DEFAULT_WET_PARAMS; exports.DOT_ROTATIONS = _chunkBY5EBP26cjs.DOT_ROTATIONS; exports.DOT_ROTATION_LABELS = DOT_ROTATION_LABELS; exports.DOT_TEXTURE_ORDERS = _chunkBY5EBP26cjs.DOT_TEXTURE_ORDERS; exports.DOT_TEXTURE_ORDER_LABELS = DOT_TEXTURE_ORDER_LABELS; exports.DryStroke = DryStroke; exports.EFFECT_MAP_REPEATS = EFFECT_MAP_REPEATS; exports.EFFECT_STRIP_HEIGHT = EFFECT_STRIP_HEIGHT; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkPXDIAYB6cjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPXDIAYB6cjs.GRAIN_TILE; exports.HARMONY_KINDS = _chunkI3Y2Q3PMcjs.HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunkBY5EBP26cjs.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 = _chunkFQPUF2W2cjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_DOT_TEXTURES = _chunkBY5EBP26cjs.MAX_DOT_TEXTURES; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; exports.MAX_LIVE_EFFECT_SOURCES = MAX_LIVE_EFFECT_SOURCES; exports.MAX_PATH_SAMPLES = MAX_PATH_SAMPLES; exports.MAX_STICKER_STAMPS = _chunkBY5EBP26cjs.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 = _chunkBY5EBP26cjs.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 = _chunkBY5EBP26cjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunkBY5EBP26cjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_CONTRACT_FORMAT_VERSION = PAINT_CONTRACT_FORMAT_VERSION; exports.PAINT_DOCUMENT_JSON_SCHEMA = PAINT_DOCUMENT_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkFQPUF2W2cjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkFQPUF2W2cjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SHORTCUTS = PAINT_SHORTCUTS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkFQPUF2W2cjs.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 = PAPER_FAMILIES; exports.PAPER_LIBRARY = PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunkBY5EBP26cjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunkBY5EBP26cjs.PARTICLE_RENDERS; exports.PARTICLE_RENDER_LABELS = PARTICLE_RENDER_LABELS; exports.PATH_STROKE_TAPERS = PATH_STROKE_TAPERS; 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 = _chunkFQPUF2W2cjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkFQPUF2W2cjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkPXDIAYB6cjs.PaperGrain; exports.ParticleStroke = ParticleStroke; exports.PenDabWalker = PenDabWalker; exports.PenSmoother = PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.RIBBON_PAIRS = _chunkBY5EBP26cjs.RIBBON_PAIRS; exports.RIBBON_PAIR_LABELS = RIBBON_PAIR_LABELS; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunkOTN6VB5Scjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_ART_SIZE = STICKER_ART_SIZE; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.STROKE_SLIDERS = STROKE_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerArtCache = StickerArtCache; exports.StickerBrowser = _chunkXORJ7UZOcjs.StickerBrowser; exports.StickerSpray = StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkYHDHFJUCcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunkBY5EBP26cjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkYHDHFJUCcjs.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 = _chunkBY5EBP26cjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkFQPUF2W2cjs.addPaintGradientStop; exports.addPolygonArea = addPolygonArea; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.backlightOf = backlightOf; exports.brushEngineControls = _chunkF3KKR6DDcjs.brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunkBY5EBP26cjs.brushTakesPaint; exports.brushToJSON = _chunkBY5EBP26cjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = clonePaper; exports.colorHarmony = colorHarmony2; exports.composeAffine = composeAffine; exports.contactSheet = contactSheet; exports.createPaintAgentStrokes = createPaintAgentStrokes; exports.createPaintBrushLibraryToolProvider = createPaintBrushLibraryToolProvider; exports.createPaintChangeFeed = createPaintChangeFeed; exports.createPaintCompositor = createPaintCompositor; exports.createPaintConformanceHost = createPaintConformanceHost; exports.createPaintDocument = createPaintDocument; exports.createPaintEditorDocument = createPaintEditorDocument; exports.createPaintEditorToolProvider = createPaintEditorToolProvider; exports.createPaintEffectsToolProvider = createPaintEffectsToolProvider; exports.createPaintLayer = createPaintLayer; exports.createPaintProposalToolProvider = createPaintProposalToolProvider; exports.createPaintProposals = createPaintProposals; exports.createPaintReplayTools = createPaintReplayTools; exports.createPaintStickerTools = createPaintStickerTools; exports.createPaintThickTools = createPaintThickTools; exports.createPaintWetTools = createPaintWetTools; exports.decodeImageBlob = decodeImageBlob; exports.defaultGuides = defaultGuides; exports.defaultImageEncoder = defaultImageEncoder; exports.defaultStickerRasterizer = defaultStickerRasterizer; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectDabField = effectDabField; exports.effectLayersToJSON = effectLayersToJSON; exports.effectPaintKey = effectPaintKey; exports.effectPaintSize = effectPaintSize; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkPXDIAYB6cjs.grainCatch; exports.grainHeights = _chunkPXDIAYB6cjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.hexToPaintRgb = _chunkFQPUF2W2cjs.hexToPaintRgb; exports.hexToRgb8 = hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = _chunkI3Y2Q3PMcjs.hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunk2VX55NFMcjs.isBlendMode; exports.isGradientPaint = _chunkFQPUF2W2cjs.isGradientPaint; exports.isPaintEffectPaint = isPaintEffectPaint; exports.isPainterlyBlendMode = _chunk2VX55NFMcjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunkBY5EBP26cjs.isWetBrush; exports.isWetCapable = _chunkBY5EBP26cjs.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 = mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = _chunkF3KKR6DDcjs.multiColorSliders; exports.multiColorToPaint = _chunkBY5EBP26cjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunkBY5EBP26cjs.normalizeBehavior; exports.normalizeBristle = _chunkBY5EBP26cjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunkBY5EBP26cjs.normalizeDynamics; exports.normalizeFlow = _chunkYHDHFJUCcjs.normalizeFlow; exports.normalizeHexColor = _chunkFQPUF2W2cjs.normalizeHexColor; exports.normalizeImpasto = _chunkBY5EBP26cjs.normalizeImpasto; exports.normalizeLight = _chunkBY5EBP26cjs.normalizeLight; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunkBY5EBP26cjs.normalizeMultiColor; exports.normalizePaintBrush = _chunkBY5EBP26cjs.normalizePaintBrush; exports.normalizePaper = normalizePaper; exports.normalizeParticle = _chunkBY5EBP26cjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunkBY5EBP26cjs.normalizeStickerSettings; exports.normalizeStickerUpdate = normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunkBY5EBP26cjs.normalizeWetBrush; exports.normalizeWetParams = _chunkYHDHFJUCcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintAgentStrokePoints = paintAgentStrokePoints; exports.paintBrushPreviewRenderer = paintBrushPreviewRenderer; exports.paintContracts = paintContracts; exports.paintGradientMappingFor = _chunkFQPUF2W2cjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintProposalGhost = paintProposalGhost; exports.paintShortcutFor = paintShortcutFor; exports.paintSourceColor = _chunkFQPUF2W2cjs.paintSourceColor; exports.paintSourceCss = _chunkFQPUF2W2cjs.paintSourceCss; exports.paintToMultiColor = _chunkBY5EBP26cjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = paperPreset; exports.parseBrushLibrary = _chunkBY5EBP26cjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkFQPUF2W2cjs.parsePaintSource; exports.patchBrushValue = _chunkF3KKR6DDcjs.patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = 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 = readEffectStrokeMap; exports.readPaintEffectPaint = readPaintEffectPaint; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkFQPUF2W2cjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkFQPUF2W2cjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = renderPaper; exports.renderStickers = renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkFQPUF2W2cjs.resolvePaintGradient; exports.reversePaintGradient = _chunkFQPUF2W2cjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.sampleArt = sampleArt; exports.sampleEffectAt = sampleEffectAt; exports.sampleEffectField = sampleEffectField; exports.samplePath = samplePath; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkFQPUF2W2cjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkFQPUF2W2cjs.solidPaint; exports.stampCoverage = _chunkOTN6VB5Scjs.stampCoverage; exports.standardBlendMode = _chunk2VX55NFMcjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerAt = stickerAt; exports.stickerRect = stickerRect; exports.stickerRefLabel = stickerRefLabel; exports.stickerStamp = stickerStamp; exports.stickerSurface = stickerSurface; exports.strokeBounds = strokeBounds; exports.strokeDuration = strokeDuration; exports.strokeSchedule = strokeSchedule; exports.strokeToJSON = strokeToJSON; exports.sweepPath = sweepPath; exports.symmetryAxisAngles = symmetryAxisAngles; exports.symmetryAxisSegments = symmetryAxisSegments; exports.symmetryCopies = symmetryCopies; exports.thickFromJSON = thickFromJSON; exports.thickToJSON = thickToJSON; exports.thumbnailStroke = thumbnailStroke; exports.tiltToOrientation = tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = toStrokePoint; exports.toggleDotTexture = toggleDotTexture; exports.toggleStamp = toggleStamp; exports.toggleStickerRef = toggleStickerRef; exports.translateStencil = translateStencil; exports.updatePaintGradientStop = _chunkFQPUF2W2cjs.updatePaintGradientStop; exports.usesPaintExchange = _chunkBY5EBP26cjs.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 = _chunkYHDHFJUCcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = _chunkI3Y2Q3PMcjs.wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|
|
13896
|
+
exports.BACKLIGHT_SPILL = BACKLIGHT_SPILL; exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunk2VX55NFMcjs.BLEND_MODES; exports.BRUSH_ID = _chunk677777GHcjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunk677777GHcjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = _chunk5OE4ZZ6Vcjs.BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunk677777GHcjs.BUILTIN_BRUSHES; exports.BristleStroke = BristleStroke; exports.DEFAULT_BACKLIGHT_COLOR = DEFAULT_BACKLIGHT_COLOR; exports.DEFAULT_BEHAVIOR = _chunk677777GHcjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunk677777GHcjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunk677777GHcjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunk677777GHcjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkYHDHFJUCcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunk677777GHcjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHT = _chunk677777GHcjs.DEFAULT_LIGHT; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunk677777GHcjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunk677777GHcjs.DEFAULT_PARTICLE; exports.DEFAULT_SPRAY = _chunk677777GHcjs.DEFAULT_SPRAY; exports.DEFAULT_STICKER = _chunk677777GHcjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunk677777GHcjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkYHDHFJUCcjs.DEFAULT_WET_PARAMS; exports.DOT_ROTATIONS = _chunk677777GHcjs.DOT_ROTATIONS; exports.DOT_ROTATION_LABELS = DOT_ROTATION_LABELS; exports.DOT_TEXTURE_ORDERS = _chunk677777GHcjs.DOT_TEXTURE_ORDERS; exports.DOT_TEXTURE_ORDER_LABELS = DOT_TEXTURE_ORDER_LABELS; exports.DryStroke = DryStroke; exports.EFFECT_MAP_REPEATS = EFFECT_MAP_REPEATS; exports.EFFECT_STRIP_HEIGHT = EFFECT_STRIP_HEIGHT; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkPXDIAYB6cjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPXDIAYB6cjs.GRAIN_TILE; exports.HARMONY_KINDS = _chunkI3Y2Q3PMcjs.HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunk677777GHcjs.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 = _chunkFQPUF2W2cjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_DOT_TEXTURES = _chunk677777GHcjs.MAX_DOT_TEXTURES; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; exports.MAX_LIVE_EFFECT_SOURCES = MAX_LIVE_EFFECT_SOURCES; exports.MAX_PATH_SAMPLES = MAX_PATH_SAMPLES; exports.MAX_STICKER_STAMPS = _chunk677777GHcjs.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 = _chunk677777GHcjs.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 = _chunk677777GHcjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunk677777GHcjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_CONTRACT_FORMAT_VERSION = PAINT_CONTRACT_FORMAT_VERSION; exports.PAINT_DOCUMENT_JSON_SCHEMA = PAINT_DOCUMENT_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkFQPUF2W2cjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkFQPUF2W2cjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SHORTCUTS = PAINT_SHORTCUTS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkFQPUF2W2cjs.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 = PAPER_FAMILIES; exports.PAPER_LIBRARY = PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunk677777GHcjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunk677777GHcjs.PARTICLE_RENDERS; exports.PARTICLE_RENDER_LABELS = PARTICLE_RENDER_LABELS; exports.PATH_STROKE_TAPERS = PATH_STROKE_TAPERS; 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 = _chunkFQPUF2W2cjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkFQPUF2W2cjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkPXDIAYB6cjs.PaperGrain; exports.ParticleStroke = ParticleStroke; exports.PenDabWalker = PenDabWalker; exports.PenSmoother = PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.RIBBON_PAIRS = _chunk677777GHcjs.RIBBON_PAIRS; exports.RIBBON_PAIR_LABELS = RIBBON_PAIR_LABELS; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunkOTN6VB5Scjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_ART_SIZE = STICKER_ART_SIZE; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.STROKE_SLIDERS = STROKE_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerArtCache = StickerArtCache; exports.StickerBrowser = _chunkXORJ7UZOcjs.StickerBrowser; exports.StickerSpray = StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkYHDHFJUCcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunk677777GHcjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkYHDHFJUCcjs.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 = _chunk677777GHcjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkFQPUF2W2cjs.addPaintGradientStop; exports.addPolygonArea = addPolygonArea; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.backlightOf = backlightOf; exports.brushEngineControls = _chunk5OE4ZZ6Vcjs.brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunk677777GHcjs.brushTakesPaint; exports.brushToJSON = _chunk677777GHcjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = clonePaper; exports.colorHarmony = colorHarmony2; exports.composeAffine = composeAffine; exports.contactSheet = contactSheet; exports.createPaintAgentStrokes = createPaintAgentStrokes; exports.createPaintBrushLibraryToolProvider = createPaintBrushLibraryToolProvider; exports.createPaintChangeFeed = createPaintChangeFeed; exports.createPaintCompositor = createPaintCompositor; exports.createPaintConformanceHost = createPaintConformanceHost; exports.createPaintDocument = createPaintDocument; exports.createPaintEditorDocument = createPaintEditorDocument; exports.createPaintEditorToolProvider = createPaintEditorToolProvider; exports.createPaintEffectsToolProvider = createPaintEffectsToolProvider; exports.createPaintLayer = createPaintLayer; exports.createPaintProposalToolProvider = createPaintProposalToolProvider; exports.createPaintProposals = createPaintProposals; exports.createPaintReplayTools = createPaintReplayTools; exports.createPaintStickerTools = createPaintStickerTools; exports.createPaintThickTools = createPaintThickTools; exports.createPaintWetTools = createPaintWetTools; exports.decodeImageBlob = decodeImageBlob; exports.defaultGuides = defaultGuides; exports.defaultImageEncoder = defaultImageEncoder; exports.defaultStickerRasterizer = defaultStickerRasterizer; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectDabField = effectDabField; exports.effectLayersToJSON = effectLayersToJSON; exports.effectPaintKey = effectPaintKey; exports.effectPaintSize = effectPaintSize; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkPXDIAYB6cjs.grainCatch; exports.grainHeights = _chunkPXDIAYB6cjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.hexToPaintRgb = _chunkFQPUF2W2cjs.hexToPaintRgb; exports.hexToRgb8 = hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = _chunkI3Y2Q3PMcjs.hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunk2VX55NFMcjs.isBlendMode; exports.isGradientPaint = _chunkFQPUF2W2cjs.isGradientPaint; exports.isPaintEffectPaint = isPaintEffectPaint; exports.isPainterlyBlendMode = _chunk2VX55NFMcjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunk677777GHcjs.isWetBrush; exports.isWetCapable = _chunk677777GHcjs.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 = mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = _chunk5OE4ZZ6Vcjs.multiColorSliders; exports.multiColorToPaint = _chunk677777GHcjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunk677777GHcjs.normalizeBehavior; exports.normalizeBristle = _chunk677777GHcjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunk677777GHcjs.normalizeDynamics; exports.normalizeFlow = _chunkYHDHFJUCcjs.normalizeFlow; exports.normalizeHexColor = _chunkFQPUF2W2cjs.normalizeHexColor; exports.normalizeImpasto = _chunk677777GHcjs.normalizeImpasto; exports.normalizeLight = _chunk677777GHcjs.normalizeLight; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunk677777GHcjs.normalizeMultiColor; exports.normalizePaintBrush = _chunk677777GHcjs.normalizePaintBrush; exports.normalizePaper = normalizePaper; exports.normalizeParticle = _chunk677777GHcjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunk677777GHcjs.normalizeStickerSettings; exports.normalizeStickerUpdate = normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunk677777GHcjs.normalizeWetBrush; exports.normalizeWetParams = _chunkYHDHFJUCcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintAgentStrokePoints = paintAgentStrokePoints; exports.paintBrushPreviewRenderer = paintBrushPreviewRenderer; exports.paintContracts = paintContracts; exports.paintGradientMappingFor = _chunkFQPUF2W2cjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintProposalGhost = paintProposalGhost; exports.paintShortcutFor = paintShortcutFor; exports.paintSourceColor = _chunkFQPUF2W2cjs.paintSourceColor; exports.paintSourceCss = _chunkFQPUF2W2cjs.paintSourceCss; exports.paintToMultiColor = _chunk677777GHcjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = paperPreset; exports.parseBrushLibrary = _chunk677777GHcjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkFQPUF2W2cjs.parsePaintSource; exports.patchBrushValue = _chunk5OE4ZZ6Vcjs.patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = 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 = readEffectStrokeMap; exports.readPaintEffectPaint = readPaintEffectPaint; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkFQPUF2W2cjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkFQPUF2W2cjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = renderPaper; exports.renderStickers = renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkFQPUF2W2cjs.resolvePaintGradient; exports.reversePaintGradient = _chunkFQPUF2W2cjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.sampleArt = sampleArt; exports.sampleEffectAt = sampleEffectAt; exports.sampleEffectField = sampleEffectField; exports.samplePath = samplePath; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkFQPUF2W2cjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkFQPUF2W2cjs.solidPaint; exports.stampCoverage = _chunkOTN6VB5Scjs.stampCoverage; exports.standardBlendMode = _chunk2VX55NFMcjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerAt = stickerAt; exports.stickerRect = stickerRect; exports.stickerRefLabel = stickerRefLabel; exports.stickerStamp = stickerStamp; exports.stickerSurface = stickerSurface; exports.strokeBounds = strokeBounds; exports.strokeDuration = strokeDuration; exports.strokeSchedule = strokeSchedule; exports.strokeToJSON = strokeToJSON; exports.sweepPath = sweepPath; exports.symmetryAxisAngles = symmetryAxisAngles; exports.symmetryAxisSegments = symmetryAxisSegments; exports.symmetryCopies = symmetryCopies; exports.thickFromJSON = thickFromJSON; exports.thickToJSON = thickToJSON; exports.thumbnailStroke = thumbnailStroke; exports.tiltToOrientation = tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = toStrokePoint; exports.toggleDotTexture = toggleDotTexture; exports.toggleStamp = toggleStamp; exports.toggleStickerRef = toggleStickerRef; exports.translateStencil = translateStencil; exports.updatePaintGradientStop = _chunkFQPUF2W2cjs.updatePaintGradientStop; exports.usesPaintExchange = _chunk677777GHcjs.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 = _chunkYHDHFJUCcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = _chunkI3Y2Q3PMcjs.wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|