@pixerate/editor 0.262.1 → 0.264.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/animation-editor/index.cjs +60 -60
- package/dist/animation-editor/index.js +4 -4
- package/dist/brushes/index.cjs +158 -71
- package/dist/brushes/index.d.cts +3 -3
- package/dist/brushes/index.d.ts +3 -3
- package/dist/brushes/index.js +113 -26
- package/dist/brushes/library.d.cts +2 -0
- package/dist/brushes/library.d.ts +2 -0
- package/dist/brushes/profiles.d.cts +21 -2
- package/dist/brushes/profiles.d.ts +21 -2
- package/dist/brushes/ui.d.cts +57 -4
- package/dist/brushes/ui.d.ts +57 -4
- package/dist/{brushstrokeRender-25Q5BEY6.js → brushstrokeRender-3MOI7PH4.js} +3 -3
- package/dist/{brushstrokeRender-N6UPZSQS.cjs → brushstrokeRender-SMMPIJF2.cjs} +13 -13
- package/dist/canvas/index.cjs +15 -14
- package/dist/canvas/index.js +3 -2
- package/dist/canvas/stickers.d.cts +5 -1
- package/dist/canvas/stickers.d.ts +5 -1
- package/dist/{chunk-X2EXYY4J.js → chunk-4OJC4MCD.js} +9 -8
- package/dist/{chunk-J5UQHWVL.js → chunk-6JL2D5SG.js} +27 -15
- package/dist/{chunk-APX63ILU.js → chunk-ACFSFUQH.js} +31 -0
- package/dist/{chunk-TZOX7KWV.cjs → chunk-BY5EBP26.cjs} +35 -14
- package/dist/{chunk-CQVTGBQI.js → chunk-CECCP2V7.js} +1 -1
- package/dist/{chunk-F7CPSRLN.js → chunk-DOZ6F2K2.js} +12 -4
- package/dist/{chunk-5IW65VQ6.js → chunk-EE7SAYBF.js} +24 -3
- package/dist/{chunk-PYTJBVW5.cjs → chunk-F3KKR6DD.cjs} +37 -36
- package/dist/{chunk-YLUIFXSL.cjs → chunk-FQC5TDB6.cjs} +35 -35
- package/dist/{chunk-UVZ7RQOE.cjs → chunk-G5ADO47G.cjs} +1 -1
- package/dist/{chunk-D4TE5JNW.js → chunk-HAUDEVMC.js} +1 -1
- package/dist/{chunk-EHALWBBD.js → chunk-JEML4FSA.js} +1 -1
- package/dist/{chunk-43NT242D.cjs → chunk-KXNZNOEF.cjs} +86 -86
- package/dist/{chunk-JSDND7DF.cjs → chunk-OTN6VB5S.cjs} +32 -1
- package/dist/{chunk-AVTPZO4Z.cjs → chunk-PE6YJMQT.cjs} +37 -25
- package/dist/{chunk-QAR2N7HZ.js → chunk-ROBSFJ6F.js} +1 -1
- package/dist/{chunk-7AUQ2UJ3.cjs → chunk-USJX5SW4.cjs} +10 -10
- package/dist/{chunk-3TQW5MPW.cjs → chunk-V7MJ4HIN.cjs} +23 -23
- package/dist/{chunk-6NZL24W4.js → chunk-WWI6FLH2.js} +1 -1
- package/dist/{chunk-RVGP2XLF.cjs → chunk-XORJ7UZO.cjs} +21 -13
- package/dist/image-editor/controller.d.cts +3 -0
- package/dist/image-editor/controller.d.ts +3 -0
- package/dist/image-editor/index.cjs +792 -788
- package/dist/image-editor/index.js +10 -6
- package/dist/image-editor/stickers.d.cts +7 -2
- package/dist/image-editor/stickers.d.ts +7 -2
- package/dist/image-editor/types.d.cts +7 -0
- package/dist/image-editor/types.d.ts +7 -0
- package/dist/paint-editor/brush-library-tools.d.cts +8 -1
- package/dist/paint-editor/brush-library-tools.d.ts +8 -1
- package/dist/paint-editor/controller.d.cts +7 -2
- package/dist/paint-editor/controller.d.ts +7 -2
- package/dist/paint-editor/index.cjs +581 -524
- package/dist/paint-editor/index.d.cts +1 -1
- package/dist/paint-editor/index.d.ts +1 -1
- package/dist/paint-editor/index.js +105 -48
- package/dist/paint-editor/sticker-art.d.cts +20 -10
- package/dist/paint-editor/sticker-art.d.ts +20 -10
- package/dist/paint-editor/stickers.d.cts +8 -1
- package/dist/paint-editor/stickers.d.ts +8 -1
- package/dist/paint-editor/stroke.d.cts +2 -0
- package/dist/paint-editor/stroke.d.ts +2 -0
- package/dist/stickers/browser.d.cts +10 -3
- package/dist/stickers/browser.d.ts +10 -3
- package/dist/stickers/combine.d.cts +2 -0
- package/dist/stickers/combine.d.ts +2 -0
- package/dist/stickers/conformance.d.cts +1 -1
- package/dist/stickers/conformance.d.ts +1 -1
- package/dist/stickers/errors.d.cts +1 -1
- package/dist/stickers/errors.d.ts +1 -1
- package/dist/stickers/fake.d.cts +4 -2
- package/dist/stickers/fake.d.ts +4 -2
- package/dist/stickers/helpers.d.cts +16 -2
- package/dist/stickers/helpers.d.ts +16 -2
- package/dist/stickers/index.cjs +116 -29
- package/dist/stickers/index.js +106 -19
- package/dist/stickers/tools.d.cts +9 -2
- package/dist/stickers/tools.d.ts +9 -2
- package/dist/stickers/types.d.cts +32 -5
- package/dist/stickers/types.d.ts +32 -5
- package/dist/vector/controller.d.cts +13 -0
- package/dist/vector/controller.d.ts +13 -0
- package/dist/vector/index.cjs +1218 -1207
- package/dist/vector/index.js +19 -8
- package/dist/vector/stickers.d.cts +7 -2
- package/dist/vector/stickers.d.ts +7 -2
- package/package.json +1 -1
- package/skills/pixerate-brushes/SKILL.md +11 -3
- package/skills/pixerate-brushes-design/SKILL.md +1 -0
- package/skills/pixerate-stickers/SKILL.md +20 -9
- package/skills/pixerate-vector/SKILL.md +1 -1
package/dist/canvas/index.cjs
CHANGED
|
@@ -46,7 +46,7 @@ var _chunk3FSUJIXNcjs = require('../chunk-3FSUJIXN.cjs');
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
var
|
|
49
|
+
var _chunkG5ADO47Gcjs = require('../chunk-G5ADO47G.cjs');
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
|
|
@@ -7984,12 +7984,12 @@ function freehandBrushstroke(brush, points, samples, profileLength = 32) {
|
|
|
7984
7984
|
if (!samples || samples.length !== points.length) return out;
|
|
7985
7985
|
const finite2 = (v) => typeof v === "number" && Number.isFinite(v);
|
|
7986
7986
|
if (samples.some((s) => finite2(s.pressure))) {
|
|
7987
|
-
const pressure =
|
|
7987
|
+
const pressure = _chunkG5ADO47Gcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s.pressure) ? Math.min(1, Math.max(0, s.pressure)) : 1), profileLength);
|
|
7988
7988
|
if (pressure.some((p) => p !== 1)) out.pressure = pressure;
|
|
7989
7989
|
}
|
|
7990
7990
|
for (const key of ["tiltX", "tiltY"]) {
|
|
7991
7991
|
if (!samples.some((s) => finite2(s[key]) && s[key] !== 0)) continue;
|
|
7992
|
-
out[key] =
|
|
7992
|
+
out[key] = _chunkG5ADO47Gcjs.profileAlongPolyline.call(void 0, points, samples.map((s) => finite2(s[key]) ? Math.min(90, Math.max(-90, s[key])) : 0), profileLength);
|
|
7993
7993
|
}
|
|
7994
7994
|
return out;
|
|
7995
7995
|
}
|
|
@@ -8035,7 +8035,7 @@ function strokeToShapeNode(stroke, options = {}) {
|
|
|
8035
8035
|
...stroke.style.paint !== void 0 ? { paint: stroke.style.paint } : {},
|
|
8036
8036
|
...stroke.style.brushSpec && typeof stroke.style.brush === "string" && stroke.style.brushSpec.id === stroke.style.brush ? { spec: stroke.style.brushSpec } : {},
|
|
8037
8037
|
// New strokes carry a character seed (jitter and grain) and their size, if chosen.
|
|
8038
|
-
seed:
|
|
8038
|
+
seed: _chunkG5ADO47Gcjs.brushstrokeSeed.call(void 0, _nullishCoalesce(options.id, () => ( stroke.id))),
|
|
8039
8039
|
...stroke.style.brushSize !== void 0 && stroke.style.brushSize > 0 ? { size: stroke.style.brushSize } : {}
|
|
8040
8040
|
}
|
|
8041
8041
|
} : {},
|
|
@@ -8197,7 +8197,7 @@ function createCanvasDrawController(options) {
|
|
|
8197
8197
|
if (tool !== "pen" && tool !== "highlighter") throw new Error(`Unknown tool '${String(tool)}': use 'pen' or 'highlighter'.`);
|
|
8198
8198
|
const style = { ...createDefaultStrokeStyle(tool), ...input.style };
|
|
8199
8199
|
if (_optionalChain([input, 'access', _312 => _312.style, 'optionalAccess', _313 => _313.color]) === void 0 && typeof style.brush === "string") {
|
|
8200
|
-
const preset = (await
|
|
8200
|
+
const preset = (await _chunkG5ADO47Gcjs.listCanvasBrushes.call(void 0, options.brushLibrary)).find((b) => b.id === style.brush);
|
|
8201
8201
|
const hex = _optionalChain([preset, 'optionalAccess', _314 => _314.defaultColor]) !== void 0 ? _chunkLRTR4ASZcjs.brushColourHex.call(void 0, preset.defaultColor, colorScheme) : null;
|
|
8202
8202
|
if (hex) style.color = hex;
|
|
8203
8203
|
}
|
|
@@ -8217,12 +8217,12 @@ function createCanvasDrawController(options) {
|
|
|
8217
8217
|
throw new Error("paint (gradient paint) only colours brushed strokes: pass a brush too (see canvas.listBrushes), or use color for a plain stroke.");
|
|
8218
8218
|
}
|
|
8219
8219
|
if (style.brush !== void 0) {
|
|
8220
|
-
const spec = await _asyncNullishCoalesce((_optionalChain([style, 'access', _315 => _315.brushSpec, 'optionalAccess', _316 => _316.id]) === style.brush ? style.brushSpec : void 0), async () => ( await
|
|
8221
|
-
await
|
|
8220
|
+
const spec = await _asyncNullishCoalesce((_optionalChain([style, 'access', _315 => _315.brushSpec, 'optionalAccess', _316 => _316.id]) === style.brush ? style.brushSpec : void 0), async () => ( await _chunkG5ADO47Gcjs.resolveCanvasBrushSpec.call(void 0, style.brush, options.brushLibrary)));
|
|
8221
|
+
await _chunkG5ADO47Gcjs.validateCanvasBrush.call(void 0, style.brush, spec);
|
|
8222
8222
|
if (spec) style.brushSpec = spec;
|
|
8223
8223
|
else delete style.brushSpec;
|
|
8224
8224
|
}
|
|
8225
|
-
if (style.paint !== void 0) style.paint = (await
|
|
8225
|
+
if (style.paint !== void 0) style.paint = (await _chunkG5ADO47Gcjs.loadCanvasBrushstrokeRenderer.call(void 0, )).resolveCanvasPaint(style.paint);
|
|
8226
8226
|
const id = _nullishCoalesce(_optionalChain([options, 'access', _317 => _317.generateNodeId, 'optionalCall', _318 => _318()]), () => ( `stroke-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`));
|
|
8227
8227
|
const smoothed = input.streamline ? streamlinePoints(points, _nullishCoalesce(_optionalChain([options, 'access', _319 => _319.drawOptions, 'optionalAccess', _320 => _320.streamline]), () => ( 0.35))) : [...points];
|
|
8228
8228
|
const node = strokeToShapeNode(
|
|
@@ -8308,7 +8308,7 @@ function createCanvasDrawController(options) {
|
|
|
8308
8308
|
drawStroke,
|
|
8309
8309
|
nodeBounds,
|
|
8310
8310
|
/** The presets and saved brushes (of `brushLibrary`) a stroke can be brushed with (loads the paint engine). */
|
|
8311
|
-
listBrushes: () =>
|
|
8311
|
+
listBrushes: () => _chunkG5ADO47Gcjs.listCanvasBrushes.call(void 0, options.brushLibrary),
|
|
8312
8312
|
/**
|
|
8313
8313
|
* A brush picker's choice: brushes the pen and highlighter with `id` (`null`: a plain vector
|
|
8314
8314
|
* stroke) at the brush's own size, embedding a saved brush, and makes its default colour
|
|
@@ -8320,9 +8320,9 @@ function createCanvasDrawController(options) {
|
|
|
8320
8320
|
setStyle({ brush: void 0, brushSize: void 0, brushSpec: void 0, paint: void 0 });
|
|
8321
8321
|
return null;
|
|
8322
8322
|
}
|
|
8323
|
-
const preset = (await
|
|
8323
|
+
const preset = (await _chunkG5ADO47Gcjs.listCanvasBrushes.call(void 0, options.brushLibrary)).find((b) => b.id === id);
|
|
8324
8324
|
if (!preset) {
|
|
8325
|
-
await
|
|
8325
|
+
await _chunkG5ADO47Gcjs.validateCanvasBrush.call(void 0, id);
|
|
8326
8326
|
throw new Error(`Brush '${id}' is not one the canvas can paint; listBrushes lists them.`);
|
|
8327
8327
|
}
|
|
8328
8328
|
const hex = !choice.keepColour && preset.defaultColor !== void 0 ? _chunkLRTR4ASZcjs.brushColourHex.call(void 0, preset.defaultColor, colorScheme) : null;
|
|
@@ -8334,7 +8334,7 @@ function createCanvasDrawController(options) {
|
|
|
8334
8334
|
colorScheme = scheme === "dark" ? "dark" : "light";
|
|
8335
8335
|
},
|
|
8336
8336
|
/** The saved brush to embed for a brush id (undefined for presets and tip settings); for a brush picker. */
|
|
8337
|
-
brushSpec: (brush) =>
|
|
8337
|
+
brushSpec: (brush) => _chunkG5ADO47Gcjs.resolveCanvasBrushSpec.call(void 0, brush, options.brushLibrary)
|
|
8338
8338
|
};
|
|
8339
8339
|
}
|
|
8340
8340
|
function computeDragBounds(start, current, modifiers = {}) {
|
|
@@ -12713,7 +12713,7 @@ function stickerCanvasNode(placement, id) {
|
|
|
12713
12713
|
if (!silhouette) throw new (0, _chunkU67EN7GGcjs.StickerError)("unsupported_format", `"${placement.ref}" has no outline (silhouette); the canvas places stickers by their outline. Pick one whose describe_sticker lists a silhouette.`);
|
|
12714
12714
|
const fill = _nullishCoalesce(_nullishCoalesce(placement.colour, () => ( _optionalChain([description, 'access', _554 => _554.colours, 'optionalAccess', _555 => _555[0]]))), () => ( "#1f2937"));
|
|
12715
12715
|
const shape = { kind: "path", d: silhouette, viewBox: [0, 0, description.width, description.height], fillRule: "evenodd", fill };
|
|
12716
|
-
const sticker = { ref: placement.ref, licence: description.licence };
|
|
12716
|
+
const sticker = { ref: placement.ref, licence: description.licence, ...placement.variant === "dark" ? { variant: "dark" } : {} };
|
|
12717
12717
|
return {
|
|
12718
12718
|
id,
|
|
12719
12719
|
type: SHAPE_NODE_TYPE,
|
|
@@ -12737,6 +12737,7 @@ function createCanvasStickerHost(options) {
|
|
|
12737
12737
|
return {
|
|
12738
12738
|
noun: "shape node",
|
|
12739
12739
|
format: "svg",
|
|
12740
|
+
...options.dark ? { dark: options.dark } : {},
|
|
12740
12741
|
defaultCentre: () => {
|
|
12741
12742
|
if (options.defaultCentre) return options.defaultCentre();
|
|
12742
12743
|
const nodes = options.getNodes();
|
|
@@ -13286,4 +13287,4 @@ function createCanvasStickerHost(options) {
|
|
|
13286
13287
|
|
|
13287
13288
|
|
|
13288
13289
|
|
|
13289
|
-
exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunkDWJJI6RTcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunkDWJJI6RTcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunkM5GLQQWGcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkM5GLQQWGcjs.AnimationPlayer; exports.BUILTIN_FAMILY_SCENES = BUILTIN_FAMILY_SCENES; exports.CANVAS_CAPTURE_CHROME_SELECTORS = CANVAS_CAPTURE_CHROME_SELECTORS; exports.CANVAS_CAPTURE_OVERLAY_SELECTORS = CANVAS_CAPTURE_OVERLAY_SELECTORS; exports.CANVAS_CAPTURE_VIEWPORT_SELECTOR = CANVAS_CAPTURE_VIEWPORT_SELECTOR; exports.CANVAS_COMPONENT_DRAG_TYPE = CANVAS_COMPONENT_DRAG_TYPE; exports.CANVAS_EFFECT_MISSING_PATTERN = CANVAS_EFFECT_MISSING_PATTERN; exports.CANVAS_EFFECT_PLACES = CANVAS_EFFECT_PLACES; exports.CANVAS_GRADIENT_PRESETS = _chunkNM3G4VQTcjs.CANVAS_GRADIENT_PRESETS; exports.CANVAS_PROPOSAL_CLASS = CANVAS_PROPOSAL_CLASS; exports.CANVAS_TOKEN_PROPERTIES = CANVAS_TOKEN_PROPERTIES; exports.CARD_INSPECTION_ZONES = CARD_INSPECTION_ZONES; exports.CHILD_LAYOUT_DATA_KEY = CHILD_LAYOUT_DATA_KEY; exports.COMPONENT_DATA_KEY = COMPONENT_DATA_KEY; exports.COMPONENT_OVERRIDES_DATA_KEY = COMPONENT_OVERRIDES_DATA_KEY; exports.COMPONENT_PROPERTY_REFS_DATA_KEY = COMPONENT_PROPERTY_REFS_DATA_KEY; exports.COMPONENT_SET_DATA_KEY = COMPONENT_SET_DATA_KEY; exports.COMPONENT_SOURCE_DATA_KEY = COMPONENT_SOURCE_DATA_KEY; exports.CONNECTION_LINE_TYPES = CONNECTION_LINE_TYPES; exports.CSS_ANIMATION_PROPERTIES = CSS_ANIMATION_PROPERTIES; exports.CSS_VARIABLE_DIAGRAM_SCENE_THEME = CSS_VARIABLE_DIAGRAM_SCENE_THEME; exports.CUBIC_BEZIER_PRESETS = _chunkDWJJI6RTcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunkT7QSEKDYcjs.DEFAULT_ARRANGE_SHORTCUTS; exports.DEFAULT_CURSOR_INACTIVITY_MS = DEFAULT_CURSOR_INACTIVITY_MS; exports.DEFAULT_DIAGRAM_NODE_HEIGHT = DEFAULT_DIAGRAM_NODE_HEIGHT; exports.DEFAULT_DIAGRAM_NODE_WIDTH = DEFAULT_DIAGRAM_NODE_WIDTH; exports.DEFAULT_NODE_HEIGHT = _chunkEL4PSKFTcjs.DEFAULT_NODE_HEIGHT; exports.DEFAULT_NODE_WIDTH = _chunkEL4PSKFTcjs.DEFAULT_NODE_WIDTH; exports.DEFAULT_PLACEMENT_GAP = _chunkEL4PSKFTcjs.DEFAULT_PLACEMENT_GAP; exports.DIAGRAM_MARKER_IDS = DIAGRAM_MARKER_IDS; exports.DIAGRAM_RASTER_MAX_SIZE = DIAGRAM_RASTER_MAX_SIZE; exports.DIAGRAM_SCENE_DARK_THEME = DIAGRAM_SCENE_DARK_THEME; exports.DIAGRAM_SCENE_LIGHT_THEME = DIAGRAM_SCENE_LIGHT_THEME; exports.DIAGRAM_SVG_DARK_THEME = DIAGRAM_SVG_DARK_THEME; exports.DIAGRAM_SVG_LIGHT_THEME = DIAGRAM_SVG_LIGHT_THEME; exports.DIAGRAM_TITLE_TARGET = DIAGRAM_TITLE_TARGET; exports.DiagramStream = DiagramStream; exports.INSTANCE_DATA_KEY = INSTANCE_DATA_KEY; exports.LOCKED_DATA_KEY = _chunkEL4PSKFTcjs.LOCKED_DATA_KEY; exports.LOCKED_PREVIOUS_FLAGS_KEY = _chunkEL4PSKFTcjs.LOCKED_PREVIOUS_FLAGS_KEY; exports.MAX_KEYFRAME_REFS = MAX_KEYFRAME_REFS; exports.MERMAID_SHAPE_PAINT = MERMAID_SHAPE_PAINT; exports.ManualClock = _chunkM5GLQQWGcjs.ManualClock; exports.PATHFINDER_OPERATIONS = _chunkYAWLMF3Ocjs.PATHFINDER_OPERATIONS; exports.PIXERATE_BRAND_GRADIENT = _chunkNM3G4VQTcjs.PIXERATE_BRAND_GRADIENT; exports.PathOpsError = _chunkGF2RBSDMcjs.PathOpsError; exports.PlanarMap = _chunkYAWLMF3Ocjs.PlanarMap; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = _chunkNM3G4VQTcjs.SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.SPRING_PRESETS = _chunkDWJJI6RTcjs.SPRING_PRESETS; exports.StreamingLayoutManager = StreamingLayoutManager; exports.TOKEN_BINDINGS_DATA_KEY = TOKEN_BINDINGS_DATA_KEY; exports.TOKEN_MODES_DATA_KEY = TOKEN_MODES_DATA_KEY; exports.addCanvasVariant = addCanvasVariant; exports.addKeyframesAtTime = addKeyframesAtTime; exports.alignNodes = _chunkEL4PSKFTcjs.alignNodes; exports.angleToSvgLinearCoords = _chunkNM3G4VQTcjs.angleToSvgLinearCoords; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = _chunkEL4PSKFTcjs.applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = _chunkGF2RBSDMcjs.arcToCubics; exports.architectureScene = architectureScene; exports.arrowGesture = _chunkT7QSEKDYcjs.arrowGesture; exports.autoLayoutDiagram = autoLayoutDiagram; exports.bezierPathArea = _chunkGF2RBSDMcjs.bezierPathArea; exports.bezierPathBounds = _chunkGF2RBSDMcjs.bezierPathBounds; exports.bezierPathLength = _chunkGF2RBSDMcjs.bezierPathLength; exports.bezierPathPointAtLength = _chunkGF2RBSDMcjs.bezierPathPointAtLength; exports.bezierPathSignedArea = _chunkGF2RBSDMcjs.bezierPathSignedArea; exports.bezierPathToSvg = _chunkGF2RBSDMcjs.bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendDiagramLayout = blendDiagramLayout; exports.blendLayout = blendLayout; exports.boundsOf = _chunkEL4PSKFTcjs.boundsOf; exports.bracketGesture = _chunkT7QSEKDYcjs.bracketGesture; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeSeed = _chunkUVZ7RQOEcjs.brushstrokeSeed; exports.c4Scene = c4Scene; exports.calculateCursorArrowRotation = calculateCursorArrowRotation; exports.calculateCurvedPath = calculateCurvedPath; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.calculateReflowDisplacement = calculateReflowDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasDocumentContentKey = canvasDocumentContentKey; exports.canvasEffectErrorReason = canvasEffectErrorReason; exports.canvasEffectStatus = canvasEffectStatus; exports.canvasEffectsPool = canvasEffectsPool; exports.canvasExplosionToolTarget = canvasExplosionToolTarget; exports.canvasHeight = canvasHeight; exports.canvasNodeCaptureRect = canvasNodeCaptureRect; exports.canvasNodeEffect = canvasNodeEffect; exports.captureCanvasView = captureCanvasView; exports.centerNodes = _chunkEL4PSKFTcjs.centerNodes; exports.centre = _chunkEL4PSKFTcjs.centre; exports.checkGesture = _chunkT7QSEKDYcjs.checkGesture; exports.circleGesture = _chunkT7QSEKDYcjs.circleGesture; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = _chunkGF2RBSDMcjs.closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeCanvasExplosionLayout = computeCanvasExplosionLayout; exports.computeDragBounds = computeDragBounds; exports.computeDragBoundsFromPoints = computeDragBoundsFromPoints; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedDiagramOnly = connectedDiagramOnly; exports.connectedOnly = connectedOnly; exports.contourEnclosesArea = _chunkYAWLMF3Ocjs.contourEnclosesArea; exports.contourSignedArea = _chunkGF2RBSDMcjs.contourSignedArea; exports.contoursToPath = _chunkGF2RBSDMcjs.contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = _chunkGF2RBSDMcjs.countPathSegments; exports.createAnimationPlayer = _chunkM5GLQQWGcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasCaptureSurface = createCanvasCaptureSurface; exports.createCanvasCaptureToolProvider = createCanvasCaptureToolProvider; exports.createCanvasChangeFeed = createCanvasChangeFeed; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasDrawController = createCanvasDrawController; exports.createCanvasEditorDocument = createCanvasEditorDocument; exports.createCanvasEffectsController = createCanvasEffectsController; exports.createCanvasEffectsToolProvider = createCanvasEffectsToolProvider; exports.createCanvasExplosionStateController = createCanvasExplosionStateController; exports.createCanvasExplosionToolProvider = createCanvasExplosionToolProvider; exports.createCanvasGestureRecorder = createCanvasGestureRecorder; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasPlaybackLocator = createCanvasPlaybackLocator; exports.createCanvasProposalToolProvider = createCanvasProposalToolProvider; exports.createCanvasProposals = createCanvasProposals; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createCanvasStickerHost = createCanvasStickerHost; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = _chunkEL4PSKFTcjs.createNodeLookup; exports.crossGesture = _chunkT7QSEKDYcjs.crossGesture; exports.cubicBezierAt = _chunkDWJJI6RTcjs.cubicBezierAt; exports.cubicPointAt = _chunkNM3G4VQTcjs.cubicPointAt; exports.cubicsToPathData = _chunkNM3G4VQTcjs.cubicsToPathData; exports.cutOutPiece = _chunkYAWLMF3Ocjs.cutOutPiece; exports.dashContours = _chunkGF2RBSDMcjs.dashContours; exports.defaultEasing = defaultEasing; exports.deleteKeyframes = deleteKeyframes; exports.detachCanvasInstance = detachCanvasInstance; exports.detachTokenBindings = detachTokenBindings; exports.diagramCanvasHeight = diagramCanvasHeight; exports.diagramFileName = diagramFileName; exports.diagramGroupSize = diagramGroupSize; exports.diagramImageSize = diagramImageSize; exports.diagramLayoutBounds = diagramLayoutBounds; exports.diagramMarksBounds = diagramMarksBounds; exports.diagramMarksToSvg = diagramMarksToSvg; exports.diagramRenameOp = diagramRenameOp; exports.diagramTargetLabel = diagramTargetLabel; exports.diagramTextBaseline = diagramTextBaseline; exports.diffOverrideGroups = diffOverrideGroups; exports.distanceToBezierPath = _chunkGF2RBSDMcjs.distanceToBezierPath; exports.distributeNodes = _chunkEL4PSKFTcjs.distributeNodes; exports.dividePaths = _chunkGF2RBSDMcjs.dividePaths; exports.dividePolygons = _chunkGF2RBSDMcjs.dividePolygons; exports.downloadDiagramPng = downloadDiagramPng; exports.easeDiagramTween = easeDiagramTween; exports.easingFromInfluence = _chunkDWJJI6RTcjs.easingFromInfluence; exports.easingLabel = _chunkDWJJI6RTcjs.easingLabel; exports.easingToCss = _chunkDWJJI6RTcjs.easingToCss; exports.elasticAt = _chunkDWJJI6RTcjs.elasticAt; exports.ensureDiagramLayout = ensureDiagramLayout; exports.ensureLayout = _chunkEL4PSKFTcjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateDiagramCanvasHeight = estimateDiagramCanvasHeight; exports.estimateDiagramNodeSize = estimateDiagramNodeSize; exports.estimateNodeSize = _chunkEL4PSKFTcjs.estimateNodeSize; exports.estimateTextWidth = estimateTextWidth2; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunkDWJJI6RTcjs.evaluateEasing; exports.evaluateTrack = _chunkM5GLQQWGcjs.evaluateTrack; exports.excludePaths = _chunkGF2RBSDMcjs.excludePaths; exports.explosionEdgeId = explosionEdgeId; exports.exportCssAnimation = exportCssAnimation; exports.familySceneFromLayout = familySceneFromLayout; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = _chunkNM3G4VQTcjs.fitCubicRun; exports.fitCubicWithTangents = _chunkNM3G4VQTcjs.fitCubicWithTangents; exports.fitCubics = _chunkNM3G4VQTcjs.fitCubics; exports.fitFreehandPath = _chunkNM3G4VQTcjs.fitFreehandPath; exports.fitPathData = _chunkNM3G4VQTcjs.fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = _chunkNM3G4VQTcjs.flattenSvgPath; exports.flowSide = _chunkEL4PSKFTcjs.flowSide; exports.formatAgentCursorName = formatAgentCursorName; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = _chunkNM3G4VQTcjs.formatNumber; exports.formatOklab = _chunk4ZC5QJE2cjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.gestureEdgePoint = _chunkT7QSEKDYcjs.gestureEdgePoint; exports.gestureRandom = _chunkT7QSEKDYcjs.gestureRandom; exports.gestureSeed = _chunkT7QSEKDYcjs.gestureSeed; exports.gestureUnion = _chunkT7QSEKDYcjs.gestureUnion; exports.getAbsolutePosition = _chunkEL4PSKFTcjs.getAbsolutePosition; exports.getAgentCardAnchor = getAgentCardAnchor; exports.getAnimatableProperty = getAnimatableProperty; exports.getAnimatedProperties = getAnimatedProperties; exports.getAnimatedValue = getAnimatedValue; exports.getAnimationDuration = getAnimationDuration; exports.getAnimationTrack = getAnimationTrack; exports.getAutoLayout = getAutoLayout; exports.getAutoLayoutGrid = getAutoLayoutGrid; exports.getAutoLayoutInsertTarget = getAutoLayoutInsertTarget; exports.getBindableTokenProperties = getBindableTokenProperties; exports.getBrushedShapeSvg = _chunkUVZ7RQOEcjs.getBrushedShapeSvg; exports.getCanvasComponentDragId = getCanvasComponentDragId; exports.getCanvasTokenProperty = getCanvasTokenProperty; exports.getCenteredNodePosition = _chunkEL4PSKFTcjs.getCenteredNodePosition; exports.getChildLayout = getChildLayout; exports.getComponentData = getComponentData; exports.getComponentInstances = getComponentInstances; exports.getComponentPropertyDefs = getComponentPropertyDefs; exports.getComponentPropertyRefs = getComponentPropertyRefs; exports.getComponentSourceId = getComponentSourceId; exports.getCssPropertyAnimations = getCssPropertyAnimations; exports.getCursorTransitionDuration = getCursorTransitionDuration; exports.getDefaultVariant = getDefaultVariant; exports.getEffectiveTokenModes = getEffectiveTokenModes; exports.getFamilyScene = getFamilyScene; exports.getFlowChildren = getFlowChildren; exports.getInstanceData = getInstanceData; exports.getInstanceProperties = getInstanceProperties; exports.getInstanceStatus = getInstanceStatus; exports.getKeyframeTimes = getKeyframeTimes; exports.getLayerName = getLayerName; exports.getLayoutParent = getLayoutParent; exports.getLayoutSizing = getLayoutSizing; exports.getLayoutedNodes = _chunkEL4PSKFTcjs.getLayoutedNodes; exports.getNaturalMovementTiming = getNaturalMovementTiming; exports.getNextVariantValues = getNextVariantValues; exports.getNodeAnimation = getNodeAnimation; exports.getNodeOverrides = getNodeOverrides; exports.getNodeRect = _chunkEL4PSKFTcjs.getNodeRect; exports.getNodeShape = getNodeShape; exports.getNodeSize = _chunkEL4PSKFTcjs.getNodeSize; exports.getNodeTokenBindings = getNodeTokenBindings; exports.getNodeTokenModes = getNodeTokenModes; exports.getOwningComponent = getOwningComponent; exports.getOwningInstance = getOwningInstance; exports.getResizingNodeRect = getResizingNodeRect; exports.getRootInstance = getRootInstance; exports.getShapeRenderData = _chunkNM3G4VQTcjs.getShapeRenderData; exports.getShapeSvg = _chunkNM3G4VQTcjs.getShapeSvg; exports.getTimelineRows = getTimelineRows; exports.getTimelineTicks = getTimelineTicks; exports.getTokenPropertyScope = getTokenPropertyScope; exports.getTokensForProperty = getTokensForProperty; exports.getVariantConflicts = getVariantConflicts; exports.getVariantOptions = getVariantOptions; exports.getVariantSet = getVariantSet; exports.getVariantValues = getVariantValues; exports.gitGraphScene = gitGraphScene; exports.gradientToSvgDef = _chunkNM3G4VQTcjs.gradientToSvgDef; exports.handlePoint = handlePoint; exports.hasFamilyScene = hasFamilyScene; exports.hasVisibleStroke = hasVisibleStroke; exports.hashString = hashString; exports.hatchPath = _chunkYAWLMF3Ocjs.hatchPath; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interiorPoint = _chunkYAWLMF3Ocjs.interiorPoint; exports.interpolateAnimationValue = _chunkM5GLQQWGcjs.interpolateAnimationValue; exports.intersectPaths = _chunkGF2RBSDMcjs.intersectPaths; exports.intersectPolygons = _chunkGF2RBSDMcjs.intersectPolygons; exports.invertNodeUpdates = _chunkEL4PSKFTcjs.invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunkDWJJI6RTcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkM5GLQQWGcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunkUVZ7RQOEcjs.isBrushedShape; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasGradient = _chunkNM3G4VQTcjs.isCanvasGradient; exports.isCanvasInstance = isCanvasInstance; exports.isCssExportExact = isCssExportExact; exports.isEventFromTextInput = isEventFromTextInput; exports.isInsideInstance = isInsideInstance; exports.isKeyframeSelected = isKeyframeSelected; exports.isLocked = _chunkEL4PSKFTcjs.isLocked; exports.isMeasureModifierHeld = isMeasureModifierHeld; exports.isNodeAnimated = isNodeAnimated; exports.isShapeDescription = _chunkNM3G4VQTcjs.isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = _chunkNM3G4VQTcjs.isStraightCubic; exports.isValidCanvasEdge = isValidCanvasEdge; exports.isValidCanvasNode = isValidCanvasNode; exports.isValidCanvasScene = isValidCanvasScene; exports.isValidUrl = isValidUrl; exports.journeyScene = journeyScene; exports.layoutAll = layoutAll; exports.layoutBounds = layoutBounds; exports.layoutFrame = layoutFrame; exports.layoutUp = layoutUp; exports.layoutUpMany = layoutUpMany; exports.linearPositionTrajectory = linearPositionTrajectory; exports.linearTrajectory = linearTrajectory; exports.listCanvasBrushes = _chunkUVZ7RQOEcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunkUVZ7RQOEcjs.loadCanvasBrushstrokeRenderer; exports.lockNodes = _chunkEL4PSKFTcjs.lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunkT7QSEKDYcjs.matchArrangeShortcut; exports.matchSize = _chunkEL4PSKFTcjs.matchSize; exports.measureBetween = measureBetween; exports.measureLabel = measureLabel; exports.measureSelection = measureSelection; exports.measureToLine = measureToLine; exports.mergeNodeUpdates = mergeNodeUpdates; exports.mermaidEdgeDash = mermaidEdgeDash; exports.mermaidEdgeMarker = mermaidEdgeMarker; exports.mermaidEdgeWidth = mermaidEdgeWidth; exports.mermaidFlowEdges = mermaidFlowEdges; exports.mermaidFlowNodes = mermaidFlowNodes; exports.mermaidLabelLines = mermaidLabelLines; exports.mermaidMarkerId = mermaidMarkerId; exports.mermaidMovesFromCanvas = mermaidMovesFromCanvas; exports.mermaidNodeMembers = mermaidNodeMembers; exports.mermaidNodePaint = mermaidNodePaint; exports.mermaidShapePaths = mermaidShapePaths; exports.mermaidThumbnailSvg = mermaidThumbnailSvg; exports.mermaidToCanvas = mermaidToCanvas; exports.mermaidToScene = mermaidToScene; exports.mermaidToSvg = mermaidToSvg; exports.mindmapScene = mindmapScene; exports.mixColorsOklab = _chunk4ZC5QJE2cjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = _chunkGF2RBSDMcjs.multiPolygonArea; exports.multiPolygonBounds = _chunkGF2RBSDMcjs.multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.nodeSizeOf = nodeSizeOf; exports.normalizeBezierPath = _chunkGF2RBSDMcjs.normalizeBezierPath; exports.normalizeKeyframes = _chunkM5GLQQWGcjs.normalizeKeyframes; exports.offsetPath = _chunkGF2RBSDMcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunk4ZC5QJE2cjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkGF2RBSDMcjs.outlineStroke; exports.overlaps = _chunkEL4PSKFTcjs.overlaps; exports.pageHidden = _chunkM5GLQQWGcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunkDWJJI6RTcjs.parseCssEasing; exports.parseCssGradient = _chunkNM3G4VQTcjs.parseCssGradient; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseMermaidStyles = parseMermaidStyles; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunk4ZC5QJE2cjs.parseOklab; exports.parseSvgPath = _chunkNM3G4VQTcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkGF2RBSDMcjs.pathBoolean; exports.pathBooleanSelect = _chunkGF2RBSDMcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunkUVZ7RQOEcjs.pathDataToPolyline; exports.pathToContours = _chunkGF2RBSDMcjs.pathToContours; exports.pathfinder = _chunkYAWLMF3Ocjs.pathfinder; exports.pieScene = pieScene; exports.placeBeside = _chunkEL4PSKFTcjs.placeBeside; exports.placeInView = _chunkEL4PSKFTcjs.placeInView; exports.planarSplit = _chunkGF2RBSDMcjs.planarSplit; exports.playCanvasSceneTransition = playCanvasSceneTransition; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = _chunkGF2RBSDMcjs.pointInBezierPath; exports.pointInMultiPolygon = _chunkGF2RBSDMcjs.pointInMultiPolygon; exports.pointInRings = _chunkGF2RBSDMcjs.pointInRings; exports.pointerPenSample = pointerPenSample; exports.polygonArea = _chunkGF2RBSDMcjs.polygonArea; exports.polygonBoolean = _chunkGF2RBSDMcjs.polygonBoolean; exports.polygonToSvgPath = _chunkNM3G4VQTcjs.polygonToSvgPath; exports.positionToSide = positionToSide; exports.profileAlongPolyline = _chunkUVZ7RQOEcjs.profileAlongPolyline; exports.pruneCanvasTokenModes = pruneCanvasTokenModes; exports.pushCanvasInstanceOverrides = pushCanvasInstanceOverrides; exports.quadrantScene = quadrantScene; exports.radarChartSpec = radarChartSpec; exports.radarScene = radarScene; exports.rasterSize = rasterSize; exports.rasterizeSvg = rasterizeSvg; exports.readAnimatableValue = readAnimatableValue; exports.readNodeStyleProperty = readNodeStyleProperty; exports.readOverrideGroup = readOverrideGroup; exports.readStyleSize = _chunkEL4PSKFTcjs.readStyleSize; exports.realClock = _chunkM5GLQQWGcjs.realClock; exports.recordAnimationChanges = recordAnimationChanges; exports.registerFamilyScene = registerFamilyScene; exports.relayoutUpdates = relayoutUpdates; exports.remapPastedNodes = remapPastedNodes; exports.removeCanvasVariant = removeCanvasVariant; exports.removeTrack = removeTrack; exports.renameCanvasVariantProperty = renameCanvasVariantProperty; exports.renameCanvasVariantValue = renameCanvasVariantValue; exports.renderCanvasBrushPreview = _chunkUVZ7RQOEcjs.renderCanvasBrushPreview; exports.renderCanvasBrushSwatch = _chunkUVZ7RQOEcjs.renderCanvasBrushSwatch; exports.renderShapeBrushstroke = _chunkUVZ7RQOEcjs.renderShapeBrushstroke; exports.reorderNodes = _chunkEL4PSKFTcjs.reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasBrushSpec = _chunkUVZ7RQOEcjs.resolveCanvasBrushSpec; exports.resolveCanvasGradient = _chunkNM3G4VQTcjs.resolveCanvasGradient; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunkDWJJI6RTcjs.resolveEasing; exports.resolveMermaidStyles = resolveMermaidStyles; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.reverseCubicBezier = _chunkDWJJI6RTcjs.reverseCubicBezier; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunk4ZC5QJE2cjs.rgbToOklab; exports.ringSignedArea = _chunkGF2RBSDMcjs.ringSignedArea; exports.runCanvasNodeEffect = runCanvasNodeEffect; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.sceneColor = sceneColor; exports.segmentBounds = _chunkGF2RBSDMcjs.segmentBounds; exports.segmentCurvature = _chunkGF2RBSDMcjs.segmentCurvature; exports.segmentDerivative = _chunkGF2RBSDMcjs.segmentDerivative; exports.segmentExtrema = _chunkGF2RBSDMcjs.segmentExtrema; exports.segmentIntersections = _chunkGF2RBSDMcjs.segmentIntersections; exports.segmentLength = _chunkGF2RBSDMcjs.segmentLength; exports.segmentNearest = _chunkGF2RBSDMcjs.segmentNearest; exports.segmentParamAtLength = _chunkGF2RBSDMcjs.segmentParamAtLength; exports.segmentPoint = _chunkGF2RBSDMcjs.segmentPoint; exports.segmentTangent = _chunkGF2RBSDMcjs.segmentTangent; exports.sequenceScene = sequenceScene; exports.serializeCanvasNodes = serializeCanvasNodes; exports.setCanvasComponentProperty = setCanvasComponentProperty; exports.setCanvasInstanceProperties = setCanvasInstanceProperties; exports.setCanvasTokenMode = setCanvasTokenMode; exports.setCanvasVariantProperties = setCanvasVariantProperties; exports.setKeyframe = setKeyframe; exports.setKeyframeEasing = setKeyframeEasing; exports.setMotionPath = setMotionPath; exports.setTrackEnabled = setTrackEnabled; exports.shapeNodeToBezierPath = shapeNodeToBezierPath; exports.shapeNodeToPolygon = shapeNodeToPolygon; exports.shapeToBezierPath = shapeToBezierPath; exports.shapeToPolygon = _chunkNM3G4VQTcjs.shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = _chunkNM3G4VQTcjs.simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = _chunkGF2RBSDMcjs.splitSegment; exports.springAt = _chunkDWJJI6RTcjs.springAt; exports.springSettleMs = _chunkDWJJI6RTcjs.springSettleMs; exports.stickerCanvasNode = stickerCanvasNode; exports.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strikeGesture = _chunkT7QSEKDYcjs.strikeGesture; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = _chunkGF2RBSDMcjs.strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = _chunkGF2RBSDMcjs.subSegment; exports.subtractPaths = _chunkGF2RBSDMcjs.subtractPaths; exports.subtractPolygons = _chunkGF2RBSDMcjs.subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.timelineScene = timelineScene; exports.toBezierPath = _chunkGF2RBSDMcjs.toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = _chunkEL4PSKFTcjs.toggleLockNodes; exports.transformBezierPath = _chunkGF2RBSDMcjs.transformBezierPath; exports.transitionCanvasView = transitionCanvasView; exports.trimSegments = _chunkGF2RBSDMcjs.trimSegments; exports.underlineGesture = _chunkT7QSEKDYcjs.underlineGesture; exports.unionPolygons = _chunkGF2RBSDMcjs.unionPolygons; exports.unitePaths = _chunkGF2RBSDMcjs.unitePaths; exports.unlockNodes = _chunkEL4PSKFTcjs.unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunkUVZ7RQOEcjs.validateCanvasBrush; exports.validateCanvasBrushPaint = _chunkUVZ7RQOEcjs.validateCanvasBrushPaint; exports.windingNumber = _chunkGF2RBSDMcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = _chunkEL4PSKFTcjs.withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkM5GLQQWGcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkGF2RBSDMcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
|
|
13290
|
+
exports.ANIMATABLE_PROPERTIES = ANIMATABLE_PROPERTIES; exports.ANIMATION_DATA_KEY = ANIMATION_DATA_KEY; exports.ANIMATION_EASING_LABELS = _chunkDWJJI6RTcjs.ANIMATION_EASING_LABELS; exports.ANIMATION_EASING_PRESETS = _chunkDWJJI6RTcjs.ANIMATION_EASING_PRESETS; exports.ANIMATION_TIME_EPSILON = _chunkM5GLQQWGcjs.ANIMATION_TIME_EPSILON; exports.AUTO_LAYOUT_DATA_KEY = AUTO_LAYOUT_DATA_KEY; exports.AnimationEditError = AnimationEditError; exports.AnimationPlayer = _chunkM5GLQQWGcjs.AnimationPlayer; exports.BUILTIN_FAMILY_SCENES = BUILTIN_FAMILY_SCENES; exports.CANVAS_CAPTURE_CHROME_SELECTORS = CANVAS_CAPTURE_CHROME_SELECTORS; exports.CANVAS_CAPTURE_OVERLAY_SELECTORS = CANVAS_CAPTURE_OVERLAY_SELECTORS; exports.CANVAS_CAPTURE_VIEWPORT_SELECTOR = CANVAS_CAPTURE_VIEWPORT_SELECTOR; exports.CANVAS_COMPONENT_DRAG_TYPE = CANVAS_COMPONENT_DRAG_TYPE; exports.CANVAS_EFFECT_MISSING_PATTERN = CANVAS_EFFECT_MISSING_PATTERN; exports.CANVAS_EFFECT_PLACES = CANVAS_EFFECT_PLACES; exports.CANVAS_GRADIENT_PRESETS = _chunkNM3G4VQTcjs.CANVAS_GRADIENT_PRESETS; exports.CANVAS_PROPOSAL_CLASS = CANVAS_PROPOSAL_CLASS; exports.CANVAS_TOKEN_PROPERTIES = CANVAS_TOKEN_PROPERTIES; exports.CARD_INSPECTION_ZONES = CARD_INSPECTION_ZONES; exports.CHILD_LAYOUT_DATA_KEY = CHILD_LAYOUT_DATA_KEY; exports.COMPONENT_DATA_KEY = COMPONENT_DATA_KEY; exports.COMPONENT_OVERRIDES_DATA_KEY = COMPONENT_OVERRIDES_DATA_KEY; exports.COMPONENT_PROPERTY_REFS_DATA_KEY = COMPONENT_PROPERTY_REFS_DATA_KEY; exports.COMPONENT_SET_DATA_KEY = COMPONENT_SET_DATA_KEY; exports.COMPONENT_SOURCE_DATA_KEY = COMPONENT_SOURCE_DATA_KEY; exports.CONNECTION_LINE_TYPES = CONNECTION_LINE_TYPES; exports.CSS_ANIMATION_PROPERTIES = CSS_ANIMATION_PROPERTIES; exports.CSS_VARIABLE_DIAGRAM_SCENE_THEME = CSS_VARIABLE_DIAGRAM_SCENE_THEME; exports.CUBIC_BEZIER_PRESETS = _chunkDWJJI6RTcjs.CUBIC_BEZIER_PRESETS; exports.CanvasScenesStore = CanvasScenesStore; exports.DEFAULT_ARRANGE_SHORTCUTS = _chunkT7QSEKDYcjs.DEFAULT_ARRANGE_SHORTCUTS; exports.DEFAULT_CURSOR_INACTIVITY_MS = DEFAULT_CURSOR_INACTIVITY_MS; exports.DEFAULT_DIAGRAM_NODE_HEIGHT = DEFAULT_DIAGRAM_NODE_HEIGHT; exports.DEFAULT_DIAGRAM_NODE_WIDTH = DEFAULT_DIAGRAM_NODE_WIDTH; exports.DEFAULT_NODE_HEIGHT = _chunkEL4PSKFTcjs.DEFAULT_NODE_HEIGHT; exports.DEFAULT_NODE_WIDTH = _chunkEL4PSKFTcjs.DEFAULT_NODE_WIDTH; exports.DEFAULT_PLACEMENT_GAP = _chunkEL4PSKFTcjs.DEFAULT_PLACEMENT_GAP; exports.DIAGRAM_MARKER_IDS = DIAGRAM_MARKER_IDS; exports.DIAGRAM_RASTER_MAX_SIZE = DIAGRAM_RASTER_MAX_SIZE; exports.DIAGRAM_SCENE_DARK_THEME = DIAGRAM_SCENE_DARK_THEME; exports.DIAGRAM_SCENE_LIGHT_THEME = DIAGRAM_SCENE_LIGHT_THEME; exports.DIAGRAM_SVG_DARK_THEME = DIAGRAM_SVG_DARK_THEME; exports.DIAGRAM_SVG_LIGHT_THEME = DIAGRAM_SVG_LIGHT_THEME; exports.DIAGRAM_TITLE_TARGET = DIAGRAM_TITLE_TARGET; exports.DiagramStream = DiagramStream; exports.INSTANCE_DATA_KEY = INSTANCE_DATA_KEY; exports.LOCKED_DATA_KEY = _chunkEL4PSKFTcjs.LOCKED_DATA_KEY; exports.LOCKED_PREVIOUS_FLAGS_KEY = _chunkEL4PSKFTcjs.LOCKED_PREVIOUS_FLAGS_KEY; exports.MAX_KEYFRAME_REFS = MAX_KEYFRAME_REFS; exports.MERMAID_SHAPE_PAINT = MERMAID_SHAPE_PAINT; exports.ManualClock = _chunkM5GLQQWGcjs.ManualClock; exports.PATHFINDER_OPERATIONS = _chunkYAWLMF3Ocjs.PATHFINDER_OPERATIONS; exports.PIXERATE_BRAND_GRADIENT = _chunkNM3G4VQTcjs.PIXERATE_BRAND_GRADIENT; exports.PathOpsError = _chunkGF2RBSDMcjs.PathOpsError; exports.PlanarMap = _chunkYAWLMF3Ocjs.PlanarMap; exports.RESIZE_HANDLES = RESIZE_HANDLES; exports.SHAPE_DATA_KEY = SHAPE_DATA_KEY; exports.SHAPE_KINDS = _chunkNM3G4VQTcjs.SHAPE_KINDS; exports.SHAPE_NODE_TYPE = SHAPE_NODE_TYPE; exports.SHAPE_OPERATIONS = SHAPE_OPERATIONS; exports.SPRING_PRESETS = _chunkDWJJI6RTcjs.SPRING_PRESETS; exports.StreamingLayoutManager = StreamingLayoutManager; exports.TOKEN_BINDINGS_DATA_KEY = TOKEN_BINDINGS_DATA_KEY; exports.TOKEN_MODES_DATA_KEY = TOKEN_MODES_DATA_KEY; exports.addCanvasVariant = addCanvasVariant; exports.addKeyframesAtTime = addKeyframesAtTime; exports.alignNodes = _chunkEL4PSKFTcjs.alignNodes; exports.angleToSvgLinearCoords = _chunkNM3G4VQTcjs.angleToSvgLinearCoords; exports.animateNode = animateNode; exports.applyAnimation = applyAnimation; exports.applyAnimationOverrides = applyAnimationOverrides; exports.applyConstraints = applyConstraints; exports.applyNodeUpdates = _chunkEL4PSKFTcjs.applyNodeUpdates; exports.applyShapeCombination = applyShapeCombination; exports.applyShapeReplacement = applyShapeReplacement; exports.arcToCubics = _chunkGF2RBSDMcjs.arcToCubics; exports.architectureScene = architectureScene; exports.arrowGesture = _chunkT7QSEKDYcjs.arrowGesture; exports.autoLayoutDiagram = autoLayoutDiagram; exports.bezierPathArea = _chunkGF2RBSDMcjs.bezierPathArea; exports.bezierPathBounds = _chunkGF2RBSDMcjs.bezierPathBounds; exports.bezierPathLength = _chunkGF2RBSDMcjs.bezierPathLength; exports.bezierPathPointAtLength = _chunkGF2RBSDMcjs.bezierPathPointAtLength; exports.bezierPathSignedArea = _chunkGF2RBSDMcjs.bezierPathSignedArea; exports.bezierPathToSvg = _chunkGF2RBSDMcjs.bezierPathToSvg; exports.bindCanvasComponentProperty = bindCanvasComponentProperty; exports.bindCanvasToken = bindCanvasToken; exports.blendDiagramLayout = blendDiagramLayout; exports.blendLayout = blendLayout; exports.boundsOf = _chunkEL4PSKFTcjs.boundsOf; exports.bracketGesture = _chunkT7QSEKDYcjs.bracketGesture; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeSeed = _chunkG5ADO47Gcjs.brushstrokeSeed; exports.c4Scene = c4Scene; exports.calculateCursorArrowRotation = calculateCursorArrowRotation; exports.calculateCurvedPath = calculateCurvedPath; exports.calculateDagreReflowDisplacement = calculateDagreReflowDisplacement; exports.calculateDirectionalDisplacement = calculateDirectionalDisplacement; exports.calculateReflowDisplacement = calculateReflowDisplacement; exports.canCombineShapeNodes = canCombineShapeNodes; exports.canOffsetShapeNodes = canOffsetShapeNodes; exports.canOutlineShapeNodeStrokes = canOutlineShapeNodeStrokes; exports.canvasDocumentContentKey = canvasDocumentContentKey; exports.canvasEffectErrorReason = canvasEffectErrorReason; exports.canvasEffectStatus = canvasEffectStatus; exports.canvasEffectsPool = canvasEffectsPool; exports.canvasExplosionToolTarget = canvasExplosionToolTarget; exports.canvasHeight = canvasHeight; exports.canvasNodeCaptureRect = canvasNodeCaptureRect; exports.canvasNodeEffect = canvasNodeEffect; exports.captureCanvasView = captureCanvasView; exports.centerNodes = _chunkEL4PSKFTcjs.centerNodes; exports.centre = _chunkEL4PSKFTcjs.centre; exports.checkGesture = _chunkT7QSEKDYcjs.checkGesture; exports.circleGesture = _chunkT7QSEKDYcjs.circleGesture; exports.clampAnimationValue = clampAnimationValue; exports.clampLayoutSize = clampLayoutSize; exports.closeContour = _chunkGF2RBSDMcjs.closeContour; exports.collectDescendantIds = collectDescendantIds; exports.combineCanvasComponentsAsVariants = combineCanvasComponentsAsVariants; exports.combineShapeNodes = combineShapeNodes; exports.computeCanvasExplosionLayout = computeCanvasExplosionLayout; exports.computeDragBounds = computeDragBounds; exports.computeDragBoundsFromPoints = computeDragBoundsFromPoints; exports.computeNodesBoundingBox = computeNodesBoundingBox; exports.computeSnapGuides = computeSnapGuides; exports.connectedDiagramOnly = connectedDiagramOnly; exports.connectedOnly = connectedOnly; exports.contourEnclosesArea = _chunkYAWLMF3Ocjs.contourEnclosesArea; exports.contourSignedArea = _chunkGF2RBSDMcjs.contourSignedArea; exports.contoursToPath = _chunkGF2RBSDMcjs.contoursToPath; exports.copyKeyframes = copyKeyframes; exports.countPathSegments = _chunkGF2RBSDMcjs.countPathSegments; exports.createAnimationPlayer = _chunkM5GLQQWGcjs.createAnimationPlayer; exports.createBezierTrajectory = createBezierTrajectory; exports.createCanvasAnimationController = createCanvasAnimationController; exports.createCanvasArrangeController = createCanvasArrangeController; exports.createCanvasAutoLayoutController = createCanvasAutoLayoutController; exports.createCanvasCaptureSurface = createCanvasCaptureSurface; exports.createCanvasCaptureToolProvider = createCanvasCaptureToolProvider; exports.createCanvasChangeFeed = createCanvasChangeFeed; exports.createCanvasComponent = createCanvasComponent; exports.createCanvasComponentsController = createCanvasComponentsController; exports.createCanvasDrawController = createCanvasDrawController; exports.createCanvasEditorDocument = createCanvasEditorDocument; exports.createCanvasEffectsController = createCanvasEffectsController; exports.createCanvasEffectsToolProvider = createCanvasEffectsToolProvider; exports.createCanvasExplosionStateController = createCanvasExplosionStateController; exports.createCanvasExplosionToolProvider = createCanvasExplosionToolProvider; exports.createCanvasGestureRecorder = createCanvasGestureRecorder; exports.createCanvasInstance = createCanvasInstance; exports.createCanvasPlaybackLocator = createCanvasPlaybackLocator; exports.createCanvasProposalToolProvider = createCanvasProposalToolProvider; exports.createCanvasProposals = createCanvasProposals; exports.createCanvasScenesStore = createCanvasScenesStore; exports.createCanvasStickerHost = createCanvasStickerHost; exports.createDefaultStrokeStyle = createDefaultStrokeStyle; exports.createFanOutTrajectory = createFanOutTrajectory; exports.createGuideIndex = createGuideIndex; exports.createNodeGuideIndex = createNodeGuideIndex; exports.createNodeLookup = _chunkEL4PSKFTcjs.createNodeLookup; exports.crossGesture = _chunkT7QSEKDYcjs.crossGesture; exports.cubicBezierAt = _chunkDWJJI6RTcjs.cubicBezierAt; exports.cubicPointAt = _chunkNM3G4VQTcjs.cubicPointAt; exports.cubicsToPathData = _chunkNM3G4VQTcjs.cubicsToPathData; exports.cutOutPiece = _chunkYAWLMF3Ocjs.cutOutPiece; exports.dashContours = _chunkGF2RBSDMcjs.dashContours; exports.defaultEasing = defaultEasing; exports.deleteKeyframes = deleteKeyframes; exports.detachCanvasInstance = detachCanvasInstance; exports.detachTokenBindings = detachTokenBindings; exports.diagramCanvasHeight = diagramCanvasHeight; exports.diagramFileName = diagramFileName; exports.diagramGroupSize = diagramGroupSize; exports.diagramImageSize = diagramImageSize; exports.diagramLayoutBounds = diagramLayoutBounds; exports.diagramMarksBounds = diagramMarksBounds; exports.diagramMarksToSvg = diagramMarksToSvg; exports.diagramRenameOp = diagramRenameOp; exports.diagramTargetLabel = diagramTargetLabel; exports.diagramTextBaseline = diagramTextBaseline; exports.diffOverrideGroups = diffOverrideGroups; exports.distanceToBezierPath = _chunkGF2RBSDMcjs.distanceToBezierPath; exports.distributeNodes = _chunkEL4PSKFTcjs.distributeNodes; exports.dividePaths = _chunkGF2RBSDMcjs.dividePaths; exports.dividePolygons = _chunkGF2RBSDMcjs.dividePolygons; exports.downloadDiagramPng = downloadDiagramPng; exports.easeDiagramTween = easeDiagramTween; exports.easingFromInfluence = _chunkDWJJI6RTcjs.easingFromInfluence; exports.easingLabel = _chunkDWJJI6RTcjs.easingLabel; exports.easingToCss = _chunkDWJJI6RTcjs.easingToCss; exports.elasticAt = _chunkDWJJI6RTcjs.elasticAt; exports.ensureDiagramLayout = ensureDiagramLayout; exports.ensureLayout = _chunkEL4PSKFTcjs.ensureLayout; exports.estimateCanvasHeight = estimateCanvasHeight; exports.estimateDiagramCanvasHeight = estimateDiagramCanvasHeight; exports.estimateDiagramNodeSize = estimateDiagramNodeSize; exports.estimateNodeSize = _chunkEL4PSKFTcjs.estimateNodeSize; exports.estimateTextWidth = estimateTextWidth2; exports.evaluateAnimation = evaluateAnimation; exports.evaluateEasing = _chunkDWJJI6RTcjs.evaluateEasing; exports.evaluateTrack = _chunkM5GLQQWGcjs.evaluateTrack; exports.excludePaths = _chunkGF2RBSDMcjs.excludePaths; exports.explosionEdgeId = explosionEdgeId; exports.exportCssAnimation = exportCssAnimation; exports.familySceneFromLayout = familySceneFromLayout; exports.findConnectorSnap = findConnectorSnap; exports.findStrokesAtPoint = findStrokesAtPoint; exports.findVariant = findVariant; exports.fitCubicRun = _chunkNM3G4VQTcjs.fitCubicRun; exports.fitCubicWithTangents = _chunkNM3G4VQTcjs.fitCubicWithTangents; exports.fitCubics = _chunkNM3G4VQTcjs.fitCubics; exports.fitFreehandPath = _chunkNM3G4VQTcjs.fitFreehandPath; exports.fitPathData = _chunkNM3G4VQTcjs.fitPathData; exports.fitViewportToNodes = fitViewportToNodes; exports.fitViewportToRect = fitViewportToRect; exports.flattenSvgPath = _chunkNM3G4VQTcjs.flattenSvgPath; exports.flowSide = _chunkEL4PSKFTcjs.flowSide; exports.formatAgentCursorName = formatAgentCursorName; exports.formatAnimationTime = formatAnimationTime; exports.formatNumber = _chunkNM3G4VQTcjs.formatNumber; exports.formatOklab = _chunk4ZC5QJE2cjs.formatOklab; exports.formatVariantName = formatVariantName; exports.freehandBrushstroke = freehandBrushstroke; exports.ganttScene = ganttScene; exports.gestureEdgePoint = _chunkT7QSEKDYcjs.gestureEdgePoint; exports.gestureRandom = _chunkT7QSEKDYcjs.gestureRandom; exports.gestureSeed = _chunkT7QSEKDYcjs.gestureSeed; exports.gestureUnion = _chunkT7QSEKDYcjs.gestureUnion; exports.getAbsolutePosition = _chunkEL4PSKFTcjs.getAbsolutePosition; exports.getAgentCardAnchor = getAgentCardAnchor; exports.getAnimatableProperty = getAnimatableProperty; exports.getAnimatedProperties = getAnimatedProperties; exports.getAnimatedValue = getAnimatedValue; exports.getAnimationDuration = getAnimationDuration; exports.getAnimationTrack = getAnimationTrack; exports.getAutoLayout = getAutoLayout; exports.getAutoLayoutGrid = getAutoLayoutGrid; exports.getAutoLayoutInsertTarget = getAutoLayoutInsertTarget; exports.getBindableTokenProperties = getBindableTokenProperties; exports.getBrushedShapeSvg = _chunkG5ADO47Gcjs.getBrushedShapeSvg; exports.getCanvasComponentDragId = getCanvasComponentDragId; exports.getCanvasTokenProperty = getCanvasTokenProperty; exports.getCenteredNodePosition = _chunkEL4PSKFTcjs.getCenteredNodePosition; exports.getChildLayout = getChildLayout; exports.getComponentData = getComponentData; exports.getComponentInstances = getComponentInstances; exports.getComponentPropertyDefs = getComponentPropertyDefs; exports.getComponentPropertyRefs = getComponentPropertyRefs; exports.getComponentSourceId = getComponentSourceId; exports.getCssPropertyAnimations = getCssPropertyAnimations; exports.getCursorTransitionDuration = getCursorTransitionDuration; exports.getDefaultVariant = getDefaultVariant; exports.getEffectiveTokenModes = getEffectiveTokenModes; exports.getFamilyScene = getFamilyScene; exports.getFlowChildren = getFlowChildren; exports.getInstanceData = getInstanceData; exports.getInstanceProperties = getInstanceProperties; exports.getInstanceStatus = getInstanceStatus; exports.getKeyframeTimes = getKeyframeTimes; exports.getLayerName = getLayerName; exports.getLayoutParent = getLayoutParent; exports.getLayoutSizing = getLayoutSizing; exports.getLayoutedNodes = _chunkEL4PSKFTcjs.getLayoutedNodes; exports.getNaturalMovementTiming = getNaturalMovementTiming; exports.getNextVariantValues = getNextVariantValues; exports.getNodeAnimation = getNodeAnimation; exports.getNodeOverrides = getNodeOverrides; exports.getNodeRect = _chunkEL4PSKFTcjs.getNodeRect; exports.getNodeShape = getNodeShape; exports.getNodeSize = _chunkEL4PSKFTcjs.getNodeSize; exports.getNodeTokenBindings = getNodeTokenBindings; exports.getNodeTokenModes = getNodeTokenModes; exports.getOwningComponent = getOwningComponent; exports.getOwningInstance = getOwningInstance; exports.getResizingNodeRect = getResizingNodeRect; exports.getRootInstance = getRootInstance; exports.getShapeRenderData = _chunkNM3G4VQTcjs.getShapeRenderData; exports.getShapeSvg = _chunkNM3G4VQTcjs.getShapeSvg; exports.getTimelineRows = getTimelineRows; exports.getTimelineTicks = getTimelineTicks; exports.getTokenPropertyScope = getTokenPropertyScope; exports.getTokensForProperty = getTokensForProperty; exports.getVariantConflicts = getVariantConflicts; exports.getVariantOptions = getVariantOptions; exports.getVariantSet = getVariantSet; exports.getVariantValues = getVariantValues; exports.gitGraphScene = gitGraphScene; exports.gradientToSvgDef = _chunkNM3G4VQTcjs.gradientToSvgDef; exports.handlePoint = handlePoint; exports.hasFamilyScene = hasFamilyScene; exports.hasVisibleStroke = hasVisibleStroke; exports.hashString = hashString; exports.hatchPath = _chunkYAWLMF3Ocjs.hatchPath; exports.inferResizeHandle = inferResizeHandle; exports.inspectCanvasInstance = inspectCanvasInstance; exports.inspectNodeTokens = inspectNodeTokens; exports.interiorPoint = _chunkYAWLMF3Ocjs.interiorPoint; exports.interpolateAnimationValue = _chunkM5GLQQWGcjs.interpolateAnimationValue; exports.intersectPaths = _chunkGF2RBSDMcjs.intersectPaths; exports.intersectPolygons = _chunkGF2RBSDMcjs.intersectPolygons; exports.invertNodeUpdates = _chunkEL4PSKFTcjs.invertNodeUpdates; exports.isAgentCursor = isAgentCursor; exports.isAnimationEasing = _chunkDWJJI6RTcjs.isAnimationEasing; exports.isAnimationKeyframe = _chunkM5GLQQWGcjs.isAnimationKeyframe; exports.isAutoLayoutFrame = isAutoLayoutFrame; exports.isBrushedShape = _chunkG5ADO47Gcjs.isBrushedShape; exports.isCanvasComponent = isCanvasComponent; exports.isCanvasComponentSet = isCanvasComponentSet; exports.isCanvasGradient = _chunkNM3G4VQTcjs.isCanvasGradient; exports.isCanvasInstance = isCanvasInstance; exports.isCssExportExact = isCssExportExact; exports.isEventFromTextInput = isEventFromTextInput; exports.isInsideInstance = isInsideInstance; exports.isKeyframeSelected = isKeyframeSelected; exports.isLocked = _chunkEL4PSKFTcjs.isLocked; exports.isMeasureModifierHeld = isMeasureModifierHeld; exports.isNodeAnimated = isNodeAnimated; exports.isShapeDescription = _chunkNM3G4VQTcjs.isShapeDescription; exports.isShapeNode = isShapeNode; exports.isStraightCubic = _chunkNM3G4VQTcjs.isStraightCubic; exports.isValidCanvasEdge = isValidCanvasEdge; exports.isValidCanvasNode = isValidCanvasNode; exports.isValidCanvasScene = isValidCanvasScene; exports.isValidUrl = isValidUrl; exports.journeyScene = journeyScene; exports.layoutAll = layoutAll; exports.layoutBounds = layoutBounds; exports.layoutFrame = layoutFrame; exports.layoutUp = layoutUp; exports.layoutUpMany = layoutUpMany; exports.linearPositionTrajectory = linearPositionTrajectory; exports.linearTrajectory = linearTrajectory; exports.listCanvasBrushes = _chunkG5ADO47Gcjs.listCanvasBrushes; exports.listCanvasComponents = listCanvasComponents; exports.loadCanvasBrushstrokeRenderer = _chunkG5ADO47Gcjs.loadCanvasBrushstrokeRenderer; exports.lockNodes = _chunkEL4PSKFTcjs.lockNodes; exports.makeSizingCoherent = makeSizingCoherent; exports.matchArrangeShortcut = _chunkT7QSEKDYcjs.matchArrangeShortcut; exports.matchSize = _chunkEL4PSKFTcjs.matchSize; exports.measureBetween = measureBetween; exports.measureLabel = measureLabel; exports.measureSelection = measureSelection; exports.measureToLine = measureToLine; exports.mergeNodeUpdates = mergeNodeUpdates; exports.mermaidEdgeDash = mermaidEdgeDash; exports.mermaidEdgeMarker = mermaidEdgeMarker; exports.mermaidEdgeWidth = mermaidEdgeWidth; exports.mermaidFlowEdges = mermaidFlowEdges; exports.mermaidFlowNodes = mermaidFlowNodes; exports.mermaidLabelLines = mermaidLabelLines; exports.mermaidMarkerId = mermaidMarkerId; exports.mermaidMovesFromCanvas = mermaidMovesFromCanvas; exports.mermaidNodeMembers = mermaidNodeMembers; exports.mermaidNodePaint = mermaidNodePaint; exports.mermaidShapePaths = mermaidShapePaths; exports.mermaidThumbnailSvg = mermaidThumbnailSvg; exports.mermaidToCanvas = mermaidToCanvas; exports.mermaidToScene = mermaidToScene; exports.mermaidToSvg = mermaidToSvg; exports.mindmapScene = mindmapScene; exports.mixColorsOklab = _chunk4ZC5QJE2cjs.mixColorsOklab; exports.moveKeyframes = moveKeyframes; exports.moveLayoutChild = moveLayoutChild; exports.multiPolygonArea = _chunkGF2RBSDMcjs.multiPolygonArea; exports.multiPolygonBounds = _chunkGF2RBSDMcjs.multiPolygonBounds; exports.nearestHandlePositions = nearestHandlePositions; exports.nodeSizeOf = nodeSizeOf; exports.normalizeBezierPath = _chunkGF2RBSDMcjs.normalizeBezierPath; exports.normalizeKeyframes = _chunkM5GLQQWGcjs.normalizeKeyframes; exports.offsetPath = _chunkGF2RBSDMcjs.offsetPath; exports.offsetShapeNodes = offsetShapeNodes; exports.oklabToRgb = _chunk4ZC5QJE2cjs.oklabToRgb; exports.oppositePosition = oppositePosition; exports.outlineShapeNodeStrokes = outlineShapeNodeStrokes; exports.outlineStroke = _chunkGF2RBSDMcjs.outlineStroke; exports.overlaps = _chunkEL4PSKFTcjs.overlaps; exports.pageHidden = _chunkM5GLQQWGcjs.pageHidden; exports.parseCanvasClipboardData = parseCanvasClipboardData; exports.parseCanvasScenes = parseCanvasScenes; exports.parseCssEasing = _chunkDWJJI6RTcjs.parseCssEasing; exports.parseCssGradient = _chunkNM3G4VQTcjs.parseCssGradient; exports.parseKeyframeClipboard = parseKeyframeClipboard; exports.parseMermaidStyles = parseMermaidStyles; exports.parseNodeStyleDeclarations = parseNodeStyleDeclarations; exports.parseOklab = _chunk4ZC5QJE2cjs.parseOklab; exports.parseSvgPath = _chunkNM3G4VQTcjs.parseSvgPath; exports.parseVariantName = parseVariantName; exports.pasteKeyframes = pasteKeyframes; exports.pathBoolean = _chunkGF2RBSDMcjs.pathBoolean; exports.pathBooleanSelect = _chunkGF2RBSDMcjs.pathBooleanSelect; exports.pathDataToPolyline = _chunkG5ADO47Gcjs.pathDataToPolyline; exports.pathToContours = _chunkGF2RBSDMcjs.pathToContours; exports.pathfinder = _chunkYAWLMF3Ocjs.pathfinder; exports.pieScene = pieScene; exports.placeBeside = _chunkEL4PSKFTcjs.placeBeside; exports.placeInView = _chunkEL4PSKFTcjs.placeInView; exports.planarSplit = _chunkGF2RBSDMcjs.planarSplit; exports.playCanvasSceneTransition = playCanvasSceneTransition; exports.playWebAnimations = playWebAnimations; exports.pointInBezierPath = _chunkGF2RBSDMcjs.pointInBezierPath; exports.pointInMultiPolygon = _chunkGF2RBSDMcjs.pointInMultiPolygon; exports.pointInRings = _chunkGF2RBSDMcjs.pointInRings; exports.pointerPenSample = pointerPenSample; exports.polygonArea = _chunkGF2RBSDMcjs.polygonArea; exports.polygonBoolean = _chunkGF2RBSDMcjs.polygonBoolean; exports.polygonToSvgPath = _chunkNM3G4VQTcjs.polygonToSvgPath; exports.positionToSide = positionToSide; exports.profileAlongPolyline = _chunkG5ADO47Gcjs.profileAlongPolyline; exports.pruneCanvasTokenModes = pruneCanvasTokenModes; exports.pushCanvasInstanceOverrides = pushCanvasInstanceOverrides; exports.quadrantScene = quadrantScene; exports.radarChartSpec = radarChartSpec; exports.radarScene = radarScene; exports.rasterSize = rasterSize; exports.rasterizeSvg = rasterizeSvg; exports.readAnimatableValue = readAnimatableValue; exports.readNodeStyleProperty = readNodeStyleProperty; exports.readOverrideGroup = readOverrideGroup; exports.readStyleSize = _chunkEL4PSKFTcjs.readStyleSize; exports.realClock = _chunkM5GLQQWGcjs.realClock; exports.recordAnimationChanges = recordAnimationChanges; exports.registerFamilyScene = registerFamilyScene; exports.relayoutUpdates = relayoutUpdates; exports.remapPastedNodes = remapPastedNodes; exports.removeCanvasVariant = removeCanvasVariant; exports.removeTrack = removeTrack; exports.renameCanvasVariantProperty = renameCanvasVariantProperty; exports.renameCanvasVariantValue = renameCanvasVariantValue; exports.renderCanvasBrushPreview = _chunkG5ADO47Gcjs.renderCanvasBrushPreview; exports.renderCanvasBrushSwatch = _chunkG5ADO47Gcjs.renderCanvasBrushSwatch; exports.renderShapeBrushstroke = _chunkG5ADO47Gcjs.renderShapeBrushstroke; exports.reorderNodes = _chunkEL4PSKFTcjs.reorderNodes; exports.repositionNodesTo = repositionNodesTo; exports.resetCanvasInstanceOverrides = resetCanvasInstanceOverrides; exports.resizeHandleAxes = resizeHandleAxes; exports.resolveCanvasBrushSpec = _chunkG5ADO47Gcjs.resolveCanvasBrushSpec; exports.resolveCanvasGradient = _chunkNM3G4VQTcjs.resolveCanvasGradient; exports.resolveCanvasTokens = resolveCanvasTokens; exports.resolveEasing = _chunkDWJJI6RTcjs.resolveEasing; exports.resolveMermaidStyles = resolveMermaidStyles; exports.resolvePadding = resolvePadding; exports.restoreCanvasMainComponent = restoreCanvasMainComponent; exports.reverseCubicBezier = _chunkDWJJI6RTcjs.reverseCubicBezier; exports.revertShapeCombination = revertShapeCombination; exports.rgbToOklab = _chunk4ZC5QJE2cjs.rgbToOklab; exports.ringSignedArea = _chunkGF2RBSDMcjs.ringSignedArea; exports.runCanvasNodeEffect = runCanvasNodeEffect; exports.runMultiNodeTransition = runMultiNodeTransition; exports.sampleAnimationFrames = sampleAnimationFrames; exports.scaleKeyframes = scaleKeyframes; exports.sceneColor = sceneColor; exports.segmentBounds = _chunkGF2RBSDMcjs.segmentBounds; exports.segmentCurvature = _chunkGF2RBSDMcjs.segmentCurvature; exports.segmentDerivative = _chunkGF2RBSDMcjs.segmentDerivative; exports.segmentExtrema = _chunkGF2RBSDMcjs.segmentExtrema; exports.segmentIntersections = _chunkGF2RBSDMcjs.segmentIntersections; exports.segmentLength = _chunkGF2RBSDMcjs.segmentLength; exports.segmentNearest = _chunkGF2RBSDMcjs.segmentNearest; exports.segmentParamAtLength = _chunkGF2RBSDMcjs.segmentParamAtLength; exports.segmentPoint = _chunkGF2RBSDMcjs.segmentPoint; exports.segmentTangent = _chunkGF2RBSDMcjs.segmentTangent; exports.sequenceScene = sequenceScene; exports.serializeCanvasNodes = serializeCanvasNodes; exports.setCanvasComponentProperty = setCanvasComponentProperty; exports.setCanvasInstanceProperties = setCanvasInstanceProperties; exports.setCanvasTokenMode = setCanvasTokenMode; exports.setCanvasVariantProperties = setCanvasVariantProperties; exports.setKeyframe = setKeyframe; exports.setKeyframeEasing = setKeyframeEasing; exports.setMotionPath = setMotionPath; exports.setTrackEnabled = setTrackEnabled; exports.shapeNodeToBezierPath = shapeNodeToBezierPath; exports.shapeNodeToPolygon = shapeNodeToPolygon; exports.shapeToBezierPath = shapeToBezierPath; exports.shapeToPolygon = _chunkNM3G4VQTcjs.shapeToPolygon; exports.sideToPosition = sideToPosition; exports.simplifyRing = _chunkNM3G4VQTcjs.simplifyRing; exports.snapKeyframeDelta = snapKeyframeDelta; exports.snapNodeDrag = snapNodeDrag; exports.snapNodeResize = snapNodeResize; exports.snapResize = snapResize; exports.snapTimeToFrame = snapTimeToFrame; exports.snapToGrid = snapToGrid; exports.splitSegment = _chunkGF2RBSDMcjs.splitSegment; exports.springAt = _chunkDWJJI6RTcjs.springAt; exports.springSettleMs = _chunkDWJJI6RTcjs.springSettleMs; exports.stickerCanvasNode = stickerCanvasNode; exports.streamedDiagramText = streamedDiagramText; exports.streamlinePoints = streamlinePoints; exports.strikeGesture = _chunkT7QSEKDYcjs.strikeGesture; exports.strokeBoundingBox = strokeBoundingBox; exports.strokeOutlineRings = _chunkGF2RBSDMcjs.strokeOutlineRings; exports.strokePointsToPathData = strokePointsToPathData; exports.strokeToShapeNode = strokeToShapeNode; exports.subSegment = _chunkGF2RBSDMcjs.subSegment; exports.subtractPaths = _chunkGF2RBSDMcjs.subtractPaths; exports.subtractPolygons = _chunkGF2RBSDMcjs.subtractPolygons; exports.swapCanvasInstance = swapCanvasInstance; exports.syncAllCanvasInstances = syncAllCanvasInstances; exports.syncCanvasComponents = syncCanvasComponents; exports.syncCanvasInstance = syncCanvasInstance; exports.timeToX = timeToX; exports.timelineScene = timelineScene; exports.toBezierPath = _chunkGF2RBSDMcjs.toBezierPath; exports.toWebAnimations = toWebAnimations; exports.toggleLockNodes = _chunkEL4PSKFTcjs.toggleLockNodes; exports.transformBezierPath = _chunkGF2RBSDMcjs.transformBezierPath; exports.transitionCanvasView = transitionCanvasView; exports.trimSegments = _chunkGF2RBSDMcjs.trimSegments; exports.underlineGesture = _chunkT7QSEKDYcjs.underlineGesture; exports.unionPolygons = _chunkGF2RBSDMcjs.unionPolygons; exports.unitePaths = _chunkGF2RBSDMcjs.unitePaths; exports.unlockNodes = _chunkEL4PSKFTcjs.unlockNodes; exports.updateKeyframe = updateKeyframe; exports.validateCanvasBrush = _chunkG5ADO47Gcjs.validateCanvasBrush; exports.validateCanvasBrushPaint = _chunkG5ADO47Gcjs.validateCanvasBrushPaint; exports.windingNumber = _chunkGF2RBSDMcjs.windingNumber; exports.withNodeAnimation = withNodeAnimation; exports.withStyleOpacity = withStyleOpacity; exports.withStyleSize = _chunkEL4PSKFTcjs.withStyleSize; exports.wouldCreateComponentCycle = wouldCreateComponentCycle; exports.wrapAnimationTime = _chunkM5GLQQWGcjs.wrapAnimationTime; exports.writeNodeStyleProperty = writeNodeStyleProperty; exports.writeOverrideGroup = writeOverrideGroup; exports.xToTime = xToTime; exports.xorPolygons = _chunkGF2RBSDMcjs.xorPolygons; exports.xyChartScene = xyChartScene; exports.xyChartSpec = xyChartSpec;
|
package/dist/canvas/index.js
CHANGED
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
resolveCanvasBrushSpec,
|
|
47
47
|
validateCanvasBrush,
|
|
48
48
|
validateCanvasBrushPaint
|
|
49
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-JEML4FSA.js";
|
|
50
50
|
import {
|
|
51
51
|
PATHFINDER_OPERATIONS,
|
|
52
52
|
PlanarMap,
|
|
@@ -12713,7 +12713,7 @@ function stickerCanvasNode(placement, id) {
|
|
|
12713
12713
|
if (!silhouette) throw new StickerError("unsupported_format", `"${placement.ref}" has no outline (silhouette); the canvas places stickers by their outline. Pick one whose describe_sticker lists a silhouette.`);
|
|
12714
12714
|
const fill = placement.colour ?? description.colours?.[0] ?? "#1f2937";
|
|
12715
12715
|
const shape = { kind: "path", d: silhouette, viewBox: [0, 0, description.width, description.height], fillRule: "evenodd", fill };
|
|
12716
|
-
const sticker = { ref: placement.ref, licence: description.licence };
|
|
12716
|
+
const sticker = { ref: placement.ref, licence: description.licence, ...placement.variant === "dark" ? { variant: "dark" } : {} };
|
|
12717
12717
|
return {
|
|
12718
12718
|
id,
|
|
12719
12719
|
type: SHAPE_NODE_TYPE,
|
|
@@ -12737,6 +12737,7 @@ function createCanvasStickerHost(options) {
|
|
|
12737
12737
|
return {
|
|
12738
12738
|
noun: "shape node",
|
|
12739
12739
|
format: "svg",
|
|
12740
|
+
...options.dark ? { dark: options.dark } : {},
|
|
12740
12741
|
defaultCentre: () => {
|
|
12741
12742
|
if (options.defaultCentre) return options.defaultCentre();
|
|
12742
12743
|
const nodes = options.getNodes();
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
* and licence.
|
|
7
7
|
*/
|
|
8
8
|
import type { Command } from '../history/types.cjs';
|
|
9
|
-
import type { StickerLicence, StickerRef } from '../stickers/types.cjs';
|
|
9
|
+
import type { StickerLicence, StickerRef, StickerVariant } from '../stickers/types.cjs';
|
|
10
10
|
import type { StickerInsertHost, StickerPlacement } from '../stickers/tools.cjs';
|
|
11
11
|
import type { CanvasNode } from './types.cjs';
|
|
12
12
|
/** What a sticker node remembers: where it came from. */
|
|
13
13
|
export interface CanvasStickerData {
|
|
14
14
|
ref: StickerRef;
|
|
15
15
|
licence: StickerLicence;
|
|
16
|
+
/** `dark` when it was placed in its dark variant. */
|
|
17
|
+
variant?: StickerVariant;
|
|
16
18
|
}
|
|
17
19
|
export interface CanvasStickerHostOptions<TNode extends CanvasNode = CanvasNode> {
|
|
18
20
|
getNodes: () => TNode[];
|
|
@@ -28,6 +30,8 @@ export interface CanvasStickerHostOptions<TNode extends CanvasNode = CanvasNode>
|
|
|
28
30
|
x: number;
|
|
29
31
|
y: number;
|
|
30
32
|
};
|
|
33
|
+
/** The canvas or theme is dark: stickers that have a dark variant use it. */
|
|
34
|
+
dark?: () => boolean;
|
|
31
35
|
}
|
|
32
36
|
/** The shape node for a placed sticker (top-left at its box), or a refusal naming what is missing. */
|
|
33
37
|
export declare function stickerCanvasNode(placement: StickerPlacement, id: string): CanvasNode;
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
* and licence.
|
|
7
7
|
*/
|
|
8
8
|
import type { Command } from '../history/types.js';
|
|
9
|
-
import type { StickerLicence, StickerRef } from '../stickers/types.js';
|
|
9
|
+
import type { StickerLicence, StickerRef, StickerVariant } from '../stickers/types.js';
|
|
10
10
|
import type { StickerInsertHost, StickerPlacement } from '../stickers/tools.js';
|
|
11
11
|
import type { CanvasNode } from './types.js';
|
|
12
12
|
/** What a sticker node remembers: where it came from. */
|
|
13
13
|
export interface CanvasStickerData {
|
|
14
14
|
ref: StickerRef;
|
|
15
15
|
licence: StickerLicence;
|
|
16
|
+
/** `dark` when it was placed in its dark variant. */
|
|
17
|
+
variant?: StickerVariant;
|
|
16
18
|
}
|
|
17
19
|
export interface CanvasStickerHostOptions<TNode extends CanvasNode = CanvasNode> {
|
|
18
20
|
getNodes: () => TNode[];
|
|
@@ -28,6 +30,8 @@ export interface CanvasStickerHostOptions<TNode extends CanvasNode = CanvasNode>
|
|
|
28
30
|
x: number;
|
|
29
31
|
y: number;
|
|
30
32
|
};
|
|
33
|
+
/** The canvas or theme is dark: stickers that have a dark variant use it. */
|
|
34
|
+
dark?: () => boolean;
|
|
31
35
|
}
|
|
32
36
|
/** The shape node for a placed sticker (top-left at its box), or a refusal naming what is missing. */
|
|
33
37
|
export declare function stickerCanvasNode(placement: StickerPlacement, id: string): CanvasNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
describeStickerRef
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6JL2D5SG.js";
|
|
4
4
|
import {
|
|
5
5
|
BRUSH_HOST_PROFILES,
|
|
6
6
|
BRUSH_JSON_SCHEMA,
|
|
@@ -14,8 +14,9 @@ import {
|
|
|
14
14
|
degrade,
|
|
15
15
|
normalizeBrushSpec,
|
|
16
16
|
resolveCategory,
|
|
17
|
-
resolveEngine
|
|
18
|
-
|
|
17
|
+
resolveEngine,
|
|
18
|
+
withKeptIssues
|
|
19
|
+
} from "./chunk-EE7SAYBF.js";
|
|
19
20
|
|
|
20
21
|
// src/brushes/patch.ts
|
|
21
22
|
var isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
@@ -113,7 +114,7 @@ function createBrushLibraryTools(library, options = {}) {
|
|
|
113
114
|
}
|
|
114
115
|
return { ok: !issues.some((i) => i.severity === "error"), issues };
|
|
115
116
|
};
|
|
116
|
-
const store = async (raw, overwrite) => {
|
|
117
|
+
const store = async (raw, overwrite, original) => {
|
|
117
118
|
const problems = [];
|
|
118
119
|
let brush;
|
|
119
120
|
try {
|
|
@@ -121,7 +122,7 @@ function createBrushLibraryTools(library, options = {}) {
|
|
|
121
122
|
} catch (e) {
|
|
122
123
|
throw new BrushLibraryError("invalid", e.message);
|
|
123
124
|
}
|
|
124
|
-
const check2 = await checkFor(brush, profile);
|
|
125
|
+
const check2 = withKeptIssues(await checkFor(brush, profile), original ? await checkFor(original, profile) : null);
|
|
125
126
|
if (!check2.ok) throw new BrushLibraryError("invalid", refusal(check2, profile));
|
|
126
127
|
const saved = await library.save(brush, { overwrite });
|
|
127
128
|
return { ...saved, problems, check: check2 };
|
|
@@ -265,7 +266,7 @@ function createBrushLibraryTools(library, options = {}) {
|
|
|
265
266
|
{
|
|
266
267
|
name: "update_brush",
|
|
267
268
|
title: "Update a brush",
|
|
268
|
-
description: `Changes a saved brush: the facets given are laid over its own (objects merge, lists and values replace; marks of another kind replace the marks), and unset removes whole facets back to their defaults. Built-in presets are refused (duplicate_brush first). Checked against this host like create_brush
|
|
269
|
+
description: `Changes a saved brush: the facets given are laid over its own (objects merge, lists and values replace; marks of another kind replace the marks), and unset removes whole facets back to their defaults. Built-in presets are refused (duplicate_brush first). Checked against this host like create_brush: a change that adds what this host can't render is refused and saves nothing, while facets the brush already had for other hosts (a paint brush's light, in canvas) are kept as they are. One change. Returns the brush, the leaf paths changed, problems, warnings and, when there are any, kept: the facets this host can't use that the brush keeps.`,
|
|
269
270
|
inputSchema: {
|
|
270
271
|
type: "object",
|
|
271
272
|
properties: {
|
|
@@ -283,8 +284,8 @@ function createBrushLibraryTools(library, options = {}) {
|
|
|
283
284
|
if (e.builtin) throw new BrushLibraryError("builtin", `"${id}" is a built-in brush and can't be changed; duplicate_brush makes a copy you can change.`);
|
|
284
285
|
const base = copy2(e.brush);
|
|
285
286
|
for (const k of unset ?? []) delete base[k];
|
|
286
|
-
const saved = await store(merge(base, { ...patch, id }), true);
|
|
287
|
-
return { id, brush: saved.brush, changed: changedPaths(e.brush, saved.brush), problems: saved.problems, warnings: warnings(saved.check) };
|
|
287
|
+
const saved = await store(merge(base, { ...patch, id }), true, e.brush);
|
|
288
|
+
return { id, brush: saved.brush, changed: changedPaths(e.brush, saved.brush), problems: saved.problems, warnings: warnings(saved.check), ...saved.check.kept.length ? { kept: saved.check.kept } : {} };
|
|
288
289
|
}
|
|
289
290
|
},
|
|
290
291
|
{
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MAX_STICKER_PAGE,
|
|
3
|
+
STICKER_VARIANTS,
|
|
3
4
|
closestStickerRefs,
|
|
4
5
|
parseStickerRef,
|
|
5
6
|
stickerIdFor,
|
|
6
|
-
stickerRefOf
|
|
7
|
-
|
|
7
|
+
stickerRefOf,
|
|
8
|
+
stickerVariantFor,
|
|
9
|
+
stickerVariantsOf
|
|
10
|
+
} from "./chunk-ACFSFUQH.js";
|
|
8
11
|
import {
|
|
9
12
|
StickerError
|
|
10
13
|
} from "./chunk-SZTI6EER.js";
|
|
@@ -41,12 +44,13 @@ function createStickerTools(options) {
|
|
|
41
44
|
const find = {
|
|
42
45
|
name: "find_stickers",
|
|
43
46
|
title: "Find stickers",
|
|
44
|
-
description: "Searches the sticker library (the editor's own stamps unless the host plugged in its own): words in the name, tags, category or description, filtered by category, tags and commercial licence, a small page at a time. Returns each sticker's ref (provider:id, for the tools that spray or place stickers), name, category, tags, natural width and height, formats, whether it is tintable (recoloured to the paint colour) and its
|
|
47
|
+
description: "Searches the sticker library (the editor's own stamps unless the host plugged in its own): words in the name, tags, category or description, filtered by category, collection, tags and commercial licence, a small page at a time. Returns each sticker's ref (provider:id, for the tools that spray or place stickers), name, category, tags, natural width and height, formats, whether it is tintable (recoloured to the paint colour), its licence, aiGenerated when the provider says whether AI made the art, variants (light, and dark when it has art for dark backgrounds) and its collection, plus total and next (pass as after for the next page), the categories and the collections. Changes nothing.",
|
|
45
48
|
inputSchema: {
|
|
46
49
|
type: "object",
|
|
47
50
|
properties: {
|
|
48
51
|
query: { type: "string", maxLength: 200, description: "Words to match (default: list everything)." },
|
|
49
52
|
category: { type: "string", description: "Only this category (the result lists them)." },
|
|
53
|
+
collection: { type: "string", minLength: 1, description: "Only this collection id (the result lists them; default every collection)." },
|
|
50
54
|
tags: { type: "array", maxItems: 10, items: { type: "string", description: "A tag." }, description: "Only stickers with every one of these tags." },
|
|
51
55
|
commercial: { type: "boolean", description: "true: only stickers whose licence allows commercial use." },
|
|
52
56
|
limit: { type: "integer", minimum: 1, maximum: MAX_STICKER_PAGE, description: "Page size (default 24)." },
|
|
@@ -55,23 +59,27 @@ function createStickerTools(options) {
|
|
|
55
59
|
additionalProperties: false
|
|
56
60
|
},
|
|
57
61
|
annotations: { title: "Find stickers", ...READ },
|
|
58
|
-
handler: async ({ query, category, tags, commercial, limit, after }) => {
|
|
62
|
+
handler: async ({ query, category, collection, tags, commercial, limit, after }) => {
|
|
59
63
|
const p = options.provider();
|
|
60
64
|
const categories = await p.categories?.() ?? null;
|
|
61
65
|
if (category !== void 0 && categories && !categories.some((c) => c.id === category)) {
|
|
62
66
|
throw new StickerError("invalid_argument", `No category "${category}" in "${p.name}"; categories: ${categories.map((c) => c.id).join(", ")}.`);
|
|
63
67
|
}
|
|
64
|
-
const
|
|
68
|
+
const collections = await p.listCollections?.() ?? null;
|
|
69
|
+
if (collection !== void 0 && !collections?.some((c) => c.id === collection)) {
|
|
70
|
+
throw new StickerError("invalid_argument", collections?.length ? `No collection "${collection}" in "${p.name}"; collections: ${collections.map((c) => c.id).join(", ")}.` : `"${p.name}" has no collections; leave collection out.`);
|
|
71
|
+
}
|
|
72
|
+
const o = { ...category !== void 0 ? { category } : {}, ...collection !== void 0 ? { collection } : {}, ...tags ? { tags } : {}, ...commercial ? { licence: { commercial: true } } : {}, ...limit !== void 0 ? { limit } : {}, ...after !== void 0 ? { after } : {} };
|
|
65
73
|
const q = typeof query === "string" ? query.trim() : "";
|
|
66
74
|
if (q && !p.capabilities.supportsSearch) throw new StickerError("invalid_argument", `"${p.name}" can't search; leave query out and filter by category instead.`);
|
|
67
75
|
const page = q ? await p.search(q, o) : await p.list(o);
|
|
68
|
-
return { provider: p.id, items: page.items.map((s) => stickerForAgent(p, s)), total: page.total, ...page.next ? { next: page.next } : {}, ...categories ? { categories } : {} };
|
|
76
|
+
return { provider: p.id, items: page.items.map((s) => stickerForAgent(p, s)), total: page.total, ...page.next ? { next: page.next } : {}, ...categories ? { categories } : {}, ...collections?.length ? { collections } : {} };
|
|
69
77
|
}
|
|
70
78
|
};
|
|
71
79
|
const describe = {
|
|
72
80
|
name: "describe_sticker",
|
|
73
81
|
title: "Describe a sticker",
|
|
74
|
-
description: "Everything about one sticker by ref (from find_stickers): name, category, tags, natural size, formats, tintable, licence (with any attribution it asks for), dominant colours
|
|
82
|
+
description: "Everything about one sticker by ref (from find_stickers): name, category, collection, tags, natural size, formats, tintable, licence (with any attribution it asks for), aiGenerated, variants (light / dark), dominant colours and its outline as SVG path data (silhouette). An unknown ref is refused with the closest refs. Changes nothing.",
|
|
75
83
|
inputSchema: { type: "object", properties: { ref: { type: "string", description: "Sticker ref provider:id from find_stickers (e.g. editor:star)." } }, required: ["ref"], additionalProperties: false },
|
|
76
84
|
annotations: { title: "Describe a sticker", ...READ },
|
|
77
85
|
handler: async ({ ref }) => {
|
|
@@ -83,28 +91,31 @@ function createStickerTools(options) {
|
|
|
83
91
|
};
|
|
84
92
|
return options.insert ? [find, describe, createInsertStickerTool(options.provider, options.insert)] : [find, describe];
|
|
85
93
|
}
|
|
86
|
-
async function loadForHost(provider, ref, d, host, colour, size) {
|
|
94
|
+
async function loadForHost(provider, ref, d, host, colour, size, variant) {
|
|
87
95
|
const id = stickerIdFor(provider, ref);
|
|
88
96
|
const format = d.formats.includes(host.format) ? host.format : d.formats[0] ?? host.format;
|
|
89
|
-
return provider.load(id, { format, ...format === "png" ? { size: Math.max(8, Math.min(provider.capabilities.maxSize ?? 1024, Math.round(size))) } : {}, ...colour && d.tintable ? { colour } : {} });
|
|
97
|
+
return provider.load(id, { format, ...format === "png" ? { size: Math.max(8, Math.min(provider.capabilities.maxSize ?? 1024, Math.round(size))) } : {}, ...colour && d.tintable ? { colour } : {}, ...variant !== "light" ? { variant } : {} });
|
|
90
98
|
}
|
|
91
99
|
async function insertSticker(provider, host, options) {
|
|
92
100
|
const d = await describeStickerRef(provider, options.ref);
|
|
101
|
+
const has = stickerVariantsOf(d);
|
|
102
|
+
if (options.variant !== void 0 && !has.includes(options.variant)) throw new StickerError("unsupported_variant", `"${options.ref}" has no ${JSON.stringify(options.variant)} variant; it has ${has.join(", ")}. Leave variant out to pick for the background.`);
|
|
103
|
+
const variant = options.variant ?? stickerVariantFor(d, host.dark?.() ?? false);
|
|
93
104
|
if (options.color !== void 0 && !d.tintable) throw new StickerError("invalid_argument", `"${options.ref}" is not tintable (its art has its own colours); leave color out, or pick a tintable sticker (find_stickers lists tintable).`);
|
|
94
105
|
if (options.width !== void 0 && !(options.width > 0)) throw new StickerError("invalid_argument", `width must be a positive size, got ${options.width}.`);
|
|
95
106
|
const w = options.width ?? d.width;
|
|
96
107
|
const h = w * d.height / d.width;
|
|
97
108
|
const centre = host.defaultCentre();
|
|
98
|
-
const asset = await loadForHost(provider, options.ref, d, host, options.color, Math.max(w, h));
|
|
109
|
+
const asset = await loadForHost(provider, options.ref, d, host, options.color, Math.max(w, h), variant);
|
|
99
110
|
const ref = stickerRefOf(provider, d.id);
|
|
100
|
-
const made = await host.insert({ ref, description: d, asset, x: options.x ?? centre.x, y: options.y ?? centre.y, width: w, height: h, ...options.color ? { colour: options.color.toLowerCase() } : {} });
|
|
101
|
-
return { ...made, ref, width: w, height: h, licence: d.licence };
|
|
111
|
+
const made = await host.insert({ ref, description: d, asset, variant, x: options.x ?? centre.x, y: options.y ?? centre.y, width: w, height: h, ...options.color ? { colour: options.color.toLowerCase() } : {} });
|
|
112
|
+
return { ...made, ref, width: w, height: h, variant, licence: d.licence };
|
|
102
113
|
}
|
|
103
114
|
function createInsertStickerTool(provider, host) {
|
|
104
115
|
return {
|
|
105
116
|
name: "insert_sticker",
|
|
106
117
|
title: "Insert a sticker",
|
|
107
|
-
description: `Puts one sticker from the sticker library (ref from find_stickers) into the document as a new ${host.noun}, centred at x, y and width wide (its natural aspect kept; default its natural size), tinted to color when the sticker is tintable. Its art is loaded first; an unknown ref is refused with the closest ones. One undo step. Returns the new ${host.noun}'s id (for the editor's own tools, such as effects on it), the ref and its licence (credit any attribution it asks for).`,
|
|
118
|
+
description: `Puts one sticker from the sticker library (ref from find_stickers) into the document as a new ${host.noun}, centred at x, y and width wide (its natural aspect kept; default its natural size), tinted to color when the sticker is tintable, in its dark variant when the background is dark and it has one (or the variant asked for). Its art is loaded first; an unknown ref is refused with the closest ones. One undo step. Returns the new ${host.noun}'s id (for the editor's own tools, such as effects on it), the ref, the variant used and its licence (credit any attribution it asks for).`,
|
|
108
119
|
inputSchema: {
|
|
109
120
|
type: "object",
|
|
110
121
|
properties: {
|
|
@@ -112,13 +123,14 @@ function createInsertStickerTool(provider, host) {
|
|
|
112
123
|
x: { type: "number", description: "Centre x in document units (default the middle of the view or document)." },
|
|
113
124
|
y: { type: "number", description: "Centre y in document units (default the middle of the view or document)." },
|
|
114
125
|
width: { type: "number", exclusiveMinimum: 0, maximum: 1e4, description: "Width in document units (default the natural width); the height follows the aspect." },
|
|
115
|
-
color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: "Tint #rrggbb for tintable stickers (default the sticker's own colour); refused for stickers that are not tintable." }
|
|
126
|
+
color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$", description: "Tint #rrggbb for tintable stickers (default the sticker's own colour); refused for stickers that are not tintable." },
|
|
127
|
+
variant: { type: "string", enum: [...STICKER_VARIANTS], description: "light or dark art (default: dark on a dark background when the sticker has it, else light); one the sticker does not list (find_stickers variants) is refused." }
|
|
116
128
|
},
|
|
117
129
|
required: ["ref"],
|
|
118
130
|
additionalProperties: false
|
|
119
131
|
},
|
|
120
132
|
annotations: { title: "Insert a sticker", ...WRITE },
|
|
121
|
-
handler: ({ ref, x, y, width, color }) => insertSticker(provider(), host, { ref, x, y, width, color })
|
|
133
|
+
handler: ({ ref, x, y, width, color, variant }) => insertSticker(provider(), host, { ref, x, y, width, color, variant })
|
|
122
134
|
};
|
|
123
135
|
}
|
|
124
136
|
function createStickerToolProvider(options) {
|
|
@@ -61,6 +61,9 @@ function stampCoverage(kind, u, v, t) {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
// src/stickers/types.ts
|
|
65
|
+
var STICKER_VARIANTS = ["light", "dark"];
|
|
66
|
+
|
|
64
67
|
// src/stickers/helpers.ts
|
|
65
68
|
var DEFAULT_STICKER_PAGE = 24;
|
|
66
69
|
var MAX_STICKER_PAGE = 100;
|
|
@@ -78,6 +81,7 @@ function stickerPage(items, options = {}, query = "") {
|
|
|
78
81
|
const tags = (options.tags ?? []).map((t) => t.toLowerCase());
|
|
79
82
|
const matches = items.filter((s) => {
|
|
80
83
|
if (options.category && s.category !== options.category) return false;
|
|
84
|
+
if (options.collection && s.collection !== options.collection) return false;
|
|
81
85
|
if (tags.length && !tags.every((t) => (s.tags ?? []).some((x) => x.toLowerCase() === t))) return false;
|
|
82
86
|
if (options.licence?.commercial === true && !s.licence.commercial) return false;
|
|
83
87
|
if (!q.length) return true;
|
|
@@ -89,6 +93,28 @@ function stickerPage(items, options = {}, query = "") {
|
|
|
89
93
|
const page = matches.slice(start, start + limit);
|
|
90
94
|
return { items: page, total: matches.length, ...start + limit < matches.length ? { next: String(start + limit) } : {} };
|
|
91
95
|
}
|
|
96
|
+
function stickerVariantsOf(s) {
|
|
97
|
+
return STICKER_VARIANTS.filter((v) => v === "light" || s.variants?.includes(v));
|
|
98
|
+
}
|
|
99
|
+
function checkStickerVariant(s, variant) {
|
|
100
|
+
const v = variant ?? "light";
|
|
101
|
+
const has = stickerVariantsOf(s);
|
|
102
|
+
if (!has.includes(v)) throw new StickerError("unsupported_variant", `Sticker "${s.id}" has no ${JSON.stringify(v)} variant; it has ${has.join(", ")}.`);
|
|
103
|
+
return v;
|
|
104
|
+
}
|
|
105
|
+
function stickerVariantFor(s, dark) {
|
|
106
|
+
return dark && s.variants?.includes("dark") ? "dark" : "light";
|
|
107
|
+
}
|
|
108
|
+
function stickerCollections(items, names = {}) {
|
|
109
|
+
const out = /* @__PURE__ */ new Map();
|
|
110
|
+
for (const s of items) {
|
|
111
|
+
if (!s.collection) continue;
|
|
112
|
+
const c = out.get(s.collection) ?? { id: s.collection, ...names[s.collection] ?? { name: s.collection }, count: 0 };
|
|
113
|
+
c.count++;
|
|
114
|
+
out.set(s.collection, c);
|
|
115
|
+
}
|
|
116
|
+
return [...out.values()];
|
|
117
|
+
}
|
|
92
118
|
function parseStickerRef(ref) {
|
|
93
119
|
if (typeof ref !== "string" || !ref) throw new StickerError("invalid_argument", 'A sticker ref is a "provider:id" string, e.g. "editor:star" (find_stickers lists them).');
|
|
94
120
|
const i = ref.indexOf(":");
|
|
@@ -158,11 +184,16 @@ var StickersSlot = class {
|
|
|
158
184
|
export {
|
|
159
185
|
STAMP_KINDS,
|
|
160
186
|
stampCoverage,
|
|
187
|
+
STICKER_VARIANTS,
|
|
161
188
|
DEFAULT_STICKER_PAGE,
|
|
162
189
|
MAX_STICKER_PAGE,
|
|
163
190
|
EDITOR_STICKERS_ID,
|
|
164
191
|
checkStickerSearchOptions,
|
|
165
192
|
stickerPage,
|
|
193
|
+
stickerVariantsOf,
|
|
194
|
+
checkStickerVariant,
|
|
195
|
+
stickerVariantFor,
|
|
196
|
+
stickerCollections,
|
|
166
197
|
parseStickerRef,
|
|
167
198
|
normalizeStickerRef,
|
|
168
199
|
editorStampOf,
|