@pixerate/editor 0.124.1 → 0.126.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.
Files changed (97) hide show
  1. package/dist/agent/index.cjs +3 -3
  2. package/dist/agent/index.cjs.map +1 -1
  3. package/dist/agent/index.js +3 -3
  4. package/dist/animation-editor/index.cjs +422 -85
  5. package/dist/animation-editor/index.cjs.map +1 -1
  6. package/dist/animation-editor/index.d.cts +174 -7
  7. package/dist/animation-editor/index.d.ts +174 -7
  8. package/dist/animation-editor/index.js +346 -9
  9. package/dist/animation-editor/index.js.map +1 -1
  10. package/dist/{chunk-ORHMVUR6.js → chunk-FICSDDDF.js} +5 -3
  11. package/dist/{chunk-ORHMVUR6.js.map → chunk-FICSDDDF.js.map} +1 -1
  12. package/dist/chunk-FJ3324TZ.js +59 -0
  13. package/dist/chunk-FJ3324TZ.js.map +1 -0
  14. package/dist/{chunk-5EO2IXQE.js → chunk-FPRIUR4T.js} +1 -1
  15. package/dist/chunk-FPRIUR4T.js.map +1 -0
  16. package/dist/{chunk-FHYDQOPC.cjs → chunk-JODTP4DP.cjs} +178 -7
  17. package/dist/chunk-JODTP4DP.cjs.map +1 -0
  18. package/dist/{chunk-NGYD3AMN.js → chunk-MPQAO33O.js} +2 -2
  19. package/dist/{chunk-PEHYWUVV.cjs → chunk-O5RVCDEC.cjs} +82 -82
  20. package/dist/{chunk-PEHYWUVV.cjs.map → chunk-O5RVCDEC.cjs.map} +1 -1
  21. package/dist/{chunk-JRXJTPES.js → chunk-QFSTQHZY.js} +176 -5
  22. package/dist/chunk-QFSTQHZY.js.map +1 -0
  23. package/dist/{chunk-5XXMLBH4.cjs → chunk-QQKTOA4U.cjs} +1 -1
  24. package/dist/chunk-QQKTOA4U.cjs.map +1 -0
  25. package/dist/{chunk-4QQZV5Y5.cjs → chunk-SFCPGMCT.cjs} +11 -9
  26. package/dist/chunk-SFCPGMCT.cjs.map +1 -0
  27. package/dist/{chunk-WE25VLCO.cjs → chunk-V5YGPRCZ.cjs} +36 -36
  28. package/dist/{chunk-WE25VLCO.cjs.map → chunk-V5YGPRCZ.cjs.map} +1 -1
  29. package/dist/chunk-W6QTLHZ3.cjs +59 -0
  30. package/dist/chunk-W6QTLHZ3.cjs.map +1 -0
  31. package/dist/{chunk-WATAQ2Z2.js → chunk-WUDPFWAN.js} +2 -2
  32. package/dist/effects/index.cjs +59 -33
  33. package/dist/effects/index.cjs.map +1 -1
  34. package/dist/effects/index.d.cts +4 -5
  35. package/dist/effects/index.d.ts +4 -5
  36. package/dist/effects/index.js +33 -7
  37. package/dist/effects/index.js.map +1 -1
  38. package/dist/{export-WmYoWmLM.d.cts → export-Bp7ji2r4.d.cts} +1 -2
  39. package/dist/{export-BdfY_lH0.d.ts → export-C1s4eolZ.d.ts} +1 -1
  40. package/dist/{export-BGtXgMJ3.d.ts → export-DAyPY94f.d.ts} +1 -2
  41. package/dist/{export-CbpjwxaI.d.cts → export-DVl4fWy5.d.cts} +1 -1
  42. package/dist/generation/index.cjs +3 -3
  43. package/dist/generation/index.cjs.map +1 -1
  44. package/dist/generation/index.js +3 -3
  45. package/dist/helpers-BBLlekuM.d.ts +2009 -0
  46. package/dist/helpers-i95Ob6Vi.d.cts +2009 -0
  47. package/dist/image-editor/index.cjs +627 -627
  48. package/dist/image-editor/index.cjs.map +1 -1
  49. package/dist/image-editor/index.d.cts +5 -7
  50. package/dist/image-editor/index.d.ts +5 -7
  51. package/dist/image-editor/index.js +13 -13
  52. package/dist/paint-editor/index.cjs +736 -115
  53. package/dist/paint-editor/index.cjs.map +1 -1
  54. package/dist/paint-editor/index.d.cts +248 -13
  55. package/dist/paint-editor/index.d.ts +248 -13
  56. package/dist/paint-editor/index.js +634 -13
  57. package/dist/paint-editor/index.js.map +1 -1
  58. package/dist/{svg-BDrjRnL1.d.cts → svg-BkRL-fZJ.d.cts} +1 -1
  59. package/dist/{svg-C-vZ3q50.d.ts → svg-DJKriJ4A.d.ts} +1 -1
  60. package/dist/tools/index.cjs +2 -2
  61. package/dist/tools/index.cjs.map +1 -1
  62. package/dist/tools/index.js +3 -3
  63. package/dist/{tools-C7JtLYzo.d.ts → tools-CM8Oe8F3.d.ts} +1 -1
  64. package/dist/{tools-DHKGHiSK.d.cts → tools-DZCv2kX1.d.cts} +1 -1
  65. package/dist/vector/index.cjs +1030 -883
  66. package/dist/vector/index.cjs.map +1 -1
  67. package/dist/vector/index.d.cts +61 -6
  68. package/dist/vector/index.d.ts +61 -6
  69. package/dist/vector/index.js +153 -6
  70. package/dist/vector/index.js.map +1 -1
  71. package/dist/video-editor/index.cjs +272 -273
  72. package/dist/video-editor/index.cjs.map +1 -1
  73. package/dist/video-editor/index.d.cts +4 -6
  74. package/dist/video-editor/index.d.ts +4 -6
  75. package/dist/video-editor/index.js +6 -7
  76. package/dist/video-editor/index.js.map +1 -1
  77. package/package.json +1 -1
  78. package/skills/pixerate-animation-editor/SKILL.md +24 -1
  79. package/skills/pixerate-paint-editor/SKILL.md +40 -1
  80. package/skills/pixerate-vector/SKILL.md +15 -0
  81. package/dist/chunk-4QQZV5Y5.cjs.map +0 -1
  82. package/dist/chunk-5EO2IXQE.js.map +0 -1
  83. package/dist/chunk-5XXMLBH4.cjs.map +0 -1
  84. package/dist/chunk-CN4PJHUG.cjs +0 -234
  85. package/dist/chunk-CN4PJHUG.cjs.map +0 -1
  86. package/dist/chunk-FHYDQOPC.cjs.map +0 -1
  87. package/dist/chunk-JRXJTPES.js.map +0 -1
  88. package/dist/chunk-QEG3GRN2.js +0 -234
  89. package/dist/chunk-QEG3GRN2.js.map +0 -1
  90. package/dist/flair-CxB3fOcU.d.ts +0 -739
  91. package/dist/flair-D7BxyBwL.d.cts +0 -739
  92. package/dist/helpers-777mC6dc.d.cts +0 -253
  93. package/dist/helpers-DX2_7L5t.d.ts +0 -253
  94. package/dist/types-BcX7sCsn.d.ts +0 -993
  95. package/dist/types-CznabG7m.d.cts +0 -993
  96. /package/dist/{chunk-NGYD3AMN.js.map → chunk-MPQAO33O.js.map} +0 -0
  97. /package/dist/{chunk-WATAQ2Z2.js.map → chunk-WUDPFWAN.js.map} +0 -0
