flomotion 0.0.0-stage → 0.2.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/CHANGELOG.md +37 -0
- package/LICENSE +21 -0
- package/README.md +56 -2
- package/dist/bin.mjs +5951 -0
- package/dist/chunks/chunk-AVP5XX4G.mjs +25050 -0
- package/dist/chunks/chunk-IUSYVGP6.mjs +122 -0
- package/dist/chunks/chunk-JCLRAREG.mjs +218 -0
- package/dist/chunks/chunk-QG2MOGKO.mjs +4193 -0
- package/dist/chunks/lock-MLQUU7X3.mjs +29 -0
- package/dist/components.mjs +580 -0
- package/dist/core.mjs +340 -0
- package/dist/hooks.mjs +66 -0
- package/dist/jsx-dev-runtime.mjs +13 -0
- package/dist/jsx-runtime.mjs +11 -0
- package/docs/components/Adjustment.md +74 -0
- package/docs/components/Animate.md +45 -0
- package/docs/components/Audio.md +56 -0
- package/docs/components/B.md +22 -0
- package/docs/components/Blur.md +30 -0
- package/docs/components/Captions.md +207 -0
- package/docs/components/Card.md +105 -0
- package/docs/components/Center.md +80 -0
- package/docs/components/Chart.md +115 -0
- package/docs/components/Chip.md +104 -0
- package/docs/components/Circle.md +88 -0
- package/docs/components/Clip.md +104 -0
- package/docs/components/CodeBlock.md +103 -0
- package/docs/components/ColorGrade.md +75 -0
- package/docs/components/Composition.md +40 -0
- package/docs/components/Counter.md +216 -0
- package/docs/components/Cursor.md +94 -0
- package/docs/components/Curves.md +29 -0
- package/docs/components/DropShadow.md +42 -0
- package/docs/components/Enter.md +54 -0
- package/docs/components/Exit.md +54 -0
- package/docs/components/Font.md +41 -0
- package/docs/components/Fonts.md +22 -0
- package/docs/components/GlassCard.md +105 -0
- package/docs/components/Glitch.md +39 -0
- package/docs/components/Glow.md +36 -0
- package/docs/components/Grain.md +45 -0
- package/docs/components/Grid.md +101 -0
- package/docs/components/Group.md +79 -0
- package/docs/components/Highlight.md +31 -0
- package/docs/components/Hitstop.md +33 -0
- package/docs/components/I.md +22 -0
- package/docs/components/Image.md +89 -0
- package/docs/components/Impact.md +45 -0
- package/docs/components/Keyframes.md +37 -0
- package/docs/components/Line.md +95 -0
- package/docs/components/Look.md +34 -0
- package/docs/components/Marker.md +26 -0
- package/docs/components/Mask.md +48 -0
- package/docs/components/Matte.md +35 -0
- package/docs/components/Path.md +100 -0
- package/docs/components/Polygon.md +93 -0
- package/docs/components/Precomp.md +79 -0
- package/docs/components/ProgressRing.md +110 -0
- package/docs/components/Pulse.md +39 -0
- package/docs/components/PunchZoom.md +36 -0
- package/docs/components/README.md +115 -0
- package/docs/components/RGBSplit.md +39 -0
- package/docs/components/Rect.md +91 -0
- package/docs/components/RoundRect.md +91 -0
- package/docs/components/SafeArea.md +80 -0
- package/docs/components/Scene.md +77 -0
- package/docs/components/Sequence.md +77 -0
- package/docs/components/Shake.md +48 -0
- package/docs/components/Slam.md +51 -0
- package/docs/components/Sound.md +42 -0
- package/docs/components/Span.md +36 -0
- package/docs/components/SplitText.md +218 -0
- package/docs/components/SquashStretch.md +39 -0
- package/docs/components/Stack.md +97 -0
- package/docs/components/Stagger.md +80 -0
- package/docs/components/Strike.md +31 -0
- package/docs/components/Stroke.md +33 -0
- package/docs/components/Svg.md +89 -0
- package/docs/components/Text.md +195 -0
- package/docs/components/TextAnimator.md +57 -0
- package/docs/components/Theme.md +34 -0
- package/docs/components/Thud.md +45 -0
- package/docs/components/Title.md +195 -0
- package/docs/components/Track.md +39 -0
- package/docs/components/UIMock.md +107 -0
- package/docs/components/Underline.md +31 -0
- package/docs/components/Video.md +104 -0
- package/docs/components/Vignette.md +45 -0
- package/docs/components/Voiceover.md +32 -0
- package/docs/components/WhipPan.md +48 -0
- package/docs/components/Wobble.md +39 -0
- package/docs/gate2-manual-checklist.md +89 -0
- package/docs/hyperframes-notes.md +149 -0
- package/docs/later.md +20 -0
- package/docs/spec.md +147 -0
- package/package.json +46 -4
- package/skills/motion-studio/SKILL.md +87 -0
- package/skills/motion-studio/examples/saas-promo/README.md +7 -0
- package/skills/motion-studio/examples/saas-promo/make-assets.sh +42 -0
- package/skills/motion-studio/examples/saas-promo/project.tsx +545 -0
- package/skills/motion-studio/looks/kinetic.json +89 -0
- package/skills/motion-studio/looks/kinetic.scene.tsx +196 -0
- package/skills/motion-studio/looks/minimal.json +91 -0
- package/skills/motion-studio/looks/minimal.scene.tsx +163 -0
- package/skills/motion-studio/looks/sketch.json +83 -0
- package/skills/motion-studio/looks/sketch.scene.tsx +180 -0
- package/skills/motion-studio/references/components.md +5574 -0
- package/skills/motion-studio/references/motion.md +73 -0
- package/skills/motion-studio/references/review.md +32 -0
- package/skills/motion-studio/references/saas-promo.md +29 -0
- package/skills/motion-studio/references/sound.md +47 -0
- package/skills/motion-studio/references/typography.md +50 -0
package/dist/core.mjs
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
AT_PRESETS,
|
|
4
|
+
Adjustment,
|
|
5
|
+
BLEND_MODES,
|
|
6
|
+
CODECUT_DIR,
|
|
7
|
+
CODECUT_NAME,
|
|
8
|
+
CODECUT_SCOPE,
|
|
9
|
+
CacheMeasurer,
|
|
10
|
+
CollectingMeasurer,
|
|
11
|
+
Composition,
|
|
12
|
+
DEFAULT_LINT_CONFIG,
|
|
13
|
+
DIRECTIONS8,
|
|
14
|
+
EDIT_OPS,
|
|
15
|
+
FONT_SOURCES,
|
|
16
|
+
Font,
|
|
17
|
+
Fonts,
|
|
18
|
+
Fragment,
|
|
19
|
+
Group,
|
|
20
|
+
ID_PREFIX,
|
|
21
|
+
KEY_OPS,
|
|
22
|
+
Keyframes,
|
|
23
|
+
MOTION_DIRECTIONS,
|
|
24
|
+
Marker,
|
|
25
|
+
Precomp,
|
|
26
|
+
Registry,
|
|
27
|
+
Scene,
|
|
28
|
+
Sequence,
|
|
29
|
+
Stagger,
|
|
30
|
+
TRACK_KINDS,
|
|
31
|
+
TRANSITION_TYPES,
|
|
32
|
+
Track,
|
|
33
|
+
angle,
|
|
34
|
+
applyDefaults,
|
|
35
|
+
applyPatches,
|
|
36
|
+
assertProps,
|
|
37
|
+
asset,
|
|
38
|
+
assignMissingIds,
|
|
39
|
+
bakeHz,
|
|
40
|
+
bakeSignal,
|
|
41
|
+
bool,
|
|
42
|
+
buildIR,
|
|
43
|
+
buildSignal,
|
|
44
|
+
checkPurity,
|
|
45
|
+
clamp,
|
|
46
|
+
clamp01,
|
|
47
|
+
classifyFontLicense,
|
|
48
|
+
collectIds,
|
|
49
|
+
color,
|
|
50
|
+
color3,
|
|
51
|
+
compileProject,
|
|
52
|
+
constant,
|
|
53
|
+
contrastRatio,
|
|
54
|
+
cubicBezier,
|
|
55
|
+
curve,
|
|
56
|
+
curves,
|
|
57
|
+
defineComponent,
|
|
58
|
+
defineEffect,
|
|
59
|
+
defineLook,
|
|
60
|
+
deriveLintRules,
|
|
61
|
+
docsIndexMarkdown,
|
|
62
|
+
docsMarkdown,
|
|
63
|
+
ease,
|
|
64
|
+
edit_exports,
|
|
65
|
+
effectCommon,
|
|
66
|
+
emptyLedger,
|
|
67
|
+
enumOf,
|
|
68
|
+
estimateText,
|
|
69
|
+
evalColor,
|
|
70
|
+
evalDiscrete,
|
|
71
|
+
evalEase,
|
|
72
|
+
evalNumber,
|
|
73
|
+
evalProp,
|
|
74
|
+
evalSignal,
|
|
75
|
+
evalTrack,
|
|
76
|
+
evalVec,
|
|
77
|
+
exprSignal,
|
|
78
|
+
external_exports,
|
|
79
|
+
file,
|
|
80
|
+
fill,
|
|
81
|
+
findEntry,
|
|
82
|
+
formatTime,
|
|
83
|
+
framesToSeconds,
|
|
84
|
+
generateId,
|
|
85
|
+
getLook,
|
|
86
|
+
graphemes,
|
|
87
|
+
group,
|
|
88
|
+
halfPlanePolygon,
|
|
89
|
+
hashSeed,
|
|
90
|
+
int,
|
|
91
|
+
isConst,
|
|
92
|
+
isExpr,
|
|
93
|
+
isKeyframes,
|
|
94
|
+
isSignal,
|
|
95
|
+
json,
|
|
96
|
+
length,
|
|
97
|
+
lerp,
|
|
98
|
+
lerpColor,
|
|
99
|
+
lintProject,
|
|
100
|
+
lintTree,
|
|
101
|
+
list,
|
|
102
|
+
listLooks,
|
|
103
|
+
luminance,
|
|
104
|
+
makeCtx,
|
|
105
|
+
mcpToolSchemas,
|
|
106
|
+
measureKey,
|
|
107
|
+
motionContribution,
|
|
108
|
+
motionFields,
|
|
109
|
+
mulberry32,
|
|
110
|
+
noise1D,
|
|
111
|
+
noise2D,
|
|
112
|
+
normalizeTrack,
|
|
113
|
+
num,
|
|
114
|
+
parseAngle,
|
|
115
|
+
parseColor,
|
|
116
|
+
parseControlValue,
|
|
117
|
+
parseEase,
|
|
118
|
+
parseLength,
|
|
119
|
+
parseTimeLiteral,
|
|
120
|
+
parseTimeSpec,
|
|
121
|
+
pathAngle,
|
|
122
|
+
propsJsonSchema,
|
|
123
|
+
propsTypeSource,
|
|
124
|
+
ref,
|
|
125
|
+
registry,
|
|
126
|
+
remap,
|
|
127
|
+
resolveLength,
|
|
128
|
+
resolveProject,
|
|
129
|
+
richText,
|
|
130
|
+
runEdit,
|
|
131
|
+
runKeyOp,
|
|
132
|
+
secondsToFrames,
|
|
133
|
+
signalSpan,
|
|
134
|
+
smoothstep,
|
|
135
|
+
snapToFrame,
|
|
136
|
+
springEase,
|
|
137
|
+
springSettleTime,
|
|
138
|
+
springValue,
|
|
139
|
+
suggest,
|
|
140
|
+
text,
|
|
141
|
+
time,
|
|
142
|
+
timingControls,
|
|
143
|
+
toCss,
|
|
144
|
+
toGsapEase,
|
|
145
|
+
toHex,
|
|
146
|
+
toTimecode,
|
|
147
|
+
toVec2,
|
|
148
|
+
toVec3,
|
|
149
|
+
trackSpan,
|
|
150
|
+
transformControls,
|
|
151
|
+
transitionPlan,
|
|
152
|
+
undoEdit,
|
|
153
|
+
upsertEntry,
|
|
154
|
+
validateProps,
|
|
155
|
+
vec2,
|
|
156
|
+
vec3
|
|
157
|
+
} from "./chunks/chunk-AVP5XX4G.mjs";
|
|
158
|
+
import {
|
|
159
|
+
CodeCutError,
|
|
160
|
+
FRAGMENT,
|
|
161
|
+
cloneNode,
|
|
162
|
+
findById,
|
|
163
|
+
flattenChildren,
|
|
164
|
+
isCodeCutError,
|
|
165
|
+
isNode,
|
|
166
|
+
jsx,
|
|
167
|
+
jsxDEV,
|
|
168
|
+
jsxs,
|
|
169
|
+
serializeNode,
|
|
170
|
+
walk
|
|
171
|
+
} from "./chunks/chunk-IUSYVGP6.mjs";
|
|
172
|
+
export {
|
|
173
|
+
AT_PRESETS,
|
|
174
|
+
Adjustment,
|
|
175
|
+
BLEND_MODES,
|
|
176
|
+
CODECUT_DIR,
|
|
177
|
+
CODECUT_NAME,
|
|
178
|
+
CODECUT_SCOPE,
|
|
179
|
+
CacheMeasurer,
|
|
180
|
+
CodeCutError,
|
|
181
|
+
CollectingMeasurer,
|
|
182
|
+
Composition,
|
|
183
|
+
DEFAULT_LINT_CONFIG,
|
|
184
|
+
DIRECTIONS8,
|
|
185
|
+
EDIT_OPS,
|
|
186
|
+
FONT_SOURCES,
|
|
187
|
+
FRAGMENT,
|
|
188
|
+
Font,
|
|
189
|
+
Fonts,
|
|
190
|
+
Fragment,
|
|
191
|
+
Group,
|
|
192
|
+
ID_PREFIX,
|
|
193
|
+
KEY_OPS,
|
|
194
|
+
Keyframes,
|
|
195
|
+
MOTION_DIRECTIONS,
|
|
196
|
+
Marker,
|
|
197
|
+
Precomp,
|
|
198
|
+
Registry,
|
|
199
|
+
Scene,
|
|
200
|
+
Sequence,
|
|
201
|
+
Stagger,
|
|
202
|
+
TRACK_KINDS,
|
|
203
|
+
TRANSITION_TYPES,
|
|
204
|
+
Track,
|
|
205
|
+
angle,
|
|
206
|
+
applyDefaults,
|
|
207
|
+
applyPatches,
|
|
208
|
+
assertProps,
|
|
209
|
+
asset,
|
|
210
|
+
assignMissingIds,
|
|
211
|
+
bakeHz,
|
|
212
|
+
bakeSignal,
|
|
213
|
+
bool,
|
|
214
|
+
buildIR,
|
|
215
|
+
buildSignal,
|
|
216
|
+
checkPurity,
|
|
217
|
+
clamp,
|
|
218
|
+
clamp01,
|
|
219
|
+
classifyFontLicense,
|
|
220
|
+
cloneNode,
|
|
221
|
+
collectIds,
|
|
222
|
+
color,
|
|
223
|
+
color3,
|
|
224
|
+
compileProject,
|
|
225
|
+
constant,
|
|
226
|
+
contrastRatio,
|
|
227
|
+
cubicBezier,
|
|
228
|
+
curve,
|
|
229
|
+
curves,
|
|
230
|
+
defineComponent,
|
|
231
|
+
defineEffect,
|
|
232
|
+
defineLook,
|
|
233
|
+
deriveLintRules,
|
|
234
|
+
docsIndexMarkdown,
|
|
235
|
+
docsMarkdown,
|
|
236
|
+
ease,
|
|
237
|
+
edit_exports as edit,
|
|
238
|
+
effectCommon,
|
|
239
|
+
emptyLedger,
|
|
240
|
+
enumOf,
|
|
241
|
+
enumOf as enum_,
|
|
242
|
+
estimateText,
|
|
243
|
+
evalColor,
|
|
244
|
+
evalDiscrete,
|
|
245
|
+
evalEase,
|
|
246
|
+
evalNumber,
|
|
247
|
+
evalProp,
|
|
248
|
+
evalSignal,
|
|
249
|
+
evalTrack,
|
|
250
|
+
evalVec,
|
|
251
|
+
exprSignal,
|
|
252
|
+
file,
|
|
253
|
+
fill,
|
|
254
|
+
findById,
|
|
255
|
+
findEntry,
|
|
256
|
+
flattenChildren,
|
|
257
|
+
formatTime,
|
|
258
|
+
framesToSeconds,
|
|
259
|
+
generateId,
|
|
260
|
+
getLook,
|
|
261
|
+
graphemes,
|
|
262
|
+
group,
|
|
263
|
+
halfPlanePolygon,
|
|
264
|
+
hashSeed,
|
|
265
|
+
int,
|
|
266
|
+
isCodeCutError,
|
|
267
|
+
isConst,
|
|
268
|
+
isExpr,
|
|
269
|
+
isKeyframes,
|
|
270
|
+
isNode,
|
|
271
|
+
isSignal,
|
|
272
|
+
json,
|
|
273
|
+
jsx,
|
|
274
|
+
jsxDEV,
|
|
275
|
+
jsxs,
|
|
276
|
+
length,
|
|
277
|
+
lerp,
|
|
278
|
+
lerpColor,
|
|
279
|
+
lintProject,
|
|
280
|
+
lintTree,
|
|
281
|
+
list,
|
|
282
|
+
listLooks,
|
|
283
|
+
luminance,
|
|
284
|
+
makeCtx,
|
|
285
|
+
mcpToolSchemas,
|
|
286
|
+
measureKey,
|
|
287
|
+
motionContribution,
|
|
288
|
+
motionFields,
|
|
289
|
+
mulberry32,
|
|
290
|
+
noise1D,
|
|
291
|
+
noise2D,
|
|
292
|
+
normalizeTrack,
|
|
293
|
+
num,
|
|
294
|
+
parseAngle,
|
|
295
|
+
parseColor,
|
|
296
|
+
parseControlValue,
|
|
297
|
+
parseEase,
|
|
298
|
+
parseLength,
|
|
299
|
+
parseTimeLiteral,
|
|
300
|
+
parseTimeSpec,
|
|
301
|
+
pathAngle,
|
|
302
|
+
propsJsonSchema,
|
|
303
|
+
propsTypeSource,
|
|
304
|
+
ref,
|
|
305
|
+
registry,
|
|
306
|
+
remap,
|
|
307
|
+
resolveLength,
|
|
308
|
+
resolveProject,
|
|
309
|
+
richText,
|
|
310
|
+
runEdit,
|
|
311
|
+
runKeyOp,
|
|
312
|
+
secondsToFrames,
|
|
313
|
+
serializeNode,
|
|
314
|
+
signalSpan,
|
|
315
|
+
smoothstep,
|
|
316
|
+
snapToFrame,
|
|
317
|
+
springEase,
|
|
318
|
+
springSettleTime,
|
|
319
|
+
springValue,
|
|
320
|
+
suggest,
|
|
321
|
+
text,
|
|
322
|
+
time,
|
|
323
|
+
timingControls,
|
|
324
|
+
toCss,
|
|
325
|
+
toGsapEase,
|
|
326
|
+
toHex,
|
|
327
|
+
toTimecode,
|
|
328
|
+
toVec2,
|
|
329
|
+
toVec3,
|
|
330
|
+
trackSpan,
|
|
331
|
+
transformControls,
|
|
332
|
+
transitionPlan,
|
|
333
|
+
undoEdit,
|
|
334
|
+
upsertEntry,
|
|
335
|
+
validateProps,
|
|
336
|
+
vec2,
|
|
337
|
+
vec3,
|
|
338
|
+
walk,
|
|
339
|
+
external_exports as z
|
|
340
|
+
};
|
package/dist/hooks.mjs
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Node module hooks for the published CLI (registered by bin.ts; not used in the repo, where tsx does this).
|
|
2
|
+
//
|
|
3
|
+
// 1. Project files import "@codecut/components" and the JSX runtime "@codecut/core/jsx-runtime". In a published
|
|
4
|
+
// install those names are not in any node_modules, so map them (and the public "codecut/…" names) to the files
|
|
5
|
+
// of the running install. One copy of each module means one component registry, whatever else is installed.
|
|
6
|
+
// 2. TypeScript and TSX files outside node_modules are compiled with esbuild using the JSX runtime of
|
|
7
|
+
// @codecut/core. Nothing depends on the working directory or on a tsconfig.json that may not exist yet.
|
|
8
|
+
import { readFileSync, existsSync, statSync } from "node:fs";
|
|
9
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
10
|
+
import { transformSync } from "esbuild";
|
|
11
|
+
|
|
12
|
+
const here = new URL("./", import.meta.url);
|
|
13
|
+
const LIBS = new Map([
|
|
14
|
+
["@codecut/core", "core.mjs"],
|
|
15
|
+
["@codecut/components", "components.mjs"],
|
|
16
|
+
["@codecut/core/jsx-runtime", "jsx-runtime.mjs"],
|
|
17
|
+
["@codecut/core/jsx-dev-runtime", "jsx-dev-runtime.mjs"],
|
|
18
|
+
["codecut/core", "core.mjs"],
|
|
19
|
+
["codecut/components", "components.mjs"],
|
|
20
|
+
["codecut/jsx-runtime", "jsx-runtime.mjs"],
|
|
21
|
+
["codecut/jsx-dev-runtime", "jsx-dev-runtime.mjs"],
|
|
22
|
+
["flomotion/core", "core.mjs"],
|
|
23
|
+
["flomotion/components", "components.mjs"],
|
|
24
|
+
["flomotion/jsx-runtime", "jsx-runtime.mjs"],
|
|
25
|
+
["flomotion/jsx-dev-runtime", "jsx-dev-runtime.mjs"],
|
|
26
|
+
]);
|
|
27
|
+
const TS = /\.(tsx?|jsx|mts)$/;
|
|
28
|
+
const isFile = (p) => existsSync(p) && statSync(p).isFile();
|
|
29
|
+
|
|
30
|
+
export async function resolve(specifier, context, nextResolve) {
|
|
31
|
+
const lib = LIBS.get(specifier);
|
|
32
|
+
if (lib) return { url: new URL(lib, here).href, format: "module", shortCircuit: true };
|
|
33
|
+
// relative imports of project files: "./helpers" -> helpers.ts / helpers.tsx / helpers/index.ts, "./a.js" -> a.ts
|
|
34
|
+
if (
|
|
35
|
+
/^\.\.?\//.test(specifier) &&
|
|
36
|
+
context.parentURL?.startsWith("file:") &&
|
|
37
|
+
!context.parentURL.includes("/node_modules/")
|
|
38
|
+
) {
|
|
39
|
+
const base = fileURLToPath(new URL(specifier, context.parentURL));
|
|
40
|
+
const tries = [];
|
|
41
|
+
if (/\.[cm]?js$/.test(base))
|
|
42
|
+
tries.push(base.replace(/\.[cm]?js$/, ".ts"), base.replace(/\.[cm]?js$/, ".tsx"));
|
|
43
|
+
if (!/\.\w+$/.test(base))
|
|
44
|
+
tries.push(`${base}.tsx`, `${base}.ts`, `${base}/index.tsx`, `${base}/index.ts`);
|
|
45
|
+
const hit = tries.find(isFile);
|
|
46
|
+
if (hit && !isFile(base)) return { url: pathToFileURL(hit).href, shortCircuit: true };
|
|
47
|
+
}
|
|
48
|
+
return nextResolve(specifier, context);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export async function load(url, context, nextLoad) {
|
|
52
|
+
const path = url.startsWith("file:") ? fileURLToPath(url.split("?")[0]) : "";
|
|
53
|
+
if (path && TS.test(path) && !path.includes("/node_modules/")) {
|
|
54
|
+
const { code } = transformSync(readFileSync(path, "utf8"), {
|
|
55
|
+
loader: path.endsWith("x") ? "tsx" : "ts",
|
|
56
|
+
format: "esm",
|
|
57
|
+
target: "es2023",
|
|
58
|
+
jsx: "automatic",
|
|
59
|
+
jsxImportSource: "@codecut/core",
|
|
60
|
+
sourcefile: path,
|
|
61
|
+
sourcemap: "inline",
|
|
62
|
+
});
|
|
63
|
+
return { format: "module", source: code, shortCircuit: true };
|
|
64
|
+
}
|
|
65
|
+
return nextLoad(url, context);
|
|
66
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Adjustment
|
|
2
|
+
|
|
3
|
+
*component, category: structure, **stub** (schema only, not rendered yet)*
|
|
4
|
+
|
|
5
|
+
Adjustment layer: effects apply to everything below it. Typed stub: not implemented yet.
|
|
6
|
+
|
|
7
|
+
Children: effects only.
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Notes |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `id` | `string` | | Stable unique id. Written back as cc_… when missing. |
|
|
12
|
+
| `label` | `string` | | |
|
|
13
|
+
| `start` | `Time` | | Start relative to the parent Scene/Precomp. Use "@12s" for absolute time.; unit s |
|
|
14
|
+
| `duration` | `Time` | | Defaults to the rest of the parent.; unit s |
|
|
15
|
+
| `end` | `Time` | | Alternative to duration.; unit s |
|
|
16
|
+
| `hidden` | `boolean` | `false` | |
|
|
17
|
+
| `link` | `string` | | Link group id: linked clips move, trim and split together. |
|
|
18
|
+
| `position` | `number | Vec2 | Vec3` | `[0,0,0]` | animatable; unit px; ui vec |
|
|
19
|
+
| `rotation` | `number | Vec2 | Vec3` | `[0,0,0]` | animatable; unit deg; ui vec |
|
|
20
|
+
| `scale` | `number | Vec2 | Vec3` | `[1,1,1]` | animatable; step 0.01; ui vec |
|
|
21
|
+
| `skew` | `number | Vec2` | `[0,0]` | animatable; unit deg; ui vec |
|
|
22
|
+
| `anchor` | `number | Vec2 | Vec3` | `[50,50,0]` | Transform origin as % of the layer box (z in px).; animatable; unit %; ui vec |
|
|
23
|
+
| `opacity` | `number` | `1` | animatable; range 0..1; step 0.01; ui slider |
|
|
24
|
+
| `crop` | `{ top?: Animatable<Length>; right?: Animatable<Length>; bottom?: Animatable<Length>; left?: Animatable<Length> }` | | |
|
|
25
|
+
| `flip` | `none` \| `x` \| `y` \| `xy` | `"none"` | |
|
|
26
|
+
| `blend` | `normal` \| `multiply` \| `screen` \| `overlay` \| `darken` \| `lighten` \| `color-dodge` \| `color-burn` \| `soft-light` \| `hard-light` \| `difference` \| `exclusion` \| `hue` \| `saturation` \| `color` \| `luminosity` \| `add` | `"normal"` | ui dropdown |
|
|
27
|
+
| `perspective` | `number` | `0` | animatable; range 0..∞; unit px |
|
|
28
|
+
| `z` | `number` | `0` | Stacking override among siblings.; step 1 |
|
|
29
|
+
| `enter` | `{ from?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; to?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; distance?: Length; ease?: Ease; duration?: Time; delay?: Time; fade?: boolean; blur?: number; scale?: number; rotate?: Angle }` | | Entrance motion at the start of the layer. |
|
|
30
|
+
| `exit` | `{ from?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; to?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; distance?: Length; ease?: Ease; duration?: Time; delay?: Time; fade?: boolean; blur?: number; scale?: number; rotate?: Angle }` | | Exit motion ending at the end of the layer. |
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
export interface AdjustmentProps {
|
|
34
|
+
/** Stable unique id. Written back as cc_… when missing. */
|
|
35
|
+
id?: string;
|
|
36
|
+
label?: string;
|
|
37
|
+
/** Start relative to the parent Scene/Precomp. Use "@12s" for absolute time.; unit s */
|
|
38
|
+
start?: Time;
|
|
39
|
+
/** Defaults to the rest of the parent.; unit s */
|
|
40
|
+
duration?: Time;
|
|
41
|
+
/** Alternative to duration.; unit s */
|
|
42
|
+
end?: Time;
|
|
43
|
+
/** default false */
|
|
44
|
+
hidden?: boolean;
|
|
45
|
+
/** Link group id: linked clips move, trim and split together. */
|
|
46
|
+
link?: string;
|
|
47
|
+
/** unit px; default [0,0,0] */
|
|
48
|
+
position?: Animatable<number | Vec2 | Vec3>;
|
|
49
|
+
/** unit deg; default [0,0,0] */
|
|
50
|
+
rotation?: Animatable<number | Vec2 | Vec3>;
|
|
51
|
+
/** default [1,1,1] */
|
|
52
|
+
scale?: Animatable<number | Vec2 | Vec3>;
|
|
53
|
+
/** unit deg; default [0,0] */
|
|
54
|
+
skew?: Animatable<number | Vec2>;
|
|
55
|
+
/** Transform origin as % of the layer box (z in px).; unit %; default [50,50,0] */
|
|
56
|
+
anchor?: Animatable<number | Vec2 | Vec3>;
|
|
57
|
+
/** range 0..1; default 1 */
|
|
58
|
+
opacity?: Animatable<number>;
|
|
59
|
+
crop?: { top?: Animatable<Length>; right?: Animatable<Length>; bottom?: Animatable<Length>; left?: Animatable<Length> };
|
|
60
|
+
/** default "none" */
|
|
61
|
+
flip?: "none" | "x" | "y" | "xy";
|
|
62
|
+
/** default "normal" */
|
|
63
|
+
blend?: "normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "soft-light" | "hard-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity" | "add";
|
|
64
|
+
/** range 0..∞; unit px; default 0 */
|
|
65
|
+
perspective?: Animatable<number>;
|
|
66
|
+
/** Stacking override among siblings.; default 0 */
|
|
67
|
+
z?: number;
|
|
68
|
+
/** Entrance motion at the start of the layer. */
|
|
69
|
+
enter?: { from?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; to?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; distance?: Length; ease?: Ease; duration?: Time; delay?: Time; fade?: boolean; blur?: number; scale?: number; rotate?: Angle };
|
|
70
|
+
/** Exit motion ending at the end of the layer. */
|
|
71
|
+
exit?: { from?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; to?: "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" | "z+" | "z-"; distance?: Length; ease?: Ease; duration?: Time; delay?: Time; fade?: boolean; blur?: number; scale?: number; rotate?: Angle };
|
|
72
|
+
children?: unknown;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Animate
|
|
2
|
+
|
|
3
|
+
*effect, category: motion*
|
|
4
|
+
|
|
5
|
+
Animates one transform property of the parent from `from` to `to`. Position, rotation and skew are added to the layer's own values; scale and opacity multiply them.
|
|
6
|
+
|
|
7
|
+
Children: none.
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Notes |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `id` | `string` | | |
|
|
12
|
+
| `start` | `Time` | | Start relative to the parent layer.; unit s |
|
|
13
|
+
| `duration` | `Time` | | unit s |
|
|
14
|
+
| `enabled` | `boolean` | `true` | |
|
|
15
|
+
| `prop` | `x` \| `y` \| `z` \| `rotation` \| `rotationX` \| `rotationY` \| `scale` \| `scaleX` \| `scaleY` \| `skewX` \| `skewY` \| `opacity` \| `blur` | `"opacity"` | |
|
|
16
|
+
| `from` | `number` | `0` | |
|
|
17
|
+
| `to` | `number` | `1` | |
|
|
18
|
+
| `ease` | `string` | `"expo.out"` | |
|
|
19
|
+
| `delay` | `Time` | `0` | unit s |
|
|
20
|
+
| `hold` | `boolean` | `true` | Stay at `to` afterwards (otherwise return to `from`). |
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
export interface AnimateProps {
|
|
24
|
+
id?: string;
|
|
25
|
+
/** Start relative to the parent layer.; unit s */
|
|
26
|
+
start?: Time;
|
|
27
|
+
/** unit s */
|
|
28
|
+
duration?: Time;
|
|
29
|
+
/** default true */
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
/** default "opacity" */
|
|
32
|
+
prop?: "x" | "y" | "z" | "rotation" | "rotationX" | "rotationY" | "scale" | "scaleX" | "scaleY" | "skewX" | "skewY" | "opacity" | "blur";
|
|
33
|
+
/** default 0 */
|
|
34
|
+
from?: number;
|
|
35
|
+
/** default 1 */
|
|
36
|
+
to?: number;
|
|
37
|
+
/** default "expo.out" */
|
|
38
|
+
ease?: string;
|
|
39
|
+
/** unit s; default 0 */
|
|
40
|
+
delay?: Time;
|
|
41
|
+
/** Stay at `to` afterwards (otherwise return to `from`).; default true */
|
|
42
|
+
hold?: boolean;
|
|
43
|
+
children?: unknown;
|
|
44
|
+
}
|
|
45
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Audio
|
|
2
|
+
|
|
3
|
+
*component, category: media*
|
|
4
|
+
|
|
5
|
+
Background audio (music or ambience) on a bus. Mixed offline with FFmpeg; music ducks under voice.
|
|
6
|
+
|
|
7
|
+
Children: none.
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Notes |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `id` | `string` | | Stable unique id. Written back as cc_… when missing. |
|
|
12
|
+
| `label` | `string` | | |
|
|
13
|
+
| `start` | `Time` | | Start relative to the parent Scene/Precomp. Use "@12s" for absolute time.; unit s |
|
|
14
|
+
| `duration` | `Time` | | Defaults to the rest of the parent.; unit s |
|
|
15
|
+
| `end` | `Time` | | Alternative to duration.; unit s |
|
|
16
|
+
| `hidden` | `boolean` | `false` | |
|
|
17
|
+
| `link` | `string` | | Link group id: linked clips move, trim and split together. |
|
|
18
|
+
| `src` | `string` | | |
|
|
19
|
+
| `in` | `Time` | `0` | unit s |
|
|
20
|
+
| `gain` | `number` | `0` | range -60..12; unit dB |
|
|
21
|
+
| `bus` | `music` \| `sfx` \| `voice` | `"music"` | |
|
|
22
|
+
| `fadeIn` | `number` | `0` | range 0..∞; unit s |
|
|
23
|
+
| `fadeOut` | `number` | `0` | range 0..∞; unit s |
|
|
24
|
+
| `speed` | `number` | `1` | range 0.1..10 |
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
export interface AudioProps {
|
|
28
|
+
/** Stable unique id. Written back as cc_… when missing. */
|
|
29
|
+
id?: string;
|
|
30
|
+
label?: string;
|
|
31
|
+
/** Start relative to the parent Scene/Precomp. Use "@12s" for absolute time.; unit s */
|
|
32
|
+
start?: Time;
|
|
33
|
+
/** Defaults to the rest of the parent.; unit s */
|
|
34
|
+
duration?: Time;
|
|
35
|
+
/** Alternative to duration.; unit s */
|
|
36
|
+
end?: Time;
|
|
37
|
+
/** default false */
|
|
38
|
+
hidden?: boolean;
|
|
39
|
+
/** Link group id: linked clips move, trim and split together. */
|
|
40
|
+
link?: string;
|
|
41
|
+
src?: string;
|
|
42
|
+
/** unit s; default 0 */
|
|
43
|
+
in?: Time;
|
|
44
|
+
/** range -60..12; unit dB; default 0 */
|
|
45
|
+
gain?: number;
|
|
46
|
+
/** default "music" */
|
|
47
|
+
bus?: "music" | "sfx" | "voice";
|
|
48
|
+
/** range 0..∞; unit s; default 0 */
|
|
49
|
+
fadeIn?: number;
|
|
50
|
+
/** range 0..∞; unit s; default 0 */
|
|
51
|
+
fadeOut?: number;
|
|
52
|
+
/** range 0.1..10; default 1 */
|
|
53
|
+
speed?: number;
|
|
54
|
+
children?: unknown;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# B
|
|
2
|
+
|
|
3
|
+
*component, category: text*
|
|
4
|
+
|
|
5
|
+
Bold run inside Text.
|
|
6
|
+
|
|
7
|
+
Children: any layers and effects.
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Notes |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `weight` | `number` | `700` | range 1..1000 |
|
|
12
|
+
| `id` | `string` | | Stable unique id. Written back as cc_… when missing. |
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
export interface BProps {
|
|
16
|
+
/** range 1..1000; default 700 */
|
|
17
|
+
weight?: number;
|
|
18
|
+
/** Stable unique id. Written back as cc_… when missing. */
|
|
19
|
+
id?: string;
|
|
20
|
+
children?: unknown;
|
|
21
|
+
}
|
|
22
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Blur
|
|
2
|
+
|
|
3
|
+
*effect, category: layer-styles*
|
|
4
|
+
|
|
5
|
+
Gaussian blur of the layer.
|
|
6
|
+
|
|
7
|
+
Children: none.
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Notes |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `id` | `string` | | |
|
|
12
|
+
| `start` | `Time` | | Start relative to the parent layer.; unit s |
|
|
13
|
+
| `duration` | `Time` | | unit s |
|
|
14
|
+
| `enabled` | `boolean` | `true` | |
|
|
15
|
+
| `radius` | `number` | `8` | animatable; range 0..200; unit px |
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
export interface BlurProps {
|
|
19
|
+
id?: string;
|
|
20
|
+
/** Start relative to the parent layer.; unit s */
|
|
21
|
+
start?: Time;
|
|
22
|
+
/** unit s */
|
|
23
|
+
duration?: Time;
|
|
24
|
+
/** default true */
|
|
25
|
+
enabled?: boolean;
|
|
26
|
+
/** range 0..200; unit px; default 8 */
|
|
27
|
+
radius?: Animatable<number>;
|
|
28
|
+
children?: unknown;
|
|
29
|
+
}
|
|
30
|
+
```
|