@dnyantra/dtly 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +21 -8
  2. package/dist/agents.d.ts +1 -0
  3. package/dist/agents.js +9 -4
  4. package/dist/agents.js.map +1 -1
  5. package/dist/cli.js +35 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/core/anim.js +20 -0
  8. package/dist/core/anim.js.map +1 -1
  9. package/dist/core/captions.d.ts +13 -0
  10. package/dist/core/captions.js +57 -0
  11. package/dist/core/captions.js.map +1 -0
  12. package/dist/core/geo.d.ts +13 -0
  13. package/dist/core/geo.js +41 -0
  14. package/dist/core/geo.js.map +1 -0
  15. package/dist/core/model.d.ts +112 -9
  16. package/dist/core/model.js.map +1 -1
  17. package/dist/core/path.d.ts +35 -0
  18. package/dist/core/path.js +324 -0
  19. package/dist/core/path.js.map +1 -0
  20. package/dist/core/svg.d.ts +22 -0
  21. package/dist/core/svg.js +217 -0
  22. package/dist/core/svg.js.map +1 -0
  23. package/dist/core/text.d.ts +3 -1
  24. package/dist/core/text.js +49 -3
  25. package/dist/core/text.js.map +1 -1
  26. package/dist/mcp/server.js +28 -1
  27. package/dist/mcp/server.js.map +1 -1
  28. package/dist/ops/ops.d.ts +7 -0
  29. package/dist/ops/ops.js +11 -1
  30. package/dist/ops/ops.js.map +1 -1
  31. package/dist/presets/app.d.ts +2 -0
  32. package/dist/presets/app.js +82 -0
  33. package/dist/presets/app.js.map +1 -0
  34. package/dist/presets/captions.d.ts +2 -0
  35. package/dist/presets/captions.js +48 -0
  36. package/dist/presets/captions.js.map +1 -0
  37. package/dist/presets/charts.d.ts +2 -0
  38. package/dist/presets/charts.js +162 -0
  39. package/dist/presets/charts.js.map +1 -0
  40. package/dist/presets/index.d.ts +1 -1
  41. package/dist/presets/index.js +62 -1
  42. package/dist/presets/index.js.map +1 -1
  43. package/dist/presets/maps.d.ts +2 -0
  44. package/dist/presets/maps.js +79 -0
  45. package/dist/presets/maps.js.map +1 -0
  46. package/dist/render/fx.d.ts +11 -0
  47. package/dist/render/fx.js +87 -0
  48. package/dist/render/fx.js.map +1 -0
  49. package/dist/render/grade.d.ts +20 -0
  50. package/dist/render/grade.js +178 -0
  51. package/dist/render/grade.js.map +1 -0
  52. package/dist/render/lottie.d.ts +36 -0
  53. package/dist/render/lottie.js +523 -0
  54. package/dist/render/lottie.js.map +1 -0
  55. package/dist/render/node-host.d.ts +1 -0
  56. package/dist/render/node-host.js +15 -4
  57. package/dist/render/node-host.js.map +1 -1
  58. package/dist/render/perspective.d.ts +5 -0
  59. package/dist/render/perspective.js +71 -0
  60. package/dist/render/perspective.js.map +1 -0
  61. package/dist/render/renderer.d.ts +6 -0
  62. package/dist/render/renderer.js +156 -95
  63. package/dist/render/renderer.js.map +1 -1
  64. package/dist/render/shapes.d.ts +6 -0
  65. package/dist/render/shapes.js +129 -0
  66. package/dist/render/shapes.js.map +1 -0
  67. package/dist/render/tiles.d.ts +11 -0
  68. package/dist/render/tiles.js +42 -0
  69. package/dist/render/tiles.js.map +1 -0
  70. package/dist/render/transcribe.d.ts +14 -0
  71. package/dist/render/transcribe.js +55 -0
  72. package/dist/render/transcribe.js.map +1 -0
  73. package/dist/studio/server.js +14 -1
  74. package/dist/studio/server.js.map +1 -1
  75. package/dist/studio-app/app.js +5 -4
  76. package/dist/studio-app/app.js.map +4 -4
  77. package/dist/version.d.ts +1 -1
  78. package/dist/version.js +1 -1
  79. package/package.json +1 -1
  80. package/plugin/skills/{dtly → moti}/SKILL.md +26 -6