@@ -1,19 +1,18 @@
1
- import { M as MotionCommand, a as MotionShot, b as MotionScene, c as MotionDirection, d as MotionIrisShape, e as MotionSplitOrientation, f as MotionDriver, g as MotionDrivenProperty, h as MotionRect, i as MotionBeatGrid, j as MotionCue, k as MotionCamera, l as MotionTextUnit, m as MotionCascade, n as MotionBlur, o as MotionControl, p as MotionPreset, q as MotionClip, r as FlairSvgMotion, s as FlairVectorEffect, t as FlairExportOptions, u as FlairMotionExport, v as FlairEffectOptions, w as FlairEffectDocument, x as MotionEnterStyle, y as MotionExitStyle, z as MotionCommandType, A as MotionNarration } from '../flair-D7BxyBwL.cjs';
2
- export { B as FLAIR_EASES, C as FLAIR_EXPORT_VERSION, D as FlairEase, E as FlairEaseName, G as FlairSpringEase, F as FlairSvgAnimation, H as MOTION_BLENDS, I as MOTION_CAMERA_MS, J as MOTION_CASCADES, K as MOTION_CLIP_TARGET, L as MOTION_COMMAND_TYPES, N as MOTION_DEFAULT_DURATIONS, O as MOTION_DEFAULT_HOLD, P as MOTION_DIRECTIONS, Q as MOTION_DRAW_MS_PER_UNIT, R as MOTION_DRAW_RANGE, S as MOTION_DRIVEN_PROPERTIES, T as MOTION_ENTER_STYLES, U as MOTION_EXIT_STYLES, V as MOTION_IRIS_SHAPES, W as MOTION_REPEAT_MODES, X as MOTION_SPLIT_ORIENTATIONS, Y as MOTION_TEXT_UNITS, Z as MOTION_TRIGGERS, _ as MotionColorPulseCommand, $ as MotionCommandBase, a0 as MotionDrawCommand, a1 as MotionDrawOrder, a2 as MotionEffectCommand, a3 as MotionEnterCommand, a4 as MotionExitCommand, a5 as MotionFadeCommand, a6 as MotionFollowCommand, a7 as MotionMatchCommand, a8 as MotionMorphCommand, a9 as MotionMoveCommand, aa as MotionPlayCommand, ab as MotionPulseCommand, ac as MotionRotateCommand, ad as MotionScaleCommand, ae as MotionShakeCommand, af as MotionStyleCommand, ag as MotionTeeterCommand, ah as MotionTrigger, ai as MotionWaitCommand, aj as MotionWaveCommand, ak as MotionWiggleCommand, al as flairAtLeast, am as flairCurveFor, an as flairEaseFor, ao as motionFlairPrimitive, ap as toFlairEffectDocument, aq as toFlairSvgMotion, ar as toFlairVectorEffect } from '../flair-D7BxyBwL.cjs';
1
+ import { a4 as MotionCommand, a5 as MotionShot, a6 as MotionScene, f as VectorNode, i as VectorBounds, a7 as MotionDirection, a8 as MotionIrisShape, a9 as MotionSplitOrientation, aa as MotionDriver, ab as MotionDrivenProperty, ac as MotionRect, ad as MotionBeatGrid, ae as MotionCue, af as MotionCamera, ag as MotionTextUnit, ah as MotionCascade, y as VectorDocument, ai as MotionBlur, aj as MotionControl, ak as MotionPreset, al as MotionClip, am as FlairSvgMotion, an as FlairVectorEffect, C as EffectValue, T as EffectVectorMotion, ao as MotionEffectSource, h as VectorGroupNode, W as EffectsSlot, E as EffectProvider, ap as FlairExportOptions, aq as FlairMotionExport, ar as FlairEffectOptions, as as FlairEffectDocument, at as MotionEnterStyle, au as MotionExitStyle, av as MotionCommandType, aw as MotionNarration } from '../helpers-i95Ob6Vi.cjs';
2
+ export { ax as FLAIR_EASES, ay as FLAIR_EXPORT_VERSION, az as FlairEase, aA as FlairEaseName, aB as FlairSpringEase, aC as FlairSvgAnimation, aD as MOTION_BLENDS, aE as MOTION_CAMERA_MS, aF as MOTION_CASCADES, aG as MOTION_CLIP_TARGET, aH as MOTION_COMMAND_TYPES, aI as MOTION_DEFAULT_DURATIONS, aJ as MOTION_DEFAULT_HOLD, aK as MOTION_DIRECTIONS, aL as MOTION_DRAW_MS_PER_UNIT, aM as MOTION_DRAW_RANGE, aN as MOTION_DRIVEN_PROPERTIES, aO as MOTION_ENTER_STYLES, aP as MOTION_EXIT_STYLES, aQ as MOTION_IRIS_SHAPES, aR as MOTION_REPEAT_MODES, aS as MOTION_SPLIT_ORIENTATIONS, aT as MOTION_TEXT_UNITS, aU as MOTION_TRIGGERS, aV as MotionColorPulseCommand, aW as MotionCommandBase, aX as MotionDrawCommand, aY as MotionDrawOrder, aZ as MotionEffectCommand, a_ as MotionEnterCommand, a$ as MotionExitCommand, b0 as MotionFadeCommand, b1 as MotionFollowCommand, b2 as MotionMatchCommand, b3 as MotionMorphCommand, b4 as MotionMoveCommand, b5 as MotionPlayCommand, b6 as MotionPulseCommand, b7 as MotionRotateCommand, b8 as MotionScaleCommand, b9 as MotionShakeCommand, ba as MotionStyleCommand, bb as MotionTeeterCommand, bc as MotionTrigger, bd as MotionWaitCommand, be as MotionWaveCommand, bf as MotionWiggleCommand, bg as flairAtLeast, bh as flairCurveFor, bi as flairEaseFor, bj as motionFlairPrimitive, bk as toFlairEffectDocument, bl as toFlairSvgMotion, bm as toFlairVectorEffect } from '../helpers-i95Ob6Vi.cjs';
3
3
  import { a as MotionBehavior } from '../behavior-Ymbld6jL.cjs';
