loopwind 0.9.3 → 0.10.1
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/README.md +40 -48
- package/dist/commands/render.d.ts +1 -1
- package/dist/commands/render.d.ts.map +1 -1
- package/dist/commands/render.js +53 -26
- package/dist/commands/render.js.map +1 -1
- package/dist/default-templates/AGENTS.md +29 -29
- package/dist/default-templates/image-template/template.tsx +15 -0
- package/dist/default-templates/video-template/template.tsx +19 -0
- package/dist/default-templates/website-template/template.tsx +18 -0
- package/dist/lib/utils.d.ts +8 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +93 -42
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/video-renderer.d.ts +6 -0
- package/dist/lib/video-renderer.d.ts.map +1 -1
- package/dist/lib/video-renderer.js +69 -0
- package/dist/lib/video-renderer.js.map +1 -1
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +8 -8
- package/dist/sdk/index.js.map +1 -1
- package/package.json +2 -1
- package/test-templates/run-tests.sh +14 -9
- package/dist/default-templates/image/meta.json +0 -13
- package/dist/default-templates/image-template/meta.json +0 -13
- package/dist/default-templates/kitchen-sink/meta.json +0 -13
- package/dist/default-templates/page/meta.json +0 -17
- package/dist/default-templates/video/meta.json +0 -17
- package/dist/default-templates/video-template/meta.json +0 -17
- package/dist/default-templates/website/meta.json +0 -16
- package/dist/default-templates/website-template/meta.json +0 -16
- package/test-templates/compare-svgs.mjs +0 -30
- package/test-templates/convert-frames.mjs +0 -15
- package/test-templates/debug-rotation.mjs +0 -25
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { renderToSVG } from '../dist/lib/renderer.js';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
|
|
4
|
-
async function compare() {
|
|
5
|
-
console.log('=== MINIMAL-SPIN (works) ===\n');
|
|
6
|
-
|
|
7
|
-
for (let frame = 0; frame < 3; frame++) {
|
|
8
|
-
const progress = frame / 89;
|
|
9
|
-
const svg = await renderToSVG('minimal-spin', { frame, progress });
|
|
10
|
-
await fs.writeFile(`output/compare-minimal-${frame}.svg`, svg);
|
|
11
|
-
|
|
12
|
-
// Extract the transform from the blue square
|
|
13
|
-
const match = svg.match(/fill="#3b82f6"[^>]*transform="([^"]+)"/);
|
|
14
|
-
console.log(`Frame ${frame}: ${match ? match[1] : 'no transform'}`);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
console.log('\n=== CENTERED-SPIN (jitters) ===\n');
|
|
18
|
-
|
|
19
|
-
for (let frame = 0; frame < 3; frame++) {
|
|
20
|
-
const progress = frame / 89;
|
|
21
|
-
const svg = await renderToSVG('centered-spin', { frame, progress });
|
|
22
|
-
await fs.writeFile(`output/compare-centered-${frame}.svg`, svg);
|
|
23
|
-
|
|
24
|
-
// Extract the transform from the blue square
|
|
25
|
-
const match = svg.match(/fill="#3b82f6"[^>]*transform="([^"]+)"/);
|
|
26
|
-
console.log(`Frame ${frame}: ${match ? match[1] : 'no transform'}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
compare().catch(console.error);
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import sharp from 'sharp';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
|
|
4
|
-
async function convert() {
|
|
5
|
-
// Convert centered-spin SVG frames to PNG
|
|
6
|
-
for (let i = 0; i < 10; i++) {
|
|
7
|
-
const svg = await fs.readFile(`output/centered-frame-${i}.svg`);
|
|
8
|
-
await sharp(svg)
|
|
9
|
-
.png()
|
|
10
|
-
.toFile(`output/centered-frame-${i}.png`);
|
|
11
|
-
console.log(`Converted frame ${i}`);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
convert().catch(console.error);
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { renderToSVG } from '../dist/lib/renderer.js';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
|
|
4
|
-
async function debug() {
|
|
5
|
-
// Generate frames and diff
|
|
6
|
-
console.log('Generating centered-spin frames:\n');
|
|
7
|
-
|
|
8
|
-
for (let frame = 0; frame < 5; frame++) {
|
|
9
|
-
const progress = frame / 89;
|
|
10
|
-
const svg = await renderToSVG('centered-spin', { frame, progress });
|
|
11
|
-
await fs.writeFile(`output/centered-frame-${frame}.svg`, svg);
|
|
12
|
-
console.log(`Frame ${frame} saved`);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// Show the full SVG for frame 0 and 1
|
|
16
|
-
console.log('\n--- Frame 0 ---');
|
|
17
|
-
const svg0 = await fs.readFile('output/centered-frame-0.svg', 'utf-8');
|
|
18
|
-
console.log(svg0);
|
|
19
|
-
|
|
20
|
-
console.log('\n--- Frame 1 ---');
|
|
21
|
-
const svg1 = await fs.readFile('output/centered-frame-1.svg', 'utf-8');
|
|
22
|
-
console.log(svg1);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
debug().catch(console.error);
|