@pixerate/editor 0.141.0 → 0.142.1
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/agent/index.cjs +33 -14
- package/dist/agent/index.js +24 -5
- package/dist/agent/providers.d.cts +4 -1
- package/dist/agent/providers.d.ts +4 -1
- package/dist/animation-editor/index.cjs +69 -19
- package/dist/animation-editor/index.d.cts +1 -0
- package/dist/animation-editor/index.d.ts +1 -0
- package/dist/animation-editor/index.js +54 -4
- package/dist/animation-editor/playback.d.cts +10 -0
- package/dist/animation-editor/playback.d.ts +10 -0
- package/dist/chart/index.cjs +254 -170
- package/dist/chart/index.d.cts +1 -0
- package/dist/chart/index.d.ts +1 -0
- package/dist/chart/index.js +243 -159
- package/dist/chart/playback.d.cts +22 -0
- package/dist/chart/playback.d.ts +22 -0
- package/dist/{chunk-MFFE55CS.js → chunk-54GVEVXS.js} +6 -4
- package/dist/{chunk-E747F3D5.js → chunk-CC6WKVIH.js} +86 -5
- package/dist/{chunk-VTY64I6H.cjs → chunk-QSM3MDDJ.cjs} +85 -85
- package/dist/{chunk-2RUNJYOX.cjs → chunk-QZFEX2N4.cjs} +86 -5
- package/dist/{chunk-LMSFXRAJ.js → chunk-VGJTUCWM.js} +1 -1
- package/dist/{chunk-6SFREX6H.cjs → chunk-X2HQP7DF.cjs} +6 -4
- package/dist/chunk-XH32BATE.cjs +68 -0
- package/dist/chunk-Y6SGC6KO.js +68 -0
- package/dist/commands/index.cjs +2 -2
- package/dist/commands/index.js +1 -1
- package/dist/index.cjs +7 -3
- package/dist/index.js +6 -2
- package/dist/paint-editor/index.cjs +67 -19
- package/dist/paint-editor/index.d.cts +1 -0
- package/dist/paint-editor/index.d.ts +1 -0
- package/dist/paint-editor/index.js +67 -19
- package/dist/paint-editor/playback.d.cts +16 -0
- package/dist/paint-editor/playback.d.ts +16 -0
- package/dist/parameters/index.cjs +32 -8
- package/dist/parameters/index.d.cts +1 -0
- package/dist/parameters/index.d.ts +1 -0
- package/dist/parameters/index.js +28 -4
- package/dist/parameters/playback.d.cts +10 -0
- package/dist/parameters/playback.d.ts +10 -0
- package/dist/spreadsheet/index.cjs +7 -3
- package/dist/spreadsheet/index.d.cts +1 -0
- package/dist/spreadsheet/index.d.ts +1 -0
- package/dist/spreadsheet/index.js +6 -2
- package/dist/spreadsheet/playback.d.cts +15 -0
- package/dist/spreadsheet/playback.d.ts +15 -0
- package/dist/tools/index.cjs +10 -3
- package/dist/tools/index.d.cts +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +9 -2
- package/dist/tools/script.d.cts +77 -0
- package/dist/tools/script.d.ts +77 -0
- package/dist/video-editor/index.cjs +81 -28
- package/dist/video-editor/index.d.cts +1 -0
- package/dist/video-editor/index.d.ts +1 -0
- package/dist/video-editor/index.js +58 -5
- package/dist/video-editor/playback.d.cts +20 -0
- package/dist/video-editor/playback.d.ts +20 -0
- package/package.json +1 -1
- package/skills/pixerate-animation-editor/SKILL.md +1 -0
- package/skills/pixerate-chart/SKILL.md +1 -0
- package/skills/pixerate-paint-editor/SKILL.md +1 -0
- package/skills/pixerate-parameters/SKILL.md +1 -0
- package/skills/pixerate-spreadsheet/SKILL.md +1 -0
- package/skills/pixerate-video-editor/SKILL.md +1 -0
- package/dist/chunk-PLKIYNJZ.js +0 -0
- package/dist/chunk-TNCWKC5M.cjs +0 -1
|
@@ -6051,6 +6051,51 @@ var PaintDirector = class {
|
|
|
6051
6051
|
}
|
|
6052
6052
|
};
|
|
6053
6053
|
|
|
6054
|
+
// src/paint-editor/playback.ts
|
|
6055
|
+
var WET = /^(advance_wet_paint|dry_paint|wet_paper|set_wet_settings|set_flow_map|set_canvas_tilt|pause_wet_paint|set_wet_engine|set_water_overlay)$/;
|
|
6056
|
+
var PAPER = /^(set_paper|set_lighting|flatten_relief|set_instant_dry)$/;
|
|
6057
|
+
var LAYERS = /^(add_layer|update_layer|set_active_layer|remove_layer|duplicate_layer|move_layer|merge_layer_down|clear_layer|update_sticker|arrange_stickers|remove_stickers)$/;
|
|
6058
|
+
var PAD = /^(mixing_pad_stroke|pick_mixing_pad_color|clear_mixing_pad|mix_on_pad|save_mixing_pad|load_mixing_pad|remove_mixing_pad|mix_colors)$/;
|
|
6059
|
+
var COLOR = /^(set_color|set_paint|color_harmony|add_swatch|remove_swatch|load_mixer_brush|clean_mixer_brush)$/;
|
|
6060
|
+
var EFFECTS = /effect/;
|
|
6061
|
+
function paintPlaybackPanel(tool) {
|
|
6062
|
+
if (WET.test(tool)) return "wet";
|
|
6063
|
+
if (PAPER.test(tool)) return "paper";
|
|
6064
|
+
if (LAYERS.test(tool)) return "layers";
|
|
6065
|
+
if (PAD.test(tool) || COLOR.test(tool)) return "color";
|
|
6066
|
+
if (EFFECTS.test(tool)) return "effects";
|
|
6067
|
+
return null;
|
|
6068
|
+
}
|
|
6069
|
+
function controlOf(tool) {
|
|
6070
|
+
if (PAD.test(tool)) return { kind: "control", id: "mixing-pad" };
|
|
6071
|
+
if (tool === "set_lighting" || tool === "flatten_relief") return { kind: "control", id: "lighting" };
|
|
6072
|
+
if (tool === "set_symmetry" || tool === "set_perspective_guide") return { kind: "control", id: "symmetry" };
|
|
6073
|
+
const panel = paintPlaybackPanel(tool);
|
|
6074
|
+
return panel ? { kind: "panel-body", id: panel } : null;
|
|
6075
|
+
}
|
|
6076
|
+
function planPaintToolPlayback(tool, _args) {
|
|
6077
|
+
const steps = [];
|
|
6078
|
+
const panel = paintPlaybackPanel(tool);
|
|
6079
|
+
if (panel) steps.push({ type: "open", ref: { kind: "panel", id: panel } });
|
|
6080
|
+
const control = controlOf(tool);
|
|
6081
|
+
if (control) steps.push({ type: "target", ref: control }, { type: "press" }, { type: "release" });
|
|
6082
|
+
return steps.length ? steps : null;
|
|
6083
|
+
}
|
|
6084
|
+
var DIRECTED = /* @__PURE__ */ new Set(["paint_stroke", "fill_layer", "replay_strokes"]);
|
|
6085
|
+
function withPaintPlayback(provider, options) {
|
|
6086
|
+
const plan = (tool) => {
|
|
6087
|
+
if (tool.plan || tool.playback !== void 0) return tool;
|
|
6088
|
+
if (options.director && DIRECTED.has(tool.name)) return { ...tool, playback: "self" };
|
|
6089
|
+
return { ...tool, plan: (args) => planPaintToolPlayback(tool.name, args) };
|
|
6090
|
+
};
|
|
6091
|
+
const tools = provider.tools;
|
|
6092
|
+
return {
|
|
6093
|
+
...provider,
|
|
6094
|
+
playbackSurface: _nullishCoalesce(_nullishCoalesce(provider.playbackSurface, () => ( options.surface)), () => ( "paint")),
|
|
6095
|
+
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
6096
|
+
};
|
|
6097
|
+
}
|
|
6098
|
+
|
|
6054
6099
|
// src/paint-editor/sticker-tools.ts
|
|
6055
6100
|
var READ = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
6056
6101
|
var WRITE = { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
|
|
@@ -6123,7 +6168,7 @@ var WRITE2 = { readOnlyHint: false, destructiveHint: false, idempotentHint: fals
|
|
|
6123
6168
|
var SET = { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
6124
6169
|
var DESTRUCTIVE2 = { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false };
|
|
6125
6170
|
var EMPTY = { type: "object", properties: {}, additionalProperties: false };
|
|
6126
|
-
var
|
|
6171
|
+
var COLOR2 = { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: "Colour #rrggbb." };
|
|
6127
6172
|
var POINT = {
|
|
6128
6173
|
type: "object",
|
|
6129
6174
|
properties: { x: { type: "number", description: "x in document pixels." }, y: { type: "number", description: "y in document pixels." } },
|
|
@@ -6346,7 +6391,7 @@ function createPaintGuideTools(c) {
|
|
|
6346
6391
|
type: "object",
|
|
6347
6392
|
properties: {
|
|
6348
6393
|
kind: { type: "string", enum: [...HARMONY_KINDS], description: "The harmony." },
|
|
6349
|
-
color: { ...
|
|
6394
|
+
color: { ...COLOR2, description: "Base colour #rrggbb (default the paint colour)." },
|
|
6350
6395
|
wheel: { type: "string", enum: ["ryb", "rgb"], description: "ryb (painter\u2019s wheel, default) or rgb." },
|
|
6351
6396
|
spread: { type: "number", minimum: 5, maximum: 90, description: "Analogous and split-complementary spread in degrees (default 30)." }
|
|
6352
6397
|
},
|
|
@@ -6371,7 +6416,7 @@ function createPaintGuideTools(c) {
|
|
|
6371
6416
|
inputSchema: {
|
|
6372
6417
|
type: "object",
|
|
6373
6418
|
properties: {
|
|
6374
|
-
color: { ...
|
|
6419
|
+
color: { ...COLOR2, description: "A colour #rrggbb." },
|
|
6375
6420
|
paint: { ..._chunkLRRCMRSLcjs.PAINT_SOURCE_JSON_SCHEMA, description: "Gradient paint (or a colour) for the swatch, instead of color." },
|
|
6376
6421
|
name: { type: "string", minLength: 1, description: "Optional name." }
|
|
6377
6422
|
},
|
|
@@ -6411,7 +6456,7 @@ function createPaintGuideTools(c) {
|
|
|
6411
6456
|
}
|
|
6412
6457
|
},
|
|
6413
6458
|
tool: { type: "string", enum: ["paint", "knife"], description: "paint (default) or knife." },
|
|
6414
|
-
color: { ...
|
|
6459
|
+
color: { ...COLOR2, description: "Paint colour (default the paint colour; ignored by the knife)." },
|
|
6415
6460
|
size: { type: "number", minimum: 1, maximum: 200, description: "Tool size in pad pixels (default 28 paint, 34 knife)." }
|
|
6416
6461
|
},
|
|
6417
6462
|
required: ["points"],
|
|
@@ -6464,7 +6509,7 @@ function createPaintGuideTools(c) {
|
|
|
6464
6509
|
items: {
|
|
6465
6510
|
type: "object",
|
|
6466
6511
|
properties: {
|
|
6467
|
-
color: { ...
|
|
6512
|
+
color: { ...COLOR2, description: "Paint colour #rrggbb." },
|
|
6468
6513
|
parts: { type: "number", minimum: 0, description: "Parts of this paint, any scale (1 and 3 for a 1:3 mix); at least one above 0." }
|
|
6469
6514
|
},
|
|
6470
6515
|
required: ["color", "parts"],
|
|
@@ -6871,7 +6916,7 @@ var WRITE5 = { readOnlyHint: false, destructiveHint: false, idempotentHint: fals
|
|
|
6871
6916
|
var SET4 = { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
6872
6917
|
var DESTRUCTIVE3 = { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false };
|
|
6873
6918
|
var EMPTY3 = { type: "object", properties: {}, additionalProperties: false };
|
|
6874
|
-
var
|
|
6919
|
+
var COLOR3 = { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: 'Colour #rrggbb, e.g. "#2a4b8d".' };
|
|
6875
6920
|
var LAYER_ID4 = { type: "string", description: "Layer id from list_layers (default the active layer)." };
|
|
6876
6921
|
var TIP = {
|
|
6877
6922
|
type: "object",
|
|
@@ -6940,7 +6985,7 @@ var BEHAVIOR = {
|
|
|
6940
6985
|
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.",
|
|
6941
6986
|
properties: {
|
|
6942
6987
|
mode: { type: "string", enum: [..._chunkBXMIBMVGcjs.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." },
|
|
6943
|
-
colors: { type: "array", maxItems: 8, items: { ...
|
|
6988
|
+
colors: { type: "array", maxItems: 8, items: { ...COLOR3 }, description: "2..8 colours #rrggbb; fewer than 2 uses the paint colour and the secondary colour." },
|
|
6944
6989
|
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)." },
|
|
6945
6990
|
length: { type: "integer", minimum: 1, maximum: 500, description: "dab mode: dabs per colour (default 12)." },
|
|
6946
6991
|
softness: { type: "number", minimum: 0, maximum: 1, description: "How softly neighbouring colours blend: 0 hard stripes or steps, 1 a smooth gradient." }
|
|
@@ -7238,7 +7283,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7238
7283
|
type: "object",
|
|
7239
7284
|
properties: {
|
|
7240
7285
|
preset: { type: "string", description: "Paper id from list_papers (its settings, then the other fields here on top)." },
|
|
7241
|
-
color: { ...
|
|
7286
|
+
color: { ...COLOR3, description: "Paper colour #rrggbb." },
|
|
7242
7287
|
depth: { type: "number", minimum: 0, maximum: 1, description: "Grain depth 0..1 (0: brushes ignore the grain)." },
|
|
7243
7288
|
scale: { type: "number", minimum: 0.25, maximum: 8, description: "Grain scale: 1 natural, 2 twice as coarse." },
|
|
7244
7289
|
seed: { type: "integer", minimum: 0, description: "Grain seed: another sheet of the same paper." },
|
|
@@ -7394,7 +7439,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7394
7439
|
type: "object",
|
|
7395
7440
|
properties: {
|
|
7396
7441
|
layerId: LAYER_ID4,
|
|
7397
|
-
color: { ...
|
|
7442
|
+
color: { ...COLOR3, description: "Fill colour #rrggbb (default the paint colour)." },
|
|
7398
7443
|
opacity: { type: "number", minimum: 0, maximum: 1, description: "Opacity 0..1 (default 1)." },
|
|
7399
7444
|
grain: { type: "number", minimum: 0, maximum: 1, description: "Paper grain response 0..1 (default 0: flat)." },
|
|
7400
7445
|
pressure: { type: "number", minimum: 0, maximum: 1, description: "With grain: how far into the valleys, 0..1 (default 0.5)." },
|
|
@@ -7511,7 +7556,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7511
7556
|
id: { type: "string", description: "Brush id from list_brushes (default the active brush)." },
|
|
7512
7557
|
width: { type: "integer", minimum: 16, maximum: 512, description: "Width in pixels (default 160)." },
|
|
7513
7558
|
height: { type: "integer", minimum: 16, maximum: 512, description: "Height in pixels (default 48)." },
|
|
7514
|
-
color: { ...
|
|
7559
|
+
color: { ...COLOR3, description: "Stroke colour (default the paint colour)." }
|
|
7515
7560
|
},
|
|
7516
7561
|
additionalProperties: false
|
|
7517
7562
|
},
|
|
@@ -7532,7 +7577,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7532
7577
|
description: "Sets the paint colour (and optionally the second colour) that strokes and fills use by default. Editor state, not an undo step. Returns both colours.",
|
|
7533
7578
|
inputSchema: {
|
|
7534
7579
|
type: "object",
|
|
7535
|
-
properties: { color: { ...
|
|
7580
|
+
properties: { color: { ...COLOR3, description: "Paint colour #rrggbb." }, secondaryColor: { ...COLOR3, description: "Second colour #rrggbb." } },
|
|
7536
7581
|
additionalProperties: false
|
|
7537
7582
|
},
|
|
7538
7583
|
annotations: { title: "Set the paint colour", ...SET4 },
|
|
@@ -7584,7 +7629,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7584
7629
|
name: "load_mixer_brush",
|
|
7585
7630
|
title: "Load the Mixer Brush",
|
|
7586
7631
|
description: "Fills the Mixer Brush reservoir with a colour (amount 1), keeping what it picked up. Editor state, not an undo step. Returns the load.",
|
|
7587
|
-
inputSchema: { type: "object", properties: { color: { ...
|
|
7632
|
+
inputSchema: { type: "object", properties: { color: { ...COLOR3, description: "Colour #rrggbb (default the paint colour)." } }, additionalProperties: false },
|
|
7588
7633
|
annotations: { title: "Load the Mixer Brush", ...SET4 },
|
|
7589
7634
|
handler: ({ color }) => loadResult(c.loadMixerBrush(color))
|
|
7590
7635
|
});
|
|
@@ -7607,7 +7652,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7607
7652
|
layerId: LAYER_ID4,
|
|
7608
7653
|
brushId: { type: "string", description: "Brush id from list_brushes (default the active brush)." },
|
|
7609
7654
|
brush: { type: "object", description: "Brush changes for this stroke only.", properties: BRUSH_FIELDS, additionalProperties: false },
|
|
7610
|
-
color: { ...
|
|
7655
|
+
color: { ...COLOR3, description: "Paint colour #rrggbb (default the paint colour)." },
|
|
7611
7656
|
paint: { ..._chunkLRRCMRSLcjs.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." },
|
|
7612
7657
|
seed: { type: "integer", minimum: 0, description: "Jitter seed (default a new one); the same seed and points give the same marks." },
|
|
7613
7658
|
snapToPerspective: { type: "boolean", description: "Snap the points to the perspective guide, as a pen stroke would (default false)." }
|
|
@@ -7684,7 +7729,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7684
7729
|
additionalProperties: false
|
|
7685
7730
|
},
|
|
7686
7731
|
pressureScale: { type: "number", minimum: 0, maximum: 4, description: "Multiply every pressure (default 1)." },
|
|
7687
|
-
color: { ...
|
|
7732
|
+
color: { ...COLOR3, description: "Recolour (default each stroke\u2019s colour)." },
|
|
7688
7733
|
brushId: { type: "string", description: "Replay with this brush from list_brushes (default each stroke\u2019s brush)." },
|
|
7689
7734
|
layerId: { type: "string", description: "Paint on this layer (default each stroke\u2019s layer)." },
|
|
7690
7735
|
repeat: { type: "integer", minimum: 1, maximum: 100, description: "How many copies (default 1)." }
|
|
@@ -7829,14 +7874,14 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7829
7874
|
tools.push(...createPaintReplayTools(c));
|
|
7830
7875
|
tools.push(...createPaintStickerTools(c));
|
|
7831
7876
|
tools.push(..._chunkGNK7SESQcjs.createPigmentTools.call(void 0, ));
|
|
7832
|
-
return {
|
|
7877
|
+
return withPaintPlayback({
|
|
7833
7878
|
id: _nullishCoalesce(options.id, () => ( "paint-editor")),
|
|
7834
7879
|
namespace: options.namespace,
|
|
7835
7880
|
title: "Paint editor",
|
|
7836
7881
|
description: "Natural-media painting: paper and grain, dry and wet brushes, the brush library, strokes as data, pigment mixing, stencils, guides, layers and export.",
|
|
7837
7882
|
skill: "pixerate-paint-editor",
|
|
7838
7883
|
tools
|
|
7839
|
-
};
|
|
7884
|
+
}, { director: !!options.director });
|
|
7840
7885
|
}
|
|
7841
7886
|
|
|
7842
7887
|
// src/paint-editor/ui.ts
|
|
@@ -8424,7 +8469,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8424
8469
|
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.");
|
|
8425
8470
|
};
|
|
8426
8471
|
const values = (v) => v;
|
|
8427
|
-
return _chunkRUZQMYXHcjs.createEffectToolProvider.call(void 0, {
|
|
8472
|
+
return withPaintPlayback(_chunkRUZQMYXHcjs.createEffectToolProvider.call(void 0, {
|
|
8428
8473
|
id: _nullishCoalesce(options.id, () => ( "paint-effects")),
|
|
8429
8474
|
namespace: options.namespace,
|
|
8430
8475
|
title: "Paint effects",
|
|
@@ -8554,7 +8599,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8554
8599
|
}
|
|
8555
8600
|
}
|
|
8556
8601
|
]
|
|
8557
|
-
});
|
|
8602
|
+
}), { director: false });
|
|
8558
8603
|
}
|
|
8559
8604
|
|
|
8560
8605
|
|
|
@@ -8857,4 +8902,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8857
8902
|
|
|
8858
8903
|
|
|
8859
8904
|
|
|
8860
|
-
exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunkCWM3CUUXcjs.BLEND_MODES; exports.BRUSH_ID = _chunkBXMIBMVGcjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunkBXMIBMVGcjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunkBXMIBMVGcjs.BUILTIN_BRUSHES; exports.BristleStroke = _chunkBXMIBMVGcjs.BristleStroke; exports.DEFAULT_BEHAVIOR = _chunkBXMIBMVGcjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunkBXMIBMVGcjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunkBXMIBMVGcjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunkBXMIBMVGcjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkGNK7SESQcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunkBXMIBMVGcjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunkBXMIBMVGcjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkLRRCMRSLcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkLRRCMRSLcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = _chunkBXMIBMVGcjs.DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunkBXMIBMVGcjs.DEFAULT_PARTICLE; exports.DEFAULT_STICKER = _chunkBXMIBMVGcjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunkBXMIBMVGcjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkGNK7SESQcjs.DEFAULT_WET_PARAMS; exports.DryStroke = _chunkBXMIBMVGcjs.DryStroke; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkLRRCMRSLcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkLRRCMRSLcjs.GRAIN_TILE; exports.HARMONY_KINDS = HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = _chunkBXMIBMVGcjs.IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunkBXMIBMVGcjs.IMPASTO_TOOLS; exports.IMPASTO_TOOL_LABELS = IMPASTO_TOOL_LABELS; exports.LIGHT_SLIDERS = LIGHT_SLIDERS; exports.LitCache = LitCache; exports.MAX_BRUSH_SIZE = _chunkLRRCMRSLcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; 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 = _chunkBXMIBMVGcjs.MULTI_COLOR_MODES; exports.MixingPad = MixingPad; exports.PAD_SAMPLE_SIZES = PAD_SAMPLE_SIZES; exports.PAINTERLY_BLEND_MODES = _chunkCWM3CUUXcjs.PAINTERLY_BLEND_MODES; exports.PAINT_BRUSH_CATEGORIES = _chunkBXMIBMVGcjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunkBXMIBMVGcjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkLRRCMRSLcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkLRRCMRSLcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkLRRCMRSLcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkLRRCMRSLcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkLRRCMRSLcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkLRRCMRSLcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAINT_TOOLS = PAINT_TOOLS; exports.PAPER_EFFECT_BLENDS = PAPER_EFFECT_BLENDS; exports.PAPER_EFFECT_NODE_ID = PAPER_EFFECT_NODE_ID; exports.PAPER_FAMILIES = _chunkBXMIBMVGcjs.PAPER_FAMILIES; exports.PAPER_LIBRARY = _chunkBXMIBMVGcjs.PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunkBXMIBMVGcjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunkBXMIBMVGcjs.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 = _chunkLRRCMRSLcjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkLRRCMRSLcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkLRRCMRSLcjs.PaperGrain; exports.ParticleStroke = _chunkBXMIBMVGcjs.ParticleStroke; exports.PenDabWalker = _chunkBXMIBMVGcjs.PenDabWalker; exports.PenSmoother = _chunkBXMIBMVGcjs.PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunkBXMIBMVGcjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerSpray = _chunkBXMIBMVGcjs.StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunkLRRCMRSLcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkGNK7SESQcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunkBXMIBMVGcjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkGNK7SESQcjs.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 = _chunkBXMIBMVGcjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkLRRCMRSLcjs.addPaintGradientStop; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.brushEngineControls = brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunkBXMIBMVGcjs.brushTakesPaint; exports.brushToJSON = _chunkBXMIBMVGcjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = _chunkBXMIBMVGcjs.clonePaper; exports.colorHarmony = colorHarmony; exports.composeAffine = composeAffine; exports.contactSheet = contactSheet; exports.createPaintCompositor = createPaintCompositor; exports.createPaintDocument = createPaintDocument; exports.createPaintEditorToolProvider = createPaintEditorToolProvider; exports.createPaintEffectsToolProvider = createPaintEffectsToolProvider; exports.createPaintLayer = createPaintLayer; exports.createPaintReplayTools = createPaintReplayTools; exports.createPaintStickerTools = createPaintStickerTools; exports.createPaintThickTools = createPaintThickTools; exports.createPaintWetTools = createPaintWetTools; exports.decodeImageBlob = decodeImageBlob; exports.defaultGuides = defaultGuides; exports.defaultImageEncoder = defaultImageEncoder; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = _chunkBXMIBMVGcjs.drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectLayersToJSON = effectLayersToJSON; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkLRRCMRSLcjs.grainCatch; exports.grainHeights = _chunkLRRCMRSLcjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunkLRRCMRSLcjs.hash2; exports.hexToPaintRgb = _chunkLRRCMRSLcjs.hexToPaintRgb; exports.hexToRgb8 = _chunkBXMIBMVGcjs.hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunkCWM3CUUXcjs.isBlendMode; exports.isGradientPaint = _chunkLRRCMRSLcjs.isGradientPaint; exports.isPainterlyBlendMode = _chunkCWM3CUUXcjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunkBXMIBMVGcjs.isWetBrush; exports.isWetCapable = _chunkBXMIBMVGcjs.isWetCapable; exports.lightTile = lightTile; exports.lightingKey = lightingKey; exports.mapPenPoint = mapPenPoint; exports.mix32 = _chunkLRRCMRSLcjs.mix32; exports.mixPixels = mixPixels; exports.mixerLoadForStroke = mixerLoadForStroke; exports.mixerTip = _chunkBXMIBMVGcjs.mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = multiColorSliders; exports.multiColorToPaint = _chunkBXMIBMVGcjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunkBXMIBMVGcjs.normalizeBehavior; exports.normalizeBristle = _chunkBXMIBMVGcjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunkBXMIBMVGcjs.normalizeDynamics; exports.normalizeFlow = _chunkGNK7SESQcjs.normalizeFlow; exports.normalizeHexColor = _chunkLRRCMRSLcjs.normalizeHexColor; exports.normalizeImpasto = _chunkBXMIBMVGcjs.normalizeImpasto; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunkBXMIBMVGcjs.normalizeMultiColor; exports.normalizePaintBrush = _chunkBXMIBMVGcjs.normalizePaintBrush; exports.normalizePaper = _chunkBXMIBMVGcjs.normalizePaper; exports.normalizeParticle = _chunkBXMIBMVGcjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunkBXMIBMVGcjs.normalizeStickerSettings; exports.normalizeStickerUpdate = _chunkBXMIBMVGcjs.normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunkBXMIBMVGcjs.normalizeWetBrush; exports.normalizeWetParams = _chunkGNK7SESQcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintGradientMappingFor = _chunkLRRCMRSLcjs.paintGradientMappingFor; exports.paintSourceColor = _chunkLRRCMRSLcjs.paintSourceColor; exports.paintSourceCss = _chunkLRRCMRSLcjs.paintSourceCss; exports.paintToMultiColor = _chunkBXMIBMVGcjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = _chunkBXMIBMVGcjs.paperPreset; exports.parseBrushLibrary = _chunkBXMIBMVGcjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkLRRCMRSLcjs.parsePaintSource; exports.patchBrushValue = patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = _chunkBXMIBMVGcjs.penOrientation; exports.perspectiveDirections = perspectiveDirections; exports.perspectiveGuideLines = perspectiveGuideLines; exports.pointerToPenPoint = pointerToPenPoint; exports.quickStencil = quickStencil; exports.rand01 = _chunkLRRCMRSLcjs.rand01; exports.randSigned = _chunkLRRCMRSLcjs.randSigned; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkLRRCMRSLcjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkLRRCMRSLcjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = _chunkBXMIBMVGcjs.renderPaper; exports.renderStickers = _chunkBXMIBMVGcjs.renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkLRRCMRSLcjs.resolvePaintGradient; exports.reversePaintGradient = _chunkLRRCMRSLcjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkLRRCMRSLcjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunkLRRCMRSLcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkLRRCMRSLcjs.solidPaint; exports.stampCoverage = _chunkBXMIBMVGcjs.stampCoverage; exports.standardBlendMode = _chunkCWM3CUUXcjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerRect = _chunkBXMIBMVGcjs.stickerRect; exports.stickerSurface = _chunkBXMIBMVGcjs.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 = _chunkBXMIBMVGcjs.tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = _chunkBXMIBMVGcjs.toStrokePoint; exports.toggleStamp = toggleStamp; exports.updatePaintGradientStop = _chunkLRRCMRSLcjs.updatePaintGradientStop; exports.usesPaintExchange = _chunkBXMIBMVGcjs.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 = _chunkGNK7SESQcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = wheelToHue;
|
|
8905
|
+
|
|
8906
|
+
|
|
8907
|
+
|
|
8908
|
+
exports.BLEND_MENU_GROUPS = BLEND_MENU_GROUPS; exports.BLEND_MODES = _chunkCWM3CUUXcjs.BLEND_MODES; exports.BRUSH_ID = _chunkBXMIBMVGcjs.BRUSH_ID; exports.BRUSH_ROTATIONS = _chunkBXMIBMVGcjs.BRUSH_ROTATIONS; exports.BRUSH_SLIDERS = BRUSH_SLIDERS; exports.BUILTIN_BRUSHES = _chunkBXMIBMVGcjs.BUILTIN_BRUSHES; exports.BristleStroke = _chunkBXMIBMVGcjs.BristleStroke; exports.DEFAULT_BEHAVIOR = _chunkBXMIBMVGcjs.DEFAULT_BEHAVIOR; exports.DEFAULT_BRISTLE = _chunkBXMIBMVGcjs.DEFAULT_BRISTLE; exports.DEFAULT_BRUSH_ID = _chunkBXMIBMVGcjs.DEFAULT_BRUSH_ID; exports.DEFAULT_DPI = DEFAULT_DPI; exports.DEFAULT_DYNAMICS = _chunkBXMIBMVGcjs.DEFAULT_DYNAMICS; exports.DEFAULT_FLOW = _chunkGNK7SESQcjs.DEFAULT_FLOW; exports.DEFAULT_IMPASTO = _chunkBXMIBMVGcjs.DEFAULT_IMPASTO; exports.DEFAULT_LIGHTING = DEFAULT_LIGHTING; exports.DEFAULT_MULTI_COLOR = _chunkBXMIBMVGcjs.DEFAULT_MULTI_COLOR; exports.DEFAULT_PAINT_GRADIENT = _chunkLRRCMRSLcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkLRRCMRSLcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_PAPER = _chunkBXMIBMVGcjs.DEFAULT_PAPER; exports.DEFAULT_PARTICLE = _chunkBXMIBMVGcjs.DEFAULT_PARTICLE; exports.DEFAULT_STICKER = _chunkBXMIBMVGcjs.DEFAULT_STICKER; exports.DEFAULT_SWATCHES = DEFAULT_SWATCHES; exports.DEFAULT_VIEW = DEFAULT_VIEW; exports.DEFAULT_WET_BRUSH = _chunkBXMIBMVGcjs.DEFAULT_WET_BRUSH; exports.DEFAULT_WET_PARAMS = _chunkGNK7SESQcjs.DEFAULT_WET_PARAMS; exports.DryStroke = _chunkBXMIBMVGcjs.DryStroke; exports.GPU_LEAD = GPU_LEAD; exports.GRAIN_PATTERNS = _chunkLRRCMRSLcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkLRRCMRSLcjs.GRAIN_TILE; exports.HARMONY_KINDS = HARMONY_KINDS; exports.IDENTITY_AFFINE = IDENTITY_AFFINE; exports.IDENTITY_COPY = _chunkBXMIBMVGcjs.IDENTITY_COPY; exports.IMPASTO_TOOLS = _chunkBXMIBMVGcjs.IMPASTO_TOOLS; exports.IMPASTO_TOOL_LABELS = IMPASTO_TOOL_LABELS; exports.LIGHT_SLIDERS = LIGHT_SLIDERS; exports.LitCache = LitCache; exports.MAX_BRUSH_SIZE = _chunkLRRCMRSLcjs.MAX_BRUSH_SIZE; exports.MAX_CANVAS_SIDE = MAX_CANVAS_SIDE; exports.MAX_COORDINATE = MAX_COORDINATE; exports.MAX_IMAGE_SIDE = MAX_IMAGE_SIDE; 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 = _chunkBXMIBMVGcjs.MULTI_COLOR_MODES; exports.MixingPad = MixingPad; exports.PAD_SAMPLE_SIZES = PAD_SAMPLE_SIZES; exports.PAINTERLY_BLEND_MODES = _chunkCWM3CUUXcjs.PAINTERLY_BLEND_MODES; exports.PAINT_BRUSH_CATEGORIES = _chunkBXMIBMVGcjs.PAINT_BRUSH_CATEGORIES; exports.PAINT_BRUSH_ENGINES = _chunkBXMIBMVGcjs.PAINT_BRUSH_ENGINES; exports.PAINT_COLOR_JSON_SCHEMA = _chunkLRRCMRSLcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_EFFECT_PLACES = PAINT_EFFECT_PLACES; exports.PAINT_FORMAT = PAINT_FORMAT; exports.PAINT_GRADIENT_FULL_SPEED = _chunkLRRCMRSLcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkLRRCMRSLcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkLRRCMRSLcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkLRRCMRSLcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkLRRCMRSLcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SCHEMA_VERSION = PAINT_SCHEMA_VERSION; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkLRRCMRSLcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAINT_TOOLS = PAINT_TOOLS; exports.PAPER_EFFECT_BLENDS = PAPER_EFFECT_BLENDS; exports.PAPER_EFFECT_NODE_ID = PAPER_EFFECT_NODE_ID; exports.PAPER_FAMILIES = _chunkBXMIBMVGcjs.PAPER_FAMILIES; exports.PAPER_LIBRARY = _chunkBXMIBMVGcjs.PAPER_LIBRARY; exports.PAPER_NODE_ID = PAPER_NODE_ID; exports.PAPER_SLIDERS = PAPER_SLIDERS; exports.PAPER_TARGET = PAPER_TARGET; exports.PARTICLE_KINDS = _chunkBXMIBMVGcjs.PARTICLE_KINDS; exports.PARTICLE_KIND_LABELS = PARTICLE_KIND_LABELS; exports.PARTICLE_RENDERS = _chunkBXMIBMVGcjs.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 = _chunkLRRCMRSLcjs.PaintGradientSampler; exports.PaintPresence = PaintPresence; exports.PaintSourceError = _chunkLRRCMRSLcjs.PaintSourceError; exports.PaintStrokeSession = PaintStrokeSession; exports.PaintWetLayers = PaintWetLayers; exports.PaperGrain = _chunkLRRCMRSLcjs.PaperGrain; exports.ParticleStroke = _chunkBXMIBMVGcjs.ParticleStroke; exports.PenDabWalker = _chunkBXMIBMVGcjs.PenDabWalker; exports.PenSmoother = _chunkBXMIBMVGcjs.PenSmoother; exports.PerspectiveSnapper = PerspectiveSnapper; exports.SNAP_DECIDE_DISTANCE = SNAP_DECIDE_DISTANCE; exports.STAMP_KINDS = _chunkBXMIBMVGcjs.STAMP_KINDS; exports.STAMP_LABELS = STAMP_LABELS; exports.STENCIL_KINDS = STENCIL_KINDS; exports.STENCIL_SHAPES = STENCIL_SHAPES; exports.STICKER_SLIDERS = STICKER_SLIDERS; exports.SYMMETRY_MODES = SYMMETRY_MODES; exports.StencilSnapper = StencilSnapper; exports.StickerSpray = _chunkBXMIBMVGcjs.StickerSpray; exports.TRACING_NODE_ID = TRACING_NODE_ID; exports.ThickStrokeDriver = ThickStrokeDriver; exports.TileableNoise = _chunkLRRCMRSLcjs.TileableNoise; exports.WET_FLOW_KINDS = _chunkGNK7SESQcjs.WET_FLOW_KINDS; exports.WET_GPU_MODES = WET_GPU_MODES; exports.WET_GPU_OPTIONS = WET_GPU_OPTIONS; exports.WET_MEDIA = _chunkBXMIBMVGcjs.WET_MEDIA; exports.WET_MEDIUM_LABELS = WET_MEDIUM_LABELS; exports.WET_MEDIUM_PARAMS = WET_MEDIUM_PARAMS; exports.WET_PARAM_KEYS = _chunkGNK7SESQcjs.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 = _chunkBXMIBMVGcjs.WET_TOOLS; exports.WET_TOOL_LABELS = WET_TOOL_LABELS; exports.WetStrokeDriver = WetStrokeDriver; exports.addPaintGradientStop = _chunkLRRCMRSLcjs.addPaintGradientStop; exports.affineCopy = affineCopy; exports.applyAffine = applyAffine; exports.brushEngineControls = brushEngineControls; exports.brushLoadColor = brushLoadColor; exports.brushLoadForStroke = brushLoadForStroke; exports.brushTakesPaint = _chunkBXMIBMVGcjs.brushTakesPaint; exports.brushToJSON = _chunkBXMIBMVGcjs.brushToJSON; exports.buildTimeLapse = buildTimeLapse; exports.checkPaintEffectPlace = checkPaintEffectPlace; exports.clonePaper = _chunkBXMIBMVGcjs.clonePaper; exports.colorHarmony = colorHarmony; exports.composeAffine = composeAffine; exports.contactSheet = contactSheet; exports.createPaintCompositor = createPaintCompositor; exports.createPaintDocument = createPaintDocument; exports.createPaintEditorToolProvider = createPaintEditorToolProvider; exports.createPaintEffectsToolProvider = createPaintEffectsToolProvider; exports.createPaintLayer = createPaintLayer; exports.createPaintReplayTools = createPaintReplayTools; exports.createPaintStickerTools = createPaintStickerTools; exports.createPaintThickTools = createPaintThickTools; exports.createPaintWetTools = createPaintWetTools; exports.decodeImageBlob = decodeImageBlob; exports.defaultGuides = defaultGuides; exports.defaultImageEncoder = defaultImageEncoder; exports.deserializePaintDocument = deserializePaintDocument; exports.deserializePaintDocumentAsync = deserializePaintDocumentAsync; exports.documentExtensions = documentExtensions; exports.documentToScreen = documentToScreen; exports.downloadBytes = downloadBytes; exports.downsampleRgba = downsampleRgba; exports.drawSticker = _chunkBXMIBMVGcjs.drawSticker; exports.drawWaterOverlay = drawWaterOverlay; exports.effectLayersToJSON = effectLayersToJSON; exports.emptiedLayers = emptiedLayers; exports.emptyThickChannels = emptyThickChannels; exports.fitZoom = fitZoom; exports.grainCatch = _chunkLRRCMRSLcjs.grainCatch; exports.grainHeights = _chunkLRRCMRSLcjs.grainHeights; exports.guideOverlay = guideOverlay; exports.handlePaintShortcut = handlePaintShortcut; exports.hash2 = _chunkLRRCMRSLcjs.hash2; exports.hexToPaintRgb = _chunkLRRCMRSLcjs.hexToPaintRgb; exports.hexToRgb8 = _chunkBXMIBMVGcjs.hexToRgb8; exports.hslToRgb = hslToRgb; exports.hsvToRgb = hsvToRgb; exports.hueToWheel = hueToWheel; exports.invertAffine = invertAffine; exports.isBlendMode = _chunkCWM3CUUXcjs.isBlendMode; exports.isGradientPaint = _chunkLRRCMRSLcjs.isGradientPaint; exports.isPainterlyBlendMode = _chunkCWM3CUUXcjs.isPainterlyBlendMode; exports.isPalmTouch = isPalmTouch; exports.isWetBrush = _chunkBXMIBMVGcjs.isWetBrush; exports.isWetCapable = _chunkBXMIBMVGcjs.isWetCapable; exports.lightTile = lightTile; exports.lightingKey = lightingKey; exports.mapPenPoint = mapPenPoint; exports.mix32 = _chunkLRRCMRSLcjs.mix32; exports.mixPixels = mixPixels; exports.mixerLoadForStroke = mixerLoadForStroke; exports.mixerTip = _chunkBXMIBMVGcjs.mixerTip; exports.multiColorForDab = multiColorForDab; exports.multiColorGradient = multiColorGradient; exports.multiColorPalette = multiColorPalette; exports.multiColorSliders = multiColorSliders; exports.multiColorToPaint = _chunkBXMIBMVGcjs.multiColorToPaint; exports.newPaintLayerId = newPaintLayerId; exports.nextPaperEffectVersion = nextPaperEffectVersion; exports.normalizeBehavior = _chunkBXMIBMVGcjs.normalizeBehavior; exports.normalizeBristle = _chunkBXMIBMVGcjs.normalizeBristle; exports.normalizeBrushStroke = normalizeBrushStroke; exports.normalizeCanvas = normalizeCanvas; exports.normalizeDynamics = _chunkBXMIBMVGcjs.normalizeDynamics; exports.normalizeFlow = _chunkGNK7SESQcjs.normalizeFlow; exports.normalizeHexColor = _chunkLRRCMRSLcjs.normalizeHexColor; exports.normalizeImpasto = _chunkBXMIBMVGcjs.normalizeImpasto; exports.normalizeLighting = normalizeLighting; exports.normalizeMultiColor = _chunkBXMIBMVGcjs.normalizeMultiColor; exports.normalizePaintBrush = _chunkBXMIBMVGcjs.normalizePaintBrush; exports.normalizePaper = _chunkBXMIBMVGcjs.normalizePaper; exports.normalizeParticle = _chunkBXMIBMVGcjs.normalizeParticle; exports.normalizePerspective = normalizePerspective; exports.normalizeRotation = normalizeRotation; exports.normalizeStencil = normalizeStencil; exports.normalizeStickerSettings = _chunkBXMIBMVGcjs.normalizeStickerSettings; exports.normalizeStickerUpdate = _chunkBXMIBMVGcjs.normalizeStickerUpdate; exports.normalizeSymmetry = normalizeSymmetry; exports.normalizeView = normalizeView; exports.normalizeWetBrush = _chunkBXMIBMVGcjs.normalizeWetBrush; exports.normalizeWetParams = _chunkGNK7SESQcjs.normalizeWetParams; exports.overPixels = overPixels; exports.padSampleRadius = padSampleRadius; exports.paintGradientMappingFor = _chunkLRRCMRSLcjs.paintGradientMappingFor; exports.paintPlaybackPanel = paintPlaybackPanel; exports.paintSourceColor = _chunkLRRCMRSLcjs.paintSourceColor; exports.paintSourceCss = _chunkLRRCMRSLcjs.paintSourceCss; exports.paintToMultiColor = _chunkBXMIBMVGcjs.paintToMultiColor; exports.paperEffectFromJSON = paperEffectFromJSON; exports.paperEffectToJSON = paperEffectToJSON; exports.paperGrain = paperGrain; exports.paperKey = paperKey; exports.paperNode = paperNode; exports.paperPreset = _chunkBXMIBMVGcjs.paperPreset; exports.parseBrushLibrary = _chunkBXMIBMVGcjs.parseBrushLibrary; exports.parseHexColor = parseHexColor; exports.parsePaintSource = _chunkLRRCMRSLcjs.parsePaintSource; exports.patchBrushValue = patchBrushValue; exports.patchPath = patchPath; exports.penOrientation = _chunkBXMIBMVGcjs.penOrientation; exports.perspectiveDirections = perspectiveDirections; exports.perspectiveGuideLines = perspectiveGuideLines; exports.planPaintToolPlayback = planPaintToolPlayback; exports.pointerToPenPoint = pointerToPenPoint; exports.quickStencil = quickStencil; exports.rand01 = _chunkLRRCMRSLcjs.rand01; exports.randSigned = _chunkLRRCMRSLcjs.randSigned; exports.readPaintEffectSource = readPaintEffectSource; exports.readPaintSource = _chunkLRRCMRSLcjs.readPaintSource; exports.readPath = readPath; exports.readSwatch = readSwatch; exports.reliefInfo = reliefInfo; exports.removePaintGradientStop = _chunkLRRCMRSLcjs.removePaintGradientStop; exports.renderBrushThumbnail = renderBrushThumbnail; exports.renderColorWheel = renderColorWheel; exports.renderPaper = _chunkBXMIBMVGcjs.renderPaper; exports.renderStickers = _chunkBXMIBMVGcjs.renderStickers; exports.replayFrame = replayFrame; exports.replayItems = replayItems; exports.replayPainting = replayPainting; exports.resolvePaintGradient = _chunkLRRCMRSLcjs.resolvePaintGradient; exports.reversePaintGradient = _chunkLRRCMRSLcjs.reversePaintGradient; exports.rgbToHexColor = rgbToHexColor; exports.rgbToHsl = rgbToHsl; exports.rgbToHsv = rgbToHsv; exports.samplePressure = samplePressure; exports.scalePaintGradient = _chunkLRRCMRSLcjs.scalePaintGradient; exports.scaleStencil = scaleStencil; exports.screenToDocument = screenToDocument; exports.seedFromString = _chunkLRRCMRSLcjs.seedFromString; exports.serializePaintDocument = serializePaintDocument; exports.serializePaintDocumentExternal = serializePaintDocumentExternal; exports.solidPaint = _chunkLRRCMRSLcjs.solidPaint; exports.stampCoverage = _chunkBXMIBMVGcjs.stampCoverage; exports.standardBlendMode = _chunkCWM3CUUXcjs.standardBlendMode; exports.startWetClock = startWetClock; exports.stencilMask = stencilMask; exports.stencilOutline = stencilOutline; exports.stickerRect = _chunkBXMIBMVGcjs.stickerRect; exports.stickerSurface = _chunkBXMIBMVGcjs.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 = _chunkBXMIBMVGcjs.tiltToOrientation; exports.timeLapseVideo = timeLapseVideo; exports.timeLapseZip = timeLapseZip; exports.toStrokePoint = _chunkBXMIBMVGcjs.toStrokePoint; exports.toggleStamp = toggleStamp; exports.updatePaintGradientStop = _chunkLRRCMRSLcjs.updatePaintGradientStop; exports.usesPaintExchange = _chunkBXMIBMVGcjs.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 = _chunkGNK7SESQcjs.wetSupport; exports.wheelAngle = wheelAngle; exports.wheelPick = wheelPick; exports.wheelPoint = wheelPoint; exports.wheelToHue = wheelToHue; exports.withPaintPlayback = withPaintPlayback;
|
|
@@ -45,3 +45,4 @@ export { DEFAULT_WET_PARAMS, WET_PARAM_KEYS, normalizeWetParams, type WetParams,
|
|
|
45
45
|
export { wetSupport, type WetSupport } from '../paint/wet/wasm.cjs';
|
|
46
46
|
export type { WetBackendInfo } from '../paint/wet/world.cjs';
|
|
47
47
|
export * from '../paint/gradient-paint.cjs';
|
|
48
|
+
export * from './playback.cjs';
|
|
@@ -45,3 +45,4 @@ export { DEFAULT_WET_PARAMS, WET_PARAM_KEYS, normalizeWetParams, type WetParams,
|
|
|
45
45
|
export { wetSupport, type WetSupport } from '../paint/wet/wasm.js';
|
|
46
46
|
export type { WetBackendInfo } from '../paint/wet/world.js';
|
|
47
47
|
export * from '../paint/gradient-paint.js';
|
|
48
|
+
export * from './playback.js';
|
|
@@ -6051,6 +6051,51 @@ var PaintDirector = class {
|
|
|
6051
6051
|
}
|
|
6052
6052
|
};
|
|
6053
6053
|
|
|
6054
|
+
// src/paint-editor/playback.ts
|
|
6055
|
+
var WET = /^(advance_wet_paint|dry_paint|wet_paper|set_wet_settings|set_flow_map|set_canvas_tilt|pause_wet_paint|set_wet_engine|set_water_overlay)$/;
|
|
6056
|
+
var PAPER = /^(set_paper|set_lighting|flatten_relief|set_instant_dry)$/;
|
|
6057
|
+
var LAYERS = /^(add_layer|update_layer|set_active_layer|remove_layer|duplicate_layer|move_layer|merge_layer_down|clear_layer|update_sticker|arrange_stickers|remove_stickers)$/;
|
|
6058
|
+
var PAD = /^(mixing_pad_stroke|pick_mixing_pad_color|clear_mixing_pad|mix_on_pad|save_mixing_pad|load_mixing_pad|remove_mixing_pad|mix_colors)$/;
|
|
6059
|
+
var COLOR = /^(set_color|set_paint|color_harmony|add_swatch|remove_swatch|load_mixer_brush|clean_mixer_brush)$/;
|
|
6060
|
+
var EFFECTS = /effect/;
|
|
6061
|
+
function paintPlaybackPanel(tool) {
|
|
6062
|
+
if (WET.test(tool)) return "wet";
|
|
6063
|
+
if (PAPER.test(tool)) return "paper";
|
|
6064
|
+
if (LAYERS.test(tool)) return "layers";
|
|
6065
|
+
if (PAD.test(tool) || COLOR.test(tool)) return "color";
|
|
6066
|
+
if (EFFECTS.test(tool)) return "effects";
|
|
6067
|
+
return null;
|
|
6068
|
+
}
|
|
6069
|
+
function controlOf(tool) {
|
|
6070
|
+
if (PAD.test(tool)) return { kind: "control", id: "mixing-pad" };
|
|
6071
|
+
if (tool === "set_lighting" || tool === "flatten_relief") return { kind: "control", id: "lighting" };
|
|
6072
|
+
if (tool === "set_symmetry" || tool === "set_perspective_guide") return { kind: "control", id: "symmetry" };
|
|
6073
|
+
const panel = paintPlaybackPanel(tool);
|
|
6074
|
+
return panel ? { kind: "panel-body", id: panel } : null;
|
|
6075
|
+
}
|
|
6076
|
+
function planPaintToolPlayback(tool, _args) {
|
|
6077
|
+
const steps = [];
|
|
6078
|
+
const panel = paintPlaybackPanel(tool);
|
|
6079
|
+
if (panel) steps.push({ type: "open", ref: { kind: "panel", id: panel } });
|
|
6080
|
+
const control = controlOf(tool);
|
|
6081
|
+
if (control) steps.push({ type: "target", ref: control }, { type: "press" }, { type: "release" });
|
|
6082
|
+
return steps.length ? steps : null;
|
|
6083
|
+
}
|
|
6084
|
+
var DIRECTED = /* @__PURE__ */ new Set(["paint_stroke", "fill_layer", "replay_strokes"]);
|
|
6085
|
+
function withPaintPlayback(provider, options) {
|
|
6086
|
+
const plan = (tool) => {
|
|
6087
|
+
if (tool.plan || tool.playback !== void 0) return tool;
|
|
6088
|
+
if (options.director && DIRECTED.has(tool.name)) return { ...tool, playback: "self" };
|
|
6089
|
+
return { ...tool, plan: (args) => planPaintToolPlayback(tool.name, args) };
|
|
6090
|
+
};
|
|
6091
|
+
const tools = provider.tools;
|
|
6092
|
+
return {
|
|
6093
|
+
...provider,
|
|
6094
|
+
playbackSurface: provider.playbackSurface ?? options.surface ?? "paint",
|
|
6095
|
+
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
6096
|
+
};
|
|
6097
|
+
}
|
|
6098
|
+
|
|
6054
6099
|
// src/paint-editor/sticker-tools.ts
|
|
6055
6100
|
var READ = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
6056
6101
|
var WRITE = { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
|
|
@@ -6123,7 +6168,7 @@ var WRITE2 = { readOnlyHint: false, destructiveHint: false, idempotentHint: fals
|
|
|
6123
6168
|
var SET = { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
6124
6169
|
var DESTRUCTIVE2 = { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false };
|
|
6125
6170
|
var EMPTY = { type: "object", properties: {}, additionalProperties: false };
|
|
6126
|
-
var
|
|
6171
|
+
var COLOR2 = { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: "Colour #rrggbb." };
|
|
6127
6172
|
var POINT = {
|
|
6128
6173
|
type: "object",
|
|
6129
6174
|
properties: { x: { type: "number", description: "x in document pixels." }, y: { type: "number", description: "y in document pixels." } },
|
|
@@ -6346,7 +6391,7 @@ function createPaintGuideTools(c) {
|
|
|
6346
6391
|
type: "object",
|
|
6347
6392
|
properties: {
|
|
6348
6393
|
kind: { type: "string", enum: [...HARMONY_KINDS], description: "The harmony." },
|
|
6349
|
-
color: { ...
|
|
6394
|
+
color: { ...COLOR2, description: "Base colour #rrggbb (default the paint colour)." },
|
|
6350
6395
|
wheel: { type: "string", enum: ["ryb", "rgb"], description: "ryb (painter\u2019s wheel, default) or rgb." },
|
|
6351
6396
|
spread: { type: "number", minimum: 5, maximum: 90, description: "Analogous and split-complementary spread in degrees (default 30)." }
|
|
6352
6397
|
},
|
|
@@ -6371,7 +6416,7 @@ function createPaintGuideTools(c) {
|
|
|
6371
6416
|
inputSchema: {
|
|
6372
6417
|
type: "object",
|
|
6373
6418
|
properties: {
|
|
6374
|
-
color: { ...
|
|
6419
|
+
color: { ...COLOR2, description: "A colour #rrggbb." },
|
|
6375
6420
|
paint: { ...PAINT_SOURCE_JSON_SCHEMA, description: "Gradient paint (or a colour) for the swatch, instead of color." },
|
|
6376
6421
|
name: { type: "string", minLength: 1, description: "Optional name." }
|
|
6377
6422
|
},
|
|
@@ -6411,7 +6456,7 @@ function createPaintGuideTools(c) {
|
|
|
6411
6456
|
}
|
|
6412
6457
|
},
|
|
6413
6458
|
tool: { type: "string", enum: ["paint", "knife"], description: "paint (default) or knife." },
|
|
6414
|
-
color: { ...
|
|
6459
|
+
color: { ...COLOR2, description: "Paint colour (default the paint colour; ignored by the knife)." },
|
|
6415
6460
|
size: { type: "number", minimum: 1, maximum: 200, description: "Tool size in pad pixels (default 28 paint, 34 knife)." }
|
|
6416
6461
|
},
|
|
6417
6462
|
required: ["points"],
|
|
@@ -6464,7 +6509,7 @@ function createPaintGuideTools(c) {
|
|
|
6464
6509
|
items: {
|
|
6465
6510
|
type: "object",
|
|
6466
6511
|
properties: {
|
|
6467
|
-
color: { ...
|
|
6512
|
+
color: { ...COLOR2, description: "Paint colour #rrggbb." },
|
|
6468
6513
|
parts: { type: "number", minimum: 0, description: "Parts of this paint, any scale (1 and 3 for a 1:3 mix); at least one above 0." }
|
|
6469
6514
|
},
|
|
6470
6515
|
required: ["color", "parts"],
|
|
@@ -6871,7 +6916,7 @@ var WRITE5 = { readOnlyHint: false, destructiveHint: false, idempotentHint: fals
|
|
|
6871
6916
|
var SET4 = { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
6872
6917
|
var DESTRUCTIVE3 = { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false };
|
|
6873
6918
|
var EMPTY3 = { type: "object", properties: {}, additionalProperties: false };
|
|
6874
|
-
var
|
|
6919
|
+
var COLOR3 = { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: 'Colour #rrggbb, e.g. "#2a4b8d".' };
|
|
6875
6920
|
var LAYER_ID4 = { type: "string", description: "Layer id from list_layers (default the active layer)." };
|
|
6876
6921
|
var TIP = {
|
|
6877
6922
|
type: "object",
|
|
@@ -6940,7 +6985,7 @@ var BEHAVIOR = {
|
|
|
6940
6985
|
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.",
|
|
6941
6986
|
properties: {
|
|
6942
6987
|
mode: { type: "string", enum: [...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." },
|
|
6943
|
-
colors: { type: "array", maxItems: 8, items: { ...
|
|
6988
|
+
colors: { type: "array", maxItems: 8, items: { ...COLOR3 }, description: "2..8 colours #rrggbb; fewer than 2 uses the paint colour and the secondary colour." },
|
|
6944
6989
|
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)." },
|
|
6945
6990
|
length: { type: "integer", minimum: 1, maximum: 500, description: "dab mode: dabs per colour (default 12)." },
|
|
6946
6991
|
softness: { type: "number", minimum: 0, maximum: 1, description: "How softly neighbouring colours blend: 0 hard stripes or steps, 1 a smooth gradient." }
|
|
@@ -7238,7 +7283,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7238
7283
|
type: "object",
|
|
7239
7284
|
properties: {
|
|
7240
7285
|
preset: { type: "string", description: "Paper id from list_papers (its settings, then the other fields here on top)." },
|
|
7241
|
-
color: { ...
|
|
7286
|
+
color: { ...COLOR3, description: "Paper colour #rrggbb." },
|
|
7242
7287
|
depth: { type: "number", minimum: 0, maximum: 1, description: "Grain depth 0..1 (0: brushes ignore the grain)." },
|
|
7243
7288
|
scale: { type: "number", minimum: 0.25, maximum: 8, description: "Grain scale: 1 natural, 2 twice as coarse." },
|
|
7244
7289
|
seed: { type: "integer", minimum: 0, description: "Grain seed: another sheet of the same paper." },
|
|
@@ -7394,7 +7439,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7394
7439
|
type: "object",
|
|
7395
7440
|
properties: {
|
|
7396
7441
|
layerId: LAYER_ID4,
|
|
7397
|
-
color: { ...
|
|
7442
|
+
color: { ...COLOR3, description: "Fill colour #rrggbb (default the paint colour)." },
|
|
7398
7443
|
opacity: { type: "number", minimum: 0, maximum: 1, description: "Opacity 0..1 (default 1)." },
|
|
7399
7444
|
grain: { type: "number", minimum: 0, maximum: 1, description: "Paper grain response 0..1 (default 0: flat)." },
|
|
7400
7445
|
pressure: { type: "number", minimum: 0, maximum: 1, description: "With grain: how far into the valleys, 0..1 (default 0.5)." },
|
|
@@ -7511,7 +7556,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7511
7556
|
id: { type: "string", description: "Brush id from list_brushes (default the active brush)." },
|
|
7512
7557
|
width: { type: "integer", minimum: 16, maximum: 512, description: "Width in pixels (default 160)." },
|
|
7513
7558
|
height: { type: "integer", minimum: 16, maximum: 512, description: "Height in pixels (default 48)." },
|
|
7514
|
-
color: { ...
|
|
7559
|
+
color: { ...COLOR3, description: "Stroke colour (default the paint colour)." }
|
|
7515
7560
|
},
|
|
7516
7561
|
additionalProperties: false
|
|
7517
7562
|
},
|
|
@@ -7532,7 +7577,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7532
7577
|
description: "Sets the paint colour (and optionally the second colour) that strokes and fills use by default. Editor state, not an undo step. Returns both colours.",
|
|
7533
7578
|
inputSchema: {
|
|
7534
7579
|
type: "object",
|
|
7535
|
-
properties: { color: { ...
|
|
7580
|
+
properties: { color: { ...COLOR3, description: "Paint colour #rrggbb." }, secondaryColor: { ...COLOR3, description: "Second colour #rrggbb." } },
|
|
7536
7581
|
additionalProperties: false
|
|
7537
7582
|
},
|
|
7538
7583
|
annotations: { title: "Set the paint colour", ...SET4 },
|
|
@@ -7584,7 +7629,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7584
7629
|
name: "load_mixer_brush",
|
|
7585
7630
|
title: "Load the Mixer Brush",
|
|
7586
7631
|
description: "Fills the Mixer Brush reservoir with a colour (amount 1), keeping what it picked up. Editor state, not an undo step. Returns the load.",
|
|
7587
|
-
inputSchema: { type: "object", properties: { color: { ...
|
|
7632
|
+
inputSchema: { type: "object", properties: { color: { ...COLOR3, description: "Colour #rrggbb (default the paint colour)." } }, additionalProperties: false },
|
|
7588
7633
|
annotations: { title: "Load the Mixer Brush", ...SET4 },
|
|
7589
7634
|
handler: ({ color }) => loadResult(c.loadMixerBrush(color))
|
|
7590
7635
|
});
|
|
@@ -7607,7 +7652,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7607
7652
|
layerId: LAYER_ID4,
|
|
7608
7653
|
brushId: { type: "string", description: "Brush id from list_brushes (default the active brush)." },
|
|
7609
7654
|
brush: { type: "object", description: "Brush changes for this stroke only.", properties: BRUSH_FIELDS, additionalProperties: false },
|
|
7610
|
-
color: { ...
|
|
7655
|
+
color: { ...COLOR3, description: "Paint colour #rrggbb (default the paint colour)." },
|
|
7611
7656
|
paint: { ...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." },
|
|
7612
7657
|
seed: { type: "integer", minimum: 0, description: "Jitter seed (default a new one); the same seed and points give the same marks." },
|
|
7613
7658
|
snapToPerspective: { type: "boolean", description: "Snap the points to the perspective guide, as a pen stroke would (default false)." }
|
|
@@ -7684,7 +7729,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7684
7729
|
additionalProperties: false
|
|
7685
7730
|
},
|
|
7686
7731
|
pressureScale: { type: "number", minimum: 0, maximum: 4, description: "Multiply every pressure (default 1)." },
|
|
7687
|
-
color: { ...
|
|
7732
|
+
color: { ...COLOR3, description: "Recolour (default each stroke\u2019s colour)." },
|
|
7688
7733
|
brushId: { type: "string", description: "Replay with this brush from list_brushes (default each stroke\u2019s brush)." },
|
|
7689
7734
|
layerId: { type: "string", description: "Paint on this layer (default each stroke\u2019s layer)." },
|
|
7690
7735
|
repeat: { type: "integer", minimum: 1, maximum: 100, description: "How many copies (default 1)." }
|
|
@@ -7829,14 +7874,14 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7829
7874
|
tools.push(...createPaintReplayTools(c));
|
|
7830
7875
|
tools.push(...createPaintStickerTools(c));
|
|
7831
7876
|
tools.push(...createPigmentTools());
|
|
7832
|
-
return {
|
|
7877
|
+
return withPaintPlayback({
|
|
7833
7878
|
id: options.id ?? "paint-editor",
|
|
7834
7879
|
namespace: options.namespace,
|
|
7835
7880
|
title: "Paint editor",
|
|
7836
7881
|
description: "Natural-media painting: paper and grain, dry and wet brushes, the brush library, strokes as data, pigment mixing, stencils, guides, layers and export.",
|
|
7837
7882
|
skill: "pixerate-paint-editor",
|
|
7838
7883
|
tools
|
|
7839
|
-
};
|
|
7884
|
+
}, { director: !!options.director });
|
|
7840
7885
|
}
|
|
7841
7886
|
|
|
7842
7887
|
// src/paint-editor/ui.ts
|
|
@@ -8424,7 +8469,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8424
8469
|
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.");
|
|
8425
8470
|
};
|
|
8426
8471
|
const values = (v) => v;
|
|
8427
|
-
return createEffectToolProvider({
|
|
8472
|
+
return withPaintPlayback(createEffectToolProvider({
|
|
8428
8473
|
id: options.id ?? "paint-effects",
|
|
8429
8474
|
namespace: options.namespace,
|
|
8430
8475
|
title: "Paint effects",
|
|
@@ -8554,7 +8599,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8554
8599
|
}
|
|
8555
8600
|
}
|
|
8556
8601
|
]
|
|
8557
|
-
});
|
|
8602
|
+
}), { director: false });
|
|
8558
8603
|
}
|
|
8559
8604
|
export {
|
|
8560
8605
|
BLEND_MENU_GROUPS,
|
|
@@ -8773,6 +8818,7 @@ export {
|
|
|
8773
8818
|
overPixels,
|
|
8774
8819
|
padSampleRadius,
|
|
8775
8820
|
paintGradientMappingFor,
|
|
8821
|
+
paintPlaybackPanel,
|
|
8776
8822
|
paintSourceColor,
|
|
8777
8823
|
paintSourceCss,
|
|
8778
8824
|
paintToMultiColor,
|
|
@@ -8790,6 +8836,7 @@ export {
|
|
|
8790
8836
|
penOrientation,
|
|
8791
8837
|
perspectiveDirections,
|
|
8792
8838
|
perspectiveGuideLines,
|
|
8839
|
+
planPaintToolPlayback,
|
|
8793
8840
|
pointerToPenPoint,
|
|
8794
8841
|
quickStencil,
|
|
8795
8842
|
rand01,
|
|
@@ -8856,5 +8903,6 @@ export {
|
|
|
8856
8903
|
wheelAngle,
|
|
8857
8904
|
wheelPick,
|
|
8858
8905
|
wheelPoint,
|
|
8859
|
-
wheelToHue
|
|
8906
|
+
wheelToHue,
|
|
8907
|
+
withPaintPlayback
|
|
8860
8908
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AgentToolProvider } from '../tools/registry.cjs';
|
|
2
|
+
import type { PlaybackStep } from '../tools/playback.cjs';
|
|
3
|
+
/** The paint editor's side panels, as `{ kind: 'panel', id }` refs. */
|
|
4
|
+
export type PaintPlaybackPanel = 'color' | 'wet' | 'paper' | 'layers' | 'effects';
|
|
5
|
+
/** The panel a paint write shows in (by its bare name), or null. */
|
|
6
|
+
export declare function paintPlaybackPanel(tool: string): PaintPlaybackPanel | null;
|
|
7
|
+
/** The cursor steps for one paint tool call (by bare name), or null to fall back to the ids it names. */
|
|
8
|
+
export declare function planPaintToolPlayback(tool: string, _args: Record<string, any>): PlaybackStep[] | null;
|
|
9
|
+
/**
|
|
10
|
+
* Gives a paint tool provider agent playback on `surface` (default `paint`, where `PaintEditor`
|
|
11
|
+
* attaches). With a director, strokes, fills and replays play through it (`playback: 'self'`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function withPaintPlayback(provider: AgentToolProvider, options: {
|
|
14
|
+
director: boolean;
|
|
15
|
+
surface?: string;
|
|
16
|
+
}): AgentToolProvider;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AgentToolProvider } from '../tools/registry.js';
|
|
2
|
+
import type { PlaybackStep } from '../tools/playback.js';
|
|
3
|
+
/** The paint editor's side panels, as `{ kind: 'panel', id }` refs. */
|
|
4
|
+
export type PaintPlaybackPanel = 'color' | 'wet' | 'paper' | 'layers' | 'effects';
|
|
5
|
+
/** The panel a paint write shows in (by its bare name), or null. */
|
|
6
|
+
export declare function paintPlaybackPanel(tool: string): PaintPlaybackPanel | null;
|
|
7
|
+
/** The cursor steps for one paint tool call (by bare name), or null to fall back to the ids it names. */
|
|
8
|
+
export declare function planPaintToolPlayback(tool: string, _args: Record<string, any>): PlaybackStep[] | null;
|
|
9
|
+
/**
|
|
10
|
+
* Gives a paint tool provider agent playback on `surface` (default `paint`, where `PaintEditor`
|
|
11
|
+
* attaches). With a director, strokes, fills and replays play through it (`playback: 'self'`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function withPaintPlayback(provider: AgentToolProvider, options: {
|
|
14
|
+
director: boolean;
|
|
15
|
+
surface?: string;
|
|
16
|
+
}): AgentToolProvider;
|