@@ -0,0 +1,48 @@
1
+ // Captions preset: short-form style captions with the spoken word highlighted.
2
+ import { cuesToWords, paginate, parseSubtitles } from '../core/captions.js';
3
+ import { addLayer, getComp } from '../ops/ops.js';
4
+ const n = (v, d) => (typeof v === 'number' ? v : d);
5
+ const s = (v, d) => (typeof v === 'string' ? v : d);
6
+ const r3 = (t) => Math.round(t * 1000) / 1000;
7
+ export const CAPTION_PRESETS = {
8
+ 'captions.add': {
9
+ kind: 'captions',
10
+ description: 'Captions with the current word highlighted (Reels/Shorts style), from word timings, cues or SRT/VTT text. Pages of a few words appear in sync; every page is an editable text layer.',
11
+ params: '{words?: [{text, start, end}], cues?: [{start, end, text}], srt?: string (SRT or VTT text), offset?: s, maxWords?: 4, maxChars?: 22, position?: [x,y] (default lower third), size?, color?, highlight?: colour, mode?: "current"|"spoken", box?: highlight plate colour, plate?: colour behind the whole line, uppercase?: boolean, style?: "pop"|"fade"|"none", font?, name?}',
12
+ apply: (p, compId, o) => {
13
+ const comp = getComp(p, compId);
14
+ let words = o.words ?? [];
15
+ if (!words.length) {
16
+ const cues = o.cues ?? (typeof o.srt === 'string' ? parseSubtitles(o.srt) : []);
17
+ words = cuesToWords(cues);
18
+ }
19
+ if (!words.length)
20
+ throw new Error('No captions: pass words, cues or srt');
21
+ const off = n(o.offset, 0);
22
+ const pages = paginate(words.map((w) => ({ ...w, start: w.start + off, end: w.end + off })), n(o.maxWords, 4), n(o.maxChars, 22));
23
+ const pos = o.position ?? [comp.width / 2, comp.height * 0.72];
24
+ const size = n(o.size, Math.round(comp.width / 13));
25
+ const style = s(o.style, 'pop');
26
+ const created = [];
27
+ pages.forEach((page, i) => {
28
+ const start = page[0].start, next = pages[i + 1]?.[0].start;
29
+ const end = Math.min(next ?? Infinity, page[page.length - 1].end + 0.35);
30
+ const text = page.map((w) => (o.uppercase ? w.text.toUpperCase() : w.text)).join(' ');
31
+ const layer = addLayer(p, comp.id, {
32
+ type: 'text', name: `${s(o.name, 'caption')}-${i + 1}`, text, size, weight: 800, color: s(o.color, '#ffffff'), font: o.font,
33
+ inPoint: r3(start), outPoint: r3(Math.max(end, start + 0.3)), maxWidth: comp.width * 0.86,
34
+ transform: { position: pos },
35
+ stroke: { color: '#000000', width: Math.max(4, Math.round(size * 0.1)) },
36
+ ...(o.plate ? { box: { color: s(o.plate, '#000000aa'), padding: [Math.round(size * 0.35), Math.round(size * 0.18)], radius: Math.round(size * 0.25) } } : {}),
37
+ karaoke: { words: page.map((w) => [r3(w.start), r3(w.end)]), color: s(o.highlight, '#FFC93C'), mode: o.mode === 'spoken' ? 'spoken' : 'current', ...(o.box ? { box: s(o.box, '#E8692A') } : {}) },
38
+ animators: style === 'none' ? [] : style === 'fade'
39
+ ? [{ unit: 'line', duration: 0.18, ease: 'easeOut', from: { opacity: 0 } }]
40
+ : [{ unit: 'word', stagger: 0.04, duration: 0.22, ease: 'backOut', from: { opacity: 0, scale: 70 } }],
41
+ }, 0);
42
+ created.push(layer.id);
43
+ });
44
+ return { created, note: `${pages.length} caption pages from ${words.length} words` };
45
+ },
46
+ },
47
+ };
48
+ //# sourceMappingURL=captions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captions.js","sourceRoot":"","sources":["../../src/presets/captions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Preset } from './index.js';
2
+ export declare const CHART_PRESETS: Record<string, Preset>;
@@ -0,0 +1,162 @@
1
+ import { addLayer, getComp } from '../ops/ops.js';
2
+ const PALETTE = ['#E8692A', '#FFC93C', '#4DA3FF', '#5FB3A0', '#C78BC0', '#E5534B', '#9BD35A', '#F28FB0'];
3
+ const r3 = (t) => Math.round(t * 1000) / 1000;
4
+ const kf = (...k) => ({ keyframes: k.map(([t, v, ease]) => (ease ? { t: r3(t), v, ease } : { t: r3(t), v })) });
5
+ const n = (v, d) => (typeof v === 'number' ? v : d);
6
+ const s = (v, d) => (typeof v === 'string' ? v : d);
7
+ const fmtOf = (o) => ({ prefix: o.prefix, suffix: o.suffix, decimals: o.decimals, locale: o.locale });
8
+ // Adds layers in stacking order (first = top) and returns their ids.
9
+ const build = (p, compId, group, parts) => {
10
+ const g = addLayer(p, compId, group, 0);
11
+ const ids = [g.id];
12
+ [...parts].reverse().forEach((l) => ids.push(addLayer(p, compId, { ...l, parent: g.id }, 1).id));
13
+ return ids;
14
+ };
15
+ const data = (o) => (o.data ?? []).map((d) => (typeof d === 'number' ? { value: d } : d));
16
+ export const CHART_PRESETS = {
17
+ 'chart.bar': {
18
+ kind: 'chart',
19
+ description: 'Bar chart: bars grow from the baseline one after another while their values count up; labels underneath.',
20
+ params: '{data: [{label, value, color?}], position?: [x,y] (centre), size?: [w,h], start?: s, duration?: s, stagger?: s, color?, colors?: string[], max?, prefix?, suffix?, decimals?, locale? (en-IN), textColor?, showValues?: true, name?}',
21
+ apply: (p, compId, o) => {
22
+ const comp = getComp(p, compId);
23
+ const d = data(o), t0 = n(o.start, 0), dur = n(o.duration, 0.9), stg = n(o.stagger, 0.12);
24
+ const [W, H] = o.size ?? [comp.width * 0.8, comp.height * 0.3];
25
+ const max = n(o.max, Math.max(...d.map((x) => x.value), 1));
26
+ const gap = W / Math.max(1, d.length), barW = gap * 0.62, base = H / 2;
27
+ const fs = Math.round(Math.min(gap * 0.32, comp.width / 22));
28
+ const text = s(o.textColor, '#ffffff');
29
+ const parts = [{ type: 'shape', name: 'axis', shape: 'line', points: [[-W / 2, base], [W / 2, base]], stroke: text, strokeWidth: 3, transform: { anchor: [0, 0], position: [0, 0], opacity: 60 }, inPoint: t0, trim: { end: kf([t0, 0, 'expoOut'], [t0 + 0.6, 100]) } }];
30
+ d.forEach((x, i) => {
31
+ const h = (x.value / max) * H, cx = -W / 2 + gap * (i + 0.5), ts = t0 + 0.2 + i * stg;
32
+ const color = x.color ?? o.colors?.[i] ?? s(o.color, PALETTE[i % PALETTE.length]);
33
+ parts.push({ type: 'shape', name: `bar-${i + 1}`, shape: 'rect', size: [barW, h], radius: Math.min(12, barW / 6), fill: color, inPoint: t0,
34
+ transform: { anchor: [0, h / 2], position: [cx, base], scale: kf([ts, [100, 0], 'expoOut'], [ts + dur, [100, 100]]) } });
35
+ if (o.showValues !== false)
36
+ parts.push({ type: 'text', name: `value-${i + 1}`, text: '{value}', value: kf([ts, 0, 'expoOut'], [ts + dur, x.value]), format: fmtOf(o), size: fs, weight: 800, color: text, inPoint: t0,
37
+ transform: { position: [cx, base - h - fs * 0.8], opacity: kf([ts, 0], [ts + 0.25, 100]) } });
38
+ if (x.label)
39
+ parts.push({ type: 'text', name: `label-${i + 1}`, text: x.label, size: Math.round(fs * 0.8), weight: 600, color: text, inPoint: t0, maxWidth: gap * 0.95,
40
+ transform: { position: [cx, base + fs * 0.95] }, animators: [{ unit: 'line', delay: ts - t0, duration: 0.5, ease: 'cubicOut', from: { opacity: 0, y: 20 } }] });
41
+ });
42
+ return { created: build(p, compId, { type: 'null', name: s(o.name, 'bar-chart'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
43
+ },
44
+ },
45
+ 'chart.line': {
46
+ kind: 'chart',
47
+ description: 'Line chart: a smooth line draws on across the points, dots pop in as it passes them, an area fill fades in underneath.',
48
+ params: '{data: [{label?, value}] or numbers, position?, size?: [w,h], start?, duration?, color?, area?: true, showValues?: false, prefix?, suffix?, decimals?, locale?, textColor?, name?}',
49
+ apply: (p, compId, o) => {
50
+ const comp = getComp(p, compId);
51
+ const d = data(o), t0 = n(o.start, 0), dur = n(o.duration, 1.6), color = s(o.color, PALETTE[0]), text = s(o.textColor, '#ffffff');
52
+ const [W, H] = o.size ?? [comp.width * 0.8, comp.height * 0.28];
53
+ const max = n(o.max, Math.max(...d.map((x) => x.value), 1)), min = n(o.min, Math.min(0, ...d.map((x) => x.value)));
54
+ const pts = d.map((x, i) => [-W / 2 + (W * i) / Math.max(1, d.length - 1), H / 2 - ((x.value - min) / (max - min || 1)) * H]);
55
+ // Catmull-Rom → cubic bezier for a smooth line through every point.
56
+ let path = `M${pts[0][0]} ${pts[0][1]}`;
57
+ for (let i = 0; i < pts.length - 1; i++) {
58
+ const p0 = pts[i - 1] ?? pts[i], p1 = pts[i], p2 = pts[i + 1], p3 = pts[i + 2] ?? p2;
59
+ path += ` C${p1[0] + (p2[0] - p0[0]) / 6} ${p1[1] + (p2[1] - p0[1]) / 6} ${p2[0] - (p3[0] - p1[0]) / 6} ${p2[1] - (p3[1] - p1[1]) / 6} ${p2[0]} ${p2[1]}`;
60
+ }
61
+ const fs = Math.round(comp.width / 30);
62
+ const parts = [];
63
+ pts.forEach((pt, i) => {
64
+ const ts = t0 + (dur * i) / Math.max(1, pts.length - 1);
65
+ parts.push({ type: 'shape', name: `dot-${i + 1}`, shape: 'ellipse', size: [22, 22], fill: '#ffffff', stroke: color, strokeWidth: 6, inPoint: t0,
66
+ transform: { position: pt, scale: kf([ts - 0.05, [0, 0], 'backOut'], [ts + 0.35, [100, 100]]) } });
67
+ if (o.showValues)
68
+ parts.push({ type: 'text', name: `value-${i + 1}`, text: '{value}', value: d[i].value, format: fmtOf(o), size: fs, weight: 800, color: text, inPoint: r3(ts),
69
+ transform: { position: [pt[0], pt[1] - fs * 1.1] }, animators: [{ unit: 'line', duration: 0.4, ease: 'backOut', from: { opacity: 0, scale: 50 } }] });
70
+ if (d[i].label)
71
+ parts.push({ type: 'text', name: `label-${i + 1}`, text: d[i].label, size: Math.round(fs * 0.8), weight: 600, color: text, inPoint: t0,
72
+ transform: { position: [pt[0], H / 2 + fs * 1.2], opacity: kf([ts - 0.1, 0], [ts + 0.2, 70]) } });
73
+ });
74
+ parts.push({ type: 'shape', name: 'line', shape: 'path', path, stroke: color, strokeWidth: 8, transform: { anchor: [0, 0], position: [0, 0] }, inPoint: t0,
75
+ trim: { end: kf([t0, 0, 'easyEase'], [t0 + dur, 100]) } });
76
+ if (o.area !== false)
77
+ parts.push({ type: 'shape', name: 'area', shape: 'path', path: `${path} L${pts[pts.length - 1][0]} ${H / 2} L${pts[0][0]} ${H / 2} Z`, inPoint: t0,
78
+ fill: { linear: { from: [0, -H / 2], to: [0, H / 2], stops: [[0, `${color}88`], [1, `${color}00`]] } }, transform: { anchor: [0, 0], position: [0, 0] },
79
+ // Revealed left to right in step with the line drawing on.
80
+ masks: [{ shape: 'rect', rect: kf([t0, [-W / 2 - 10, -H, 0, H * 2], 'easyEase'], [t0 + dur, [-W / 2 - 10, -H, W + 20, H * 2]]) }] });
81
+ parts.push({ type: 'shape', name: 'axis', shape: 'line', points: [[-W / 2, H / 2], [W / 2, H / 2]], stroke: text, strokeWidth: 3, inPoint: t0, transform: { anchor: [0, 0], position: [0, 0], opacity: 50 }, trim: { end: kf([t0, 0, 'expoOut'], [t0 + 0.6, 100]) } });
82
+ return { created: build(p, compId, { type: 'null', name: s(o.name, 'line-chart'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
83
+ },
84
+ },
85
+ 'chart.donut': {
86
+ kind: 'chart',
87
+ description: 'Donut / pie chart: segments sweep round one after another; the centre shows the total (or a title) and a legend lists each part.',
88
+ params: '{data: [{label, value, color?}], position?, diameter?, thickness? (diameter/2 = pie), start?, duration?, stagger?, centerText?: string | "total", prefix?, suffix?, decimals?, locale?, legend?: true, textColor?, name?}',
89
+ apply: (p, compId, o) => {
90
+ const comp = getComp(p, compId);
91
+ const d = data(o), t0 = n(o.start, 0), dur = n(o.duration, 0.8), stg = n(o.stagger, 0.25), text = s(o.textColor, '#ffffff');
92
+ const D = n(o.diameter, comp.width * 0.55), th = Math.min(n(o.thickness, D * 0.18), D / 2);
93
+ const total = d.reduce((a, x) => a + x.value, 0) || 1;
94
+ const parts = [];
95
+ let acc = 0;
96
+ d.forEach((x, i) => {
97
+ const a0 = (acc / total) * 100, a1 = ((acc + x.value) / total) * 100, ts = t0 + i * stg;
98
+ acc += x.value;
99
+ parts.push({ type: 'shape', name: `segment-${i + 1}`, shape: 'ellipse', size: [D - th, D - th], stroke: x.color ?? PALETTE[i % PALETTE.length], strokeWidth: th, lineCap: 'butt', inPoint: t0,
100
+ trim: { start: a0, end: kf([ts, a0, 'cubicOut'], [ts + dur, a1]) }, transform: { position: [0, 0] } });
101
+ });
102
+ const centre = o.centerText ?? 'total';
103
+ if (centre && th < D / 2)
104
+ parts.unshift(centre === 'total'
105
+ ? { type: 'text', name: 'total', text: '{value}', value: kf([t0, 0, 'expoOut'], [t0 + stg * d.length + dur, total]), format: fmtOf(o), size: Math.round(D * 0.16), weight: 800, color: text, inPoint: t0, transform: { position: [0, 0] } }
106
+ : { type: 'text', name: 'center', text: String(centre), size: Math.round(D * 0.12), weight: 800, color: text, inPoint: t0, maxWidth: D - th * 2.2, transform: { position: [0, 0] }, animators: [{ unit: 'word', stagger: 0.08, duration: 0.5, ease: 'backOut', from: { opacity: 0, scale: 60 } }] });
107
+ if (o.legend !== false) {
108
+ const fs = Math.round(comp.width / 30), rowH = fs * 1.6;
109
+ d.forEach((x, i) => {
110
+ const y = D / 2 + fs * 2 + i * rowH, ts = t0 + i * stg;
111
+ parts.push({ type: 'shape', name: `legend-dot-${i + 1}`, shape: 'ellipse', size: [fs * 0.7, fs * 0.7], fill: x.color ?? PALETTE[i % PALETTE.length], inPoint: t0, transform: { position: [-D * 0.42, y], opacity: kf([ts, 0], [ts + 0.3, 100]) } });
112
+ parts.push({ type: 'text', name: `legend-${i + 1}`, text: `${x.label ?? `Part ${i + 1}`} · ${Math.round((x.value / total) * 100)}%`, size: fs, weight: 600, align: 'left', color: text, inPoint: t0,
113
+ transform: { position: [-D * 0.42 + fs, y] }, animators: [{ unit: 'line', delay: ts - t0, duration: 0.5, ease: 'cubicOut', from: { opacity: 0, x: -30 } }] });
114
+ });
115
+ }
116
+ return { created: build(p, compId, { type: 'null', name: s(o.name, 'donut-chart'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height * 0.42] } }, parts) };
117
+ },
118
+ },
119
+ 'chart.progress': {
120
+ kind: 'chart',
121
+ description: 'Progress ring (or bar) that fills to a percentage while the number counts up in the middle.',
122
+ params: '{value: 0-100, style?: "ring"|"bar", label?, position?, diameter? (ring) | size?: [w,h] (bar), thickness?, start?, duration?, color?, trackColor?, textColor?, name?}',
123
+ apply: (p, compId, o) => {
124
+ const comp = getComp(p, compId);
125
+ const v = n(o.value, 75), t0 = n(o.start, 0), dur = n(o.duration, 1.4), color = s(o.color, PALETTE[0]), track = s(o.trackColor, '#ffffff22'), text = s(o.textColor, '#ffffff');
126
+ const parts = [];
127
+ if (o.style === 'bar') {
128
+ const [W, H] = o.size ?? [comp.width * 0.75, 36];
129
+ parts.push({ type: 'text', name: 'percent', text: '{value}', value: kf([t0, 0, 'expoOut'], [t0 + dur, v]), format: { suffix: '%' }, size: Math.round(H * 1.6), weight: 800, align: 'right', color: text, inPoint: t0, transform: { position: [W / 2, -H * 1.6] } });
130
+ if (o.label)
131
+ parts.push({ type: 'text', name: 'label', text: String(o.label), size: Math.round(H * 1.1), weight: 600, align: 'left', color: text, inPoint: t0, transform: { position: [-W / 2, -H * 1.6] } });
132
+ parts.push({ type: 'shape', name: 'fill', shape: 'rect', size: [W, H], radius: H / 2, fill: color, inPoint: t0, transform: { anchor: [-W / 2, 0], position: [-W / 2, 0], scale: kf([t0, [0, 100], 'expoOut'], [t0 + dur, [v, 100]]) } });
133
+ parts.push({ type: 'shape', name: 'track', shape: 'rect', size: [W, H], radius: H / 2, fill: track, inPoint: t0, transform: { position: [0, 0] } });
134
+ }
135
+ else {
136
+ const D = n(o.diameter, comp.width * 0.5), th = n(o.thickness, D * 0.09);
137
+ parts.push({ type: 'text', name: 'percent', text: '{value}', value: kf([t0, 0, 'expoOut'], [t0 + dur, v]), format: { suffix: '%' }, size: Math.round(D * 0.24), weight: 800, color: text, inPoint: t0, transform: { position: [0, o.label ? -D * 0.05 : 0] } });
138
+ if (o.label)
139
+ parts.push({ type: 'text', name: 'label', text: String(o.label), size: Math.round(D * 0.08), weight: 600, color: text, inPoint: t0, maxWidth: D * 0.7, transform: { position: [0, D * 0.15] } });
140
+ parts.push({ type: 'shape', name: 'ring', shape: 'ellipse', size: [D, D], stroke: color, strokeWidth: th, inPoint: t0, trim: { end: kf([t0, 0, 'expoOut'], [t0 + dur, v]) }, transform: { position: [0, 0] } });
141
+ parts.push({ type: 'shape', name: 'track', shape: 'ellipse', size: [D, D], stroke: track, strokeWidth: th, inPoint: t0, transform: { position: [0, 0] } });
142
+ }
143
+ return { created: build(p, compId, { type: 'null', name: s(o.name, 'progress'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
144
+ },
145
+ },
146
+ 'element.counter': {
147
+ kind: 'element',
148
+ description: 'A big number that counts up (₹4,999 · 10,000+ customers · 98%), with an optional caption under it.',
149
+ params: '{to: number, from?: 0, start?, duration?, prefix?, suffix?, decimals?, locale? (en-IN groups as 1,00,000), label?, size?, color?, labelColor?, position?, name?}',
150
+ apply: (p, compId, o) => {
151
+ const comp = getComp(p, compId);
152
+ const t0 = n(o.start, 0), dur = n(o.duration, 1.5), size = n(o.size, Math.round(comp.width / 6));
153
+ const parts = [{ type: 'text', name: 'number', text: '{value}', value: kf([t0, n(o.from, 0), 'expoOut'], [t0 + dur, n(o.to, 100)]), format: fmtOf(o), size, weight: 800, color: s(o.color, '#ffffff'), inPoint: t0,
154
+ transform: { position: [0, 0], scale: kf([t0, [70, 70], 'backOut'], [t0 + 0.5, [100, 100]]) }, animators: [{ unit: 'line', duration: 0.3, from: { opacity: 0 } }] }];
155
+ if (o.label)
156
+ parts.push({ type: 'text', name: 'caption', text: String(o.label), size: Math.round(size * 0.32), weight: 600, color: s(o.labelColor, '#ffffffcc'), inPoint: t0, maxWidth: comp.width * 0.8,
157
+ transform: { position: [0, size * 0.85] }, animators: [{ unit: 'word', delay: 0.3, stagger: 0.06, duration: 0.5, ease: 'cubicOut', from: { opacity: 0, y: 24 } }] });
158
+ return { created: build(p, compId, { type: 'null', name: s(o.name, 'counter'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
159
+ },
160
+ },
161
+ };
162
+ //# sourceMappingURL=charts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/presets/charts.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Project } from '../core/model.js';
2
2
  type Params = Record<string, unknown>;
3
3
  export interface Preset {
4
- kind: 'text' | 'kinetic' | 'opener' | 'slides' | 'transition' | 'element';
4
+ kind: 'text' | 'kinetic' | 'opener' | 'slides' | 'transition' | 'element' | 'chart' | 'overlay' | 'map' | 'captions';
5
5
  description: string;
6
6
  params: string;
7
7
  apply: (p: Project, comp: string | undefined, params: Params) => {
@@ -1,5 +1,9 @@
1
1
  import { addLayer, findLayer, getComp, OpError, setKeyframe, updateLayer } from '../ops/ops.js';
2
2
  import { TEXT_ANIMATORS } from './text.js';
3
+ import { CHART_PRESETS } from './charts.js';
4
+ import { APP_PRESETS } from './app.js';
5
+ import { CAPTION_PRESETS } from './captions.js';
6
+ import { MAP_PRESETS } from './maps.js';
3
7
  const num = (v, d) => (typeof v === 'number' ? v : d);
4
8
  const str = (v, d) => (typeof v === 'string' ? v : d);
5
9
  const r3 = (t) => Math.round(t * 1000) / 1000;
@@ -149,7 +153,7 @@ PRESETS['slides.slideshow'] = {
149
153
  PRESETS['transition.between'] = {
150
154
  kind: 'transition',
151
155
  description: 'Animates two overlapping layers (clips, images or precomps) so one hands over to the other at the overlap.',
152
- params: '{from: layerId (outgoing), to: layerId (incoming, must start before `from` ends), type: "push"|"crossfade"|"zoom"|"wipe"|"whip"|"slideUp", duration?: s}',
156
+ params: '{from: layerId (outgoing), to: layerId (incoming, must start before `from` ends), type: "push"|"crossfade"|"zoom"|"wipe"|"whip"|"slideUp"|"glitch"|"rgbWhip"|"warp"|"flash", duration?: s}',
153
157
  apply: (p, compId, o) => {
154
158
  const a = findLayer(p, str(o.from, '')), b = findLayer(p, str(o.to, ''));
155
159
  const comp = a.comp;
@@ -189,6 +193,36 @@ PRESETS['transition.between'] = {
189
193
  for (const id of [a.layer.id, b.layer.id])
190
194
  updateLayer(p, id, { motionBlur: { samples: 12, shutter: 360 } });
191
195
  break;
196
+ case 'glitch': {
197
+ // Hard cut in the middle of a burst of digital glitching.
198
+ const mid = r3(t1 + d / 2);
199
+ addFx(p, a.layer.id, { type: 'glitch', amount: kf([t1, 0], [mid, 100]) });
200
+ addFx(p, b.layer.id, { type: 'glitch', amount: kf([mid, 100], [t2, 0]) });
201
+ setKeyframe(p, b.layer.id, 'transform.opacity', t1, 0, 'hold');
202
+ setKeyframe(p, b.layer.id, 'transform.opacity', mid, 100);
203
+ break;
204
+ }
205
+ case 'rgbWhip':
206
+ pos(a.layer.id, [t1, center, 'expoIn'], [t2, [-W / 2, H / 2]]);
207
+ pos(b.layer.id, [t1, [W * 1.5, H / 2], 'expoOut'], [t2, center]);
208
+ for (const id of [a.layer.id, b.layer.id]) {
209
+ updateLayer(p, id, { motionBlur: { samples: 10, shutter: 270 } });
210
+ addFx(p, id, { type: 'rgbSplit', amount: kf([t1, 0, 'easeIn'], [r3(t1 + d / 2), 40, 'easeOut'], [t2, 0]) });
211
+ }
212
+ break;
213
+ case 'warp': {
214
+ const mid = r3(t1 + d / 2);
215
+ addFx(p, a.layer.id, { type: 'wave', amplitude: kf([t1, 0, 'easeIn'], [t2, 80]), wavelength: 260, speed: 2 });
216
+ addFx(p, b.layer.id, { type: 'wave', amplitude: kf([t1, 80, 'easeOut'], [t2, 0]), wavelength: 260, speed: 2 });
217
+ setKeyframe(p, b.layer.id, 'transform.opacity', t1, 0, 'easyEase');
218
+ setKeyframe(p, b.layer.id, 'transform.opacity', mid, 100);
219
+ break;
220
+ }
221
+ case 'flash':
222
+ setKeyframe(p, b.layer.id, 'transform.opacity', t1, 0, 'hold');
223
+ setKeyframe(p, b.layer.id, 'transform.opacity', r3(t1 + d / 2), 100);
224
+ PRESETS['overlay.lightLeak'].apply(p, comp.id, { start: t1 - d * 0.2, duration: d * 1.6, intensity: 100 });
225
+ break;
192
226
  default: // push
193
227
  pos(a.layer.id, [t1, center, 'expoInOut'], [t2, [-W / 2, H / 2]]);
194
228
  pos(b.layer.id, [t1, [W * 1.5, H / 2], 'expoInOut'], [t2, center]);
@@ -196,6 +230,32 @@ PRESETS['transition.between'] = {
196
230
  return { created: [], note: `${type} from ${a.layer.id} to ${b.layer.id} at ${t1}s–${t2}s` };
197
231
  },
198
232
  };
233
+ const addFx = (p, id, e) => {
234
+ const { layer } = findLayer(p, id);
235
+ layer.effects = [...(layer.effects ?? []), e];
236
+ };
237
+ PRESETS['overlay.lightLeak'] = {
238
+ kind: 'overlay',
239
+ description: 'Warm film light leak: soft glowing colour blobs drift across the frame (screen blend) — on cuts, openers or to add warmth.',
240
+ params: '{start?: s, duration?: s (default 1.2), colors?: string[], intensity?: 0-100 (default 80), direction?: "left"|"right"}',
241
+ apply: (p, compId, o) => {
242
+ const comp = getComp(p, compId);
243
+ const t0 = Math.max(0, num(o.start, 0)), d = num(o.duration, 1.2), peak = num(o.intensity, 80);
244
+ const colors = o.colors ?? ['#ff8a3d', '#ffd166', '#ff4f6d'];
245
+ const dir = o.direction === 'left' ? -1 : 1, W = comp.width, H = comp.height;
246
+ const created = [];
247
+ colors.forEach((c, i) => {
248
+ const r = Math.max(W, H) * (0.55 + i * 0.12);
249
+ const y = H * (0.25 + 0.3 * i);
250
+ created.push(addLayer(p, comp.id, { type: 'shape', name: `light-leak-${i + 1}`, shape: 'ellipse', size: [r * 2, r * 2], blendMode: 'screen',
251
+ fill: { radial: { center: [0, 0], radius: r, stops: [[0, `${c}ee`], [0.45, `${c}66`], [1, `${c}00`]] } },
252
+ inPoint: r3(t0), outPoint: r3(t0 + d),
253
+ transform: { position: kf([t0, [W / 2 - dir * W * (0.8 + i * 0.2), y], 'easyEase'], [t0 + d, [W / 2 + dir * W * (0.6 + i * 0.15), y + H * 0.1]]),
254
+ opacity: kf([t0, 0, 'easeOut'], [t0 + d * 0.4, peak, 'easeIn'], [t0 + d, 0]) } }, 0).id);
255
+ });
256
+ return { created };
257
+ },
258
+ };
199
259
  PRESETS['element.lowerThird'] = {
200
260
  kind: 'element',
201
261
  description: 'Lower third: an accent bar wipes in, then name and title slide out from behind it.',
@@ -231,5 +291,6 @@ PRESETS['element.highlightWord'] = {
231
291
  return { created: [] };
232
292
  },
233
293
  };
294
+ Object.assign(PRESETS, CHART_PRESETS, APP_PRESETS, CAPTION_PRESETS, MAP_PRESETS);
234
295
  export const listPresets = () => Object.entries(PRESETS).map(([name, p]) => `${name} [${p.kind}] — ${p.description}\n params: ${p.params}`).join('\n');
235
296
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Preset } from './index.js';
2
+ export declare const MAP_PRESETS: Record<string, Preset>;
@@ -0,0 +1,79 @@
1
+ // Map presets: an animated route from real coordinates, with pins, labels and a travelling marker.
2
+ import { distanceKm, fitView, viewToPx } from '../core/geo.js';
3
+ import { pointAt, parsePath } from '../core/path.js';
4
+ import { addLayer, getComp } from '../ops/ops.js';
5
+ const n = (v, d) => (typeof v === 'number' ? v : d);
6
+ const s = (v, d) => (typeof v === 'string' ? v : d);
7
+ const r3 = (t) => Math.round(t * 1000) / 1000;
8
+ const kf = (...k) => ({ keyframes: k.map(([t, v, ease]) => (ease ? { t: r3(t), v, ease } : { t: r3(t), v })) });
9
+ const PIN = 'M0 0 C-6 -10 -18 -16 -18 -28 C-18 -38 -10 -46 0 -46 C10 -46 18 -38 18 -28 C18 -16 6 -10 0 0 Z';
10
+ export const MAP_PRESETS = {
11
+ 'map.route': {
12
+ kind: 'map',
13
+ description: 'Animated map route from real coordinates: the path draws on, a marker travels along it, start/end pins drop in with labels. Optional real map background (see `dtly map-tiles`).',
14
+ params: '{route: [[lat, lon], ...], labels?: string[] (one per point, "" to skip), start?, duration?, color?, width?, dashed?: boolean, smooth?: true, marker?: "dot"|"pin"|"none", background?: {src, bounds: [[latNW, lonNW], [latSE, lonSE]]}, size?: [w,h], position?, pinColor?, labelColor?, showDistance?: boolean, name?}',
15
+ apply: (p, compId, o) => {
16
+ const comp = getComp(p, compId);
17
+ const route = o.route ?? [];
18
+ if (route.length < 2)
19
+ throw new Error('map.route needs at least two [lat, lon] points');
20
+ const bg = o.background;
21
+ const [W, H] = o.size ?? [comp.width, comp.height];
22
+ const toPx = bg ? viewToPx({ bounds: bg.bounds, size: [W, H] }) : fitView(route, W, H).toPx;
23
+ const pts = route.map((ll) => { const [x, y] = toPx(ll); return [x - W / 2, y - H / 2]; });
24
+ const t0 = n(o.start, 0), dur = n(o.duration, 3), color = s(o.color, '#E8692A'), lw = n(o.width, Math.round(comp.width / 90));
25
+ let d = `M${pts[0][0]} ${pts[0][1]}`;
26
+ if (o.smooth !== false && pts.length > 2) {
27
+ for (let i = 0; i < pts.length - 1; i++) {
28
+ const p0 = pts[i - 1] ?? pts[i], p1 = pts[i], p2 = pts[i + 1], p3 = pts[i + 2] ?? p2;
29
+ d += ` C${p1[0] + (p2[0] - p0[0]) / 6} ${p1[1] + (p2[1] - p0[1]) / 6} ${p2[0] - (p3[0] - p1[0]) / 6} ${p2[1] - (p3[1] - p1[1]) / 6} ${p2[0]} ${p2[1]}`;
30
+ }
31
+ }
32
+ else
33
+ for (const q of pts.slice(1))
34
+ d += ` L${q[0]} ${q[1]}`;
35
+ const created = [];
36
+ const group = addLayer(p, compId, { type: 'null', name: s(o.name, 'route'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, 0);
37
+ created.push(group.id);
38
+ const groupIndex = getComp(p, compId).layers.indexOf(group);
39
+ // Parts are added top-down, each directly below the previous one.
40
+ const add = (l) => created.push(addLayer(p, compId, { ...l, parent: group.id }, groupIndex + created.length).id);
41
+ const labels = o.labels ?? [];
42
+ const fs = Math.round(comp.width / 26);
43
+ // Pins and labels at each named stop (top of stack, added first).
44
+ pts.forEach((pt, i) => {
45
+ const isEnd = i === 0 || i === pts.length - 1;
46
+ if (!isEnd && !labels[i])
47
+ return;
48
+ const at = t0 + (i === 0 ? 0 : (dur * i) / (pts.length - 1));
49
+ if (labels[i])
50
+ add({ type: 'text', name: `label-${i + 1}`, text: labels[i], size: fs, weight: 800, color: s(o.labelColor, '#ffffff'), inPoint: r3(at),
51
+ box: { color: '#000000aa', padding: [Math.round(fs * 0.45), Math.round(fs * 0.2)], radius: Math.round(fs * 0.3) },
52
+ transform: { position: [pt[0], pt[1] - fs * 2.6] }, animators: [{ unit: 'line', duration: 0.4, ease: 'backOut', from: { opacity: 0, y: 30, scale: 80 } }] });
53
+ add({ type: 'shape', name: `pin-${i + 1}`, shape: 'path', path: PIN, fill: i === pts.length - 1 ? s(o.pinColor, color) : '#ffffff', stroke: '#00000066', strokeWidth: 2,
54
+ inPoint: r3(at), transform: { anchor: [0, 0], position: pt, scale: kf([at, [0, 0], 'backOut'], [at + 0.45, [100 * fs / 30, 100 * fs / 30]]) },
55
+ effects: [{ type: 'dropShadow', blur: 8, distance: 4, opacity: 40 }] });
56
+ });
57
+ // Travelling marker: position keyframes sampled along the path, in step with the draw-on.
58
+ if (o.marker !== 'none') {
59
+ const path = parsePath(d), N = 40;
60
+ const keys = Array.from({ length: N + 1 }, (_, k) => ({ t: r3(t0 + (dur * k) / N), v: pointAt(path, k / N).p }));
61
+ add({ type: 'shape', name: 'marker', shape: 'ellipse', size: [lw * 2.6, lw * 2.6], fill: '#ffffff', stroke: color, strokeWidth: lw * 0.6, inPoint: t0, outPoint: r3(t0 + dur + 0.2),
62
+ transform: { position: { keyframes: keys } }, effects: [{ type: 'glow', color, radius: 18, strength: 70 }] });
63
+ }
64
+ add({ type: 'shape', name: 'route-line', shape: 'path', path: d, stroke: color, strokeWidth: lw, ...(o.dashed ? { dash: [lw * 2, lw * 1.6], lineCap: 'butt' } : {}), inPoint: t0,
65
+ transform: { anchor: [0, 0], position: [0, 0] }, trim: { end: kf([t0, 0, 'linear'], [t0 + dur, 100]) } });
66
+ add({ type: 'shape', name: 'route-casing', shape: 'path', path: d, stroke: '#00000055', strokeWidth: lw * 1.9, inPoint: t0,
67
+ transform: { anchor: [0, 0], position: [0, 0] }, trim: { end: kf([t0, 0, 'linear'], [t0 + dur, 100]) } });
68
+ if (o.showDistance) {
69
+ const km = route.slice(1).reduce((a, q, i) => a + distanceKm(route[i], q), 0);
70
+ add({ type: 'text', name: 'distance', text: '{value}', value: kf([t0, 0], [t0 + dur, Math.round(km)]), format: { suffix: ' km' }, size: Math.round(fs * 1.4), weight: 800, color: s(o.labelColor, '#ffffff'), inPoint: t0,
71
+ box: { color: '#000000aa', padding: [fs * 0.5, fs * 0.25], radius: fs * 0.3 }, transform: { position: [0, H / 2 - fs * 4] } });
72
+ }
73
+ if (bg)
74
+ add({ type: 'image', name: 'map', src: bg.src, size: [W, H], fit: 'fill', inPoint: t0, transform: { position: [0, 0], anchor: [W / 2, H / 2] } });
75
+ return { created, note: bg ? 'Route drawn over the map image' : 'No background: add a map image (dtly map-tiles) or a solid underneath' };
76
+ },
77
+ },
78
+ };
79
+ //# sourceMappingURL=maps.js.map