4
4
  import { b as AnimationEasing } from '../easing-lM0Xo9Ni.cjs';
5
5
  import { A as AffineMatrix, B as BezierPath } from '../bezier-CBzKKDjl.cjs';
6
- import { f as VectorNode, i as VectorBounds, V as VectorDocument } from '../types-CznabG7m.cjs';
7
- import { V as VectorSvgExportOptions } from '../svg-BDrjRnL1.cjs';
6
+ import { V as VectorSvgExportOptions } from '../svg-BkRL-fZJ.cjs';
8
7
  import { Z as ZipReadOptions } from '../zip-4nG0YAH7.cjs';
9
8
  import { A as AnimationPlayer, C as Clock } from '../player-CBtEoU2x.cjs';
10
9
  import { b as AnimationLoopMode } from '../evaluate-2S3vSPLy.cjs';
11
10
  import { H as HistoryManager } from '../HistoryManager-DeQQMBCj.cjs';
12
11
  import { a as AgentToolProvider } from '../registry-BqA1AZt0.cjs';
13
12
  import { J as JsonSchema } from '../schema-Di0CS6Pe.cjs';
14
- import '../brushTypes-IG7ZZjIN.cjs';
15
13
  import '../gradient-KDfCvhuj.cjs';
16
14
  import '../types-CwMPoRMU.cjs';
15
+ import '../brushTypes-IG7ZZjIN.cjs';
17
16
  import '../types-DsiXGmjo.cjs';
18
17
 
19
18
  /**
@@ -996,6 +995,73 @@ interface PptxAnimationImport {
996
995
  /** A PowerPoint slide's shapes and animation as a scene (see the module notes). */
997
996
  declare function fromPptxAnimation(data: ArrayBuffer | ArrayBufferView, options?: PptxAnimationImportOptions): Promise<PptxAnimationImport>;
998
997
 
