@syncedco/motion 0.1.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 +106 -0
- package/CODE_OF_CONDUCT.md +26 -0
- package/CONTRIBUTING.md +100 -0
- package/LICENSE +22 -0
- package/README.md +278 -0
- package/SECURITY.md +36 -0
- package/SUPPORT.md +38 -0
- package/TRADEMARKS.md +14 -0
- package/bin/synced-motion.mjs +5 -0
- package/dist/astro.d.ts +15 -0
- package/dist/astro.js +51 -0
- package/dist/astro.js.map +1 -0
- package/dist/chunk-24KKECMK.js +281 -0
- package/dist/chunk-24KKECMK.js.map +1 -0
- package/dist/chunk-3WUVBPYX.js +162 -0
- package/dist/chunk-3WUVBPYX.js.map +1 -0
- package/dist/chunk-HCWQV65E.js +20 -0
- package/dist/chunk-HCWQV65E.js.map +1 -0
- package/dist/chunk-JET2MYEG.js +2287 -0
- package/dist/chunk-JET2MYEG.js.map +1 -0
- package/dist/chunk-KA3OPI4F.js +40 -0
- package/dist/chunk-KA3OPI4F.js.map +1 -0
- package/dist/chunk-ML7HTCZT.js +642 -0
- package/dist/chunk-ML7HTCZT.js.map +1 -0
- package/dist/chunk-NIXAEIHN.js +23 -0
- package/dist/chunk-NIXAEIHN.js.map +1 -0
- package/dist/chunk-VOIQPPQZ.js +299 -0
- package/dist/chunk-VOIQPPQZ.js.map +1 -0
- package/dist/chunk-WCG7TQSH.js +31 -0
- package/dist/chunk-WCG7TQSH.js.map +1 -0
- package/dist/cli.js +382 -0
- package/dist/cli.js.map +1 -0
- package/dist/full.d.ts +13 -0
- package/dist/full.js +201 -0
- package/dist/full.js.map +1 -0
- package/dist/index.d.ts +249 -0
- package/dist/index.js +183 -0
- package/dist/index.js.map +1 -0
- package/dist/lenis.d.ts +19 -0
- package/dist/lenis.js +7 -0
- package/dist/lenis.js.map +1 -0
- package/dist/mcp.d.ts +16 -0
- package/dist/mcp.js +82 -0
- package/dist/mcp.js.map +1 -0
- package/dist/plugins.d.ts +14 -0
- package/dist/plugins.js +17 -0
- package/dist/plugins.js.map +1 -0
- package/dist/react.d.ts +7 -0
- package/dist/react.js +32 -0
- package/dist/react.js.map +1 -0
- package/dist/recipes.d.ts +76 -0
- package/dist/recipes.js +129 -0
- package/dist/recipes.js.map +1 -0
- package/dist/styles.css +57 -0
- package/dist/styles.css.map +1 -0
- package/dist/svelte.d.ts +10 -0
- package/dist/svelte.js +30 -0
- package/dist/svelte.js.map +1 -0
- package/dist/vue.d.ts +13 -0
- package/dist/vue.js +35 -0
- package/dist/vue.js.map +1 -0
- package/dist/wordpress.d.ts +15 -0
- package/dist/wordpress.js +49 -0
- package/dist/wordpress.js.map +1 -0
- package/docs/API.md +176 -0
- package/docs/ATTRIBUTE-API.md +358 -0
- package/docs/CAPABILITIES.md +82 -0
- package/docs/INTEGRATIONS.md +92 -0
- package/docs/PERFORMANCE.md +150 -0
- package/docs/README.md +35 -0
- package/docs/RECIPE-REFERENCE.md +1358 -0
- package/docs/RECIPES.md +115 -0
- package/docs/TOOLING.md +65 -0
- package/docs/WEBFLOW-MIGRATION.md +39 -0
- package/package.json +167 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import {
|
|
2
|
+
packageVersion
|
|
3
|
+
} from "./chunk-HCWQV65E.js";
|
|
4
|
+
import {
|
|
5
|
+
createDefaultMotionService
|
|
6
|
+
} from "./chunk-ML7HTCZT.js";
|
|
7
|
+
import "./chunk-24KKECMK.js";
|
|
8
|
+
import "./chunk-JET2MYEG.js";
|
|
9
|
+
|
|
10
|
+
// src/cli.js
|
|
11
|
+
import { readFileSync as readFileSync2 } from "fs";
|
|
12
|
+
|
|
13
|
+
// src/project/setup.js
|
|
14
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
15
|
+
import { resolve } from "path";
|
|
16
|
+
var AGENT_START = "<!-- synced-motion:agent-guidance:start -->";
|
|
17
|
+
var AGENT_END = "<!-- synced-motion:agent-guidance:end -->";
|
|
18
|
+
var motionConfigTemplate = `export default {
|
|
19
|
+
scan: ['src', 'app', 'pages', 'components', 'templates', 'parts'],
|
|
20
|
+
recipes: [],
|
|
21
|
+
reducedMotion: 'final',
|
|
22
|
+
smoothScroll: false,
|
|
23
|
+
budgets: {
|
|
24
|
+
maxHighCostPerPage: 2,
|
|
25
|
+
allowLayoutAnimation: false,
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
`;
|
|
29
|
+
var motionAgentGuidance = `${AGENT_START}
|
|
30
|
+
## Synced Motion
|
|
31
|
+
|
|
32
|
+
- Run \`synced-motion catalog --json\` before choosing motion recipes.
|
|
33
|
+
- Use \`synced-motion suggest "<brief>" --json\` and \`synced-motion plan <id...> --json\` before writing animation code.
|
|
34
|
+
- Prefer registered recipes and root-scoped semantic hooks over global selectors.
|
|
35
|
+
- Synced Motion owns animation orchestration; the active design system owns layout, styling, tokens, and final states.
|
|
36
|
+
- Preserve readable no-JavaScript content, keyboard semantics, deterministic cleanup, and explicit reduced-motion behavior.
|
|
37
|
+
- Prefer transform properties and opacity. Typed custom recipes are the escape hatch for effects the catalog cannot express.
|
|
38
|
+
- Run \`synced-motion validate\` and \`synced-motion doctor\` before handoff.
|
|
39
|
+
${AGENT_END}`;
|
|
40
|
+
function updateManagedSection(existing, section) {
|
|
41
|
+
const start = existing.indexOf(AGENT_START);
|
|
42
|
+
const end = existing.indexOf(AGENT_END);
|
|
43
|
+
if (start >= 0 && end >= start) {
|
|
44
|
+
return `${existing.slice(0, start)}${section}${existing.slice(end + AGENT_END.length)}`;
|
|
45
|
+
}
|
|
46
|
+
return `${existing.trimEnd()}${existing.trim() ? "\n\n" : ""}${section}
|
|
47
|
+
`;
|
|
48
|
+
}
|
|
49
|
+
function packageUpdate(existing) {
|
|
50
|
+
const pkg = JSON.parse(existing);
|
|
51
|
+
pkg.scripts ??= {};
|
|
52
|
+
pkg.scripts["motion:validate"] ??= "synced-motion validate";
|
|
53
|
+
pkg.scripts["motion:doctor"] ??= "synced-motion doctor";
|
|
54
|
+
pkg.scripts["motion:mcp"] ??= "synced-motion mcp";
|
|
55
|
+
return `${JSON.stringify(pkg, null, 2)}
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
function planMotionProjectSetup({ cwd = process.cwd(), agents = false } = {}) {
|
|
59
|
+
const writes = [];
|
|
60
|
+
const configPath = resolve(cwd, "synced-motion.config.mjs");
|
|
61
|
+
if (!existsSync(configPath)) writes.push({ path: configPath, content: motionConfigTemplate, kind: "config" });
|
|
62
|
+
const packagePath = resolve(cwd, "package.json");
|
|
63
|
+
if (existsSync(packagePath)) {
|
|
64
|
+
const current = readFileSync(packagePath, "utf8");
|
|
65
|
+
const content = packageUpdate(current);
|
|
66
|
+
if (content !== current) writes.push({ path: packagePath, content, kind: "package" });
|
|
67
|
+
}
|
|
68
|
+
if (agents) {
|
|
69
|
+
const agentsPath = resolve(cwd, "AGENTS.md");
|
|
70
|
+
const current = existsSync(agentsPath) ? readFileSync(agentsPath, "utf8") : "";
|
|
71
|
+
const content = updateManagedSection(current, motionAgentGuidance);
|
|
72
|
+
if (content !== current) writes.push({ path: agentsPath, content, kind: "agents" });
|
|
73
|
+
}
|
|
74
|
+
return { cwd, writes };
|
|
75
|
+
}
|
|
76
|
+
function applyMotionProjectSetup(plan, { dryRun = false } = {}) {
|
|
77
|
+
if (!dryRun) for (const write of plan.writes) writeFileSync(write.path, write.content);
|
|
78
|
+
return { ...plan, dryRun, changed: plan.writes.length > 0 };
|
|
79
|
+
}
|
|
80
|
+
function motionAgentStatus({ cwd = process.cwd() } = {}) {
|
|
81
|
+
const path = resolve(cwd, "AGENTS.md");
|
|
82
|
+
const installed = existsSync(path) && readFileSync(path, "utf8").includes(AGENT_START);
|
|
83
|
+
return { installed, path };
|
|
84
|
+
}
|
|
85
|
+
function doctorMotionProject({ cwd = process.cwd(), service } = {}) {
|
|
86
|
+
const checks = [];
|
|
87
|
+
const add = (id, ok, fix) => checks.push({ id, ok, ...ok ? {} : { fix } });
|
|
88
|
+
const packagePath = resolve(cwd, "package.json");
|
|
89
|
+
const configPath = resolve(cwd, "synced-motion.config.mjs");
|
|
90
|
+
add("package-json", existsSync(packagePath), "Run inside a Node project with package.json.");
|
|
91
|
+
add("motion-config", existsSync(configPath), "Run synced-motion init.");
|
|
92
|
+
add("agent-guidance", motionAgentStatus({ cwd }).installed, "Run synced-motion agents install.");
|
|
93
|
+
const validation = service?.validate?.() ?? { ok: true };
|
|
94
|
+
add("recipe-registry", validation.ok, "Fix invalid recipe manifests reported by synced-motion validate --json.");
|
|
95
|
+
return { ok: checks.every((check) => check.ok), cwd, checks };
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// src/cli.js
|
|
99
|
+
function parseArguments(args) {
|
|
100
|
+
const positional = [];
|
|
101
|
+
const options = {};
|
|
102
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
103
|
+
const value = args[index];
|
|
104
|
+
if (!value.startsWith("--")) {
|
|
105
|
+
positional.push(value);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const key = value.slice(2);
|
|
109
|
+
const next = args[index + 1];
|
|
110
|
+
if (next && !next.startsWith("--")) {
|
|
111
|
+
options[key] = next;
|
|
112
|
+
index += 1;
|
|
113
|
+
} else options[key] = true;
|
|
114
|
+
}
|
|
115
|
+
return { positional, options };
|
|
116
|
+
}
|
|
117
|
+
var COMMANDS = {
|
|
118
|
+
add: {
|
|
119
|
+
usage: "synced-motion add <id...> [--json]",
|
|
120
|
+
summary: "Print ready-to-paste markup for one or more recipes.",
|
|
121
|
+
detail: `Emits the semantic markup a recipe needs, including every required
|
|
122
|
+
slot, using the documented data-motion-* attributes.
|
|
123
|
+
|
|
124
|
+
synced-motion add reveal-rise
|
|
125
|
+
synced-motion add pinned-steps marquee > partials/motion.html`
|
|
126
|
+
},
|
|
127
|
+
catalog: {
|
|
128
|
+
usage: "synced-motion catalog [--json]",
|
|
129
|
+
summary: "List every registered recipe."
|
|
130
|
+
},
|
|
131
|
+
recipe: {
|
|
132
|
+
usage: "synced-motion recipe <id> [--json]",
|
|
133
|
+
summary: "Show one recipe manifest: slots, parameters, fallbacks, performance."
|
|
134
|
+
},
|
|
135
|
+
suggest: {
|
|
136
|
+
usage: 'synced-motion suggest "<brief>" [--limit <number>] [--json]',
|
|
137
|
+
summary: "Rank recipes against a natural-language brief."
|
|
138
|
+
},
|
|
139
|
+
plan: {
|
|
140
|
+
usage: "synced-motion plan <id...> [--json]",
|
|
141
|
+
summary: "Produce a deterministic integration plan for chosen recipes."
|
|
142
|
+
},
|
|
143
|
+
scan: {
|
|
144
|
+
usage: "synced-motion scan --file <path> [--json]",
|
|
145
|
+
summary: "Find recipe roots in existing markup and report missing slots."
|
|
146
|
+
},
|
|
147
|
+
compose: {
|
|
148
|
+
usage: 'synced-motion compose "<brief>" [--file <path>] [--json]',
|
|
149
|
+
summary: "Combine suggest, plan and scan into one constrained proposal."
|
|
150
|
+
},
|
|
151
|
+
validate: {
|
|
152
|
+
usage: "synced-motion validate [--file <recipe.json>] [--json]",
|
|
153
|
+
summary: "Validate the built-in registry or one custom recipe."
|
|
154
|
+
},
|
|
155
|
+
doctor: {
|
|
156
|
+
usage: "synced-motion doctor [--json]",
|
|
157
|
+
summary: "Check project wiring and agent guidance."
|
|
158
|
+
},
|
|
159
|
+
init: {
|
|
160
|
+
usage: "synced-motion init [--agents] [--dry-run] [--json]",
|
|
161
|
+
summary: "Set up Synced Motion in the current project."
|
|
162
|
+
},
|
|
163
|
+
agents: {
|
|
164
|
+
usage: "synced-motion agents install|status [--dry-run] [--json]",
|
|
165
|
+
summary: "Install or inspect agent guidance in AGENTS.md."
|
|
166
|
+
},
|
|
167
|
+
mcp: {
|
|
168
|
+
usage: "synced-motion mcp",
|
|
169
|
+
summary: "Start the local stdio MCP server."
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
function help(command) {
|
|
173
|
+
const entry = COMMANDS[command];
|
|
174
|
+
if (entry) {
|
|
175
|
+
return `${entry.summary}
|
|
176
|
+
|
|
177
|
+
Usage:
|
|
178
|
+
${entry.usage}
|
|
179
|
+
${entry.detail ? `
|
|
180
|
+
${entry.detail}
|
|
181
|
+
` : ""}`;
|
|
182
|
+
}
|
|
183
|
+
const width = Math.max(...Object.keys(COMMANDS).map((name) => name.length));
|
|
184
|
+
const lines = Object.entries(COMMANDS).map(([name, meta]) => ` ${name.padEnd(width)} ${meta.summary}`).join("\n");
|
|
185
|
+
return `Synced Motion ${packageVersion}
|
|
186
|
+
|
|
187
|
+
Usage:
|
|
188
|
+
synced-motion <command> [options]
|
|
189
|
+
|
|
190
|
+
Commands:
|
|
191
|
+
${lines}
|
|
192
|
+
|
|
193
|
+
Options:
|
|
194
|
+
--json Machine-readable output.
|
|
195
|
+
--help, -h Show help. Follows a command for detailed help.
|
|
196
|
+
--version, -v Print the package version.
|
|
197
|
+
|
|
198
|
+
Run "synced-motion <command> --help" for details on a single command.
|
|
199
|
+
`;
|
|
200
|
+
}
|
|
201
|
+
function markupForRecipe(recipe) {
|
|
202
|
+
const attribute = (selector) => selector.replace(/^\[/, "").replace(/\]$/, "");
|
|
203
|
+
const slots = recipe.slots.filter((slot) => slot.name !== "root");
|
|
204
|
+
const children = slots.flatMap((slot) => {
|
|
205
|
+
const count = slot.multiple ? 2 : 1;
|
|
206
|
+
return Array.from({ length: count }, (_, index) => {
|
|
207
|
+
const label = slot.multiple ? `${slot.name} ${index + 1}` : slot.name;
|
|
208
|
+
const optional = slot.required === false ? " <!-- optional -->" : "";
|
|
209
|
+
return ` <div ${attribute(slot.selector)}>${label}</div>${optional}`;
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
const header = [
|
|
213
|
+
`<!-- ${recipe.id}: ${recipe.intent} -->`,
|
|
214
|
+
`<!-- reduced motion: ${recipe.reducedMotion.strategy} | without JavaScript: ${recipe.noJs.behavior} -->`
|
|
215
|
+
];
|
|
216
|
+
const open = `<section ${attribute(recipe.root.selector)}>`;
|
|
217
|
+
const body = children.length ? children : [" Replace this with the content you want to animate."];
|
|
218
|
+
return [...header, open, ...body, "</section>"].join("\n");
|
|
219
|
+
}
|
|
220
|
+
function formatText(command, result) {
|
|
221
|
+
if (command === "catalog") return `Synced Motion catalog
|
|
222
|
+
${result.recipes.map((recipe) => `- ${recipe.id}: ${recipe.intent}`).join("\n")}`;
|
|
223
|
+
if (command === "recipe") return result ? `${result.id}: ${result.title}
|
|
224
|
+
${result.intent}` : "Recipe not found.";
|
|
225
|
+
if (command === "suggest") return result.length ? result.map((entry) => `- ${entry.id}: ${entry.intent}`).join("\n") : "No matching recipes found.";
|
|
226
|
+
if (command === "plan") return `Motion plan
|
|
227
|
+
${result.recipes.map((recipe) => `- ${recipe.id}`).join("\n")}`;
|
|
228
|
+
if (command === "scan") return result.recipes.length ? result.recipes.map((recipe) => `- ${recipe.id}: ${recipe.ready ? "ready" : `missing ${recipe.missingSlots.join(", ")}`}`).join("\n") : "No registered recipe hooks found.";
|
|
229
|
+
if (command === "compose") return `Motion composition
|
|
230
|
+
${result.suggestions.map((entry) => `- ${entry.id}: ${entry.intent}`).join("\n")}${result.warnings.length ? `
|
|
231
|
+
Warnings:
|
|
232
|
+
${result.warnings.map((warning) => `- ${warning}`).join("\n")}` : ""}`;
|
|
233
|
+
if (command === "validate") return result.ok ? "pass recipe registry is valid." : `fail ${JSON.stringify(result.issues)}`;
|
|
234
|
+
if (command === "doctor") return result.checks.map((check) => `${check.ok ? "pass" : "warn"} ${check.id}${check.fix ? `: ${check.fix}` : ""}`).join("\n");
|
|
235
|
+
return String(result);
|
|
236
|
+
}
|
|
237
|
+
async function runMotionCli(args = process.argv.slice(2), io = console, service = createDefaultMotionService()) {
|
|
238
|
+
const [command = "help", ...rest] = args;
|
|
239
|
+
const { positional, options } = parseArguments(rest);
|
|
240
|
+
let result;
|
|
241
|
+
if (command === "help" || command === "--help" || command === "-h") {
|
|
242
|
+
io.log(help(positional[0]));
|
|
243
|
+
return { code: 0 };
|
|
244
|
+
}
|
|
245
|
+
if (command === "--version" || command === "-v" || command === "version") {
|
|
246
|
+
io.log(packageVersion);
|
|
247
|
+
return { code: 0 };
|
|
248
|
+
}
|
|
249
|
+
if (options.help === true || options.h === true) {
|
|
250
|
+
io.log(help(command));
|
|
251
|
+
return { code: 0 };
|
|
252
|
+
}
|
|
253
|
+
const readFile = (path) => {
|
|
254
|
+
try {
|
|
255
|
+
return readFileSync2(String(path), "utf8");
|
|
256
|
+
} catch (error) {
|
|
257
|
+
io.error(`Unable to read "${path}": ${error.message}`);
|
|
258
|
+
return void 0;
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
if (command === "add") {
|
|
262
|
+
if (!positional.length) {
|
|
263
|
+
io.error("Pass one or more recipe ids, for example: synced-motion add reveal-rise");
|
|
264
|
+
return { code: 1 };
|
|
265
|
+
}
|
|
266
|
+
const recipes = [];
|
|
267
|
+
for (const id of positional) {
|
|
268
|
+
const recipe = service.recipe(id);
|
|
269
|
+
if (!recipe) {
|
|
270
|
+
io.error(`Unknown motion recipe "${id}". Run "synced-motion catalog" to list every id.`);
|
|
271
|
+
return { code: 1 };
|
|
272
|
+
}
|
|
273
|
+
recipes.push(recipe);
|
|
274
|
+
}
|
|
275
|
+
const blocks = recipes.map((recipe) => ({
|
|
276
|
+
id: recipe.id,
|
|
277
|
+
dependencies: recipe.dependencies,
|
|
278
|
+
markup: markupForRecipe(recipe)
|
|
279
|
+
}));
|
|
280
|
+
if (options.json) {
|
|
281
|
+
io.log(JSON.stringify({ schemaVersion: "1", recipes: blocks }, null, 2));
|
|
282
|
+
} else {
|
|
283
|
+
io.log(blocks.map((block) => block.markup).join("\n\n"));
|
|
284
|
+
const plugins = [...new Set(blocks.flatMap((block) => block.dependencies))].filter((name) => name !== "gsap" && name !== "ScrollTrigger");
|
|
285
|
+
if (plugins.length) {
|
|
286
|
+
io.error(`
|
|
287
|
+
Needs optional GSAP plugins: ${plugins.join(", ")}.`);
|
|
288
|
+
io.error('Import from "@syncedco/motion/full", or pass them via { dependencies }.');
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return { code: 0 };
|
|
292
|
+
}
|
|
293
|
+
if (command === "catalog") result = service.catalog();
|
|
294
|
+
else if (command === "recipe") {
|
|
295
|
+
result = service.recipe(positional[0]);
|
|
296
|
+
if (!result) {
|
|
297
|
+
io.error(`Unknown motion recipe "${positional[0] ?? ""}".`);
|
|
298
|
+
return { code: 1 };
|
|
299
|
+
}
|
|
300
|
+
} else if (command === "suggest") {
|
|
301
|
+
const brief = positional.join(" ");
|
|
302
|
+
if (!brief) {
|
|
303
|
+
io.error('Pass a motion brief, for example: synced-motion suggest "subtle scroll reveal"');
|
|
304
|
+
return { code: 1 };
|
|
305
|
+
}
|
|
306
|
+
const limit = options.limit === void 0 ? void 0 : Number(options.limit);
|
|
307
|
+
if (limit !== void 0 && (!Number.isInteger(limit) || limit < 1)) {
|
|
308
|
+
io.error("--limit must be a positive integer.");
|
|
309
|
+
return { code: 1 };
|
|
310
|
+
}
|
|
311
|
+
result = service.suggest(brief, { limit });
|
|
312
|
+
} else if (command === "plan") {
|
|
313
|
+
try {
|
|
314
|
+
result = service.plan(positional.length ? positional : void 0);
|
|
315
|
+
} catch (error) {
|
|
316
|
+
io.error(error.message);
|
|
317
|
+
return { code: 1 };
|
|
318
|
+
}
|
|
319
|
+
} else if (command === "scan") {
|
|
320
|
+
if (!options.file) {
|
|
321
|
+
io.error("Pass --file <path> to scan project markup.");
|
|
322
|
+
return { code: 1 };
|
|
323
|
+
}
|
|
324
|
+
const markup = readFile(options.file);
|
|
325
|
+
if (markup === void 0) return { code: 1 };
|
|
326
|
+
result = service.scanMarkup(markup);
|
|
327
|
+
} else if (command === "compose") {
|
|
328
|
+
const brief = positional.join(" ");
|
|
329
|
+
if (!brief) {
|
|
330
|
+
io.error("Pass a motion brief to compose.");
|
|
331
|
+
return { code: 1 };
|
|
332
|
+
}
|
|
333
|
+
const markup = options.file ? readFile(options.file) : void 0;
|
|
334
|
+
if (options.file && markup === void 0) return { code: 1 };
|
|
335
|
+
const limit = options.limit === void 0 ? void 0 : Number(options.limit);
|
|
336
|
+
if (limit !== void 0 && (!Number.isInteger(limit) || limit < 1)) {
|
|
337
|
+
io.error("--limit must be a positive integer.");
|
|
338
|
+
return { code: 1 };
|
|
339
|
+
}
|
|
340
|
+
result = service.compose(brief, { markup, limit });
|
|
341
|
+
} else if (command === "validate") {
|
|
342
|
+
if (!options.file) result = service.validate();
|
|
343
|
+
else {
|
|
344
|
+
const source = readFile(options.file);
|
|
345
|
+
if (source === void 0) return { code: 1 };
|
|
346
|
+
try {
|
|
347
|
+
result = service.validate(JSON.parse(source));
|
|
348
|
+
} catch (error) {
|
|
349
|
+
io.error(`Unable to parse "${options.file}" as JSON: ${error.message}`);
|
|
350
|
+
return { code: 1 };
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
} else if (command === "doctor") {
|
|
354
|
+
result = doctorMotionProject({ cwd: process.cwd(), service });
|
|
355
|
+
} else if (command === "init") {
|
|
356
|
+
result = applyMotionProjectSetup(planMotionProjectSetup({ cwd: process.cwd(), agents: Boolean(options.agents) }), { dryRun: Boolean(options["dry-run"]) });
|
|
357
|
+
} else if (command === "agents") {
|
|
358
|
+
const action = positional[0] ?? "status";
|
|
359
|
+
if (action === "status") result = motionAgentStatus({ cwd: process.cwd() });
|
|
360
|
+
else if (action === "install") {
|
|
361
|
+
result = applyMotionProjectSetup(planMotionProjectSetup({ cwd: process.cwd(), agents: true }), { dryRun: Boolean(options["dry-run"]) });
|
|
362
|
+
} else {
|
|
363
|
+
io.error(`Unknown agents action "${action}". Use install or status.`);
|
|
364
|
+
return { code: 1 };
|
|
365
|
+
}
|
|
366
|
+
} else if (command === "mcp") {
|
|
367
|
+
const { startMotionMcpServer } = await import("./mcp.js");
|
|
368
|
+
await startMotionMcpServer({ service });
|
|
369
|
+
return { code: 0 };
|
|
370
|
+
} else {
|
|
371
|
+
io.error(`Unknown command "${command}".
|
|
372
|
+
|
|
373
|
+
${help()}`);
|
|
374
|
+
return { code: 1 };
|
|
375
|
+
}
|
|
376
|
+
io.log(options.json ? JSON.stringify(result, null, 2) : command === "init" || command === "agents" ? `${result.changed === false ? "pass no changes required." : `${result.dryRun ? "planned" : "updated"} ${result.writes?.length ?? 0} project files.`}` : formatText(command, result));
|
|
377
|
+
return { code: result?.ok === false ? 1 : 0, result };
|
|
378
|
+
}
|
|
379
|
+
export {
|
|
380
|
+
runMotionCli
|
|
381
|
+
};
|
|
382
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli.js","../src/project/setup.js"],"mappings":"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","names":["readFileSync","readFileSync"]}
|
package/dist/full.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
MotionRuntime,
|
|
3
|
+
MotionRuntimeOptions,
|
|
4
|
+
SyncedMotionInstance,
|
|
5
|
+
SyncedMotionOptions,
|
|
6
|
+
} from './index.js'
|
|
7
|
+
|
|
8
|
+
export * from './index.js'
|
|
9
|
+
|
|
10
|
+
/** `createSyncedMotion` with every optional GSAP plugin pre-registered. */
|
|
11
|
+
export declare function createSyncedMotion(options?: SyncedMotionOptions): SyncedMotionInstance
|
|
12
|
+
export declare function createDefaultMotionRuntime(options?: MotionRuntimeOptions): MotionRuntime
|
|
13
|
+
export declare const motionPlugins: Readonly<Record<string, unknown>>
|
package/dist/full.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import {
|
|
2
|
+
coerceMotionParameter,
|
|
3
|
+
createMotionInspector,
|
|
4
|
+
createSyncedMotion,
|
|
5
|
+
filterMotionCatalog
|
|
6
|
+
} from "./chunk-3WUVBPYX.js";
|
|
7
|
+
import {
|
|
8
|
+
motionPlugins
|
|
9
|
+
} from "./chunk-NIXAEIHN.js";
|
|
10
|
+
import {
|
|
11
|
+
createLenisAdapter
|
|
12
|
+
} from "./chunk-WCG7TQSH.js";
|
|
13
|
+
import {
|
|
14
|
+
builtinMotionRecipes,
|
|
15
|
+
createBuiltinMotionRegistry,
|
|
16
|
+
createDefaultMotionService,
|
|
17
|
+
createMotionService
|
|
18
|
+
} from "./chunk-ML7HTCZT.js";
|
|
19
|
+
import {
|
|
20
|
+
OPTIONAL_MOTION_PLUGINS,
|
|
21
|
+
compileMotionRecipe,
|
|
22
|
+
createDefaultMotionRuntime,
|
|
23
|
+
createMotionRuntime,
|
|
24
|
+
createRuntimeMotionRegistry
|
|
25
|
+
} from "./chunk-VOIQPPQZ.js";
|
|
26
|
+
import {
|
|
27
|
+
MOTION_RECIPE_SCHEMA_VERSION,
|
|
28
|
+
MOTION_TRIGGER_TYPES,
|
|
29
|
+
MotionRecipeValidationError,
|
|
30
|
+
createMotionRegistry,
|
|
31
|
+
defineMotionRecipe,
|
|
32
|
+
resolveMotionRecipes,
|
|
33
|
+
validateMotionRecipe
|
|
34
|
+
} from "./chunk-24KKECMK.js";
|
|
35
|
+
import {
|
|
36
|
+
builtinMotionSpecs,
|
|
37
|
+
clampIndex,
|
|
38
|
+
createAccordionDisclosures,
|
|
39
|
+
createAmbientFloats,
|
|
40
|
+
createCharacterShimmers,
|
|
41
|
+
createClipWipeReveals,
|
|
42
|
+
createCommandPalettes,
|
|
43
|
+
createDialogOverlays,
|
|
44
|
+
createDirectionalReveals,
|
|
45
|
+
createExpandPanels,
|
|
46
|
+
createFlipCardDetails,
|
|
47
|
+
createFlipFilterGrids,
|
|
48
|
+
createFlipListReorders,
|
|
49
|
+
createFlipNavIndicators,
|
|
50
|
+
createFounderScenes,
|
|
51
|
+
createHorizontalComparisonSliders,
|
|
52
|
+
createHorizontalFeatureRails,
|
|
53
|
+
createHorizontalGalleryScrubs,
|
|
54
|
+
createHorizontalGallerySnaps,
|
|
55
|
+
createHorizontalLogoReels,
|
|
56
|
+
createHoverLifts,
|
|
57
|
+
createHoverMedia,
|
|
58
|
+
createImageFocusPans,
|
|
59
|
+
createLayoutAccordionGrids,
|
|
60
|
+
createLoopingLogoBelts,
|
|
61
|
+
createMagneticActions,
|
|
62
|
+
createMarquees,
|
|
63
|
+
createMediaClipReveals,
|
|
64
|
+
createMediaCurtainSplits,
|
|
65
|
+
createMediaExpansions,
|
|
66
|
+
createMenus,
|
|
67
|
+
createNavActiveIndicators,
|
|
68
|
+
createPageLoadBrandMarks,
|
|
69
|
+
createPageLoadHeroes,
|
|
70
|
+
createParallax,
|
|
71
|
+
createPinnedChapterCrossfades,
|
|
72
|
+
createPinnedProductExplainers,
|
|
73
|
+
createPointerSpotlights,
|
|
74
|
+
createProgressRings,
|
|
75
|
+
createReveals,
|
|
76
|
+
createRouteFades,
|
|
77
|
+
createRouteScrollRestores,
|
|
78
|
+
createRouteSharedMedia,
|
|
79
|
+
createScaleReveals,
|
|
80
|
+
createScrollDepthStacks,
|
|
81
|
+
createScrollDrifts,
|
|
82
|
+
createScrollExits,
|
|
83
|
+
createScrollProgressMeters,
|
|
84
|
+
createScrollStatements,
|
|
85
|
+
createScrollSteps,
|
|
86
|
+
createSplitText,
|
|
87
|
+
createStaggers,
|
|
88
|
+
createSvgIconStates,
|
|
89
|
+
createSvgLineDraws,
|
|
90
|
+
createSvgOrbits,
|
|
91
|
+
createSvgPathMorphs,
|
|
92
|
+
createSvgSignatureReveals,
|
|
93
|
+
createTextHighlightSweeps,
|
|
94
|
+
createTypewriterAnnouncements,
|
|
95
|
+
createValueCounters,
|
|
96
|
+
createVideoPosterPlayers,
|
|
97
|
+
defaults,
|
|
98
|
+
setActiveState
|
|
99
|
+
} from "./chunk-JET2MYEG.js";
|
|
100
|
+
|
|
101
|
+
// src/full.js
|
|
102
|
+
function createSyncedMotion2(options = {}) {
|
|
103
|
+
return createSyncedMotion({
|
|
104
|
+
...options,
|
|
105
|
+
dependencies: { ...motionPlugins, ...options.dependencies }
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function createDefaultMotionRuntime2(options = {}) {
|
|
109
|
+
return createDefaultMotionRuntime({
|
|
110
|
+
...options,
|
|
111
|
+
dependencies: { ...motionPlugins, ...options.dependencies }
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
export {
|
|
115
|
+
MOTION_RECIPE_SCHEMA_VERSION,
|
|
116
|
+
MOTION_TRIGGER_TYPES,
|
|
117
|
+
MotionRecipeValidationError,
|
|
118
|
+
OPTIONAL_MOTION_PLUGINS,
|
|
119
|
+
builtinMotionRecipes,
|
|
120
|
+
builtinMotionSpecs,
|
|
121
|
+
clampIndex,
|
|
122
|
+
coerceMotionParameter,
|
|
123
|
+
compileMotionRecipe,
|
|
124
|
+
createAccordionDisclosures,
|
|
125
|
+
createAmbientFloats,
|
|
126
|
+
createBuiltinMotionRegistry,
|
|
127
|
+
createCharacterShimmers,
|
|
128
|
+
createClipWipeReveals,
|
|
129
|
+
createCommandPalettes,
|
|
130
|
+
createDefaultMotionRuntime2 as createDefaultMotionRuntime,
|
|
131
|
+
createDefaultMotionService,
|
|
132
|
+
createDialogOverlays,
|
|
133
|
+
createDirectionalReveals,
|
|
134
|
+
createExpandPanels,
|
|
135
|
+
createFlipCardDetails,
|
|
136
|
+
createFlipFilterGrids,
|
|
137
|
+
createFlipListReorders,
|
|
138
|
+
createFlipNavIndicators,
|
|
139
|
+
createFounderScenes,
|
|
140
|
+
createHorizontalComparisonSliders,
|
|
141
|
+
createHorizontalFeatureRails,
|
|
142
|
+
createHorizontalGalleryScrubs,
|
|
143
|
+
createHorizontalGallerySnaps,
|
|
144
|
+
createHorizontalLogoReels,
|
|
145
|
+
createHoverLifts,
|
|
146
|
+
createHoverMedia,
|
|
147
|
+
createImageFocusPans,
|
|
148
|
+
createLayoutAccordionGrids,
|
|
149
|
+
createLenisAdapter,
|
|
150
|
+
createLoopingLogoBelts,
|
|
151
|
+
createMagneticActions,
|
|
152
|
+
createMarquees,
|
|
153
|
+
createMediaClipReveals,
|
|
154
|
+
createMediaCurtainSplits,
|
|
155
|
+
createMediaExpansions,
|
|
156
|
+
createMenus,
|
|
157
|
+
createMotionInspector,
|
|
158
|
+
createMotionRegistry,
|
|
159
|
+
createMotionRuntime,
|
|
160
|
+
createMotionService,
|
|
161
|
+
createNavActiveIndicators,
|
|
162
|
+
createPageLoadBrandMarks,
|
|
163
|
+
createPageLoadHeroes,
|
|
164
|
+
createParallax,
|
|
165
|
+
createPinnedChapterCrossfades,
|
|
166
|
+
createPinnedProductExplainers,
|
|
167
|
+
createPointerSpotlights,
|
|
168
|
+
createProgressRings,
|
|
169
|
+
createReveals,
|
|
170
|
+
createRouteFades,
|
|
171
|
+
createRouteScrollRestores,
|
|
172
|
+
createRouteSharedMedia,
|
|
173
|
+
createRuntimeMotionRegistry,
|
|
174
|
+
createScaleReveals,
|
|
175
|
+
createScrollDepthStacks,
|
|
176
|
+
createScrollDrifts,
|
|
177
|
+
createScrollExits,
|
|
178
|
+
createScrollProgressMeters,
|
|
179
|
+
createScrollStatements,
|
|
180
|
+
createScrollSteps,
|
|
181
|
+
createSplitText,
|
|
182
|
+
createStaggers,
|
|
183
|
+
createSvgIconStates,
|
|
184
|
+
createSvgLineDraws,
|
|
185
|
+
createSvgOrbits,
|
|
186
|
+
createSvgPathMorphs,
|
|
187
|
+
createSvgSignatureReveals,
|
|
188
|
+
createSyncedMotion2 as createSyncedMotion,
|
|
189
|
+
createTextHighlightSweeps,
|
|
190
|
+
createTypewriterAnnouncements,
|
|
191
|
+
createValueCounters,
|
|
192
|
+
createVideoPosterPlayers,
|
|
193
|
+
defaults,
|
|
194
|
+
defineMotionRecipe,
|
|
195
|
+
filterMotionCatalog,
|
|
196
|
+
motionPlugins,
|
|
197
|
+
resolveMotionRecipes,
|
|
198
|
+
setActiveState,
|
|
199
|
+
validateMotionRecipe
|
|
200
|
+
};
|
|
201
|
+
//# sourceMappingURL=full.js.map
|
package/dist/full.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/full.js"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,SAASA,oBAAmB,UAAU,CAAC,GAAG;AAC/C,SAAO,mBAAuB;AAAA,IAC5B,GAAG;AAAA,IACH,cAAc,EAAE,GAAG,eAAe,GAAG,QAAQ,aAAa;AAAA,EAC5D,CAAC;AACH;AAEO,SAASC,4BAA2B,UAAU,CAAC,GAAG;AACvD,SAAO,2BAA+B;AAAA,IACpC,GAAG;AAAA,IACH,cAAc,EAAE,GAAG,eAAe,GAAG,QAAQ,aAAa;AAAA,EAC5D,CAAC;AACH;","names":["createSyncedMotion","createDefaultMotionRuntime"]}
|