@pixerate/editor 0.139.1 → 0.140.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/README.md +25 -4
- package/dist/agent/formatTools.d.cts +15 -0
- package/dist/agent/formatTools.d.ts +15 -0
- package/dist/agent/index.cjs +408 -49
- package/dist/agent/index.js +375 -16
- package/dist/agent/providers.d.cts +5 -3
- package/dist/agent/providers.d.ts +5 -3
- package/dist/animation-editor/effect-tools.d.cts +1 -1
- package/dist/animation-editor/effect-tools.d.ts +1 -1
- package/dist/animation-editor/index.cjs +250 -116
- package/dist/animation-editor/index.js +228 -94
- package/dist/animation-editor/instructions.d.cts +1 -1
- package/dist/animation-editor/instructions.d.ts +1 -1
- package/dist/animation-editor/parse.d.cts +3 -1
- package/dist/animation-editor/parse.d.ts +3 -1
- package/dist/animation-editor/tools.d.cts +8 -3
- package/dist/animation-editor/tools.d.ts +8 -3
- package/dist/bridge/cli.cjs +4 -3
- package/dist/bridge/cli.js +3 -2
- package/dist/bridge/index.cjs +8 -3
- package/dist/bridge/index.d.cts +7 -0
- package/dist/bridge/index.d.ts +7 -0
- package/dist/bridge/index.js +9 -4
- package/dist/bridge/skills.d.cts +9 -0
- package/dist/bridge/skills.d.ts +9 -0
- package/dist/canvas/effect-tools.d.cts +1 -1
- package/dist/canvas/effect-tools.d.ts +1 -1
- package/dist/canvas/index.cjs +22 -17
- package/dist/canvas/index.js +8 -3
- package/dist/chart/file-tools.d.cts +1 -1
- package/dist/chart/file-tools.d.ts +1 -1
- package/dist/chart/index.cjs +7 -1
- package/dist/chart/index.js +7 -1
- package/dist/chart/tools.d.cts +1 -1
- package/dist/chart/tools.d.ts +1 -1
- package/dist/chunk-2BSBFBOA.cjs +46 -0
- package/dist/{chunk-SWZTQWY7.js → chunk-2INPJDNY.js} +1 -1
- package/dist/{chunk-CCKP4XAN.cjs → chunk-34RQAGWI.cjs} +27 -7
- package/dist/{chunk-HXCBQ7A6.cjs → chunk-3AJMR7EG.cjs} +7 -4
- package/dist/{chunk-BKMU3V6K.js → chunk-5ED73EC6.js} +8 -1
- package/dist/{chunk-NKBUVQJW.cjs → chunk-5WOY52O6.cjs} +15 -15
- package/dist/{chunk-VRIR53SW.js → chunk-6GAYGQDC.js} +10 -8
- package/dist/{chunk-HZZXBTLB.js → chunk-6IN474P4.js} +25 -5
- package/dist/{chunk-KHMVB3SJ.js → chunk-7KWJEYIK.js} +4 -1
- package/dist/{chunk-R47NQICB.cjs → chunk-AGCD3EHB.cjs} +47 -10
- package/dist/{chunk-6I63VZ45.js → chunk-CXXKJBQZ.js} +5 -1
- package/dist/{chunk-6NXVDJDR.cjs → chunk-G43MNQ4C.cjs} +5 -5
- package/dist/chunk-HDK3T2QS.cjs +1159 -0
- package/dist/chunk-HF5QZS7Z.js +46 -0
- package/dist/{chunk-S7I3RI5Z.cjs → chunk-HMGWFXEC.cjs} +27 -24
- package/dist/{chunk-6NCBFBXA.js → chunk-IQ6KKXOU.js} +1 -1
- package/dist/{chunk-T6Y5FV7G.cjs → chunk-L434J57V.cjs} +10 -8
- package/dist/{chunk-UCRL6JEV.cjs → chunk-L5OWG2NA.cjs} +8 -3
- package/dist/{chunk-CZRWP6IW.cjs → chunk-N2FGYZ4Q.cjs} +8 -1
- package/dist/{chunk-GUPQ5BNA.cjs → chunk-PUR6BZFA.cjs} +112 -111
- package/dist/chunk-RB62U6MS.js +1159 -0
- package/dist/{chunk-3V746PF4.cjs → chunk-RUZQMYXH.cjs} +4 -1
- package/dist/{chunk-HGHXGCKG.cjs → chunk-SVFEVKLF.cjs} +1 -1
- package/dist/{chunk-PCNCT4ZY.js → chunk-UMS6YFA6.js} +40 -3
- package/dist/{chunk-4LGWAJDI.js → chunk-V5OOP74P.js} +5 -2
- package/dist/{chunk-BWT4IWLK.cjs → chunk-VKF3PWKR.cjs} +7 -7
- package/dist/{chunk-PQMADRCI.js → chunk-WBJ6BG4R.js} +23 -22
- package/dist/{chunk-WIYAOZZU.js → chunk-WHKNYFM2.js} +7 -2
- package/dist/{chunk-TBSPPVTT.js → chunk-XCK7QK5D.js} +1 -1
- package/dist/{chunk-F652BKMS.cjs → chunk-YN6JKAUE.cjs} +6 -2
- package/dist/{chunk-YTGF4TJR.js → chunk-ZLZKGHSZ.js} +5 -2
- package/dist/{chunk-USU2FL3N.js → chunk-ZNHB5RG6.js} +1 -1
- package/dist/commands/agentTools.d.cts +1 -1
- package/dist/commands/agentTools.d.ts +1 -1
- package/dist/commands/index.cjs +3 -0
- package/dist/commands/index.js +3 -0
- package/dist/compare/index.cjs +4 -3
- package/dist/compare/index.js +3 -2
- package/dist/diagram/index.cjs +3 -0
- package/dist/diagram/index.js +3 -0
- package/dist/diagram/tools.d.cts +1 -1
- package/dist/diagram/tools.d.ts +1 -1
- package/dist/effects/index.cjs +32 -32
- package/dist/effects/index.js +1 -1
- package/dist/effects/tools.d.cts +5 -1
- package/dist/effects/tools.d.ts +5 -1
- package/dist/export/index.cjs +4 -3
- package/dist/export/index.js +3 -2
- package/dist/extensions/index.cjs +11 -8
- package/dist/extensions/index.d.cts +1 -0
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.js +10 -7
- package/dist/extensions/safe-merge-attributes.d.cts +10 -0
- package/dist/extensions/safe-merge-attributes.d.ts +10 -0
- package/dist/generation/index.cjs +7 -1
- package/dist/generation/index.js +7 -1
- package/dist/image-editor/index.cjs +25 -18
- package/dist/image-editor/index.js +10 -3
- package/dist/image-editor/provider-effect-tools.d.cts +1 -1
- package/dist/image-editor/provider-effect-tools.d.ts +1 -1
- package/dist/image-editor/tools.d.cts +1 -1
- package/dist/image-editor/tools.d.ts +1 -1
- package/dist/index.cjs +42 -29
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +22 -9
- package/dist/paint-editor/effect-tools.d.cts +1 -1
- package/dist/paint-editor/effect-tools.d.ts +1 -1
- package/dist/paint-editor/index.cjs +18 -8
- package/dist/paint-editor/index.js +13 -3
- package/dist/paint-editor/tools.d.cts +1 -1
- package/dist/paint-editor/tools.d.ts +1 -1
- package/dist/persistence/index.cjs +3 -2
- package/dist/persistence/index.js +2 -1
- package/dist/serializers/index.cjs +5 -4
- package/dist/serializers/index.js +4 -3
- package/dist/tools/bridge-client.d.cts +3 -3
- package/dist/tools/bridge-client.d.ts +3 -3
- package/dist/tools/capture.d.cts +5 -1
- package/dist/tools/capture.d.ts +5 -1
- package/dist/tools/definitions.d.cts +2 -2
- package/dist/tools/definitions.d.ts +2 -2
- package/dist/tools/index.cjs +39 -5
- package/dist/tools/index.d.cts +4 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.js +39 -5
- package/dist/tools/mcp-server.d.cts +24 -6
- package/dist/tools/mcp-server.d.ts +24 -6
- package/dist/tools/registry.d.cts +81 -6
- package/dist/tools/registry.d.ts +81 -6
- package/dist/tools/safe-json.d.cts +27 -0
- package/dist/tools/safe-json.d.ts +27 -0
- package/dist/tools/search.d.cts +30 -0
- package/dist/tools/search.d.ts +30 -0
- package/dist/tools/skills.d.cts +26 -0
- package/dist/tools/skills.d.ts +26 -0
- package/dist/tools/view.d.cts +95 -0
- package/dist/tools/view.d.ts +95 -0
- package/dist/vector/effect-tools.d.cts +1 -1
- package/dist/vector/effect-tools.d.ts +1 -1
- package/dist/vector/index.cjs +13 -7
- package/dist/vector/index.js +8 -2
- package/dist/video-editor/effect-tools.d.cts +1 -1
- package/dist/video-editor/effect-tools.d.ts +1 -1
- package/dist/video-editor/index.cjs +275 -269
- package/dist/video-editor/index.js +8 -2
- package/dist/video-editor/tools.d.cts +1 -1
- package/dist/video-editor/tools.d.ts +1 -1
- package/package.json +31 -29
- package/skills/README.md +8 -3
- package/skills/pixerate-agent-tools/SKILL.md +33 -7
- package/skills/pixerate-animation-editor/SKILL.md +7 -0
- package/skills/pixerate-rich-text/SKILL.md +18 -4
- package/dist/chunk-5RRYDFU2.js +0 -466
- package/dist/chunk-SPVIXXIB.cjs +0 -466
- /package/dist/{chunk-SMJK5HBJ.js → chunk-K73HMKQP.js} +0 -0
- /package/dist/{chunk-DDF6WQ62.cjs → chunk-LACYURUW.cjs} +0 -0
|
@@ -369,13 +369,13 @@ var _chunkV4GUQCDZcjs = require('../chunk-V4GUQCDZ.cjs');
|
|
|
369
369
|
var _chunkA2IS7EHEcjs = require('../chunk-A2IS7EHE.cjs');
|
|
370
370
|
|
|
371
371
|
|
|
372
|
-
var
|
|
372
|
+
var _chunkL5OWG2NAcjs = require('../chunk-L5OWG2NA.cjs');
|
|
373
373
|
|
|
374
374
|
|
|
375
375
|
var _chunkPY4GWSE2cjs = require('../chunk-PY4GWSE2.cjs');
|
|
376
376
|
|
|
377
377
|
|
|
378
|
-
var
|
|
378
|
+
var _chunkN2FGYZ4Qcjs = require('../chunk-N2FGYZ4Q.cjs');
|
|
379
379
|
|
|
380
380
|
|
|
381
381
|
|
|
@@ -583,6 +583,7 @@ var _chunkGNK7SESQcjs = require('../chunk-GNK7SESQ.cjs');
|
|
|
583
583
|
|
|
584
584
|
|
|
585
585
|
var _chunkONZJD2ODcjs = require('../chunk-ONZJD2OD.cjs');
|
|
586
|
+
require('../chunk-2BSBFBOA.cjs');
|
|
586
587
|
|
|
587
588
|
|
|
588
589
|
|
|
@@ -633,7 +634,7 @@ require('../chunk-NM3G4VQT.cjs');
|
|
|
633
634
|
|
|
634
635
|
|
|
635
636
|
|
|
636
|
-
var
|
|
637
|
+
var _chunkRUZQMYXHcjs = require('../chunk-RUZQMYXH.cjs');
|
|
637
638
|
require('../chunk-WOFXZ3XU.cjs');
|
|
638
639
|
|
|
639
640
|
|
|
@@ -2835,7 +2836,7 @@ function checkImageEffectPlace(d, place) {
|
|
|
2835
2836
|
const allowed = IMAGE_EFFECT_PLACES[place];
|
|
2836
2837
|
if (d.kind === "motion" || !d.uses.some((u) => allowed.includes(u))) {
|
|
2837
2838
|
const instead = place === "filter" && d.uses.some((u) => IMAGE_EFFECT_PLACES.layer.includes(u)) ? "; add it as an effect layer with add_effect_layer instead" : place === "layer" && d.uses.includes("filter") ? "; apply it to a layer as a smart filter with apply_effect instead" : "";
|
|
2838
|
-
throw new (0,
|
|
2839
|
+
throw new (0, _chunkRUZQMYXHcjs.EffectUnsupportedError)(
|
|
2839
2840
|
`"${d.id}" (${d.name}) is a ${d.uses.join(" / ")} effect, and ${place === "filter" ? "a smart filter takes filter effects" : "an effect layer takes generator, overlay or title effects"}${instead}.`,
|
|
2840
2841
|
d.id
|
|
2841
2842
|
);
|
|
@@ -2859,9 +2860,9 @@ function effectPixelsToSurface(p, depth) {
|
|
|
2859
2860
|
const d = new Uint16Array(f.length);
|
|
2860
2861
|
const code = (v) => v > 0 ? v < 1 ? Math.round(v * 65535) : 65535 : 0;
|
|
2861
2862
|
for (let i = 0; i < f.length; i += 4) {
|
|
2862
|
-
d[i] = code(
|
|
2863
|
-
d[i + 1] = code(
|
|
2864
|
-
d[i + 2] = code(
|
|
2863
|
+
d[i] = code(_chunkRUZQMYXHcjs.linearToSrgb.call(void 0, f[i]));
|
|
2864
|
+
d[i + 1] = code(_chunkRUZQMYXHcjs.linearToSrgb.call(void 0, f[i + 1]));
|
|
2865
|
+
d[i + 2] = code(_chunkRUZQMYXHcjs.linearToSrgb.call(void 0, f[i + 2]));
|
|
2865
2866
|
d[i + 3] = code(f[i + 3]);
|
|
2866
2867
|
}
|
|
2867
2868
|
return _chunkCWM3CUUXcjs.surfaceFromDeepPixels.call(void 0, { width: p.width, height: p.height, data: d }, 4);
|
|
@@ -2878,7 +2879,7 @@ var ImageEffectsEngine = (_class4 = class {
|
|
|
2878
2879
|
__init31() {this.generation = 0}
|
|
2879
2880
|
|
|
2880
2881
|
constructor(options = {}) {;_class4.prototype.__init26.call(this);_class4.prototype.__init27.call(this);_class4.prototype.__init28.call(this);_class4.prototype.__init29.call(this);_class4.prototype.__init30.call(this);_class4.prototype.__init31.call(this);
|
|
2881
|
-
this.slot = _nullishCoalesce(options.slot, () => ( new (0,
|
|
2882
|
+
this.slot = _nullishCoalesce(options.slot, () => ( new (0, _chunkRUZQMYXHcjs.EffectsSlot)()));
|
|
2882
2883
|
this.maxEntries = _nullishCoalesce(options.maxEntries, () => ( 24));
|
|
2883
2884
|
this.pool = new (0, _chunkPY4GWSE2cjs.EffectRendererPool)({ maxRenderers: options.maxRenderers });
|
|
2884
2885
|
this.detach = this.slot.subscribe(() => {
|
|
@@ -2938,7 +2939,7 @@ var ImageEffectsEngine = (_class4 = class {
|
|
|
2938
2939
|
const provider = this.slot.require();
|
|
2939
2940
|
const depth = _nullishCoalesce(size.depth, () => ( 8));
|
|
2940
2941
|
const out = await this.render(provider, effect, size.width, size.height, depth, { time: _nullishCoalesce(size.time, () => ( 0)), values });
|
|
2941
|
-
return out.width === size.width && out.height === size.height ? out :
|
|
2942
|
+
return out.width === size.width && out.height === size.height ? out : _chunkRUZQMYXHcjs.createEffectPixels.call(void 0, size.width, size.height);
|
|
2942
2943
|
}
|
|
2943
2944
|
/** Why the result for `key` failed, if it did. */
|
|
2944
2945
|
failure(key) {
|
|
@@ -4151,7 +4152,7 @@ var ImageEditorController = (_class7 = class {
|
|
|
4151
4152
|
/** For `compositePixels` and mask evaluation (the renderer keeps its own for the viewport). */
|
|
4152
4153
|
__init64() {this.compositor = new (0, _chunkV4GUQCDZcjs.LayerCompositor)()}
|
|
4153
4154
|
/** The effects provider slot (see `setEffectsProvider`). */
|
|
4154
|
-
__init65() {this.effects = new (0,
|
|
4155
|
+
__init65() {this.effects = new (0, _chunkRUZQMYXHcjs.EffectsSlot)()}
|
|
4155
4156
|
/** Renders provider effects: effect smart filter results and effect layers. */
|
|
4156
4157
|
__init66() {this.effectsEngine = new ImageEffectsEngine({ slot: this.effects })}
|
|
4157
4158
|
__init67() {this.effectRefresh = "none"}
|
|
@@ -4376,7 +4377,7 @@ var ImageEditorController = (_class7 = class {
|
|
|
4376
4377
|
*/
|
|
4377
4378
|
async applyEffectFilter(layerId, effect, options = {}) {
|
|
4378
4379
|
const d = await this.describeEffect(effect, "filter");
|
|
4379
|
-
const values =
|
|
4380
|
+
const values = _chunkRUZQMYXHcjs.resolveEffectValues.call(void 0, d, options.values);
|
|
4380
4381
|
const found = _chunkHGTDMKNEcjs.findLayer.call(void 0, this.state.layers, layerId);
|
|
4381
4382
|
if (!found) throw new (0, _chunkV4GUQCDZcjs.LayerOperationError)(`There is no layer "${layerId}"; call list_layers for the layer ids.`);
|
|
4382
4383
|
let layers = this.state.layers;
|
|
@@ -4414,7 +4415,7 @@ var ImageEditorController = (_class7 = class {
|
|
|
4414
4415
|
else if (k in d.controls.properties) base[k] = d.defaults[k];
|
|
4415
4416
|
else throw new (0, _chunkV4GUQCDZcjs.LayerOperationError)(`"${k}" is not a control of "${d.id}"; its controls are ${Object.keys(d.controls.properties).join(", ")}.`);
|
|
4416
4417
|
}
|
|
4417
|
-
update.values = { ...base, ...
|
|
4418
|
+
update.values = { ...base, ..._chunkRUZQMYXHcjs.resolveEffectValues.call(void 0, { ...d, defaults: base }, given) };
|
|
4418
4419
|
}
|
|
4419
4420
|
for (const k of ["enabled", "blend", "opacity"]) if (changes[k] !== void 0) update[k] = changes[k];
|
|
4420
4421
|
let res = _chunkV4GUQCDZcjs.updateSmartFilter.call(void 0, this.state.layers, layerId, filterId, update, this.canvasSize);
|
|
@@ -4429,7 +4430,7 @@ var ImageEditorController = (_class7 = class {
|
|
|
4429
4430
|
*/
|
|
4430
4431
|
async addEffectLayer(effect, options = {}) {
|
|
4431
4432
|
const d = await this.describeEffect(effect, "layer");
|
|
4432
|
-
const values =
|
|
4433
|
+
const values = _chunkRUZQMYXHcjs.resolveEffectValues.call(void 0, d, options.values);
|
|
4433
4434
|
const { width, height } = this.naturalSize;
|
|
4434
4435
|
const pixels = await this.effectsEngine.renderLayer(d.id, values, { width, height, depth: this.bitDepth, time: options.time });
|
|
4435
4436
|
const blend = _chunkV4GUQCDZcjs.parseBlend.call(void 0, options.blend);
|
|
@@ -4472,7 +4473,7 @@ var ImageEditorController = (_class7 = class {
|
|
|
4472
4473
|
else if (k in d.controls.properties) base[k] = d.defaults[k];
|
|
4473
4474
|
else throw new (0, _chunkV4GUQCDZcjs.LayerOperationError)(`"${k}" is not a control of "${d.id}"; its controls are ${Object.keys(d.controls.properties).join(", ")}.`);
|
|
4474
4475
|
}
|
|
4475
|
-
const values = { ...base, ...
|
|
4476
|
+
const values = { ...base, ..._chunkRUZQMYXHcjs.resolveEffectValues.call(void 0, { ...d, defaults: base }, given) };
|
|
4476
4477
|
const time = _nullishCoalesce(_nullishCoalesce(changes.time, () => ( g.time)), () => ( 0));
|
|
4477
4478
|
const { width, height } = this.naturalSize;
|
|
4478
4479
|
const pixels = await this.effectsEngine.renderLayer(d.id, values, { width, height, depth: this.bitDepth, time });
|
|
@@ -8759,7 +8760,7 @@ function loadImageEditorDocument(input) {
|
|
|
8759
8760
|
if (isV2) parsed = { ...parsed, version: 1 };
|
|
8760
8761
|
const newer = isObject(parsed) && typeof parsed.version === "number" && parsed.version > IMAGE_EDITOR_STATE_VERSION;
|
|
8761
8762
|
let dropped = 0;
|
|
8762
|
-
const result =
|
|
8763
|
+
const result = _chunkL5OWG2NAcjs.loadDocument.call(void 0,
|
|
8763
8764
|
parsed,
|
|
8764
8765
|
{
|
|
8765
8766
|
crop: { parse: parseCrop, defaults: null },
|
|
@@ -8829,7 +8830,7 @@ function cleanLayers(value, dropped) {
|
|
|
8829
8830
|
}
|
|
8830
8831
|
function loadLayeredDocument(doc) {
|
|
8831
8832
|
const dropped = { count: 0 };
|
|
8832
|
-
const result =
|
|
8833
|
+
const result = _chunkL5OWG2NAcjs.loadDocument.call(void 0,
|
|
8833
8834
|
doc,
|
|
8834
8835
|
{
|
|
8835
8836
|
width: { parse: (v) => isNumber(v) && v > 0 ? v : (() => {
|
|
@@ -13161,13 +13162,16 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
13161
13162
|
return {
|
|
13162
13163
|
id: _nullishCoalesce(options.id, () => ( "image-editor")),
|
|
13163
13164
|
namespace: options.namespace,
|
|
13165
|
+
title: "Image editor",
|
|
13166
|
+
description: "Layered raster image editing: layers and groups, adjustments and adjustment layers, selections and masks, retouching, painting, shapes and type, transforms, colour management, PSD import and export.",
|
|
13167
|
+
skill: "pixerate-image-editor",
|
|
13164
13168
|
tools: [
|
|
13165
13169
|
getAdjustments,
|
|
13166
13170
|
listControls,
|
|
13167
13171
|
setAdjustments,
|
|
13168
13172
|
addLayer,
|
|
13169
13173
|
renderPreview,
|
|
13170
|
-
|
|
13174
|
+
_chunkN2FGYZ4Qcjs.createCaptureTool.call(void 0, createImageCaptureSurface(controller), { subject: "the image (source orientation, before crop and rotation)", defaultPadding: 0 }),
|
|
13171
13175
|
...createImageSelectionTools(controller),
|
|
13172
13176
|
...createImageEditTools(controller),
|
|
13173
13177
|
...createImageLayerTools(controller),
|
|
@@ -15011,9 +15015,12 @@ function createImageEffectsToolProvider(controller, options = {}) {
|
|
|
15011
15015
|
return { target, effect: _nullishCoalesce(effects.find((e) => e.id === instance), () => ( effects[effects.length - 1])), effects, ...extra };
|
|
15012
15016
|
};
|
|
15013
15017
|
const plainValues = (v) => v;
|
|
15014
|
-
return
|
|
15018
|
+
return _chunkRUZQMYXHcjs.createEffectToolProvider.call(void 0, {
|
|
15015
15019
|
id: _nullishCoalesce(options.id, () => ( "image-effects")),
|
|
15016
15020
|
namespace: options.namespace,
|
|
15021
|
+
title: "Image effects",
|
|
15022
|
+
description: "Provider effects (GPU filters and generators) on image layers as smart filters: search, describe, apply, update and remove them.",
|
|
15023
|
+
skill: "pixerate-image-editor",
|
|
15017
15024
|
target: { noun: "layer", id: "A layer id from list_layers." },
|
|
15018
15025
|
applyUses: ["filter"],
|
|
15019
15026
|
applyDetails: "The effect becomes a smart filter: it runs on the layer's pixels after the smart filters below it, with its own blend and opacity, under the smart filter mask, and can be changed or removed later. A pixel, shape or type layer (or a group) is converted to a smart object first, in the same undo step (one layer keeps its id; the result says converted). Generators and overlays go on their own layer through add_effect_layer.",
|
|
@@ -369,13 +369,13 @@ import {
|
|
|
369
369
|
} from "../chunk-3CI7FRMK.js";
|
|
370
370
|
import {
|
|
371
371
|
loadDocument
|
|
372
|
-
} from "../chunk-
|
|
372
|
+
} from "../chunk-WHKNYFM2.js";
|
|
373
373
|
import {
|
|
374
374
|
EffectRendererPool
|
|
375
375
|
} from "../chunk-EHLOCVWB.js";
|
|
376
376
|
import {
|
|
377
377
|
createCaptureTool
|
|
378
|
-
} from "../chunk-
|
|
378
|
+
} from "../chunk-5ED73EC6.js";
|
|
379
379
|
import {
|
|
380
380
|
DEFAULT_GLOBAL_LIGHT,
|
|
381
381
|
DIRECT_GAUSSIAN_MAX_SIGMA,
|
|
@@ -583,6 +583,7 @@ import {
|
|
|
583
583
|
writeJpegIcc,
|
|
584
584
|
writePngIcc
|
|
585
585
|
} from "../chunk-AJSW5GMP.js";
|
|
586
|
+
import "../chunk-HF5QZS7Z.js";
|
|
586
587
|
import {
|
|
587
588
|
DEFAULT_AUTO_LEADING,
|
|
588
589
|
DEFAULT_TEXT_STYLE,
|
|
@@ -633,7 +634,7 @@ import {
|
|
|
633
634
|
createEffectToolProvider,
|
|
634
635
|
linearToSrgb,
|
|
635
636
|
resolveEffectValues
|
|
636
|
-
} from "../chunk-
|
|
637
|
+
} from "../chunk-7KWJEYIK.js";
|
|
637
638
|
import "../chunk-V2ZCJRDM.js";
|
|
638
639
|
import {
|
|
639
640
|
BrushstrokeCache,
|
|
@@ -13161,6 +13162,9 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
13161
13162
|
return {
|
|
13162
13163
|
id: options.id ?? "image-editor",
|
|
13163
13164
|
namespace: options.namespace,
|
|
13165
|
+
title: "Image editor",
|
|
13166
|
+
description: "Layered raster image editing: layers and groups, adjustments and adjustment layers, selections and masks, retouching, painting, shapes and type, transforms, colour management, PSD import and export.",
|
|
13167
|
+
skill: "pixerate-image-editor",
|
|
13164
13168
|
tools: [
|
|
13165
13169
|
getAdjustments,
|
|
13166
13170
|
listControls,
|
|
@@ -15014,6 +15018,9 @@ function createImageEffectsToolProvider(controller, options = {}) {
|
|
|
15014
15018
|
return createEffectToolProvider({
|
|
15015
15019
|
id: options.id ?? "image-effects",
|
|
15016
15020
|
namespace: options.namespace,
|
|
15021
|
+
title: "Image effects",
|
|
15022
|
+
description: "Provider effects (GPU filters and generators) on image layers as smart filters: search, describe, apply, update and remove them.",
|
|
15023
|
+
skill: "pixerate-image-editor",
|
|
15017
15024
|
target: { noun: "layer", id: "A layer id from list_layers." },
|
|
15018
15025
|
applyUses: ["filter"],
|
|
15019
15026
|
applyDetails: "The effect becomes a smart filter: it runs on the layer's pixels after the smart filters below it, with its own blend and opacity, under the smart filter mask, and can be changed or removed later. A pixel, shape or type layer (or a group) is converted to a smart object first, in the same undo step (one layer keeps its id; the result says converted). Generators and overlays go on their own layer through add_effect_layer.",
|
|
@@ -12,7 +12,7 @@ import { type ImageLayer } from './layers/model.cjs';
|
|
|
12
12
|
export interface ImageEffectsToolProviderOptions {
|
|
13
13
|
/** Provider id (unique per registry). Default `image-effects`. */
|
|
14
14
|
id?: string;
|
|
15
|
-
/**
|
|
15
|
+
/** Tool-name prefix (`<namespace>__<name>`); defaults to the provider id, `''` for bare names. */
|
|
16
16
|
namespace?: string;
|
|
17
17
|
/** The document cannot be edited: write tools are hidden. A string is the reason. */
|
|
18
18
|
readOnly?: boolean | string | (() => boolean | string);
|
|
@@ -12,7 +12,7 @@ import { type ImageLayer } from './layers/model.js';
|
|
|
12
12
|
export interface ImageEffectsToolProviderOptions {
|
|
13
13
|
/** Provider id (unique per registry). Default `image-effects`. */
|
|
14
14
|
id?: string;
|
|
15
|
-
/**
|
|
15
|
+
/** Tool-name prefix (`<namespace>__<name>`); defaults to the provider id, `''` for bare names. */
|
|
16
16
|
namespace?: string;
|
|
17
17
|
/** The document cannot be edited: write tools are hidden. A string is the reason. */
|
|
18
18
|
readOnly?: boolean | string | (() => boolean | string);
|
|
@@ -3,7 +3,7 @@ import type { ImageEditorController } from './controller.cjs';
|
|
|
3
3
|
export interface ImageEditorToolProviderOptions {
|
|
4
4
|
/** Provider id (unique per registry). Default `image-editor`. */
|
|
5
5
|
id?: string;
|
|
6
|
-
/**
|
|
6
|
+
/** Tool-name prefix (`<namespace>__<name>`); defaults to the provider id, `''` for bare names. */
|
|
7
7
|
namespace?: string;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
@@ -3,7 +3,7 @@ import type { ImageEditorController } from './controller.js';
|
|
|
3
3
|
export interface ImageEditorToolProviderOptions {
|
|
4
4
|
/** Provider id (unique per registry). Default `image-editor`. */
|
|
5
5
|
id?: string;
|
|
6
|
-
/**
|
|
6
|
+
/** Tool-name prefix (`<namespace>__<name>`); defaults to the provider id, `''` for bare names. */
|
|
7
7
|
namespace?: string;
|
|
8
8
|
}
|
|
9
9
|
/**
|