998
+ /**
999
+ * Provider effects in the animation editor (see `@pixerate/editor/effects`).
1000
+ *
1001
+ * - A **motion** effect (Flair's motion primitives: `entrance.pop`, `emphasis.wiggle`…) is
1002
+ * applied to nodes of the artwork: the provider animates the artwork's SVG
1003
+ * (`applyVectorEffect` with `nodeIds`), and its changes become ordinary scene commands, so the
1004
+ * preview, onion skins and the Flair export and import work on them as on any command.
1005
+ * - A **vector** effect brings its own picture (a lower third, a loader): its SVG is added to the
1006
+ * artwork as a group, and its changes become shots that animate that group.
1007
+ *
1008
+ * Every command made this way carries `source` (`instance`, `effect`, `values`), so the applied
1009
+ * effect can be listed, changed (made again with new values, in place) or removed as a whole.
1010
+ */
1011
+
1012
+ /** One provider effect applied in a scene. */
1013
+ interface AppliedMotionEffect {
1014
+ instance: string;
1015
+ effect: string;
1016
+ provider?: string;
1017
+ name?: string;
1018
+ values: Record<string, EffectValue>;
1019
+ /** `motion`: animates artwork nodes; `vector`: its own picture, the artwork group `group`. */
1020
+ kind: 'motion' | 'vector';
1021
+ /** The nodes it animates (for `vector`, the group). */
1022
+ targets: string[];
1023
+ /** The shots holding its commands. */
1024
+ shots: string[];
1025
+ group?: string;
1026
+ }
1027
+ /** Every provider effect in a scene, in the order they first appear. */
1028
+ declare function motionSceneEffects(scene: MotionScene): AppliedMotionEffect[];
1029
+ /** A fresh instance id (`fx1`, `fx2`…) not used by an effect, shot or node. */
1030
+ declare function nextMotionEffectInstance(scene: MotionScene): string;
1031
+ /** The artwork as the SVG a provider animates (node ids become element ids). */
1032
+ declare const motionArtworkSvg: (artwork: VectorDocument) => string;
1033
+ /** A provider's motion for the artwork as commands (one run, timed as the provider timed it). */
1034
+ declare function motionCommandsFromEffect(artwork: VectorDocument, motion: Pick<EffectVectorMotion, 'svg' | 'animate'>, source: MotionEffectSource): {
1035
+ commands: MotionCommand[];
1036
+ notes: string[];
1037
+ };
1038
+ /**
1039
+ * A vector effect's own picture and motion: a group (id `source.instance`) holding its SVG,
1040
+ * scaled into `box` of the artwork (default the whole artwork), and the shots that animate it.
1041
+ */
1042
+ declare function motionPartsFromVectorEffect(artwork: VectorDocument, motion: Pick<EffectVectorMotion, 'svg' | 'animate'>, source: MotionEffectSource, box?: {
1043
+ x: number;
1044
+ y: number;
1045
+ width: number;
1046
+ height: number;
1047
+ }): {
1048
+ group: VectorGroupNode;
1049
+ shots: MotionShot[];
1050
+ notes: string[];
1051
+ };
1052
+ /**
1053
+ * The scene without one applied effect: its commands are removed (and shots left empty by that,
1054
+ * and a vector effect's artwork group). Returns where its commands were, to put new ones back.
1055
+ */
1056
+ declare function withoutMotionEffect(scene: MotionScene, instance: string): {
1057
+ scene: MotionScene;
1058
+ place: {
1059
+ shot: string;
1060
+ index: number;
1061
+ } | null;
1062
+ removedShots: string[];
1063
+ };
1064
+
999
1065
  interface AnimationEditorOptions {
1000
1066
  /** The scene to open (default: an empty one over a blank 800 × 450 artwork). */
1001
1067
  scene?: MotionScene;
@@ -1006,7 +1072,22 @@ interface AnimationEditorOptions {
1006
1072
  readOnly?: boolean;
1007
1073
  /** Called after every change to the scene (not on playback or selection). */
1008
1074
  onChange?: (scene: MotionScene) => void;
1075
+ /**
1076
+ * An effects provider (see `@pixerate/editor/effects`) for motion effects on nodes and vector
1077
+ * effects with their own picture. Optional: without one the editor behaves as before, and
1078
+ * scenes keep the commands effects made. Change it later with `setEffectsProvider`.
1079
+ */
1080
+ effects?: EffectProvider | null;
1009
1081
  }
1082
+ /** What the effect edits return. */
1083
+ type MotionEffectResult = {
1084
+ ok: true;
1085
+ effect: AppliedMotionEffect;
1086
+ notes: string[];
1087
+ } | {
1088
+ ok: false;
1089
+ error: string;
1090
+ };
1010
1091
  /** What is selected on the timeline: a shot, and optionally one of its commands. */
1011
1092
  interface AnimationEditorSelection {
1012
1093
  shot: string;
@@ -1037,6 +1118,8 @@ interface AnimationEditorState {
1037
1118
  redoLabel: string;
1038
1119
  /** Bumped on every change. */
1039
1120
  revision: number;
1121
+ /** The registered effects provider, or `null`. */
1122
+ effectsProvider: EffectProvider | null;
1040
1123
  }
1041
1124
  /**
1042
1125
  * Headless editor for a vector animation (a `MotionScene`): undoable, all-or-nothing edits,
@@ -1048,6 +1131,8 @@ interface AnimationEditorState {
1048
1131
  declare class AnimationEditorController {
1049
1132
  readonly history: HistoryManager;
1050
1133
  readonly player: AnimationPlayer;
1134
+ /** The effects provider slot (see `setEffectsProvider`). */
1135
+ readonly effects: EffectsSlot;
1051
1136
  private scene;
1052
1137
  private issues;
1053
1138
  private selection;
@@ -1083,9 +1168,55 @@ declare class AnimationEditorController {
1083
1168
  */
1084
1169
  apply(edits: MotionEdit | readonly MotionEdit[], label?: string, options?: {
1085
1170
  dryRun?: boolean;
1171
+ merge?: string;
1086
1172
  }): MotionEditResult;
1087
1173
  /** Replaces the artwork (e.g. from a vector editor's `onChange`), as one undo step. */
1088
1174
  setArtwork(artwork: VectorDocument, label?: string): MotionEditResult;
1175
+ /** The registered effects provider, or `null`. */
1176
+ get effectsProvider(): EffectProvider | null;
1177
+ /** Registers (or with `null` removes) the effects provider. Not an edit: no undo step. */
1178
+ setEffectsProvider(provider: EffectProvider | null): void;
1179
+ /** Registers `provider` and returns a function that removes it again (if it is still the one set). */
1180
+ useEffects(provider: EffectProvider): () => void;
1181
+ /** The provider effects applied in the scene. */
1182
+ appliedEffects(): AppliedMotionEffect[];
1183
+ private effectEdit;
1184
+ private describeFor;
1185
+ private knownNodes;
1186
+ /**
1187
+ * Applies a provider motion effect to artwork nodes: the provider animates them and the changes
1188
+ * become commands, in a new shot (default) or added to the end of `shot`. One undo step.
1189
+ * Returns the applied effect (its `instance` id changes or removes it).
1190
+ */
1191
+ applyMotionEffect(effect: string, targets: readonly string[], options?: {
1192
+ values?: Record<string, EffectValue>;
1193
+ shot?: string;
1194
+ instance?: string;
1195
+ }): Promise<MotionEffectResult>;
1196
+ /**
1197
+ * Adds a provider vector effect (one with its own picture: a lower third, a loader): its SVG as
1198
+ * an artwork group (id: the instance) fitted into `box` (default the whole artwork), and its
1199
+ * motion as shots after the last one. One undo step.
1200
+ */
1201
+ addVectorEffect(effect: string, options?: {
1202
+ values?: Record<string, EffectValue>;
1203
+ box?: {
1204
+ x: number;
1205
+ y: number;
1206
+ width: number;
1207
+ height: number;
1208
+ };
1209
+ instance?: string;
1210
+ }): Promise<MotionEffectResult>;
1211
+ /**
1212
+ * Makes an applied effect again with new `values` (merged over its own; `null` resets a
1213
+ * control), in the same place. One undo step.
1214
+ */
1215
+ updateMotionEffect(instance: string, values: Record<string, EffectValue | null>, options?: {
1216
+ merge?: string;
1217
+ }): Promise<MotionEffectResult>;
1218
+ /** Removes an applied effect: its commands, shots it alone filled and a vector effect's group. One undo step. Works without a provider. */
1219
+ removeMotionEffect(instance: string): MotionEffectResult;
1089
1220
  /** Opens a scene (JSON or object). `clearHistory` drops the undo stack (opening a file); otherwise it is one undo step. */
1090
1221
  load(scene: MotionScene | string, options?: {
1091
1222
  clearHistory?: boolean;
@@ -1145,7 +1276,7 @@ declare function describeMotionElements(scene: MotionScene): {
1145
1276
  } | undefined;
1146
1277
  effects?: {
1147
1278
  id: string;
1148
- type: "trim" | "twist" | "roundCorners" | "puckerBloat" | "zigzag" | "wiggle" | "offset" | "merge" | "repeater" | "envelope" | "contour" | "blockShadow";
1279
+ type: "trim" | "offset" | "contour" | "twist" | "roundCorners" | "puckerBloat" | "zigzag" | "wiggle" | "merge" | "repeater" | "envelope" | "blockShadow";
1149
1280
  numericParams: {
1150
1281
  [k: string]: unknown;
1151
1282
  };
@@ -1184,6 +1315,7 @@ declare function describeMotionShots(scene: MotionScene): {
1184
1315
  repeat?: number;
1185
1316
  repeatMode?: "loop" | "mirror" | "offset";
1186
1317
  steps?: number;
1318
+ source?: MotionEffectSource;
1187
1319
  order?: "together" | "sequence";
1188
1320
  pace?: "time" | "speed";
1189
1321
  align?: "start" | "end";
@@ -1213,6 +1345,7 @@ declare function describeMotionShots(scene: MotionScene): {
1213
1345
  repeat?: number;
1214
1346
  repeatMode?: "loop" | "mirror" | "offset";
1215
1347
  steps?: number;
1348
+ source?: MotionEffectSource;
1216
1349
  order?: "together" | "sequence";
1217
1350
  pace?: "time" | "speed";
1218
1351
  align?: "start" | "end";
@@ -1242,6 +1375,7 @@ declare function describeMotionShots(scene: MotionScene): {
1242
1375
  repeat?: number;
1243
1376
  repeatMode?: "loop" | "mirror" | "offset";
1244
1377
  steps?: number;
1378
+ source?: MotionEffectSource;
1245
1379
  order?: "together" | "sequence";
1246
1380
  pace?: "time" | "speed";
1247
1381
  align?: "start" | "end";
@@ -1282,6 +1416,7 @@ declare function describeMotionShots(scene: MotionScene): {
1282
1416
  repeat?: number;
1283
1417
  repeatMode?: "loop" | "mirror" | "offset";
1284
1418
  steps?: number;
1419
+ source?: MotionEffectSource;
1285
1420
  index: number;
1286
1421
  } | {
1287
1422
  flairPrimitive?: string | undefined;
@@ -1303,6 +1438,7 @@ declare function describeMotionShots(scene: MotionScene): {
1303
1438
  repeat?: number;
1304
1439
  repeatMode?: "loop" | "mirror" | "offset";
1305
1440
  steps?: number;
1441
+ source?: MotionEffectSource;
1306
1442
  index: number;
1307
1443
  } | {
1308
1444
  flairPrimitive?: string | undefined;
@@ -1327,6 +1463,7 @@ declare function describeMotionShots(scene: MotionScene): {
1327
1463
  repeat?: number;
1328
1464
  repeatMode?: "loop" | "mirror" | "offset";
1329
1465
  steps?: number;
1466
+ source?: MotionEffectSource;
1330
1467
  index: number;
1331
1468
  } | {
1332
1469
  flairPrimitive?: string | undefined;
@@ -1346,6 +1483,7 @@ declare function describeMotionShots(scene: MotionScene): {
1346
1483
  repeat?: number;
1347
1484
  repeatMode?: "loop" | "mirror" | "offset";
1348
1485
  steps?: number;
1486
+ source?: MotionEffectSource;
1349
1487
  index: number;
1350
1488
  } | {
1351
1489
  flairPrimitive?: string | undefined;
@@ -1367,6 +1505,7 @@ declare function describeMotionShots(scene: MotionScene): {
1367
1505
  repeat?: number;
1368
1506
  repeatMode?: "loop" | "mirror" | "offset";
1369
1507
  steps?: number;
1508
+ source?: MotionEffectSource;
1370
1509
  index: number;
1371
1510
  } | {
1372
1511
  flairPrimitive?: string | undefined;
@@ -1386,6 +1525,7 @@ declare function describeMotionShots(scene: MotionScene): {
1386
1525
  repeat?: number;
1387
1526
  repeatMode?: "loop" | "mirror" | "offset";
1388
1527
  steps?: number;
1528
+ source?: MotionEffectSource;
1389
1529
  index: number;
1390
1530
  } | {
1391
1531
  flairPrimitive?: string | undefined;
@@ -1405,6 +1545,7 @@ declare function describeMotionShots(scene: MotionScene): {
1405
1545
  repeat?: number;
1406
1546
  repeatMode?: "loop" | "mirror" | "offset";
1407
1547
  steps?: number;
1548
+ source?: MotionEffectSource;
1408
1549
  index: number;
1409
1550
  } | {
1410
1551
  flairPrimitive?: string | undefined;
@@ -1425,6 +1566,7 @@ declare function describeMotionShots(scene: MotionScene): {
1425
1566
  repeat?: number;
1426
1567
  repeatMode?: "loop" | "mirror" | "offset";
1427
1568
  steps?: number;
1569
+ source?: MotionEffectSource;
1428
1570
  index: number;
1429
1571
  } | {
1430
1572
  flairPrimitive?: string | undefined;
@@ -1447,6 +1589,7 @@ declare function describeMotionShots(scene: MotionScene): {
1447
1589
  repeat?: number;
1448
1590
  repeatMode?: "loop" | "mirror" | "offset";
1449
1591
  steps?: number;
1592
+ source?: MotionEffectSource;
1450
1593
  index: number;
1451
1594
  } | {
1452
1595
  flairPrimitive?: string | undefined;
@@ -1468,6 +1611,7 @@ declare function describeMotionShots(scene: MotionScene): {
1468
1611
  repeat?: number;
1469
1612
  repeatMode?: "loop" | "mirror" | "offset";
1470
1613
  steps?: number;
1614
+ source?: MotionEffectSource;
1471
1615
  index: number;
1472
1616
  } | {
1473
1617
  flairPrimitive?: string | undefined;
@@ -1490,6 +1634,7 @@ declare function describeMotionShots(scene: MotionScene): {
1490
1634
  repeat?: number;
1491
1635
  repeatMode?: "loop" | "mirror" | "offset";
1492
1636
  steps?: number;
1637
+ source?: MotionEffectSource;
1493
1638
  index: number;
1494
1639
  } | {
1495
1640
  flairPrimitive?: string | undefined;
@@ -1511,6 +1656,7 @@ declare function describeMotionShots(scene: MotionScene): {
1511
1656
  repeat?: number;
1512
1657
  repeatMode?: "loop" | "mirror" | "offset";
1513
1658
  steps?: number;
1659
+ source?: MotionEffectSource;
1514
1660
  index: number;
1515
1661
  } | {
1516
1662
  flairPrimitive?: string | undefined;
@@ -1532,6 +1678,7 @@ declare function describeMotionShots(scene: MotionScene): {
1532
1678
  repeat?: number;
1533
1679
  repeatMode?: "loop" | "mirror" | "offset";
1534
1680
  steps?: number;
1681
+ source?: MotionEffectSource;
1535
1682
  index: number;
1536
1683
  } | {
1537
1684
  flairPrimitive?: string | undefined;
@@ -1556,6 +1703,7 @@ declare function describeMotionShots(scene: MotionScene): {
1556
1703
  repeat?: number;
1557
1704
  repeatMode?: "loop" | "mirror" | "offset";
1558
1705
  steps?: number;
1706
+ source?: MotionEffectSource;
1559
1707
  index: number;
1560
1708
  } | {
1561
1709
  flairPrimitive?: string | undefined;
@@ -1577,6 +1725,7 @@ declare function describeMotionShots(scene: MotionScene): {
1577
1725
  repeat?: number;
1578
1726
  repeatMode?: "loop" | "mirror" | "offset";
1579
1727
  steps?: number;
1728
+ source?: MotionEffectSource;
1580
1729
  index: number;
1581
1730
  } | {
1582
1731
  flairPrimitive?: string | undefined;
@@ -1598,6 +1747,7 @@ declare function describeMotionShots(scene: MotionScene): {
1598
1747
  repeat?: number;
1599
1748
  repeatMode?: "loop" | "mirror" | "offset";
1600
1749
  steps?: number;
1750
+ source?: MotionEffectSource;
1601
1751
  index: number;
1602
1752
  } | {
1603
1753
  flairPrimitive?: string | undefined;
@@ -1786,4 +1936,21 @@ declare function parseMotionDrivers(text: string): {
1786
1936
  error: string;
1787
1937
  };
1788
1938
 
1789
- export { ANIMATION_EDITOR_AGENT_INSTRUCTIONS, AnimationEditorController, type AnimationEditorOptions, type AnimationEditorSelection, type AnimationEditorState, type AnimationEditorToolProviderOptions, FlairEffectDocument, FlairEffectOptions, FlairExportOptions, type FlairImportOptions, type FlairImportResult, FlairMotionExport, FlairSvgMotion, FlairVectorEffect, type LottieAnimation, type LottieExport, type LottieExportOptions, type LottieKeyframe, type LottieShape, type LottieValue, MOTION_ADDITIVE_PROPERTIES, MOTION_COMMAND_SCHEMA, MOTION_DRAW_EFFECT_ID, MOTION_EASE_CHOICES, MOTION_EASE_IN_OUT, MOTION_EASE_OUT, MOTION_EDIT_OPS, MOTION_ISSUE_CODES, MOTION_MIN_CHANGE_MS, MOTION_SPEED_RANGE, MOTION_TEXT_STAGGER, MotionBeatGrid, MotionBlur, MotionCamera, MotionCascade, MotionClip, type MotionClipItem, type MotionClipShape, MotionCommand, type MotionCommandTiming, MotionCommandType, type MotionContactSheetOptions, MotionControl, MotionCue, MotionDirection, MotionDrivenProperty, MotionDriver, type MotionEasingCurve, type MotionEdit, type MotionEditOp, type MotionEditOutcome, type MotionEditResult, MotionEnterStyle, MotionExitStyle, type MotionFieldInput, type MotionFieldKind, type MotionFieldSpec, type MotionFit, type MotionFitOptions, type MotionFrame, type MotionFrameOptions, type MotionGhost, MotionIrisShape, type MotionIssue, type MotionIssueCode, type MotionIssueSeverity, type MotionMatch, MotionNarration, type MotionNodeEntry, type MotionOnionSkin, type MotionOverlayOptions, type MotionPath, type MotionPathOptions, MotionPreset, type MotionProperty, MotionRect, type MotionReveal, MotionScene, MotionSceneFormatError, type MotionSegment, MotionShot, type MotionShotTiming, type MotionSmoothLeg, MotionSplitOrientation, type MotionSvgOptions, type MotionTextLayout, MotionTextUnit, type MotionTimeline, type MotionValue, type PptxAnimationImport, type PptxAnimationImportOptions, activeSegment, applyMotionControlValues, applyMotionDrivers, applyMotionEdits, checkMotionScene, clipsShapeProblems, commandShapeProblems, compileMotionScene, createAnimationEditorToolProvider, createMotionScene, defaultMotionCommand, describeMotionElements, describeMotionShots, driversShapeProblems, duplicateMotionCommandEdit, fitMotionRect, fitMotionScene, fitMotionSceneEdits, formatMotionDrivers, formatMotionNarration, freshShotId, fromFlairSvgMotion, fromFlairVectorEffect, fromPptxAnimation, highlightMotionSvg, indexMotionNodes, interpolateMotionValue, isMotionCommand, isMotionShot, matchMotionNodes, motionAddTrackKey, motionBeatAt, motionBeatTime, motionBlurTimes, motionCascade, motionClipAttrs, motionClipLayout, motionCommandDuration, motionCommandFields, motionCommandRepeat, motionCommandRows, motionCommandSlots, motionCommandSummary, motionContactSheetSvg, motionCueChoices, motionCueFromKey, motionCueKey, motionCueTime, motionCycleDuration, motionDrivenNodes, motionDriverSources, motionEaseKey, motionEasingCurve, motionEasingGuides, motionEasingPath, motionFieldEdit, motionFieldLabel, motionFollowRoute, motionFrameAt, motionFrameToSvg, motionGhosts, motionIssue, motionIssueKey, motionIssueLine, motionMovingIds, motionNodeAtElement, motionNodeClips, motionNodeOffset, motionPath, motionPathLength, motionPathsSvg, motionPropertyValue, motionRestValue, motionRevealClip, motionRevealPadding, motionRulerTicks, motionSceneShapeProblems, motionSceneToJson, motionShotAt, motionShotCueTime, motionShotTimeScale, motionStageSvg, motionTextLayout, motionTextUnits, motionTrackKey, namedWithSuggestion, parseMotionDrivers, parseMotionFieldInput, parseMotionNarration, parseMotionScene, resolveMotionCamera, resolveMotionEditRefs, segmentProgress, segmentValue, shotShapeProblems, smoothMotionLegs, smoothMotionTimes, suggestName, toLottie, trackValue, withMotionLayers, withViewBox };
1939
+ /**
1940
+ * Agent tools for provider effects in the animation editor: the shared effect tools on artwork
1941
+ * nodes (`apply_effect` applies a motion effect, made into commands) and `add_vector_effect`
1942
+ * for vector effects that bring their own picture.
1943
+ */
1944
+
1945
+ interface AnimationEffectsToolProviderOptions {
1946
+ /** Provider id (unique per registry). Default `animation-effects`. */
1947
+ id?: string;
1948
+ /** Always prefix tool names with `<namespace>__`. */
1949
+ namespace?: string;
1950
+ /** The scene cannot be edited: write tools are hidden. A string is the reason. */
1951
+ readOnly?: boolean | string | (() => boolean | string);
1952
+ }
1953
+ /** The effect tools for an animation editor (see the module comment). */
1954
+ declare function createAnimationEffectsToolProvider(controller: AnimationEditorController, options?: AnimationEffectsToolProviderOptions): AgentToolProvider;
1955
+
1956
+ export { ANIMATION_EDITOR_AGENT_INSTRUCTIONS, AnimationEditorController, type AnimationEditorOptions, type AnimationEditorSelection, type AnimationEditorState, type AnimationEditorToolProviderOptions, type AnimationEffectsToolProviderOptions, type AppliedMotionEffect, FlairEffectDocument, FlairEffectOptions, FlairExportOptions, type FlairImportOptions, type FlairImportResult, FlairMotionExport, FlairSvgMotion, FlairVectorEffect, type LottieAnimation, type LottieExport, type LottieExportOptions, type LottieKeyframe, type LottieShape, type LottieValue, MOTION_ADDITIVE_PROPERTIES, MOTION_COMMAND_SCHEMA, MOTION_DRAW_EFFECT_ID, MOTION_EASE_CHOICES, MOTION_EASE_IN_OUT, MOTION_EASE_OUT, MOTION_EDIT_OPS, MOTION_ISSUE_CODES, MOTION_MIN_CHANGE_MS, MOTION_SPEED_RANGE, MOTION_TEXT_STAGGER, MotionBeatGrid, MotionBlur, MotionCamera, MotionCascade, MotionClip, type MotionClipItem, type MotionClipShape, MotionCommand, type MotionCommandTiming, MotionCommandType, type MotionContactSheetOptions, MotionControl, MotionCue, MotionDirection, MotionDrivenProperty, MotionDriver, type MotionEasingCurve, type MotionEdit, type MotionEditOp, type MotionEditOutcome, type MotionEditResult, type MotionEffectResult, MotionEffectSource, MotionEnterStyle, MotionExitStyle, type MotionFieldInput, type MotionFieldKind, type MotionFieldSpec, type MotionFit, type MotionFitOptions, type MotionFrame, type MotionFrameOptions, type MotionGhost, MotionIrisShape, type MotionIssue, type MotionIssueCode, type MotionIssueSeverity, type MotionMatch, MotionNarration, type MotionNodeEntry, type MotionOnionSkin, type MotionOverlayOptions, type MotionPath, type MotionPathOptions, MotionPreset, type MotionProperty, MotionRect, type MotionReveal, MotionScene, MotionSceneFormatError, type MotionSegment, MotionShot, type MotionShotTiming, type MotionSmoothLeg, MotionSplitOrientation, type MotionSvgOptions, type MotionTextLayout, MotionTextUnit, type MotionTimeline, type MotionValue, type PptxAnimationImport, type PptxAnimationImportOptions, activeSegment, applyMotionControlValues, applyMotionDrivers, applyMotionEdits, checkMotionScene, clipsShapeProblems, commandShapeProblems, compileMotionScene, createAnimationEditorToolProvider, createAnimationEffectsToolProvider, createMotionScene, defaultMotionCommand, describeMotionElements, describeMotionShots, driversShapeProblems, duplicateMotionCommandEdit, fitMotionRect, fitMotionScene, fitMotionSceneEdits, formatMotionDrivers, formatMotionNarration, freshShotId, fromFlairSvgMotion, fromFlairVectorEffect, fromPptxAnimation, highlightMotionSvg, indexMotionNodes, interpolateMotionValue, isMotionCommand, isMotionShot, matchMotionNodes, motionAddTrackKey, motionArtworkSvg, motionBeatAt, motionBeatTime, motionBlurTimes, motionCascade, motionClipAttrs, motionClipLayout, motionCommandDuration, motionCommandFields, motionCommandRepeat, motionCommandRows, motionCommandSlots, motionCommandSummary, motionCommandsFromEffect, motionContactSheetSvg, motionCueChoices, motionCueFromKey, motionCueKey, motionCueTime, motionCycleDuration, motionDrivenNodes, motionDriverSources, motionEaseKey, motionEasingCurve, motionEasingGuides, motionEasingPath, motionFieldEdit, motionFieldLabel, motionFollowRoute, motionFrameAt, motionFrameToSvg, motionGhosts, motionIssue, motionIssueKey, motionIssueLine, motionMovingIds, motionNodeAtElement, motionNodeClips, motionNodeOffset, motionPartsFromVectorEffect, motionPath, motionPathLength, motionPathsSvg, motionPropertyValue, motionRestValue, motionRevealClip, motionRevealPadding, motionRulerTicks, motionSceneEffects, motionSceneShapeProblems, motionSceneToJson, motionShotAt, motionShotCueTime, motionShotTimeScale, motionStageSvg, motionTextLayout, motionTextUnits, motionTrackKey, namedWithSuggestion, nextMotionEffectInstance, parseMotionDrivers, parseMotionFieldInput, parseMotionNarration, parseMotionScene, resolveMotionCamera, resolveMotionEditRefs, segmentProgress, segmentValue, shotShapeProblems, smoothMotionLegs, smoothMotionTimes, suggestName, toLottie, trackValue, withMotionLayers, withViewBox, withoutMotionEffect };