@pixerate/editor 0.79.0 → 0.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -3
- package/dist/agent/index.cjs +102 -6
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +4 -2
- package/dist/agent/index.d.ts +4 -2
- package/dist/agent/index.js +101 -5
- package/dist/agent/index.js.map +1 -1
- package/dist/{builtins-BKYlHH1s.d.ts → builtins-CV1fDj64.d.ts} +5 -1
- package/dist/{builtins-1kqwLUnb.d.cts → builtins-c4w0eAYl.d.cts} +5 -1
- package/dist/{chunk-2CJ3LPYQ.js → chunk-424H3P4I.js} +13 -295
- package/dist/chunk-424H3P4I.js.map +1 -0
- package/dist/{chunk-UN33YOXW.cjs → chunk-PA5S7KPC.cjs} +293 -2
- package/dist/chunk-PA5S7KPC.cjs.map +1 -0
- package/dist/{chunk-IB3ZHQAX.js → chunk-PTYWCFFW.js} +29 -4
- package/dist/chunk-PTYWCFFW.js.map +1 -0
- package/dist/{chunk-JQ3BB3E6.js → chunk-PXDEFEG2.js} +293 -2
- package/dist/chunk-PXDEFEG2.js.map +1 -0
- package/dist/{chunk-YU4WQE5M.cjs → chunk-TAPXWP2B.cjs} +95 -377
- package/dist/chunk-TAPXWP2B.cjs.map +1 -0
- package/dist/{chunk-HXDMZQTD.cjs → chunk-TPOT575P.cjs} +29 -4
- package/dist/{chunk-IB3ZHQAX.js.map → chunk-TPOT575P.cjs.map} +1 -1
- package/dist/commands/index.cjs +2 -2
- package/dist/commands/index.d.cts +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/generation/index.cjs +932 -791
- package/dist/generation/index.cjs.map +1 -1
- package/dist/generation/index.d.cts +266 -240
- package/dist/generation/index.d.ts +266 -240
- package/dist/generation/index.js +926 -785
- package/dist/generation/index.js.map +1 -1
- package/dist/image-editor/index.cjs +266 -2
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +12 -1
- package/dist/image-editor/index.d.ts +12 -1
- package/dist/image-editor/index.js +265 -1
- package/dist/image-editor/index.js.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +16 -16
- package/dist/spreadsheet/index.cjs +3 -3
- package/dist/spreadsheet/index.cjs.map +1 -1
- package/dist/spreadsheet/index.js +16 -16
- package/dist/video-editor/index.cjs +461 -101
- package/dist/video-editor/index.cjs.map +1 -1
- package/dist/video-editor/index.d.cts +67 -3
- package/dist/video-editor/index.d.ts +67 -3
- package/dist/video-editor/index.js +426 -66
- package/dist/video-editor/index.js.map +1 -1
- package/package.json +3 -1
- package/skills/README.md +55 -0
- package/skills/pixerate-agent-tools/SKILL.md +75 -0
- package/skills/pixerate-animation-editor/SKILL.md +155 -0
- package/skills/pixerate-animation-editor/references/commands.md +123 -0
- package/skills/pixerate-canvas/SKILL.md +230 -0
- package/skills/pixerate-chart/SKILL.md +190 -0
- package/skills/pixerate-diagram/SKILL.md +134 -0
- package/skills/pixerate-generation/SKILL.md +109 -0
- package/skills/pixerate-image-editor/SKILL.md +139 -0
- package/skills/pixerate-parameters/SKILL.md +83 -0
- package/skills/pixerate-rich-text/SKILL.md +160 -0
- package/skills/pixerate-spreadsheet/SKILL.md +146 -0
- package/skills/pixerate-vector/SKILL.md +191 -0
- package/skills/pixerate-vector/references/commands.md +138 -0
- package/skills/pixerate-video-editor/SKILL.md +173 -0
- package/dist/chunk-2CJ3LPYQ.js.map +0 -1
- package/dist/chunk-HXDMZQTD.cjs.map +0 -1
- package/dist/chunk-JQ3BB3E6.js.map +0 -1
- package/dist/chunk-UN33YOXW.cjs.map +0 -1
- package/dist/chunk-YU4WQE5M.cjs.map +0 -1
|
@@ -5357,6 +5357,261 @@ function createImageSelectionTools(controller) {
|
|
|
5357
5357
|
return [getSelection, selectRegion, selectByColor, modify, refine, applyMask];
|
|
5358
5358
|
}
|
|
5359
5359
|
|
|
5360
|
+
// src/image-editor/edit-tools.ts
|
|
5361
|
+
var READ = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
5362
|
+
var WRITE = { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
|
|
5363
|
+
var WRITE_IDEMPOTENT = { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
5364
|
+
var LAYER_ID = { type: "string", description: 'Adjustment layer id from get_adjustments (e.g. "adj_1").' };
|
|
5365
|
+
var round = (n, digits = 2) => Math.round(n * 10 ** digits) / 10 ** digits;
|
|
5366
|
+
function binStats(bins, samples) {
|
|
5367
|
+
if (!samples) return { mean: null, p1: null, p99: null };
|
|
5368
|
+
let sum = 0;
|
|
5369
|
+
let seen = 0;
|
|
5370
|
+
let p1 = null;
|
|
5371
|
+
let p99 = null;
|
|
5372
|
+
for (let i = 0; i < bins.length; i++) {
|
|
5373
|
+
sum += i * bins[i];
|
|
5374
|
+
seen += bins[i];
|
|
5375
|
+
if (p1 === null && seen >= samples * 0.01) p1 = i;
|
|
5376
|
+
if (p99 === null && seen >= samples * 0.99) p99 = i;
|
|
5377
|
+
}
|
|
5378
|
+
return { mean: round(sum / samples, 1), p1, p99 };
|
|
5379
|
+
}
|
|
5380
|
+
function rebin(bins, count) {
|
|
5381
|
+
const out = new Array(count).fill(0);
|
|
5382
|
+
const width = bins.length / count;
|
|
5383
|
+
for (let i = 0; i < bins.length; i++) out[Math.floor(i / width)] += bins[i];
|
|
5384
|
+
return out;
|
|
5385
|
+
}
|
|
5386
|
+
function histogramSummary(h, bins) {
|
|
5387
|
+
const pct = (n) => h.samples ? round(n / h.samples * 100) : 0;
|
|
5388
|
+
const channels = { red: h.red, green: h.green, blue: h.blue, luminance: h.luminance };
|
|
5389
|
+
return {
|
|
5390
|
+
samples: h.samples,
|
|
5391
|
+
transparent: h.transparent,
|
|
5392
|
+
clipping: {
|
|
5393
|
+
shadowsPercent: { red: pct(h.shadows[0]), green: pct(h.shadows[1]), blue: pct(h.shadows[2]) },
|
|
5394
|
+
highlightsPercent: { red: pct(h.highlights[0]), green: pct(h.highlights[1]), blue: pct(h.highlights[2]) }
|
|
5395
|
+
},
|
|
5396
|
+
stats: Object.fromEntries(Object.entries(channels).map(([k, v]) => [k, binStats(v, h.samples)])),
|
|
5397
|
+
...bins ? { bins: Object.fromEntries(Object.entries(channels).map(([k, v]) => [k, rebin(v, bins)])) } : {}
|
|
5398
|
+
};
|
|
5399
|
+
}
|
|
5400
|
+
function createImageEditTools(controller) {
|
|
5401
|
+
const layerOrThrow = (id) => {
|
|
5402
|
+
const layers = controller.getAdjustmentLayers();
|
|
5403
|
+
const index = layers.findIndex((l) => l.id === id);
|
|
5404
|
+
if (index === -1) {
|
|
5405
|
+
const ids = layers.map((l) => l.id);
|
|
5406
|
+
throw new Error(`Unknown adjustment layer "${id}". ${ids.length ? `Layers: ${ids.join(", ")}.` : "There are no adjustment layers."}`);
|
|
5407
|
+
}
|
|
5408
|
+
return { layer: layers[index], index };
|
|
5409
|
+
};
|
|
5410
|
+
const layerJson = (id) => JSON.parse(JSON.stringify(controller.getAdjustmentLayer(id)));
|
|
5411
|
+
const geometry = () => {
|
|
5412
|
+
const s = controller.getState();
|
|
5413
|
+
const region = _nullishCoalesce(s.crop, () => ( { x: 0, y: 0, ...s.imageDimensions }));
|
|
5414
|
+
const out = getRotatedSize(region.width, region.height, s.transform);
|
|
5415
|
+
return {
|
|
5416
|
+
image: { ...s.imageDimensions },
|
|
5417
|
+
crop: s.crop ? { ...s.crop } : null,
|
|
5418
|
+
rotation: normalizeAngle(s.transform.rotate),
|
|
5419
|
+
flipH: s.transform.flipH,
|
|
5420
|
+
flipV: s.transform.flipV,
|
|
5421
|
+
output: { width: Math.round(out.width), height: Math.round(out.height) }
|
|
5422
|
+
};
|
|
5423
|
+
};
|
|
5424
|
+
const history = () => ({ canUndo: controller.canUndo, canRedo: controller.canRedo });
|
|
5425
|
+
const requireImage = () => {
|
|
5426
|
+
const { width, height } = controller.getState().imageDimensions;
|
|
5427
|
+
if (!width || !height) throw new Error("No image is loaded. Ask the user to open one first.");
|
|
5428
|
+
return { width, height };
|
|
5429
|
+
};
|
|
5430
|
+
const getImageInfo = {
|
|
5431
|
+
name: "get_image_info",
|
|
5432
|
+
title: "Read image geometry",
|
|
5433
|
+
description: "Returns the source image size in pixels, the crop box (natural image pixels, or null for the whole image), rotation in degrees, flips, the output size after crop and rotation, the number of adjustment layers and whether undo / redo are available.",
|
|
5434
|
+
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
5435
|
+
annotations: { title: "Read image geometry", ...READ },
|
|
5436
|
+
handler: () => ({ ...geometry(), layers: controller.getAdjustmentLayers().length, ...history() })
|
|
5437
|
+
};
|
|
5438
|
+
const getHistogram = {
|
|
5439
|
+
name: "get_histogram",
|
|
5440
|
+
title: "Read the histogram",
|
|
5441
|
+
description: "Returns the histogram of the last rendered preview (after adjustments and layers): per channel and luminance mean and 1st / 99th percentiles (0-255), and the percentage of pixels clipped to pure black or white per channel. Use it to judge exposure and clipping numerically. Pass bins for the counts themselves. Fails before the first render: call render_preview first.",
|
|
5442
|
+
inputSchema: {
|
|
5443
|
+
type: "object",
|
|
5444
|
+
properties: {
|
|
5445
|
+
bins: { type: "integer", enum: [16, 32, 64, 256], description: "Also return the counts in this many buckets per channel (default: no counts)." }
|
|
5446
|
+
},
|
|
5447
|
+
additionalProperties: false
|
|
5448
|
+
},
|
|
5449
|
+
annotations: { title: "Read the histogram", ...READ },
|
|
5450
|
+
handler: ({ bins }) => {
|
|
5451
|
+
const h = controller.getHistogram();
|
|
5452
|
+
if (!h) throw new Error("No histogram yet: it comes from the rendered preview. Call render_preview, then try again.");
|
|
5453
|
+
return histogramSummary(h, bins);
|
|
5454
|
+
}
|
|
5455
|
+
};
|
|
5456
|
+
const updateLayer = {
|
|
5457
|
+
name: "update_adjustment_layer",
|
|
5458
|
+
title: "Change an adjustment layer",
|
|
5459
|
+
description: 'Shows or hides a layer, renames it, or changes its blend mode or opacity, as one undo step. Change its parameters with set_adjustments ("layers.<id>.<control>"). Returns the updated layer.',
|
|
5460
|
+
inputSchema: {
|
|
5461
|
+
type: "object",
|
|
5462
|
+
properties: {
|
|
5463
|
+
layer: LAYER_ID,
|
|
5464
|
+
enabled: { type: "boolean", description: "false hides the layer without deleting it." },
|
|
5465
|
+
blend: { type: "string", enum: BLEND_MODES.map((m) => m.id), description: "Blend mode (see list_controls)." },
|
|
5466
|
+
opacity: { type: "number", minimum: 0, maximum: 1, description: "Layer opacity 0-1." },
|
|
5467
|
+
name: { type: "string", description: "Layer name shown in the layers panel." }
|
|
5468
|
+
},
|
|
5469
|
+
required: ["layer"],
|
|
5470
|
+
additionalProperties: false
|
|
5471
|
+
},
|
|
5472
|
+
annotations: { title: "Change an adjustment layer", ...WRITE_IDEMPOTENT },
|
|
5473
|
+
handler: ({ layer, enabled, blend, opacity, name }) => {
|
|
5474
|
+
layerOrThrow(layer);
|
|
5475
|
+
if (enabled === void 0 && blend === void 0 && opacity === void 0 && name === void 0) {
|
|
5476
|
+
throw new Error("Nothing to change. Pass enabled, blend, opacity or name.");
|
|
5477
|
+
}
|
|
5478
|
+
if (blend !== void 0 && !isBlendMode(blend)) throw new Error(`Unknown blend mode "${blend}".`);
|
|
5479
|
+
controller.updateAdjustmentLayer(layer, { enabled, blend, opacity, name });
|
|
5480
|
+
return { layer: layerJson(layer) };
|
|
5481
|
+
}
|
|
5482
|
+
};
|
|
5483
|
+
const removeLayer = {
|
|
5484
|
+
name: "remove_adjustment_layer",
|
|
5485
|
+
title: "Delete an adjustment layer",
|
|
5486
|
+
description: "Deletes an adjustment layer and its mask as one undo step. To hide it instead, use update_adjustment_layer with enabled false. Returns the remaining layer ids, bottom to top.",
|
|
5487
|
+
inputSchema: { type: "object", properties: { layer: LAYER_ID }, required: ["layer"], additionalProperties: false },
|
|
5488
|
+
annotations: { title: "Delete an adjustment layer", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false },
|
|
5489
|
+
handler: ({ layer }) => {
|
|
5490
|
+
layerOrThrow(layer);
|
|
5491
|
+
controller.removeAdjustmentLayer(layer);
|
|
5492
|
+
return { removed: layer, layers: controller.getAdjustmentLayers().map((l) => l.id) };
|
|
5493
|
+
}
|
|
5494
|
+
};
|
|
5495
|
+
const moveLayer = {
|
|
5496
|
+
name: "move_adjustment_layer",
|
|
5497
|
+
title: "Reorder an adjustment layer",
|
|
5498
|
+
description: "Moves an adjustment layer to a position in the stack (0 = bottom, applied first) as one undo step. Layers apply bottom to top, so order changes the result. Returns the layer ids, bottom to top.",
|
|
5499
|
+
inputSchema: {
|
|
5500
|
+
type: "object",
|
|
5501
|
+
properties: {
|
|
5502
|
+
layer: LAYER_ID,
|
|
5503
|
+
to: { type: "integer", minimum: 0, description: "New index, 0 = bottom; past the top means the top." }
|
|
5504
|
+
},
|
|
5505
|
+
required: ["layer", "to"],
|
|
5506
|
+
additionalProperties: false
|
|
5507
|
+
},
|
|
5508
|
+
annotations: { title: "Reorder an adjustment layer", ...WRITE_IDEMPOTENT },
|
|
5509
|
+
handler: ({ layer, to }) => {
|
|
5510
|
+
const { index } = layerOrThrow(layer);
|
|
5511
|
+
const top = controller.getAdjustmentLayers().length - 1;
|
|
5512
|
+
const target = Math.min(to, top);
|
|
5513
|
+
if (target === index) throw new Error(`Layer "${layer}" is already at index ${index} (0 = bottom, ${top} = top).`);
|
|
5514
|
+
controller.moveAdjustmentLayer(layer, target);
|
|
5515
|
+
return { layer, index: target, layers: controller.getAdjustmentLayers().map((l) => l.id) };
|
|
5516
|
+
}
|
|
5517
|
+
};
|
|
5518
|
+
const setCrop = {
|
|
5519
|
+
name: "set_crop",
|
|
5520
|
+
title: "Crop the image",
|
|
5521
|
+
description: "Sets the crop box in natural image pixels of the un-rotated source (origin top-left; see get_image_info for the size) as one undo step. Non-destructive: reset_crop restores the whole image. Returns the new geometry and output size.",
|
|
5522
|
+
inputSchema: {
|
|
5523
|
+
type: "object",
|
|
5524
|
+
properties: {
|
|
5525
|
+
x: { type: "number", minimum: 0, description: "Left edge in source pixels." },
|
|
5526
|
+
y: { type: "number", minimum: 0, description: "Top edge in source pixels." },
|
|
5527
|
+
width: { type: "number", exclusiveMinimum: 0, description: "Width in source pixels." },
|
|
5528
|
+
height: { type: "number", exclusiveMinimum: 0, description: "Height in source pixels." }
|
|
5529
|
+
},
|
|
5530
|
+
required: ["x", "y", "width", "height"],
|
|
5531
|
+
additionalProperties: false
|
|
5532
|
+
},
|
|
5533
|
+
annotations: { title: "Crop the image", ...WRITE_IDEMPOTENT },
|
|
5534
|
+
handler: ({ x, y, width, height }) => {
|
|
5535
|
+
const image = requireImage();
|
|
5536
|
+
if (x + width > image.width + 0.5 || y + height > image.height + 0.5) {
|
|
5537
|
+
throw new Error(`The crop box (${x}, ${y}, ${width} \xD7 ${height}) goes outside the ${image.width} \xD7 ${image.height} image.`);
|
|
5538
|
+
}
|
|
5539
|
+
controller.setCrop({ x: Math.round(x), y: Math.round(y), width: Math.round(width), height: Math.round(height) });
|
|
5540
|
+
return geometry();
|
|
5541
|
+
}
|
|
5542
|
+
};
|
|
5543
|
+
const resetCrop = {
|
|
5544
|
+
name: "reset_crop",
|
|
5545
|
+
title: "Remove the crop",
|
|
5546
|
+
description: "Removes the crop so the whole image shows again, as one undo step. Returns the new geometry.",
|
|
5547
|
+
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
5548
|
+
annotations: { title: "Remove the crop", ...WRITE_IDEMPOTENT },
|
|
5549
|
+
handler: () => {
|
|
5550
|
+
if (!controller.getState().crop) throw new Error("The image is not cropped.");
|
|
5551
|
+
controller.resetCrop();
|
|
5552
|
+
return geometry();
|
|
5553
|
+
}
|
|
5554
|
+
};
|
|
5555
|
+
const setRotation = {
|
|
5556
|
+
name: "set_rotation",
|
|
5557
|
+
title: "Rotate the image",
|
|
5558
|
+
description: "Sets the image rotation in degrees clockwise, as one undo step. Quarter turns (90, 180, 270) keep every pixel; other angles straighten the image inside a larger frame with transparent corners, so crop afterwards. Returns the new geometry.",
|
|
5559
|
+
inputSchema: {
|
|
5560
|
+
type: "object",
|
|
5561
|
+
properties: { degrees: { type: "number", minimum: -360, maximum: 360, description: "Absolute rotation in degrees clockwise (0 = upright)." } },
|
|
5562
|
+
required: ["degrees"],
|
|
5563
|
+
additionalProperties: false
|
|
5564
|
+
},
|
|
5565
|
+
annotations: { title: "Rotate the image", ...WRITE_IDEMPOTENT },
|
|
5566
|
+
handler: ({ degrees }) => {
|
|
5567
|
+
requireImage();
|
|
5568
|
+
controller.setRotation(degrees);
|
|
5569
|
+
return geometry();
|
|
5570
|
+
}
|
|
5571
|
+
};
|
|
5572
|
+
const flipImage = {
|
|
5573
|
+
name: "flip_image",
|
|
5574
|
+
title: "Flip the image",
|
|
5575
|
+
description: "Mirrors the image horizontally (left-right) or vertically (top-bottom), as one undo step. Flipping twice restores it. Returns the new geometry.",
|
|
5576
|
+
inputSchema: {
|
|
5577
|
+
type: "object",
|
|
5578
|
+
properties: { axis: { type: "string", enum: ["horizontal", "vertical"], description: "horizontal mirrors left-right; vertical mirrors top-bottom." } },
|
|
5579
|
+
required: ["axis"],
|
|
5580
|
+
additionalProperties: false
|
|
5581
|
+
},
|
|
5582
|
+
annotations: { title: "Flip the image", ...WRITE },
|
|
5583
|
+
handler: ({ axis }) => {
|
|
5584
|
+
requireImage();
|
|
5585
|
+
if (axis === "horizontal") controller.flipHorizontal();
|
|
5586
|
+
else controller.flipVertical();
|
|
5587
|
+
return geometry();
|
|
5588
|
+
}
|
|
5589
|
+
};
|
|
5590
|
+
const undo = {
|
|
5591
|
+
name: "undo_image",
|
|
5592
|
+
title: "Undo an image edit",
|
|
5593
|
+
description: "Undoes the last image edit (one tool call is one step). Returns whether undo and redo are still available.",
|
|
5594
|
+
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
5595
|
+
annotations: { title: "Undo an image edit", ...WRITE },
|
|
5596
|
+
handler: () => {
|
|
5597
|
+
if (!controller.undo()) throw new Error("Nothing to undo.");
|
|
5598
|
+
return history();
|
|
5599
|
+
}
|
|
5600
|
+
};
|
|
5601
|
+
const redo = {
|
|
5602
|
+
name: "redo_image",
|
|
5603
|
+
title: "Redo an image edit",
|
|
5604
|
+
description: "Redoes the last undone image edit. Returns whether undo and redo are still available.",
|
|
5605
|
+
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
5606
|
+
annotations: { title: "Redo an image edit", ...WRITE },
|
|
5607
|
+
handler: () => {
|
|
5608
|
+
if (!controller.redo()) throw new Error("Nothing to redo.");
|
|
5609
|
+
return history();
|
|
5610
|
+
}
|
|
5611
|
+
};
|
|
5612
|
+
return [getImageInfo, getHistogram, updateLayer, removeLayer, moveLayer, setCrop, resetCrop, setRotation, flipImage, undo, redo];
|
|
5613
|
+
}
|
|
5614
|
+
|
|
5360
5615
|
// src/image-editor/tools.ts
|
|
5361
5616
|
var LAYER_PATH = /^layers\.([^.]+)\.(.+)$/;
|
|
5362
5617
|
function adjustmentsSummary(adjustments) {
|
|
@@ -5574,7 +5829,15 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
5574
5829
|
return {
|
|
5575
5830
|
id: _nullishCoalesce(options.id, () => ( "image-editor")),
|
|
5576
5831
|
namespace: options.namespace,
|
|
5577
|
-
tools: [
|
|
5832
|
+
tools: [
|
|
5833
|
+
getAdjustments,
|
|
5834
|
+
listControls,
|
|
5835
|
+
setAdjustments,
|
|
5836
|
+
addLayer,
|
|
5837
|
+
renderPreview,
|
|
5838
|
+
...createImageSelectionTools(controller),
|
|
5839
|
+
...createImageEditTools(controller)
|
|
5840
|
+
]
|
|
5578
5841
|
};
|
|
5579
5842
|
}
|
|
5580
5843
|
|
|
@@ -6086,5 +6349,6 @@ function applyRegionBlur(imageData, regions, radius = 10) {
|
|
|
6086
6349
|
|
|
6087
6350
|
|
|
6088
6351
|
|
|
6089
|
-
|
|
6352
|
+
|
|
6353
|
+
exports.ADJUSTMENT_KINDS = ADJUSTMENT_KINDS; exports.ADJUSTMENT_LAYER_CONTROLS = ADJUSTMENT_LAYER_CONTROLS; exports.ADJUSTMENT_LAYER_OPACITY_CONTROL = ADJUSTMENT_LAYER_OPACITY_CONTROL; exports.ADJUSTMENT_LUT_SIZE = ADJUSTMENT_LUT_SIZE; exports.AS_SHOT_KELVIN = AS_SHOT_KELVIN; exports.BLEND_MODES = BLEND_MODES; exports.D65 = D65; exports.DEFAULT_ADJUSTMENTS = DEFAULT_ADJUSTMENTS; exports.DEFAULT_DEPTH_MASK = DEFAULT_DEPTH_MASK; exports.DEFAULT_REFINE_EDGE_PARAMS = DEFAULT_REFINE_EDGE_PARAMS; exports.DEFAULT_SELECTION_TOOL_OPTIONS = DEFAULT_SELECTION_TOOL_OPTIONS; exports.DEFAULT_TRANSFORM = DEFAULT_TRANSFORM; exports.DIRECT_GAUSSIAN_MAX_SIGMA = DIRECT_GAUSSIAN_MAX_SIGMA; exports.EMPTY_DISTANCE = EMPTY_DISTANCE; exports.GUIDED_FILTER_EPS = GUIDED_FILTER_EPS; exports.HISTOGRAM_BINS = HISTOGRAM_BINS; exports.HUE_RANGE_LABELS = HUE_RANGE_LABELS; exports.IDENTITY_MATRIX3 = IDENTITY_MATRIX3; exports.IMAGE_ADJUSTMENT_CONTROLS = IMAGE_ADJUSTMENT_CONTROLS; exports.IMAGE_EDITOR_SCHEMA_VERSION = IMAGE_EDITOR_SCHEMA_VERSION; exports.IMAGE_EDITOR_STATE_VERSION = IMAGE_EDITOR_STATE_VERSION; exports.ImageEditorController = ImageEditorController; exports.ImageEditorRenderer = ImageEditorRenderer; exports.LATEST_PROCESS_VERSION = LATEST_PROCESS_VERSION; exports.LEGACY_PROCESS_VERSION = LEGACY_PROCESS_VERSION; exports.LUMA_709 = LUMA_709; exports.MAX_KELVIN = MAX_KELVIN; exports.MIN_KELVIN = MIN_KELVIN; exports.MIRED_PER_TEMPERATURE_UNIT = MIRED_PER_TEMPERATURE_UNIT; exports.REFINE_EDGE_CONTROLS = REFINE_EDGE_CONTROLS; exports.SELECTION_MODES = SELECTION_MODES; exports.SELECTION_MODE_LABELS = SELECTION_MODE_LABELS; exports.SELECTION_MODIFY_OPS = SELECTION_MODIFY_OPS; exports.SELECTION_TOOLS = SELECTION_TOOLS; exports.SelectionGesture = SelectionGesture; exports.TINT_SCALE = TINT_SCALE; exports.TONE_LUT_SIZE = TONE_LUT_SIZE; exports.TONE_RANGE_PRESETS = TONE_RANGE_PRESETS; exports.VIBRANCE_GREY = VIBRANCE_GREY; exports.activeAdjustmentLayers = activeAdjustmentLayers; exports.adjustmentKindLabel = adjustmentKindLabel; exports.adjustmentLayersKey = adjustmentLayersKey; exports.applyAdjustmentLayers = applyAdjustmentLayers; exports.applyAdjustments = applyAdjustments; exports.applyDepthMask = applyDepthMask; exports.applyImageProjectionToContext = applyImageProjectionToContext; exports.applyLegacyAdjustments = applyLegacyAdjustments; exports.applyMatrix3 = applyMatrix3; exports.applyProcess2Adjustments = applyProcess2Adjustments; exports.applyRegionBlur = applyRegionBlur; exports.applyRegionMosaic = applyRegionMosaic; exports.blackWhiteGray = blackWhiteGray; exports.blendChannel = blendChannel; exports.blendImageData = blendImageData; exports.blendLum = blendLum; exports.blendPixel = blendPixel; exports.blendRgb = blendRgb; exports.borderCoverage = borderCoverage; exports.boxMean = boxMean; exports.boxToCurvePoint = boxToCurvePoint; exports.bradfordAdaptation = bradfordAdaptation; exports.buildLayerMaskPlanes = buildLayerMaskPlanes; exports.buildToneLut = buildToneLut; exports.calculateCropDrag = calculateCropDrag; exports.canvasCompositeOperation = canvasCompositeOperation; exports.canvasToImagePoint = canvasToImagePoint; exports.clampControlValue = clampControlValue; exports.clampCropToImage = clampCropToImage; exports.colorBalanceChannel = colorBalanceChannel; exports.colorRange = colorRange; exports.combineSelections = combineSelections; exports.compileAdjustmentLayer = compileAdjustmentLayer; exports.computeHistogram = computeHistogram; exports.computeSelectionBounds = computeSelectionBounds; exports.contractCoverage = contractCoverage; exports.controlPosition = controlPosition; exports.controlTrackBackground = controlTrackBackground; exports.coverageToByte = coverageToByte; exports.createAdjustmentLayer = createAdjustmentLayer; exports.createImageEditTools = createImageEditTools; exports.createImageEditorToolProvider = createImageEditorToolProvider; exports.createImageSelectionTools = createImageSelectionTools; exports.createSelectionMask = createSelectionMask; exports.curveLut = curveLut; exports.curveLutFromLevels = curveLutFromLevels; exports.curvePointToBox = curvePointToBox; exports.curveSvgPath = curveSvgPath; exports.decodeLayerMask = decodeLayerMask; exports.decodeSelectionRle = decodeSelectionRle; exports.defaultAdjustmentParams = defaultAdjustmentParams; exports.describeSelection = describeSelection; exports.deserializeSelection = deserializeSelection; exports.distanceTransform = distanceTransform; exports.edgeWidth = edgeWidth; exports.ellipsePoints = ellipsePoints; exports.ellipseSelection = ellipseSelection; exports.encodeSelectionRle = encodeSelectionRle; exports.evaluateAdjustmentLayers = evaluateAdjustmentLayers; exports.expandCoverage = expandCoverage; exports.featherCoverage = featherCoverage; exports.findAdjustmentControl = findAdjustmentControl; exports.findLayerControl = findLayerControl; exports.formatControlValue = formatControlValue; exports.fullSelection = fullSelection; exports.gaussianBlur = gaussianBlur; exports.getAnnotationBounds = getAnnotationBounds; exports.getControlPath = getControlPath; exports.getCropCursor = getCropCursor; exports.getRotatedSize = getRotatedSize; exports.getViewportMetrics = getViewportMetrics; exports.getViewportProjection = getViewportProjection; exports.globalImageCache = globalImageCache; exports.greyMorphology = greyMorphology; exports.guidePlanes = guidePlanes; exports.guidedFilterColor = guidedFilterColor; exports.hashMaskContent = hashMaskContent; exports.hexToRgb = hexToRgb; exports.histogramPath = histogramPath; exports.hitTestAnnotation = hitTestAnnotation; exports.hitTestCrop = hitTestCrop; exports.hitTestCurvePoint = hitTestCurvePoint; exports.hslToRgb = hslToRgb; exports.hueRange = hueRange; exports.hueRangeTables = hueRangeTables; exports.hueRangeWeight = hueRangeWeight; exports.hueSaturation = hueSaturation; exports.identityCurve = identityCurve; exports.identityLevels = identityLevels; exports.imageEditorStateMigrations = imageEditorStateMigrations; exports.imageToCanvasPoint = imageToCanvasPoint; exports.insertCurvePoint = insertCurvePoint; exports.invertMatrix3 = invertMatrix3; exports.invertSelection = invertSelection; exports.isAdjustmentKind = isAdjustmentKind; exports.isBlendMode = isBlendMode; exports.isQuarterTurnSwapped = isQuarterTurnSwapped; exports.isSelectionEmpty = isSelectionEmpty; exports.isSelectionMode = isSelectionMode; exports.isSeparableBlendMode = isSeparableBlendMode; exports.kelvinToTemperature = kelvinToTemperature; exports.layerMaskCoverage = layerMaskCoverage; exports.layerMaskFromSelection = layerMaskFromSelection; exports.layerMaskKey = layerMaskKey; exports.levelsValue = levelsValue; exports.linearSrgbToXy = linearSrgbToXy; exports.linearToSrgb = linearToSrgb; exports.loadImageEditorDocument = loadImageEditorDocument; exports.magicWand = magicWand; exports.mapCropHandle = mapCropHandle; exports.migrateSerializedImageEditorState = migrateSerializedImageEditorState; exports.modifySelection = modifySelection; exports.moveCurvePoint = moveCurvePoint; exports.mulMatrix3 = mulMatrix3; exports.neutralHueRange = neutralHueRange; exports.normalizeAdjustmentLayer = normalizeAdjustmentLayer; exports.normalizeAdjustmentLayers = normalizeAdjustmentLayers; exports.normalizeAngle = normalizeAngle; exports.normalizeBlendMode = normalizeBlendMode; exports.normalizeLayerMask = normalizeLayerMask; exports.normalizeProcessVersion = normalizeProcessVersion; exports.normalizeRect = normalizeRect; exports.normalizeRefineEdgeParams = normalizeRefineEdgeParams; exports.normalizeStoredAdjustments = normalizeStoredAdjustments; exports.parseSelectionMode = parseSelectionMode; exports.photoFilterMatrix = photoFilterMatrix; exports.polygonCoverage = polygonCoverage; exports.polygonSelection = polygonSelection; exports.posterizeValue = posterizeValue; exports.projectImagePoint = projectImagePoint; exports.projectImageRect = projectImageRect; exports.projectMaskCoverage = projectMaskCoverage; exports.quickMaskPixels = quickMaskPixels; exports.rangeLightness = rangeLightness; exports.readAdjustmentControls = readAdjustmentControls; exports.rectSelection = rectSelection; exports.refineCoverage = refineCoverage; exports.refineEdgeHalo = refineEdgeHalo; exports.refineSelection = refineSelection; exports.removeAlpha = removeAlpha; exports.removeCurvePoint = removeCurvePoint; exports.resizeSelection = resizeSelection; exports.resolveMosaicRegionBounds = resolveMosaicRegionBounds; exports.rgbToGray = rgbToGray; exports.rgbToHsl = rgbToHsl; exports.sampleLut = sampleLut; exports.sampleToneLut = sampleToneLut; exports.selectionArea = selectionArea; exports.selectionFromCoverage = selectionFromCoverage; exports.selectionFromPixels = selectionFromPixels; exports.selectionModeFromModifiers = selectionModeFromModifiers; exports.selectionOutline = selectionOutline; exports.selectionToCoverage = selectionToCoverage; exports.selectionToPixels = selectionToPixels; exports.selectionValueAt = selectionValueAt; exports.serializeSelection = serializeSelection; exports.setControlPath = setControlPath; exports.setLum = setLum; exports.shiftCoverage = shiftCoverage; exports.smoothCoverage = smoothCoverage; exports.srgb8ToLab = srgb8ToLab; exports.srgbToLinear = srgbToLinear; exports.tempTintToXy = tempTintToXy; exports.temperatureToKelvin = temperatureToKelvin; exports.toneCurve = toneCurve; exports.toneLuts = toneLuts; exports.toneRange = toneRange; exports.unprojectCanvasPoint = unprojectCanvasPoint; exports.updateLayerMaskProps = updateLayerMaskProps; exports.uvToXy = uvToXy; exports.vibranceLinear = vibranceLinear; exports.vibrancePixel = vibrancePixel; exports.wbMatrix = wbMatrix; exports.whiteBalanceFromSample = whiteBalanceFromSample; exports.whiteBalanceMatrix = whiteBalanceMatrix; exports.xyToTempTint = xyToTempTint; exports.xyToUv = xyToUv;
|
|
6090
6354
|
//# sourceMappingURL=index.cjs.map
|