@pixerate/editor 0.74.0 → 0.76.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/THIRD_PARTY_NOTICES.md +2 -0
- package/dist/agent/index.cjs +28 -28
- package/dist/agent/index.js +3 -3
- package/dist/animation-editor/index.cjs +322 -273
- package/dist/animation-editor/index.cjs.map +1 -1
- package/dist/animation-editor/index.d.cts +96 -3
- package/dist/animation-editor/index.d.ts +96 -3
- package/dist/animation-editor/index.js +138 -89
- package/dist/animation-editor/index.js.map +1 -1
- package/dist/canvas/index.cjs +26 -26
- package/dist/canvas/index.js +2 -2
- package/dist/{chunk-3TLL5OID.js → chunk-4JLB2USO.js} +2 -2
- package/dist/{chunk-YJLCBA7V.cjs → chunk-7MD7C6XQ.cjs} +87 -87
- package/dist/{chunk-YJLCBA7V.cjs.map → chunk-7MD7C6XQ.cjs.map} +1 -1
- package/dist/{chunk-OK7T2LHK.js → chunk-GNO5PEMH.js} +2 -2
- package/dist/{chunk-EIXXBKUB.js → chunk-IMSX4IVG.js} +7 -7
- package/dist/chunk-INZJALPY.js +87 -0
- package/dist/chunk-INZJALPY.js.map +1 -0
- package/dist/{chunk-MLREO6J3.cjs → chunk-JEYDXRWQ.cjs} +46 -46
- package/dist/{chunk-MLREO6J3.cjs.map → chunk-JEYDXRWQ.cjs.map} +1 -1
- package/dist/{chunk-PL3MPFPA.cjs → chunk-MXF4DP2C.cjs} +77 -77
- package/dist/{chunk-PL3MPFPA.cjs.map → chunk-MXF4DP2C.cjs.map} +1 -1
- package/dist/{chunk-T4XWVPJK.cjs → chunk-RKJDBXTY.cjs} +3 -3
- package/dist/{chunk-T4XWVPJK.cjs.map → chunk-RKJDBXTY.cjs.map} +1 -1
- package/dist/{chunk-HNDSPZ5T.cjs → chunk-ROXFP2LQ.cjs} +4 -4
- package/dist/{chunk-HNDSPZ5T.cjs.map → chunk-ROXFP2LQ.cjs.map} +1 -1
- package/dist/{chunk-WON34HKM.js → chunk-SVW2UNUC.js} +2 -2
- package/dist/{chunk-66IMF6OD.cjs → chunk-TYOAJDFD.cjs} +3 -3
- package/dist/{chunk-66IMF6OD.cjs.map → chunk-TYOAJDFD.cjs.map} +1 -1
- package/dist/chunk-WAJQKWQU.cjs +87 -0
- package/dist/chunk-WAJQKWQU.cjs.map +1 -0
- package/dist/{chunk-O2UH7LZE.cjs → chunk-XGD3FSNC.cjs} +239 -239
- package/dist/chunk-XGD3FSNC.cjs.map +1 -0
- package/dist/{chunk-VWZB6BCY.js → chunk-Y3NW4VJE.js} +2 -2
- package/dist/{chunk-GTMJ4Y3S.js → chunk-YCSFS3GK.js} +244 -244
- package/dist/{chunk-GTMJ4Y3S.js.map → chunk-YCSFS3GK.js.map} +1 -1
- package/dist/{chunk-UKI64KUD.js → chunk-ZQNDSUZO.js} +6 -6
- package/dist/extensions/index.cjs +7 -7
- package/dist/extensions/index.cjs.map +1 -1
- package/dist/extensions/index.js +6 -6
- package/dist/index.cjs +35 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +17 -17
- package/dist/serializers/index.cjs +4 -4
- package/dist/serializers/index.cjs.map +1 -1
- package/dist/serializers/index.js +3 -3
- package/dist/vector/index.cjs +532 -532
- package/dist/vector/index.js +3 -3
- package/dist/video-editor/index.cjs +2219 -0
- package/dist/video-editor/index.cjs.map +1 -0
- package/dist/video-editor/index.d.cts +985 -0
- package/dist/video-editor/index.d.ts +985 -0
- package/dist/video-editor/index.js +2219 -0
- package/dist/video-editor/index.js.map +1 -0
- package/package.json +6 -1
- package/dist/chunk-O2UH7LZE.cjs.map +0 -1
- /package/dist/{chunk-3TLL5OID.js.map → chunk-4JLB2USO.js.map} +0 -0
- /package/dist/{chunk-OK7T2LHK.js.map → chunk-GNO5PEMH.js.map} +0 -0
- /package/dist/{chunk-EIXXBKUB.js.map → chunk-IMSX4IVG.js.map} +0 -0
- /package/dist/{chunk-WON34HKM.js.map → chunk-SVW2UNUC.js.map} +0 -0
- /package/dist/{chunk-VWZB6BCY.js.map → chunk-Y3NW4VJE.js.map} +0 -0
- /package/dist/{chunk-UKI64KUD.js.map → chunk-ZQNDSUZO.js.map} +0 -0
|
@@ -144,10 +144,23 @@ interface MotionShot {
|
|
|
144
144
|
*/
|
|
145
145
|
speed?: number;
|
|
146
146
|
}
|
|
147
|
+
/** How `split` splits outlined text. */
|
|
148
|
+
type MotionTextUnit = 'letter' | 'word' | 'line';
|
|
149
|
+
declare const MOTION_TEXT_UNITS: readonly MotionTextUnit[];
|
|
150
|
+
/** The order `split` units animate in. */
|
|
151
|
+
type MotionCascade = 'forward' | 'backward' | 'center' | 'edges' | 'random';
|
|
152
|
+
declare const MOTION_CASCADES: readonly MotionCascade[];
|
|
147
153
|
/** Fields every command takes. */
|
|
148
154
|
interface MotionCommandBase {
|
|
149
|
-
/** Node ids from the artwork (groups animate as one). */
|
|
155
|
+
/** Node ids from the artwork (groups animate as one, unless `split` splits their text). */
|
|
150
156
|
targets: string[];
|
|
157
|
+
/**
|
|
158
|
+
* For outlined text (a group of letter paths): animate it a letter, word or line at a time,
|
|
159
|
+
* staggered in reading order (default stagger 40 ms a letter, 120 a word, 300 a line).
|
|
160
|
+
*/
|
|
161
|
+
split?: MotionTextUnit;
|
|
162
|
+
/** With `split`: the order units go in (default `forward`). `random` is the same every time. */
|
|
163
|
+
cascade?: MotionCascade;
|
|
151
164
|
/** Length in ms for each target, one cycle when repeating (each type has a default; `draw` follows the path length; a spring `ease` lasts until it settles). */
|
|
152
165
|
duration?: number;
|
|
153
166
|
/** Wait this many ms before starting (default 0). */
|
|
@@ -586,6 +599,10 @@ declare const MOTION_ISSUE_CODES: {
|
|
|
586
599
|
readonly severity: "error";
|
|
587
600
|
readonly wording: "Drivers follow each other in a loop, so none of them has a value.";
|
|
588
601
|
};
|
|
602
|
+
readonly 'split-not-text': {
|
|
603
|
+
readonly severity: "warning";
|
|
604
|
+
readonly wording: "A command splits a target into letters, but it is not a group of letter paths, so it animates as a whole.";
|
|
605
|
+
};
|
|
589
606
|
readonly 'unknown-clip': {
|
|
590
607
|
readonly severity: "error";
|
|
591
608
|
readonly wording: "A play command names a clip the scene does not have.";
|
|
@@ -1017,6 +1034,44 @@ declare function smoothMotionTimes(points: readonly {
|
|
|
1017
1034
|
y: number;
|
|
1018
1035
|
}[], start: number, duration: number, pacing?: 'even' | 'equal'): number[];
|
|
1019
1036
|
|
|
1037
|
+
/** Outlined text (a group of letter paths) read as lines of words of letters, in reading order. */
|
|
1038
|
+
interface MotionTextLayout {
|
|
1039
|
+
lines: {
|
|
1040
|
+
words: {
|
|
1041
|
+
letters: string[];
|
|
1042
|
+
}[];
|
|
1043
|
+
}[];
|
|
1044
|
+
}
|
|
1045
|
+
/**
|
|
1046
|
+
* Reads a group of letter paths (text converted to outlines) as text: letters sorted into lines
|
|
1047
|
+
* by their vertical overlap, left to right in each line, and into words where the gap between
|
|
1048
|
+
* two letters is wider than about a third of the line's letter height. Null when `id` is not a
|
|
1049
|
+
* group with paths.
|
|
1050
|
+
*/
|
|
1051
|
+
declare function motionTextLayout(nodes: ReadonlyMap<string, MotionNodeEntry>, id: string): MotionTextLayout | null;
|
|
1052
|
+
/** A layout's units (each a list of letter ids), by letter, word or line. */
|
|
1053
|
+
declare function motionTextUnits(layout: MotionTextLayout, by: MotionTextUnit): string[][];
|
|
1054
|
+
/** Units in cascade order: forward, backward, from the centre out, from the edges in, or a seeded shuffle. */
|
|
1055
|
+
declare function motionCascade<T>(units: readonly T[], cascade?: MotionCascade, seed?: number): T[];
|
|
1056
|
+
/** Default stagger (ms) between units. */
|
|
1057
|
+
declare const MOTION_TEXT_STAGGER: Readonly<Record<MotionTextUnit, number>>;
|
|
1058
|
+
/**
|
|
1059
|
+
* What a command animates, each with its stagger slot: its targets in order, or (with `split`) the
|
|
1060
|
+
* letters of each target's text, a slot per letter, word or line in cascade order.
|
|
1061
|
+
*/
|
|
1062
|
+
declare function motionCommandSlots(nodes: ReadonlyMap<string, MotionNodeEntry>, command: {
|
|
1063
|
+
targets: readonly string[];
|
|
1064
|
+
split?: MotionTextUnit;
|
|
1065
|
+
cascade?: MotionCascade;
|
|
1066
|
+
stagger?: number;
|
|
1067
|
+
}): {
|
|
1068
|
+
slots: {
|
|
1069
|
+
id: string;
|
|
1070
|
+
slot: number;
|
|
1071
|
+
}[];
|
|
1072
|
+
stagger: number;
|
|
1073
|
+
};
|
|
1074
|
+
|
|
1020
1075
|
/**
|
|
1021
1076
|
* A reveal clip (`wipe`, `iris`, `split`) in the units of the node's own box: 0–1 across it,
|
|
1022
1077
|
* as SVG's `clipPathUnits="objectBoundingBox"` and Flair's clip reveals are.
|
|
@@ -1838,6 +1893,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1838
1893
|
shape?: MotionIrisShape;
|
|
1839
1894
|
orientation?: MotionSplitOrientation;
|
|
1840
1895
|
targets: string[];
|
|
1896
|
+
split?: MotionTextUnit;
|
|
1897
|
+
cascade?: MotionCascade;
|
|
1841
1898
|
duration?: number;
|
|
1842
1899
|
delay?: number;
|
|
1843
1900
|
stagger?: number;
|
|
@@ -1865,6 +1922,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1865
1922
|
direction?: MotionDirection;
|
|
1866
1923
|
distance?: number;
|
|
1867
1924
|
targets: string[];
|
|
1925
|
+
split?: MotionTextUnit;
|
|
1926
|
+
cascade?: MotionCascade;
|
|
1868
1927
|
duration?: number;
|
|
1869
1928
|
delay?: number;
|
|
1870
1929
|
stagger?: number;
|
|
@@ -1892,6 +1951,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1892
1951
|
to?: number;
|
|
1893
1952
|
from?: number;
|
|
1894
1953
|
targets: string[];
|
|
1954
|
+
split?: MotionTextUnit;
|
|
1955
|
+
cascade?: MotionCascade;
|
|
1895
1956
|
duration?: number;
|
|
1896
1957
|
delay?: number;
|
|
1897
1958
|
stagger?: number;
|
|
@@ -1930,6 +1991,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1930
1991
|
}[];
|
|
1931
1992
|
pacing?: "even" | "equal";
|
|
1932
1993
|
targets: string[];
|
|
1994
|
+
split?: MotionTextUnit;
|
|
1995
|
+
cascade?: MotionCascade;
|
|
1933
1996
|
duration?: number;
|
|
1934
1997
|
delay?: number;
|
|
1935
1998
|
stagger?: number;
|
|
@@ -1949,6 +2012,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1949
2012
|
by?: number;
|
|
1950
2013
|
to?: number;
|
|
1951
2014
|
targets: string[];
|
|
2015
|
+
split?: MotionTextUnit;
|
|
2016
|
+
cascade?: MotionCascade;
|
|
1952
2017
|
duration?: number;
|
|
1953
2018
|
delay?: number;
|
|
1954
2019
|
stagger?: number;
|
|
@@ -1971,6 +2036,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1971
2036
|
};
|
|
1972
2037
|
geometric?: boolean;
|
|
1973
2038
|
targets: string[];
|
|
2039
|
+
split?: MotionTextUnit;
|
|
2040
|
+
cascade?: MotionCascade;
|
|
1974
2041
|
duration?: number;
|
|
1975
2042
|
delay?: number;
|
|
1976
2043
|
stagger?: number;
|
|
@@ -1988,6 +2055,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1988
2055
|
type: "fade";
|
|
1989
2056
|
to: number;
|
|
1990
2057
|
targets: string[];
|
|
2058
|
+
split?: MotionTextUnit;
|
|
2059
|
+
cascade?: MotionCascade;
|
|
1991
2060
|
duration?: number;
|
|
1992
2061
|
delay?: number;
|
|
1993
2062
|
stagger?: number;
|
|
@@ -2007,6 +2076,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2007
2076
|
stroke?: string;
|
|
2008
2077
|
strokeWidth?: number;
|
|
2009
2078
|
targets: string[];
|
|
2079
|
+
split?: MotionTextUnit;
|
|
2080
|
+
cascade?: MotionCascade;
|
|
2010
2081
|
duration?: number;
|
|
2011
2082
|
delay?: number;
|
|
2012
2083
|
stagger?: number;
|
|
@@ -2024,6 +2095,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2024
2095
|
type: "morph";
|
|
2025
2096
|
into: string;
|
|
2026
2097
|
targets: string[];
|
|
2098
|
+
split?: MotionTextUnit;
|
|
2099
|
+
cascade?: MotionCascade;
|
|
2027
2100
|
duration?: number;
|
|
2028
2101
|
delay?: number;
|
|
2029
2102
|
stagger?: number;
|
|
@@ -2041,6 +2114,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2041
2114
|
type: "match";
|
|
2042
2115
|
into: string;
|
|
2043
2116
|
targets: string[];
|
|
2117
|
+
split?: MotionTextUnit;
|
|
2118
|
+
cascade?: MotionCascade;
|
|
2044
2119
|
duration?: number;
|
|
2045
2120
|
delay?: number;
|
|
2046
2121
|
stagger?: number;
|
|
@@ -2059,6 +2134,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2059
2134
|
clip: string;
|
|
2060
2135
|
speed?: number;
|
|
2061
2136
|
targets: string[];
|
|
2137
|
+
split?: MotionTextUnit;
|
|
2138
|
+
cascade?: MotionCascade;
|
|
2062
2139
|
duration?: number;
|
|
2063
2140
|
delay?: number;
|
|
2064
2141
|
stagger?: number;
|
|
@@ -2079,6 +2156,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2079
2156
|
from?: number;
|
|
2080
2157
|
to?: number;
|
|
2081
2158
|
targets: string[];
|
|
2159
|
+
split?: MotionTextUnit;
|
|
2160
|
+
cascade?: MotionCascade;
|
|
2082
2161
|
duration?: number;
|
|
2083
2162
|
delay?: number;
|
|
2084
2163
|
stagger?: number;
|
|
@@ -2098,6 +2177,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2098
2177
|
amount?: number;
|
|
2099
2178
|
count?: number;
|
|
2100
2179
|
targets: string[];
|
|
2180
|
+
split?: MotionTextUnit;
|
|
2181
|
+
cascade?: MotionCascade;
|
|
2101
2182
|
duration?: number;
|
|
2102
2183
|
delay?: number;
|
|
2103
2184
|
stagger?: number;
|
|
@@ -2118,6 +2199,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2118
2199
|
count?: number;
|
|
2119
2200
|
axis?: "horizontal" | "vertical";
|
|
2120
2201
|
targets: string[];
|
|
2202
|
+
split?: MotionTextUnit;
|
|
2203
|
+
cascade?: MotionCascade;
|
|
2121
2204
|
duration?: number;
|
|
2122
2205
|
delay?: number;
|
|
2123
2206
|
stagger?: number;
|
|
@@ -2137,6 +2220,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2137
2220
|
angle?: number;
|
|
2138
2221
|
count?: number;
|
|
2139
2222
|
targets: string[];
|
|
2223
|
+
split?: MotionTextUnit;
|
|
2224
|
+
cascade?: MotionCascade;
|
|
2140
2225
|
duration?: number;
|
|
2141
2226
|
delay?: number;
|
|
2142
2227
|
stagger?: number;
|
|
@@ -2156,6 +2241,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2156
2241
|
amount?: number;
|
|
2157
2242
|
count?: number;
|
|
2158
2243
|
targets: string[];
|
|
2244
|
+
split?: MotionTextUnit;
|
|
2245
|
+
cascade?: MotionCascade;
|
|
2159
2246
|
duration?: number;
|
|
2160
2247
|
delay?: number;
|
|
2161
2248
|
stagger?: number;
|
|
@@ -2178,6 +2265,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2178
2265
|
rotate?: number;
|
|
2179
2266
|
seed?: number;
|
|
2180
2267
|
targets: string[];
|
|
2268
|
+
split?: MotionTextUnit;
|
|
2269
|
+
cascade?: MotionCascade;
|
|
2181
2270
|
duration?: number;
|
|
2182
2271
|
delay?: number;
|
|
2183
2272
|
stagger?: number;
|
|
@@ -2197,6 +2286,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2197
2286
|
paint?: "fill" | "stroke";
|
|
2198
2287
|
count?: number;
|
|
2199
2288
|
targets: string[];
|
|
2289
|
+
split?: MotionTextUnit;
|
|
2290
|
+
cascade?: MotionCascade;
|
|
2200
2291
|
duration?: number;
|
|
2201
2292
|
delay?: number;
|
|
2202
2293
|
stagger?: number;
|
|
@@ -2216,6 +2307,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2216
2307
|
param: string;
|
|
2217
2308
|
to: number;
|
|
2218
2309
|
targets: string[];
|
|
2310
|
+
split?: MotionTextUnit;
|
|
2311
|
+
cascade?: MotionCascade;
|
|
2219
2312
|
duration?: number;
|
|
2220
2313
|
delay?: number;
|
|
2221
2314
|
stagger?: number;
|
|
@@ -2258,7 +2351,7 @@ declare function createAnimationEditorToolProvider(controller: AnimationEditorCo
|
|
|
2258
2351
|
* A short authoring guide for a model writing vector animations with the animation editor's
|
|
2259
2352
|
* tools. Static, so it caches well as part of a system prompt.
|
|
2260
2353
|
*/
|
|
2261
|
-
declare const ANIMATION_EDITOR_AGENT_INSTRUCTIONS = "You animate vector artwork. A scene is artwork (vector paths and groups, each with an id) plus shots.\n\nHow it plays\n- Shots play in order. A shot optionally moves the camera, plays its commands, then holds (default 600 ms).\n- Commands in a shot play one after another; give \"with\": \"previous\" to start one together with the command before, \"delay\" to wait, \"stagger\" to offset several targets.\n- Timing comes from the content: each command has a default length (enter 600 ms, move 700 ms, draw follows the path length). Only set \"duration\" to change the pace.\n- Anything that enters later is hidden until it enters. Things that never enter are visible from the start.\n- Every frame is a pure function of time: the same scene always plays the same frames.\n\nCommands\n- enter (fade, pop, grow, slide, draw) and exit (fade, shrink, slide, undraw) bring things in and out.\n- enter also reveals through a clip over the target's box: wipe (behind an edge travelling \"direction\", default right), iris (from the centre; \"shape\": circle or box) and split (from a line through the middle; \"orientation\": horizontal or vertical). exit wipe hides the same way. Reveals need a width and a height: use draw / undraw for a straight line.\n- draw draws strokes on to a fraction; move, rotate, scale and fade change the pose (about the centre); style blends solid colours and stroke width.\n- Drawing a group of strokes: \"order\": \"sequence\" draws them one after another (a signature, a diagram), \"sortBy\": \"distance\" from \"origin\" reveals outward, \"pace\": \"speed\" keeps one speed; draw with \"comet\": 0.2 sends a short stroke along a path and off the end.\n- Fast motion reads better with blur: set_animation_settings { \"motionBlur\": { \"shutter\": 180 } } (stage and rendered frames only).\n- Tie properties together with set_animation_drivers: parallax layers, a wheel that turns as it rolls, a shadow that fades as something rises. Drivers add to the target's own commands.\n- Reuse motion: set_animation_clip defines a clip (commands targeting \"$\"), and { \"type\": \"play\", \"clip\": name, \"targets\": [...] } plays it on any nodes (with stagger and speed). copy_animation gives other nodes one node's motion.\n- move takes \"via\" waypoints for a curved, smooth path that passes exactly through each point (steady speed by default); use it instead of chaining moves, which stop at each point.\n- enter also has zoom (settles from larger) and rise (rises a short way, overshooting a touch); pop and zoom take a starting \"scale\".\n- morph turns a shape into another node's shape (keep the target hidden); match does the same for a whole group, part by part (Smart Animate: draw the end state as a second, hidden group whose parts share names with the first); follow moves along a path node (with \"rotate\", moves made meanwhile turn with the path).\n- Emphasis draws the eye and returns to rest: pulse (swell), shake (side to side, or \"axis\": \"vertical\"), teeter (rock), wave (bob, no settling), wiggle (seeded wander; the same seed wanders the same way) and color-pulse (tint and back).\n- Emphasis stacks on other motion: a shake during a slide shakes as it slides. Give move, rotate or scale \"blend\": \"add\" to stack them too (what they add stays); \"blend\": \"replace\" makes a change take over instead.\n- Any command but enter and exit can \"repeat\" (loop, mirror back and forth, or offset to carry on: rotate by 90, repeat 4 is a full turn); \"duration\" is one cycle.\n- Springs (\"spring-gentle\", \"spring-quick\", \"spring-bouncy\", \"spring-slow\" or { \"type\": \"spring\", \u2026 }) feel physical; leave \"duration\" out and the spring sets it.\n- To time shots to music or a voiceover: set a \"beat\" grid or \"narration\" word timings with set_animation_settings, read them with get_timing_grid, and give a shot \"at\": { \"beat\": n } or { \"word\": i }. The shot before holds until the cue; check_animation warns when a cue is missed.\n- \"steps\": 12 (on a command, or for the whole scene with set_animation_settings) holds poses \"on twos\" for a hand-drawn look. \"geometric\": true on scale or a camera zooms at an even rate.\n- Commands share their names and defaults with Flair's motion primitives (get_animation shows each one's \"flairPrimitive\"), and emphasis, reveals and follows export to Flair exactly.\n- effect tweens a numeric parameter of a live path effect already on the node (twist angle, wiggle time, zig zag size).\n\nWorking method\n1. get_animation to learn the element ids (set_animation_artwork_svg first if there is no artwork: give every element you will animate an id; or import_flair_effect / import_pptx_animation to start from a Flair effect or a PowerPoint slide).\n2. Plan a few shots, each one idea. Add them with insert_shots (add_commands, update_command, move_command and delete_commands refine a shot), or edit_animation to make several edits as one step (dry_run first when unsure).\n- In edit_animation, a later op can use what an earlier one made: \"$0.indexes[0]\" (the first command op 1 added), \"$last.shot\".\n3. To hit a length, fit_animation (keep the shots whose pace matters). check_animation and fix every error and warning; render_animation_frame (shot + \"end\") to look at the result, or with \"times\" for a contact sheet of several moments; add onion_skin or motion_paths to see the motion in one picture, or get_motion_path for the numbers.\n- For something the viewer plays (a button, a toggle, a step-by-step explainer), set \"trigger\" with set_animation_settings: click plays the next shot on each click and then starts over (make the last shot put things back for a toggle), hover or press plays and rewinds, scroll scrubs.\n4. To make a reusable Flair effect, set_animation_controls (colour controls stand for every use of their default colour) and export_flair_effect.\n\nKeep motion purposeful: one thing moving at a time reads best, ease-out for arrivals, ease-in for exits, and hold long enough to see each result.";
|
|
2354
|
+
declare const ANIMATION_EDITOR_AGENT_INSTRUCTIONS = "You animate vector artwork. A scene is artwork (vector paths and groups, each with an id) plus shots.\n\nHow it plays\n- Shots play in order. A shot optionally moves the camera, plays its commands, then holds (default 600 ms).\n- Commands in a shot play one after another; give \"with\": \"previous\" to start one together with the command before, \"delay\" to wait, \"stagger\" to offset several targets.\n- Timing comes from the content: each command has a default length (enter 600 ms, move 700 ms, draw follows the path length). Only set \"duration\" to change the pace.\n- Anything that enters later is hidden until it enters. Things that never enter are visible from the start.\n- Every frame is a pure function of time: the same scene always plays the same frames.\n\nCommands\n- enter (fade, pop, grow, slide, draw) and exit (fade, shrink, slide, undraw) bring things in and out.\n- enter also reveals through a clip over the target's box: wipe (behind an edge travelling \"direction\", default right), iris (from the centre; \"shape\": circle or box) and split (from a line through the middle; \"orientation\": horizontal or vertical). exit wipe hides the same way. Reveals need a width and a height: use draw / undraw for a straight line.\n- draw draws strokes on to a fraction; move, rotate, scale and fade change the pose (about the centre); style blends solid colours and stroke width.\n- Text: convert it to outlines (a group with a path per letter) and give a command \"split\": \"letter\", \"word\" or \"line\" (and \"cascade\") to animate it a unit at a time; get_text_layout shows the units.\n- Drawing a group of strokes: \"order\": \"sequence\" draws them one after another (a signature, a diagram), \"sortBy\": \"distance\" from \"origin\" reveals outward, \"pace\": \"speed\" keeps one speed; draw with \"comet\": 0.2 sends a short stroke along a path and off the end.\n- Fast motion reads better with blur: set_animation_settings { \"motionBlur\": { \"shutter\": 180 } } (stage and rendered frames only).\n- Tie properties together with set_animation_drivers: parallax layers, a wheel that turns as it rolls, a shadow that fades as something rises. Drivers add to the target's own commands.\n- Reuse motion: set_animation_clip defines a clip (commands targeting \"$\"), and { \"type\": \"play\", \"clip\": name, \"targets\": [...] } plays it on any nodes (with stagger and speed). copy_animation gives other nodes one node's motion.\n- move takes \"via\" waypoints for a curved, smooth path that passes exactly through each point (steady speed by default); use it instead of chaining moves, which stop at each point.\n- enter also has zoom (settles from larger) and rise (rises a short way, overshooting a touch); pop and zoom take a starting \"scale\".\n- morph turns a shape into another node's shape (keep the target hidden); match does the same for a whole group, part by part (Smart Animate: draw the end state as a second, hidden group whose parts share names with the first); follow moves along a path node (with \"rotate\", moves made meanwhile turn with the path).\n- Emphasis draws the eye and returns to rest: pulse (swell), shake (side to side, or \"axis\": \"vertical\"), teeter (rock), wave (bob, no settling), wiggle (seeded wander; the same seed wanders the same way) and color-pulse (tint and back).\n- Emphasis stacks on other motion: a shake during a slide shakes as it slides. Give move, rotate or scale \"blend\": \"add\" to stack them too (what they add stays); \"blend\": \"replace\" makes a change take over instead.\n- Any command but enter and exit can \"repeat\" (loop, mirror back and forth, or offset to carry on: rotate by 90, repeat 4 is a full turn); \"duration\" is one cycle.\n- Springs (\"spring-gentle\", \"spring-quick\", \"spring-bouncy\", \"spring-slow\" or { \"type\": \"spring\", \u2026 }) feel physical; leave \"duration\" out and the spring sets it.\n- To time shots to music or a voiceover: set a \"beat\" grid or \"narration\" word timings with set_animation_settings, read them with get_timing_grid, and give a shot \"at\": { \"beat\": n } or { \"word\": i }. The shot before holds until the cue; check_animation warns when a cue is missed.\n- \"steps\": 12 (on a command, or for the whole scene with set_animation_settings) holds poses \"on twos\" for a hand-drawn look. \"geometric\": true on scale or a camera zooms at an even rate.\n- Commands share their names and defaults with Flair's motion primitives (get_animation shows each one's \"flairPrimitive\"), and emphasis, reveals and follows export to Flair exactly.\n- effect tweens a numeric parameter of a live path effect already on the node (twist angle, wiggle time, zig zag size).\n\nWorking method\n1. get_animation to learn the element ids (set_animation_artwork_svg first if there is no artwork: give every element you will animate an id; or import_flair_effect / import_pptx_animation to start from a Flair effect or a PowerPoint slide).\n2. Plan a few shots, each one idea. Add them with insert_shots (add_commands, update_command, move_command and delete_commands refine a shot), or edit_animation to make several edits as one step (dry_run first when unsure).\n- In edit_animation, a later op can use what an earlier one made: \"$0.indexes[0]\" (the first command op 1 added), \"$last.shot\".\n3. To hit a length, fit_animation (keep the shots whose pace matters). check_animation and fix every error and warning; render_animation_frame (shot + \"end\") to look at the result, or with \"times\" for a contact sheet of several moments; add onion_skin or motion_paths to see the motion in one picture, or get_motion_path for the numbers.\n- For something the viewer plays (a button, a toggle, a step-by-step explainer), set \"trigger\" with set_animation_settings: click plays the next shot on each click and then starts over (make the last shot put things back for a toggle), hover or press plays and rewinds, scroll scrubs.\n4. To make a reusable Flair effect, set_animation_controls (colour controls stand for every use of their default colour) and export_flair_effect.\n\nKeep motion purposeful: one thing moving at a time reads best, ease-out for arrivals, ease-in for exits, and hold long enough to see each result.";
|
|
2262
2355
|
|
|
2263
2356
|
/**
|
|
2264
2357
|
* Helpers for hand-editing UIs (React's and Svelte's command inspector, ease picker, cue picker,
|
|
@@ -2413,4 +2506,4 @@ declare function parseMotionDrivers(text: string): {
|
|
|
2413
2506
|
error: string;
|
|
2414
2507
|
};
|
|
2415
2508
|
|
|
2416
|
-
export { ANIMATION_EDITOR_AGENT_INSTRUCTIONS, AnimationEditorController, type AnimationEditorOptions, type AnimationEditorSelection, type AnimationEditorState, type AnimationEditorToolProviderOptions, FLAIR_EASES, FLAIR_EXPORT_VERSION, type FlairEase, type FlairEaseName, type FlairEffectDocument, type FlairEffectOptions, type FlairExportOptions, type FlairImportOptions, type FlairImportResult, type FlairMotionExport, type FlairSpringEase, type FlairSvgAnimation, type FlairSvgMotion, type FlairVectorEffect, type LottieAnimation, type LottieExport, type LottieExportOptions, type LottieKeyframe, type LottieShape, type LottieValue, MOTION_ADDITIVE_PROPERTIES, MOTION_BLENDS, MOTION_CAMERA_MS, MOTION_CLIP_TARGET, MOTION_COMMAND_SCHEMA, MOTION_COMMAND_TYPES, MOTION_DEFAULT_DURATIONS, MOTION_DEFAULT_HOLD, MOTION_DIRECTIONS, MOTION_DRAW_EFFECT_ID, MOTION_DRAW_MS_PER_UNIT, MOTION_DRAW_RANGE, MOTION_DRIVEN_PROPERTIES, MOTION_EASE_CHOICES, MOTION_EASE_IN_OUT, MOTION_EASE_OUT, MOTION_EDIT_OPS, MOTION_ENTER_STYLES, MOTION_EXIT_STYLES, MOTION_IRIS_SHAPES, MOTION_ISSUE_CODES, MOTION_MIN_CHANGE_MS, MOTION_REPEAT_MODES, MOTION_SPEED_RANGE, MOTION_SPLIT_ORIENTATIONS, MOTION_TRIGGERS, type MotionBeatGrid, type MotionBlur, type MotionCamera, type MotionClip, type MotionClipItem, type MotionClipShape, type MotionColorPulseCommand, type MotionCommand, type MotionCommandBase, type MotionCommandTiming, type MotionCommandType, type MotionContactSheetOptions, type MotionControl, type MotionCue, type MotionDirection, type MotionDrawCommand, type MotionDrawOrder, type MotionDrivenProperty, type MotionDriver, type MotionEasingCurve, type MotionEdit, type MotionEditOp, type MotionEditOutcome, type MotionEditResult, type MotionEffectCommand, type MotionEnterCommand, type MotionEnterStyle, type MotionExitCommand, type MotionExitStyle, type MotionFadeCommand, type MotionFieldInput, type MotionFieldKind, type MotionFieldSpec, type MotionFit, type MotionFitOptions, type MotionFollowCommand, type MotionFrame, type MotionFrameOptions, type MotionGhost, type MotionIrisShape, type MotionIssue, type MotionIssueCode, type MotionIssueSeverity, type MotionMatch, type MotionMatchCommand, type MotionMorphCommand, type MotionMoveCommand, type MotionNarration, type MotionNodeEntry, type MotionOnionSkin, type MotionOverlayOptions, type MotionPath, type MotionPathOptions, type MotionPlayCommand, type MotionPreset, type MotionProperty, type MotionPulseCommand, type MotionRect, type MotionReveal, type MotionRotateCommand, type MotionScaleCommand, type MotionScene, MotionSceneFormatError, type MotionSegment, type MotionShakeCommand, type MotionShot, type MotionShotTiming, type MotionSmoothLeg, type MotionSplitOrientation, type MotionStyleCommand, type MotionSvgOptions, type MotionTeeterCommand, type MotionTimeline, type MotionTrigger, type MotionValue, type MotionWaitCommand, type MotionWaveCommand, type MotionWiggleCommand, type PptxAnimationImport, type PptxAnimationImportOptions, activeSegment, applyMotionControlValues, applyMotionDrivers, applyMotionEdits, checkMotionScene, clipsShapeProblems, commandShapeProblems, compileMotionScene, createAnimationEditorToolProvider, createMotionScene, defaultMotionCommand, describeMotionElements, describeMotionShots, driversShapeProblems, duplicateMotionCommandEdit, fitMotionRect, fitMotionScene, fitMotionSceneEdits, flairAtLeast, flairCurveFor, flairEaseFor, formatMotionDrivers, formatMotionNarration, freshShotId, fromFlairSvgMotion, fromFlairVectorEffect, fromPptxAnimation, highlightMotionSvg, indexMotionNodes, interpolateMotionValue, isMotionCommand, isMotionShot, matchMotionNodes, motionAddTrackKey, motionBeatAt, motionBeatTime, motionBlurTimes, motionClipAttrs, motionClipLayout, motionCommandDuration, motionCommandFields, motionCommandRepeat, motionCommandRows, motionCommandSummary, motionContactSheetSvg, motionCueChoices, motionCueFromKey, motionCueKey, motionCueTime, motionCycleDuration, motionDrivenNodes, motionDriverSources, motionEaseKey, motionEasingCurve, motionEasingGuides, motionEasingPath, motionFieldEdit, motionFieldLabel, motionFlairPrimitive, 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, motionTrackKey, namedWithSuggestion, parseMotionDrivers, parseMotionFieldInput, parseMotionNarration, parseMotionScene, resolveMotionCamera, resolveMotionEditRefs, segmentProgress, segmentValue, shotShapeProblems, smoothMotionLegs, smoothMotionTimes, suggestName, toFlairEffectDocument, toFlairSvgMotion, toFlairVectorEffect, toLottie, trackValue, withMotionLayers, withViewBox };
|
|
2509
|
+
export { ANIMATION_EDITOR_AGENT_INSTRUCTIONS, AnimationEditorController, type AnimationEditorOptions, type AnimationEditorSelection, type AnimationEditorState, type AnimationEditorToolProviderOptions, FLAIR_EASES, FLAIR_EXPORT_VERSION, type FlairEase, type FlairEaseName, type FlairEffectDocument, type FlairEffectOptions, type FlairExportOptions, type FlairImportOptions, type FlairImportResult, type FlairMotionExport, type FlairSpringEase, type FlairSvgAnimation, type FlairSvgMotion, type FlairVectorEffect, type LottieAnimation, type LottieExport, type LottieExportOptions, type LottieKeyframe, type LottieShape, type LottieValue, MOTION_ADDITIVE_PROPERTIES, MOTION_BLENDS, MOTION_CAMERA_MS, MOTION_CASCADES, MOTION_CLIP_TARGET, MOTION_COMMAND_SCHEMA, MOTION_COMMAND_TYPES, MOTION_DEFAULT_DURATIONS, MOTION_DEFAULT_HOLD, MOTION_DIRECTIONS, MOTION_DRAW_EFFECT_ID, MOTION_DRAW_MS_PER_UNIT, MOTION_DRAW_RANGE, MOTION_DRIVEN_PROPERTIES, MOTION_EASE_CHOICES, MOTION_EASE_IN_OUT, MOTION_EASE_OUT, MOTION_EDIT_OPS, MOTION_ENTER_STYLES, MOTION_EXIT_STYLES, MOTION_IRIS_SHAPES, MOTION_ISSUE_CODES, MOTION_MIN_CHANGE_MS, MOTION_REPEAT_MODES, MOTION_SPEED_RANGE, MOTION_SPLIT_ORIENTATIONS, MOTION_TEXT_STAGGER, MOTION_TEXT_UNITS, MOTION_TRIGGERS, type MotionBeatGrid, type MotionBlur, type MotionCamera, type MotionCascade, type MotionClip, type MotionClipItem, type MotionClipShape, type MotionColorPulseCommand, type MotionCommand, type MotionCommandBase, type MotionCommandTiming, type MotionCommandType, type MotionContactSheetOptions, type MotionControl, type MotionCue, type MotionDirection, type MotionDrawCommand, type MotionDrawOrder, type MotionDrivenProperty, type MotionDriver, type MotionEasingCurve, type MotionEdit, type MotionEditOp, type MotionEditOutcome, type MotionEditResult, type MotionEffectCommand, type MotionEnterCommand, type MotionEnterStyle, type MotionExitCommand, type MotionExitStyle, type MotionFadeCommand, type MotionFieldInput, type MotionFieldKind, type MotionFieldSpec, type MotionFit, type MotionFitOptions, type MotionFollowCommand, type MotionFrame, type MotionFrameOptions, type MotionGhost, type MotionIrisShape, type MotionIssue, type MotionIssueCode, type MotionIssueSeverity, type MotionMatch, type MotionMatchCommand, type MotionMorphCommand, type MotionMoveCommand, type MotionNarration, type MotionNodeEntry, type MotionOnionSkin, type MotionOverlayOptions, type MotionPath, type MotionPathOptions, type MotionPlayCommand, type MotionPreset, type MotionProperty, type MotionPulseCommand, type MotionRect, type MotionReveal, type MotionRotateCommand, type MotionScaleCommand, type MotionScene, MotionSceneFormatError, type MotionSegment, type MotionShakeCommand, type MotionShot, type MotionShotTiming, type MotionSmoothLeg, type MotionSplitOrientation, type MotionStyleCommand, type MotionSvgOptions, type MotionTeeterCommand, type MotionTextLayout, type MotionTextUnit, type MotionTimeline, type MotionTrigger, type MotionValue, type MotionWaitCommand, type MotionWaveCommand, type MotionWiggleCommand, type PptxAnimationImport, type PptxAnimationImportOptions, activeSegment, applyMotionControlValues, applyMotionDrivers, applyMotionEdits, checkMotionScene, clipsShapeProblems, commandShapeProblems, compileMotionScene, createAnimationEditorToolProvider, createMotionScene, defaultMotionCommand, describeMotionElements, describeMotionShots, driversShapeProblems, duplicateMotionCommandEdit, fitMotionRect, fitMotionScene, fitMotionSceneEdits, flairAtLeast, flairCurveFor, flairEaseFor, 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, motionFlairPrimitive, 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, toFlairEffectDocument, toFlairSvgMotion, toFlairVectorEffect, toLottie, trackValue, withMotionLayers, withViewBox };
|
|
@@ -144,10 +144,23 @@ interface MotionShot {
|
|
|
144
144
|
*/
|
|
145
145
|
speed?: number;
|
|
146
146
|
}
|
|
147
|
+
/** How `split` splits outlined text. */
|
|
148
|
+
type MotionTextUnit = 'letter' | 'word' | 'line';
|
|
149
|
+
declare const MOTION_TEXT_UNITS: readonly MotionTextUnit[];
|
|
150
|
+
/** The order `split` units animate in. */
|
|
151
|
+
type MotionCascade = 'forward' | 'backward' | 'center' | 'edges' | 'random';
|
|
152
|
+
declare const MOTION_CASCADES: readonly MotionCascade[];
|
|
147
153
|
/** Fields every command takes. */
|
|
148
154
|
interface MotionCommandBase {
|
|
149
|
-
/** Node ids from the artwork (groups animate as one). */
|
|
155
|
+
/** Node ids from the artwork (groups animate as one, unless `split` splits their text). */
|
|
150
156
|
targets: string[];
|
|
157
|
+
/**
|
|
158
|
+
* For outlined text (a group of letter paths): animate it a letter, word or line at a time,
|
|
159
|
+
* staggered in reading order (default stagger 40 ms a letter, 120 a word, 300 a line).
|
|
160
|
+
*/
|
|
161
|
+
split?: MotionTextUnit;
|
|
162
|
+
/** With `split`: the order units go in (default `forward`). `random` is the same every time. */
|
|
163
|
+
cascade?: MotionCascade;
|
|
151
164
|
/** Length in ms for each target, one cycle when repeating (each type has a default; `draw` follows the path length; a spring `ease` lasts until it settles). */
|
|
152
165
|
duration?: number;
|
|
153
166
|
/** Wait this many ms before starting (default 0). */
|
|
@@ -586,6 +599,10 @@ declare const MOTION_ISSUE_CODES: {
|
|
|
586
599
|
readonly severity: "error";
|
|
587
600
|
readonly wording: "Drivers follow each other in a loop, so none of them has a value.";
|
|
588
601
|
};
|
|
602
|
+
readonly 'split-not-text': {
|
|
603
|
+
readonly severity: "warning";
|
|
604
|
+
readonly wording: "A command splits a target into letters, but it is not a group of letter paths, so it animates as a whole.";
|
|
605
|
+
};
|
|
589
606
|
readonly 'unknown-clip': {
|
|
590
607
|
readonly severity: "error";
|
|
591
608
|
readonly wording: "A play command names a clip the scene does not have.";
|
|
@@ -1017,6 +1034,44 @@ declare function smoothMotionTimes(points: readonly {
|
|
|
1017
1034
|
y: number;
|
|
1018
1035
|
}[], start: number, duration: number, pacing?: 'even' | 'equal'): number[];
|
|
1019
1036
|
|
|
1037
|
+
/** Outlined text (a group of letter paths) read as lines of words of letters, in reading order. */
|
|
1038
|
+
interface MotionTextLayout {
|
|
1039
|
+
lines: {
|
|
1040
|
+
words: {
|
|
1041
|
+
letters: string[];
|
|
1042
|
+
}[];
|
|
1043
|
+
}[];
|
|
1044
|
+
}
|
|
1045
|
+
/**
|
|
1046
|
+
* Reads a group of letter paths (text converted to outlines) as text: letters sorted into lines
|
|
1047
|
+
* by their vertical overlap, left to right in each line, and into words where the gap between
|
|
1048
|
+
* two letters is wider than about a third of the line's letter height. Null when `id` is not a
|
|
1049
|
+
* group with paths.
|
|
1050
|
+
*/
|
|
1051
|
+
declare function motionTextLayout(nodes: ReadonlyMap<string, MotionNodeEntry>, id: string): MotionTextLayout | null;
|
|
1052
|
+
/** A layout's units (each a list of letter ids), by letter, word or line. */
|
|
1053
|
+
declare function motionTextUnits(layout: MotionTextLayout, by: MotionTextUnit): string[][];
|
|
1054
|
+
/** Units in cascade order: forward, backward, from the centre out, from the edges in, or a seeded shuffle. */
|
|
1055
|
+
declare function motionCascade<T>(units: readonly T[], cascade?: MotionCascade, seed?: number): T[];
|
|
1056
|
+
/** Default stagger (ms) between units. */
|
|
1057
|
+
declare const MOTION_TEXT_STAGGER: Readonly<Record<MotionTextUnit, number>>;
|
|
1058
|
+
/**
|
|
1059
|
+
* What a command animates, each with its stagger slot: its targets in order, or (with `split`) the
|
|
1060
|
+
* letters of each target's text, a slot per letter, word or line in cascade order.
|
|
1061
|
+
*/
|
|
1062
|
+
declare function motionCommandSlots(nodes: ReadonlyMap<string, MotionNodeEntry>, command: {
|
|
1063
|
+
targets: readonly string[];
|
|
1064
|
+
split?: MotionTextUnit;
|
|
1065
|
+
cascade?: MotionCascade;
|
|
1066
|
+
stagger?: number;
|
|
1067
|
+
}): {
|
|
1068
|
+
slots: {
|
|
1069
|
+
id: string;
|
|
1070
|
+
slot: number;
|
|
1071
|
+
}[];
|
|
1072
|
+
stagger: number;
|
|
1073
|
+
};
|
|
1074
|
+
|
|
1020
1075
|
/**
|
|
1021
1076
|
* A reveal clip (`wipe`, `iris`, `split`) in the units of the node's own box: 0–1 across it,
|
|
1022
1077
|
* as SVG's `clipPathUnits="objectBoundingBox"` and Flair's clip reveals are.
|
|
@@ -1838,6 +1893,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1838
1893
|
shape?: MotionIrisShape;
|
|
1839
1894
|
orientation?: MotionSplitOrientation;
|
|
1840
1895
|
targets: string[];
|
|
1896
|
+
split?: MotionTextUnit;
|
|
1897
|
+
cascade?: MotionCascade;
|
|
1841
1898
|
duration?: number;
|
|
1842
1899
|
delay?: number;
|
|
1843
1900
|
stagger?: number;
|
|
@@ -1865,6 +1922,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1865
1922
|
direction?: MotionDirection;
|
|
1866
1923
|
distance?: number;
|
|
1867
1924
|
targets: string[];
|
|
1925
|
+
split?: MotionTextUnit;
|
|
1926
|
+
cascade?: MotionCascade;
|
|
1868
1927
|
duration?: number;
|
|
1869
1928
|
delay?: number;
|
|
1870
1929
|
stagger?: number;
|
|
@@ -1892,6 +1951,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1892
1951
|
to?: number;
|
|
1893
1952
|
from?: number;
|
|
1894
1953
|
targets: string[];
|
|
1954
|
+
split?: MotionTextUnit;
|
|
1955
|
+
cascade?: MotionCascade;
|
|
1895
1956
|
duration?: number;
|
|
1896
1957
|
delay?: number;
|
|
1897
1958
|
stagger?: number;
|
|
@@ -1930,6 +1991,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1930
1991
|
}[];
|
|
1931
1992
|
pacing?: "even" | "equal";
|
|
1932
1993
|
targets: string[];
|
|
1994
|
+
split?: MotionTextUnit;
|
|
1995
|
+
cascade?: MotionCascade;
|
|
1933
1996
|
duration?: number;
|
|
1934
1997
|
delay?: number;
|
|
1935
1998
|
stagger?: number;
|
|
@@ -1949,6 +2012,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1949
2012
|
by?: number;
|
|
1950
2013
|
to?: number;
|
|
1951
2014
|
targets: string[];
|
|
2015
|
+
split?: MotionTextUnit;
|
|
2016
|
+
cascade?: MotionCascade;
|
|
1952
2017
|
duration?: number;
|
|
1953
2018
|
delay?: number;
|
|
1954
2019
|
stagger?: number;
|
|
@@ -1971,6 +2036,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1971
2036
|
};
|
|
1972
2037
|
geometric?: boolean;
|
|
1973
2038
|
targets: string[];
|
|
2039
|
+
split?: MotionTextUnit;
|
|
2040
|
+
cascade?: MotionCascade;
|
|
1974
2041
|
duration?: number;
|
|
1975
2042
|
delay?: number;
|
|
1976
2043
|
stagger?: number;
|
|
@@ -1988,6 +2055,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
1988
2055
|
type: "fade";
|
|
1989
2056
|
to: number;
|
|
1990
2057
|
targets: string[];
|
|
2058
|
+
split?: MotionTextUnit;
|
|
2059
|
+
cascade?: MotionCascade;
|
|
1991
2060
|
duration?: number;
|
|
1992
2061
|
delay?: number;
|
|
1993
2062
|
stagger?: number;
|
|
@@ -2007,6 +2076,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2007
2076
|
stroke?: string;
|
|
2008
2077
|
strokeWidth?: number;
|
|
2009
2078
|
targets: string[];
|
|
2079
|
+
split?: MotionTextUnit;
|
|
2080
|
+
cascade?: MotionCascade;
|
|
2010
2081
|
duration?: number;
|
|
2011
2082
|
delay?: number;
|
|
2012
2083
|
stagger?: number;
|
|
@@ -2024,6 +2095,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2024
2095
|
type: "morph";
|
|
2025
2096
|
into: string;
|
|
2026
2097
|
targets: string[];
|
|
2098
|
+
split?: MotionTextUnit;
|
|
2099
|
+
cascade?: MotionCascade;
|
|
2027
2100
|
duration?: number;
|
|
2028
2101
|
delay?: number;
|
|
2029
2102
|
stagger?: number;
|
|
@@ -2041,6 +2114,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2041
2114
|
type: "match";
|
|
2042
2115
|
into: string;
|
|
2043
2116
|
targets: string[];
|
|
2117
|
+
split?: MotionTextUnit;
|
|
2118
|
+
cascade?: MotionCascade;
|
|
2044
2119
|
duration?: number;
|
|
2045
2120
|
delay?: number;
|
|
2046
2121
|
stagger?: number;
|
|
@@ -2059,6 +2134,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2059
2134
|
clip: string;
|
|
2060
2135
|
speed?: number;
|
|
2061
2136
|
targets: string[];
|
|
2137
|
+
split?: MotionTextUnit;
|
|
2138
|
+
cascade?: MotionCascade;
|
|
2062
2139
|
duration?: number;
|
|
2063
2140
|
delay?: number;
|
|
2064
2141
|
stagger?: number;
|
|
@@ -2079,6 +2156,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2079
2156
|
from?: number;
|
|
2080
2157
|
to?: number;
|
|
2081
2158
|
targets: string[];
|
|
2159
|
+
split?: MotionTextUnit;
|
|
2160
|
+
cascade?: MotionCascade;
|
|
2082
2161
|
duration?: number;
|
|
2083
2162
|
delay?: number;
|
|
2084
2163
|
stagger?: number;
|
|
@@ -2098,6 +2177,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2098
2177
|
amount?: number;
|
|
2099
2178
|
count?: number;
|
|
2100
2179
|
targets: string[];
|
|
2180
|
+
split?: MotionTextUnit;
|
|
2181
|
+
cascade?: MotionCascade;
|
|
2101
2182
|
duration?: number;
|
|
2102
2183
|
delay?: number;
|
|
2103
2184
|
stagger?: number;
|
|
@@ -2118,6 +2199,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2118
2199
|
count?: number;
|
|
2119
2200
|
axis?: "horizontal" | "vertical";
|
|
2120
2201
|
targets: string[];
|
|
2202
|
+
split?: MotionTextUnit;
|
|
2203
|
+
cascade?: MotionCascade;
|
|
2121
2204
|
duration?: number;
|
|
2122
2205
|
delay?: number;
|
|
2123
2206
|
stagger?: number;
|
|
@@ -2137,6 +2220,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2137
2220
|
angle?: number;
|
|
2138
2221
|
count?: number;
|
|
2139
2222
|
targets: string[];
|
|
2223
|
+
split?: MotionTextUnit;
|
|
2224
|
+
cascade?: MotionCascade;
|
|
2140
2225
|
duration?: number;
|
|
2141
2226
|
delay?: number;
|
|
2142
2227
|
stagger?: number;
|
|
@@ -2156,6 +2241,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2156
2241
|
amount?: number;
|
|
2157
2242
|
count?: number;
|
|
2158
2243
|
targets: string[];
|
|
2244
|
+
split?: MotionTextUnit;
|
|
2245
|
+
cascade?: MotionCascade;
|
|
2159
2246
|
duration?: number;
|
|
2160
2247
|
delay?: number;
|
|
2161
2248
|
stagger?: number;
|
|
@@ -2178,6 +2265,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2178
2265
|
rotate?: number;
|
|
2179
2266
|
seed?: number;
|
|
2180
2267
|
targets: string[];
|
|
2268
|
+
split?: MotionTextUnit;
|
|
2269
|
+
cascade?: MotionCascade;
|
|
2181
2270
|
duration?: number;
|
|
2182
2271
|
delay?: number;
|
|
2183
2272
|
stagger?: number;
|
|
@@ -2197,6 +2286,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2197
2286
|
paint?: "fill" | "stroke";
|
|
2198
2287
|
count?: number;
|
|
2199
2288
|
targets: string[];
|
|
2289
|
+
split?: MotionTextUnit;
|
|
2290
|
+
cascade?: MotionCascade;
|
|
2200
2291
|
duration?: number;
|
|
2201
2292
|
delay?: number;
|
|
2202
2293
|
stagger?: number;
|
|
@@ -2216,6 +2307,8 @@ declare function describeMotionShots(scene: MotionScene): {
|
|
|
2216
2307
|
param: string;
|
|
2217
2308
|
to: number;
|
|
2218
2309
|
targets: string[];
|
|
2310
|
+
split?: MotionTextUnit;
|
|
2311
|
+
cascade?: MotionCascade;
|
|
2219
2312
|
duration?: number;
|
|
2220
2313
|
delay?: number;
|
|
2221
2314
|
stagger?: number;
|
|
@@ -2258,7 +2351,7 @@ declare function createAnimationEditorToolProvider(controller: AnimationEditorCo
|
|
|
2258
2351
|
* A short authoring guide for a model writing vector animations with the animation editor's
|
|
2259
2352
|
* tools. Static, so it caches well as part of a system prompt.
|
|
2260
2353
|
*/
|
|
2261
|
-
declare const ANIMATION_EDITOR_AGENT_INSTRUCTIONS = "You animate vector artwork. A scene is artwork (vector paths and groups, each with an id) plus shots.\n\nHow it plays\n- Shots play in order. A shot optionally moves the camera, plays its commands, then holds (default 600 ms).\n- Commands in a shot play one after another; give \"with\": \"previous\" to start one together with the command before, \"delay\" to wait, \"stagger\" to offset several targets.\n- Timing comes from the content: each command has a default length (enter 600 ms, move 700 ms, draw follows the path length). Only set \"duration\" to change the pace.\n- Anything that enters later is hidden until it enters. Things that never enter are visible from the start.\n- Every frame is a pure function of time: the same scene always plays the same frames.\n\nCommands\n- enter (fade, pop, grow, slide, draw) and exit (fade, shrink, slide, undraw) bring things in and out.\n- enter also reveals through a clip over the target's box: wipe (behind an edge travelling \"direction\", default right), iris (from the centre; \"shape\": circle or box) and split (from a line through the middle; \"orientation\": horizontal or vertical). exit wipe hides the same way. Reveals need a width and a height: use draw / undraw for a straight line.\n- draw draws strokes on to a fraction; move, rotate, scale and fade change the pose (about the centre); style blends solid colours and stroke width.\n- Drawing a group of strokes: \"order\": \"sequence\" draws them one after another (a signature, a diagram), \"sortBy\": \"distance\" from \"origin\" reveals outward, \"pace\": \"speed\" keeps one speed; draw with \"comet\": 0.2 sends a short stroke along a path and off the end.\n- Fast motion reads better with blur: set_animation_settings { \"motionBlur\": { \"shutter\": 180 } } (stage and rendered frames only).\n- Tie properties together with set_animation_drivers: parallax layers, a wheel that turns as it rolls, a shadow that fades as something rises. Drivers add to the target's own commands.\n- Reuse motion: set_animation_clip defines a clip (commands targeting \"$\"), and { \"type\": \"play\", \"clip\": name, \"targets\": [...] } plays it on any nodes (with stagger and speed). copy_animation gives other nodes one node's motion.\n- move takes \"via\" waypoints for a curved, smooth path that passes exactly through each point (steady speed by default); use it instead of chaining moves, which stop at each point.\n- enter also has zoom (settles from larger) and rise (rises a short way, overshooting a touch); pop and zoom take a starting \"scale\".\n- morph turns a shape into another node's shape (keep the target hidden); match does the same for a whole group, part by part (Smart Animate: draw the end state as a second, hidden group whose parts share names with the first); follow moves along a path node (with \"rotate\", moves made meanwhile turn with the path).\n- Emphasis draws the eye and returns to rest: pulse (swell), shake (side to side, or \"axis\": \"vertical\"), teeter (rock), wave (bob, no settling), wiggle (seeded wander; the same seed wanders the same way) and color-pulse (tint and back).\n- Emphasis stacks on other motion: a shake during a slide shakes as it slides. Give move, rotate or scale \"blend\": \"add\" to stack them too (what they add stays); \"blend\": \"replace\" makes a change take over instead.\n- Any command but enter and exit can \"repeat\" (loop, mirror back and forth, or offset to carry on: rotate by 90, repeat 4 is a full turn); \"duration\" is one cycle.\n- Springs (\"spring-gentle\", \"spring-quick\", \"spring-bouncy\", \"spring-slow\" or { \"type\": \"spring\", \u2026 }) feel physical; leave \"duration\" out and the spring sets it.\n- To time shots to music or a voiceover: set a \"beat\" grid or \"narration\" word timings with set_animation_settings, read them with get_timing_grid, and give a shot \"at\": { \"beat\": n } or { \"word\": i }. The shot before holds until the cue; check_animation warns when a cue is missed.\n- \"steps\": 12 (on a command, or for the whole scene with set_animation_settings) holds poses \"on twos\" for a hand-drawn look. \"geometric\": true on scale or a camera zooms at an even rate.\n- Commands share their names and defaults with Flair's motion primitives (get_animation shows each one's \"flairPrimitive\"), and emphasis, reveals and follows export to Flair exactly.\n- effect tweens a numeric parameter of a live path effect already on the node (twist angle, wiggle time, zig zag size).\n\nWorking method\n1. get_animation to learn the element ids (set_animation_artwork_svg first if there is no artwork: give every element you will animate an id; or import_flair_effect / import_pptx_animation to start from a Flair effect or a PowerPoint slide).\n2. Plan a few shots, each one idea. Add them with insert_shots (add_commands, update_command, move_command and delete_commands refine a shot), or edit_animation to make several edits as one step (dry_run first when unsure).\n- In edit_animation, a later op can use what an earlier one made: \"$0.indexes[0]\" (the first command op 1 added), \"$last.shot\".\n3. To hit a length, fit_animation (keep the shots whose pace matters). check_animation and fix every error and warning; render_animation_frame (shot + \"end\") to look at the result, or with \"times\" for a contact sheet of several moments; add onion_skin or motion_paths to see the motion in one picture, or get_motion_path for the numbers.\n- For something the viewer plays (a button, a toggle, a step-by-step explainer), set \"trigger\" with set_animation_settings: click plays the next shot on each click and then starts over (make the last shot put things back for a toggle), hover or press plays and rewinds, scroll scrubs.\n4. To make a reusable Flair effect, set_animation_controls (colour controls stand for every use of their default colour) and export_flair_effect.\n\nKeep motion purposeful: one thing moving at a time reads best, ease-out for arrivals, ease-in for exits, and hold long enough to see each result.";
|
|
2354
|
+
declare const ANIMATION_EDITOR_AGENT_INSTRUCTIONS = "You animate vector artwork. A scene is artwork (vector paths and groups, each with an id) plus shots.\n\nHow it plays\n- Shots play in order. A shot optionally moves the camera, plays its commands, then holds (default 600 ms).\n- Commands in a shot play one after another; give \"with\": \"previous\" to start one together with the command before, \"delay\" to wait, \"stagger\" to offset several targets.\n- Timing comes from the content: each command has a default length (enter 600 ms, move 700 ms, draw follows the path length). Only set \"duration\" to change the pace.\n- Anything that enters later is hidden until it enters. Things that never enter are visible from the start.\n- Every frame is a pure function of time: the same scene always plays the same frames.\n\nCommands\n- enter (fade, pop, grow, slide, draw) and exit (fade, shrink, slide, undraw) bring things in and out.\n- enter also reveals through a clip over the target's box: wipe (behind an edge travelling \"direction\", default right), iris (from the centre; \"shape\": circle or box) and split (from a line through the middle; \"orientation\": horizontal or vertical). exit wipe hides the same way. Reveals need a width and a height: use draw / undraw for a straight line.\n- draw draws strokes on to a fraction; move, rotate, scale and fade change the pose (about the centre); style blends solid colours and stroke width.\n- Text: convert it to outlines (a group with a path per letter) and give a command \"split\": \"letter\", \"word\" or \"line\" (and \"cascade\") to animate it a unit at a time; get_text_layout shows the units.\n- Drawing a group of strokes: \"order\": \"sequence\" draws them one after another (a signature, a diagram), \"sortBy\": \"distance\" from \"origin\" reveals outward, \"pace\": \"speed\" keeps one speed; draw with \"comet\": 0.2 sends a short stroke along a path and off the end.\n- Fast motion reads better with blur: set_animation_settings { \"motionBlur\": { \"shutter\": 180 } } (stage and rendered frames only).\n- Tie properties together with set_animation_drivers: parallax layers, a wheel that turns as it rolls, a shadow that fades as something rises. Drivers add to the target's own commands.\n- Reuse motion: set_animation_clip defines a clip (commands targeting \"$\"), and { \"type\": \"play\", \"clip\": name, \"targets\": [...] } plays it on any nodes (with stagger and speed). copy_animation gives other nodes one node's motion.\n- move takes \"via\" waypoints for a curved, smooth path that passes exactly through each point (steady speed by default); use it instead of chaining moves, which stop at each point.\n- enter also has zoom (settles from larger) and rise (rises a short way, overshooting a touch); pop and zoom take a starting \"scale\".\n- morph turns a shape into another node's shape (keep the target hidden); match does the same for a whole group, part by part (Smart Animate: draw the end state as a second, hidden group whose parts share names with the first); follow moves along a path node (with \"rotate\", moves made meanwhile turn with the path).\n- Emphasis draws the eye and returns to rest: pulse (swell), shake (side to side, or \"axis\": \"vertical\"), teeter (rock), wave (bob, no settling), wiggle (seeded wander; the same seed wanders the same way) and color-pulse (tint and back).\n- Emphasis stacks on other motion: a shake during a slide shakes as it slides. Give move, rotate or scale \"blend\": \"add\" to stack them too (what they add stays); \"blend\": \"replace\" makes a change take over instead.\n- Any command but enter and exit can \"repeat\" (loop, mirror back and forth, or offset to carry on: rotate by 90, repeat 4 is a full turn); \"duration\" is one cycle.\n- Springs (\"spring-gentle\", \"spring-quick\", \"spring-bouncy\", \"spring-slow\" or { \"type\": \"spring\", \u2026 }) feel physical; leave \"duration\" out and the spring sets it.\n- To time shots to music or a voiceover: set a \"beat\" grid or \"narration\" word timings with set_animation_settings, read them with get_timing_grid, and give a shot \"at\": { \"beat\": n } or { \"word\": i }. The shot before holds until the cue; check_animation warns when a cue is missed.\n- \"steps\": 12 (on a command, or for the whole scene with set_animation_settings) holds poses \"on twos\" for a hand-drawn look. \"geometric\": true on scale or a camera zooms at an even rate.\n- Commands share their names and defaults with Flair's motion primitives (get_animation shows each one's \"flairPrimitive\"), and emphasis, reveals and follows export to Flair exactly.\n- effect tweens a numeric parameter of a live path effect already on the node (twist angle, wiggle time, zig zag size).\n\nWorking method\n1. get_animation to learn the element ids (set_animation_artwork_svg first if there is no artwork: give every element you will animate an id; or import_flair_effect / import_pptx_animation to start from a Flair effect or a PowerPoint slide).\n2. Plan a few shots, each one idea. Add them with insert_shots (add_commands, update_command, move_command and delete_commands refine a shot), or edit_animation to make several edits as one step (dry_run first when unsure).\n- In edit_animation, a later op can use what an earlier one made: \"$0.indexes[0]\" (the first command op 1 added), \"$last.shot\".\n3. To hit a length, fit_animation (keep the shots whose pace matters). check_animation and fix every error and warning; render_animation_frame (shot + \"end\") to look at the result, or with \"times\" for a contact sheet of several moments; add onion_skin or motion_paths to see the motion in one picture, or get_motion_path for the numbers.\n- For something the viewer plays (a button, a toggle, a step-by-step explainer), set \"trigger\" with set_animation_settings: click plays the next shot on each click and then starts over (make the last shot put things back for a toggle), hover or press plays and rewinds, scroll scrubs.\n4. To make a reusable Flair effect, set_animation_controls (colour controls stand for every use of their default colour) and export_flair_effect.\n\nKeep motion purposeful: one thing moving at a time reads best, ease-out for arrivals, ease-in for exits, and hold long enough to see each result.";
|
|
2262
2355
|
|
|
2263
2356
|
/**
|
|
2264
2357
|
* Helpers for hand-editing UIs (React's and Svelte's command inspector, ease picker, cue picker,
|
|
@@ -2413,4 +2506,4 @@ declare function parseMotionDrivers(text: string): {
|
|
|
2413
2506
|
error: string;
|
|
2414
2507
|
};
|
|
2415
2508
|
|
|
2416
|
-
export { ANIMATION_EDITOR_AGENT_INSTRUCTIONS, AnimationEditorController, type AnimationEditorOptions, type AnimationEditorSelection, type AnimationEditorState, type AnimationEditorToolProviderOptions, FLAIR_EASES, FLAIR_EXPORT_VERSION, type FlairEase, type FlairEaseName, type FlairEffectDocument, type FlairEffectOptions, type FlairExportOptions, type FlairImportOptions, type FlairImportResult, type FlairMotionExport, type FlairSpringEase, type FlairSvgAnimation, type FlairSvgMotion, type FlairVectorEffect, type LottieAnimation, type LottieExport, type LottieExportOptions, type LottieKeyframe, type LottieShape, type LottieValue, MOTION_ADDITIVE_PROPERTIES, MOTION_BLENDS, MOTION_CAMERA_MS, MOTION_CLIP_TARGET, MOTION_COMMAND_SCHEMA, MOTION_COMMAND_TYPES, MOTION_DEFAULT_DURATIONS, MOTION_DEFAULT_HOLD, MOTION_DIRECTIONS, MOTION_DRAW_EFFECT_ID, MOTION_DRAW_MS_PER_UNIT, MOTION_DRAW_RANGE, MOTION_DRIVEN_PROPERTIES, MOTION_EASE_CHOICES, MOTION_EASE_IN_OUT, MOTION_EASE_OUT, MOTION_EDIT_OPS, MOTION_ENTER_STYLES, MOTION_EXIT_STYLES, MOTION_IRIS_SHAPES, MOTION_ISSUE_CODES, MOTION_MIN_CHANGE_MS, MOTION_REPEAT_MODES, MOTION_SPEED_RANGE, MOTION_SPLIT_ORIENTATIONS, MOTION_TRIGGERS, type MotionBeatGrid, type MotionBlur, type MotionCamera, type MotionClip, type MotionClipItem, type MotionClipShape, type MotionColorPulseCommand, type MotionCommand, type MotionCommandBase, type MotionCommandTiming, type MotionCommandType, type MotionContactSheetOptions, type MotionControl, type MotionCue, type MotionDirection, type MotionDrawCommand, type MotionDrawOrder, type MotionDrivenProperty, type MotionDriver, type MotionEasingCurve, type MotionEdit, type MotionEditOp, type MotionEditOutcome, type MotionEditResult, type MotionEffectCommand, type MotionEnterCommand, type MotionEnterStyle, type MotionExitCommand, type MotionExitStyle, type MotionFadeCommand, type MotionFieldInput, type MotionFieldKind, type MotionFieldSpec, type MotionFit, type MotionFitOptions, type MotionFollowCommand, type MotionFrame, type MotionFrameOptions, type MotionGhost, type MotionIrisShape, type MotionIssue, type MotionIssueCode, type MotionIssueSeverity, type MotionMatch, type MotionMatchCommand, type MotionMorphCommand, type MotionMoveCommand, type MotionNarration, type MotionNodeEntry, type MotionOnionSkin, type MotionOverlayOptions, type MotionPath, type MotionPathOptions, type MotionPlayCommand, type MotionPreset, type MotionProperty, type MotionPulseCommand, type MotionRect, type MotionReveal, type MotionRotateCommand, type MotionScaleCommand, type MotionScene, MotionSceneFormatError, type MotionSegment, type MotionShakeCommand, type MotionShot, type MotionShotTiming, type MotionSmoothLeg, type MotionSplitOrientation, type MotionStyleCommand, type MotionSvgOptions, type MotionTeeterCommand, type MotionTimeline, type MotionTrigger, type MotionValue, type MotionWaitCommand, type MotionWaveCommand, type MotionWiggleCommand, type PptxAnimationImport, type PptxAnimationImportOptions, activeSegment, applyMotionControlValues, applyMotionDrivers, applyMotionEdits, checkMotionScene, clipsShapeProblems, commandShapeProblems, compileMotionScene, createAnimationEditorToolProvider, createMotionScene, defaultMotionCommand, describeMotionElements, describeMotionShots, driversShapeProblems, duplicateMotionCommandEdit, fitMotionRect, fitMotionScene, fitMotionSceneEdits, flairAtLeast, flairCurveFor, flairEaseFor, formatMotionDrivers, formatMotionNarration, freshShotId, fromFlairSvgMotion, fromFlairVectorEffect, fromPptxAnimation, highlightMotionSvg, indexMotionNodes, interpolateMotionValue, isMotionCommand, isMotionShot, matchMotionNodes, motionAddTrackKey, motionBeatAt, motionBeatTime, motionBlurTimes, motionClipAttrs, motionClipLayout, motionCommandDuration, motionCommandFields, motionCommandRepeat, motionCommandRows, motionCommandSummary, motionContactSheetSvg, motionCueChoices, motionCueFromKey, motionCueKey, motionCueTime, motionCycleDuration, motionDrivenNodes, motionDriverSources, motionEaseKey, motionEasingCurve, motionEasingGuides, motionEasingPath, motionFieldEdit, motionFieldLabel, motionFlairPrimitive, 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, motionTrackKey, namedWithSuggestion, parseMotionDrivers, parseMotionFieldInput, parseMotionNarration, parseMotionScene, resolveMotionCamera, resolveMotionEditRefs, segmentProgress, segmentValue, shotShapeProblems, smoothMotionLegs, smoothMotionTimes, suggestName, toFlairEffectDocument, toFlairSvgMotion, toFlairVectorEffect, toLottie, trackValue, withMotionLayers, withViewBox };
|
|
2509
|
+
export { ANIMATION_EDITOR_AGENT_INSTRUCTIONS, AnimationEditorController, type AnimationEditorOptions, type AnimationEditorSelection, type AnimationEditorState, type AnimationEditorToolProviderOptions, FLAIR_EASES, FLAIR_EXPORT_VERSION, type FlairEase, type FlairEaseName, type FlairEffectDocument, type FlairEffectOptions, type FlairExportOptions, type FlairImportOptions, type FlairImportResult, type FlairMotionExport, type FlairSpringEase, type FlairSvgAnimation, type FlairSvgMotion, type FlairVectorEffect, type LottieAnimation, type LottieExport, type LottieExportOptions, type LottieKeyframe, type LottieShape, type LottieValue, MOTION_ADDITIVE_PROPERTIES, MOTION_BLENDS, MOTION_CAMERA_MS, MOTION_CASCADES, MOTION_CLIP_TARGET, MOTION_COMMAND_SCHEMA, MOTION_COMMAND_TYPES, MOTION_DEFAULT_DURATIONS, MOTION_DEFAULT_HOLD, MOTION_DIRECTIONS, MOTION_DRAW_EFFECT_ID, MOTION_DRAW_MS_PER_UNIT, MOTION_DRAW_RANGE, MOTION_DRIVEN_PROPERTIES, MOTION_EASE_CHOICES, MOTION_EASE_IN_OUT, MOTION_EASE_OUT, MOTION_EDIT_OPS, MOTION_ENTER_STYLES, MOTION_EXIT_STYLES, MOTION_IRIS_SHAPES, MOTION_ISSUE_CODES, MOTION_MIN_CHANGE_MS, MOTION_REPEAT_MODES, MOTION_SPEED_RANGE, MOTION_SPLIT_ORIENTATIONS, MOTION_TEXT_STAGGER, MOTION_TEXT_UNITS, MOTION_TRIGGERS, type MotionBeatGrid, type MotionBlur, type MotionCamera, type MotionCascade, type MotionClip, type MotionClipItem, type MotionClipShape, type MotionColorPulseCommand, type MotionCommand, type MotionCommandBase, type MotionCommandTiming, type MotionCommandType, type MotionContactSheetOptions, type MotionControl, type MotionCue, type MotionDirection, type MotionDrawCommand, type MotionDrawOrder, type MotionDrivenProperty, type MotionDriver, type MotionEasingCurve, type MotionEdit, type MotionEditOp, type MotionEditOutcome, type MotionEditResult, type MotionEffectCommand, type MotionEnterCommand, type MotionEnterStyle, type MotionExitCommand, type MotionExitStyle, type MotionFadeCommand, type MotionFieldInput, type MotionFieldKind, type MotionFieldSpec, type MotionFit, type MotionFitOptions, type MotionFollowCommand, type MotionFrame, type MotionFrameOptions, type MotionGhost, type MotionIrisShape, type MotionIssue, type MotionIssueCode, type MotionIssueSeverity, type MotionMatch, type MotionMatchCommand, type MotionMorphCommand, type MotionMoveCommand, type MotionNarration, type MotionNodeEntry, type MotionOnionSkin, type MotionOverlayOptions, type MotionPath, type MotionPathOptions, type MotionPlayCommand, type MotionPreset, type MotionProperty, type MotionPulseCommand, type MotionRect, type MotionReveal, type MotionRotateCommand, type MotionScaleCommand, type MotionScene, MotionSceneFormatError, type MotionSegment, type MotionShakeCommand, type MotionShot, type MotionShotTiming, type MotionSmoothLeg, type MotionSplitOrientation, type MotionStyleCommand, type MotionSvgOptions, type MotionTeeterCommand, type MotionTextLayout, type MotionTextUnit, type MotionTimeline, type MotionTrigger, type MotionValue, type MotionWaitCommand, type MotionWaveCommand, type MotionWiggleCommand, type PptxAnimationImport, type PptxAnimationImportOptions, activeSegment, applyMotionControlValues, applyMotionDrivers, applyMotionEdits, checkMotionScene, clipsShapeProblems, commandShapeProblems, compileMotionScene, createAnimationEditorToolProvider, createMotionScene, defaultMotionCommand, describeMotionElements, describeMotionShots, driversShapeProblems, duplicateMotionCommandEdit, fitMotionRect, fitMotionScene, fitMotionSceneEdits, flairAtLeast, flairCurveFor, flairEaseFor, 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, motionFlairPrimitive, 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, toFlairEffectDocument, toFlairSvgMotion, toFlairVectorEffect, toLottie, trackValue, withMotionLayers, withViewBox };
|