@m0saic/templates 0.2.0 → 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.
- package/LICENSE +12 -12
- package/README.md +7 -7
- package/dist/m0saic/alpine/contributor-table/v1/assets/README.md +13 -13
- package/dist/m0saic/alpine/contributor-table/v1/assets/layout-lite.m0 +9 -9
- package/dist/m0saic/alpine/contributor-table/v1/assets/layout-standard.m0 +9 -9
- package/dist/m0saic/benchmark/battery/assets/media/README.md +16 -16
- package/dist/m0saic/benchmark/battery/assets/scenarios/duration-long.mosaic +80 -80
- package/dist/m0saic/benchmark/battery/assets/scenarios/encoders-base.mosaic +32 -32
- package/dist/m0saic/benchmark/battery/assets/scenarios/geometry-grid.mosaic +592 -592
- package/dist/m0saic/benchmark/battery/assets/scenarios/lifetime-window-fade.mosaic +28 -28
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-bar-graph.mosaic +1979 -1979
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-donut.mosaic +796 -796
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-screencap-grid.mosaic +4590 -4590
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-stat-card.mosaic +186 -186
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-audio.mosaic +31 -31
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-lavfi.mosaic +32 -32
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-media.mosaic +73 -73
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-nested.mosaic +48 -48
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-ref.mosaic +24 -24
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-text.mosaic +120 -120
- package/dist/m0saic/benchmark/report/v1/assets/sample-session/benchmark.json +41 -41
- package/dist/m0saic/brand/qr-stamp/assets/brand-qr-with-logo.svg +7 -7
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/bake-fin-qr.sh +11 -11
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-layout.m0p +5146 -5146
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/title-layout.m0p +130 -130
- package/dist/m0saic/media/blur-regions/v1/tutorial.d.ts +8 -1
- package/dist/m0saic/media/blur-regions/v1/tutorial.js +36 -7
- package/package.json +6 -6
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format": "m0p",
|
|
3
|
-
"version": 1,
|
|
4
|
-
"created": "2026-06-23T00:00:00.000Z",
|
|
5
|
-
"app": "@m0saic/templates",
|
|
6
|
-
"appVersion": null,
|
|
7
|
-
"meta": {
|
|
8
|
-
"title": "FFmpeg Weekly Pulse — title beat layout (3 aspects)"
|
|
9
|
-
},
|
|
10
|
-
"regions": null,
|
|
11
|
-
"custom": {
|
|
12
|
-
"source": "sandbox 2026-06-23-ffmpeg-pulse-title · human-approved, GCD-compacted desktop+square"
|
|
13
|
-
},
|
|
14
|
-
"variants": {
|
|
15
|
-
"desktop": {
|
|
16
|
-
"meta": null,
|
|
17
|
-
"size": {
|
|
18
|
-
"width": 1920,
|
|
19
|
-
"height": 1080
|
|
20
|
-
},
|
|
21
|
-
"m0": "54[0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,96(0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),-,0,0,0,0,0,0,48(0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),-,0,0,0,0,0,96(0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),-,0,0,0,0,96(0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,-,0,0,0,0,0,0,0,16(0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,1)]{9[0,-,96(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,-]}",
|
|
22
|
-
"labels": {
|
|
23
|
-
"r/gcolc17/fc15": {
|
|
24
|
-
"text": "Logo"
|
|
25
|
-
},
|
|
26
|
-
"r/gcolc25/fc28": {
|
|
27
|
-
"text": "Title"
|
|
28
|
-
},
|
|
29
|
-
"r/gcolc32/fc57": {
|
|
30
|
-
"text": "Subtitle"
|
|
31
|
-
},
|
|
32
|
-
"r/gcolc38/fc34": {
|
|
33
|
-
"text": "Date pill"
|
|
34
|
-
},
|
|
35
|
-
"r/gcolc38/fc44": {
|
|
36
|
-
"text": "Week pill"
|
|
37
|
-
},
|
|
38
|
-
"r/gcolc53/fc15": {
|
|
39
|
-
"text": "Watermark"
|
|
40
|
-
},
|
|
41
|
-
"r/ov1c0/gcolc2/fc40": {
|
|
42
|
-
"text": "Wordmark"
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"derive": {
|
|
46
|
-
"background": null
|
|
47
|
-
},
|
|
48
|
-
"masks": null,
|
|
49
|
-
"fill": null,
|
|
50
|
-
"rankSets": null,
|
|
51
|
-
"custom": null
|
|
52
|
-
},
|
|
53
|
-
"mobile": {
|
|
54
|
-
"meta": null,
|
|
55
|
-
"size": {
|
|
56
|
-
"width": 1080,
|
|
57
|
-
"height": 1920
|
|
58
|
-
},
|
|
59
|
-
"m0": "192[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-),0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-),0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,54(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-),0,0,-]{192[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,108(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-]}",
|
|
60
|
-
"labels": {
|
|
61
|
-
"r/gcolc101/fc31": {
|
|
62
|
-
"text": "Date pill"
|
|
63
|
-
},
|
|
64
|
-
"r/gcolc101/fc44": {
|
|
65
|
-
"text": "Week pill"
|
|
66
|
-
},
|
|
67
|
-
"r/gcolc188/fc49": {
|
|
68
|
-
"text": "Watermark"
|
|
69
|
-
},
|
|
70
|
-
"r/gcolc44/fc12": {
|
|
71
|
-
"text": "Logo"
|
|
72
|
-
},
|
|
73
|
-
"r/gcolc66/fc50": {
|
|
74
|
-
"text": "Title"
|
|
75
|
-
},
|
|
76
|
-
"r/gcolc85/fc48": {
|
|
77
|
-
"text": "Subtitle"
|
|
78
|
-
},
|
|
79
|
-
"r/ov1c0/gcolc43/fc76": {
|
|
80
|
-
"text": "Wordmark"
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
"derive": {
|
|
84
|
-
"background": null
|
|
85
|
-
},
|
|
86
|
-
"masks": null,
|
|
87
|
-
"fill": null,
|
|
88
|
-
"rankSets": null,
|
|
89
|
-
"custom": null
|
|
90
|
-
},
|
|
91
|
-
"square": {
|
|
92
|
-
"meta": null,
|
|
93
|
-
"size": {
|
|
94
|
-
"width": 1080,
|
|
95
|
-
"height": 1080
|
|
96
|
-
},
|
|
97
|
-
"m0": "108[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-),0,0,-,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-),0,0,-,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,54(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-),0,-]{216[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-]}",
|
|
98
|
-
"labels": {
|
|
99
|
-
"r/gcolc105/fc51": {
|
|
100
|
-
"text": "Watermark"
|
|
101
|
-
},
|
|
102
|
-
"r/gcolc35/fc12": {
|
|
103
|
-
"text": "Logo"
|
|
104
|
-
},
|
|
105
|
-
"r/gcolc52/fc50": {
|
|
106
|
-
"text": "Title"
|
|
107
|
-
},
|
|
108
|
-
"r/gcolc67/fc50": {
|
|
109
|
-
"text": "Subtitle"
|
|
110
|
-
},
|
|
111
|
-
"r/gcolc80/fc30": {
|
|
112
|
-
"text": "Date pill"
|
|
113
|
-
},
|
|
114
|
-
"r/gcolc80/fc41": {
|
|
115
|
-
"text": "Week pill"
|
|
116
|
-
},
|
|
117
|
-
"r/ov1c0/gcolc70/fc75": {
|
|
118
|
-
"text": "Wordmark"
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
"derive": {
|
|
122
|
-
"background": null
|
|
123
|
-
},
|
|
124
|
-
"masks": null,
|
|
125
|
-
"fill": null,
|
|
126
|
-
"rankSets": null,
|
|
127
|
-
"custom": null
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"format": "m0p",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"created": "2026-06-23T00:00:00.000Z",
|
|
5
|
+
"app": "@m0saic/templates",
|
|
6
|
+
"appVersion": null,
|
|
7
|
+
"meta": {
|
|
8
|
+
"title": "FFmpeg Weekly Pulse — title beat layout (3 aspects)"
|
|
9
|
+
},
|
|
10
|
+
"regions": null,
|
|
11
|
+
"custom": {
|
|
12
|
+
"source": "sandbox 2026-06-23-ffmpeg-pulse-title · human-approved, GCD-compacted desktop+square"
|
|
13
|
+
},
|
|
14
|
+
"variants": {
|
|
15
|
+
"desktop": {
|
|
16
|
+
"meta": null,
|
|
17
|
+
"size": {
|
|
18
|
+
"width": 1920,
|
|
19
|
+
"height": 1080
|
|
20
|
+
},
|
|
21
|
+
"m0": "54[0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,96(0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),-,0,0,0,0,0,0,48(0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),-,0,0,0,0,0,96(0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),-,0,0,0,0,96(0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,-,0,0,0,0,0,0,0,16(0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,1)]{9[0,-,96(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,-]}",
|
|
22
|
+
"labels": {
|
|
23
|
+
"r/gcolc17/fc15": {
|
|
24
|
+
"text": "Logo"
|
|
25
|
+
},
|
|
26
|
+
"r/gcolc25/fc28": {
|
|
27
|
+
"text": "Title"
|
|
28
|
+
},
|
|
29
|
+
"r/gcolc32/fc57": {
|
|
30
|
+
"text": "Subtitle"
|
|
31
|
+
},
|
|
32
|
+
"r/gcolc38/fc34": {
|
|
33
|
+
"text": "Date pill"
|
|
34
|
+
},
|
|
35
|
+
"r/gcolc38/fc44": {
|
|
36
|
+
"text": "Week pill"
|
|
37
|
+
},
|
|
38
|
+
"r/gcolc53/fc15": {
|
|
39
|
+
"text": "Watermark"
|
|
40
|
+
},
|
|
41
|
+
"r/ov1c0/gcolc2/fc40": {
|
|
42
|
+
"text": "Wordmark"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"derive": {
|
|
46
|
+
"background": null
|
|
47
|
+
},
|
|
48
|
+
"masks": null,
|
|
49
|
+
"fill": null,
|
|
50
|
+
"rankSets": null,
|
|
51
|
+
"custom": null
|
|
52
|
+
},
|
|
53
|
+
"mobile": {
|
|
54
|
+
"meta": null,
|
|
55
|
+
"size": {
|
|
56
|
+
"width": 1080,
|
|
57
|
+
"height": 1920
|
|
58
|
+
},
|
|
59
|
+
"m0": "192[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-),0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-),0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,54(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-),0,0,-]{192[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,108(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-]}",
|
|
60
|
+
"labels": {
|
|
61
|
+
"r/gcolc101/fc31": {
|
|
62
|
+
"text": "Date pill"
|
|
63
|
+
},
|
|
64
|
+
"r/gcolc101/fc44": {
|
|
65
|
+
"text": "Week pill"
|
|
66
|
+
},
|
|
67
|
+
"r/gcolc188/fc49": {
|
|
68
|
+
"text": "Watermark"
|
|
69
|
+
},
|
|
70
|
+
"r/gcolc44/fc12": {
|
|
71
|
+
"text": "Logo"
|
|
72
|
+
},
|
|
73
|
+
"r/gcolc66/fc50": {
|
|
74
|
+
"text": "Title"
|
|
75
|
+
},
|
|
76
|
+
"r/gcolc85/fc48": {
|
|
77
|
+
"text": "Subtitle"
|
|
78
|
+
},
|
|
79
|
+
"r/ov1c0/gcolc43/fc76": {
|
|
80
|
+
"text": "Wordmark"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"derive": {
|
|
84
|
+
"background": null
|
|
85
|
+
},
|
|
86
|
+
"masks": null,
|
|
87
|
+
"fill": null,
|
|
88
|
+
"rankSets": null,
|
|
89
|
+
"custom": null
|
|
90
|
+
},
|
|
91
|
+
"square": {
|
|
92
|
+
"meta": null,
|
|
93
|
+
"size": {
|
|
94
|
+
"width": 1080,
|
|
95
|
+
"height": 1080
|
|
96
|
+
},
|
|
97
|
+
"m0": "108[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-),0,0,-,0,0,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-),0,0,-,0,0,0,0,0,0,0,0,0,54(0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,54(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-),0,-]{216[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-]}",
|
|
98
|
+
"labels": {
|
|
99
|
+
"r/gcolc105/fc51": {
|
|
100
|
+
"text": "Watermark"
|
|
101
|
+
},
|
|
102
|
+
"r/gcolc35/fc12": {
|
|
103
|
+
"text": "Logo"
|
|
104
|
+
},
|
|
105
|
+
"r/gcolc52/fc50": {
|
|
106
|
+
"text": "Title"
|
|
107
|
+
},
|
|
108
|
+
"r/gcolc67/fc50": {
|
|
109
|
+
"text": "Subtitle"
|
|
110
|
+
},
|
|
111
|
+
"r/gcolc80/fc30": {
|
|
112
|
+
"text": "Date pill"
|
|
113
|
+
},
|
|
114
|
+
"r/gcolc80/fc41": {
|
|
115
|
+
"text": "Week pill"
|
|
116
|
+
},
|
|
117
|
+
"r/ov1c0/gcolc70/fc75": {
|
|
118
|
+
"text": "Wordmark"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"derive": {
|
|
122
|
+
"background": null
|
|
123
|
+
},
|
|
124
|
+
"masks": null,
|
|
125
|
+
"fill": null,
|
|
126
|
+
"rankSets": null,
|
|
127
|
+
"custom": null
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -8,10 +8,17 @@
|
|
|
8
8
|
* rounded cards, pill chips, one brand accent.
|
|
9
9
|
*
|
|
10
10
|
* RECORDING SEAM: the action beats carry founder-recorded Make captures
|
|
11
|
-
* (converted to small mp4s). `TUTORIAL_CLIPS` maps beat → {
|
|
11
|
+
* (converted to small mp4s). `TUTORIAL_CLIPS` maps beat → { file, durationMs };
|
|
12
12
|
* a clip becomes the beat's visual inside the window frame and the beat runs
|
|
13
13
|
* the clip's length. Beats without clips render their animated mocks. No fs
|
|
14
14
|
* probing — templates stay deterministic.
|
|
15
|
+
*
|
|
16
|
+
* The clips SHIP with the package (W4, 2026-09-27): they live under the
|
|
17
|
+
* package-root `assets/templates/<encoded id>/tutorial/`, the one tree every
|
|
18
|
+
* surface already carries — the web build mirrors it to `/template-assets/`,
|
|
19
|
+
* Desktop unpacks it from the asar and rebases the served URL to the file.
|
|
20
|
+
* Until then the paths pointed into the sandbox on the author's laptop, so
|
|
21
|
+
* the packaged app's tutorial played without them (first-user test).
|
|
15
22
|
*/
|
|
16
23
|
import type { MosaicDocumentPipeline, MosaicEngineContext } from "@m0saic/types";
|
|
17
24
|
/** Build the six-beat walkthrough (scrubbable; ~25s, longer when clips land). */
|
|
@@ -9,10 +9,17 @@
|
|
|
9
9
|
* rounded cards, pill chips, one brand accent.
|
|
10
10
|
*
|
|
11
11
|
* RECORDING SEAM: the action beats carry founder-recorded Make captures
|
|
12
|
-
* (converted to small mp4s). `TUTORIAL_CLIPS` maps beat → {
|
|
12
|
+
* (converted to small mp4s). `TUTORIAL_CLIPS` maps beat → { file, durationMs };
|
|
13
13
|
* a clip becomes the beat's visual inside the window frame and the beat runs
|
|
14
14
|
* the clip's length. Beats without clips render their animated mocks. No fs
|
|
15
15
|
* probing — templates stay deterministic.
|
|
16
|
+
*
|
|
17
|
+
* The clips SHIP with the package (W4, 2026-09-27): they live under the
|
|
18
|
+
* package-root `assets/templates/<encoded id>/tutorial/`, the one tree every
|
|
19
|
+
* surface already carries — the web build mirrors it to `/template-assets/`,
|
|
20
|
+
* Desktop unpacks it from the asar and rebases the served URL to the file.
|
|
21
|
+
* Until then the paths pointed into the sandbox on the author's laptop, so
|
|
22
|
+
* the packaged app's tutorial played without them (first-user test).
|
|
16
23
|
*/
|
|
17
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
25
|
exports.renderBlurRegionsTutorial = renderBlurRegionsTutorial;
|
|
@@ -20,13 +27,35 @@ const types_1 = require("@m0saic/types");
|
|
|
20
27
|
const template_utils_1 = require("@m0saic/template-utils");
|
|
21
28
|
const screencap_grid_cover_1 = require("../../screencap_grid/v2/screencap-grid-cover");
|
|
22
29
|
const TUTORIAL_FPS = 30;
|
|
23
|
-
const SR = "/Users/qusimone/src/m0saic/packages/sandbox/production/media-blur-regions-v1/fixtures/screen_recordings";
|
|
24
30
|
const TUTORIAL_CLIPS = {
|
|
25
|
-
draw: {
|
|
26
|
-
brush: {
|
|
27
|
-
inbox: {
|
|
28
|
-
chat: {
|
|
31
|
+
draw: { file: "invoice_sr.mp4", durationMs: 10483 },
|
|
32
|
+
brush: { file: "signed-letter_sr.mp4", durationMs: 7967 },
|
|
33
|
+
inbox: { file: "inbox_sr.mp4", durationMs: 17533 },
|
|
34
|
+
chat: { file: "chat_sr.mp4", durationMs: 13133 },
|
|
29
35
|
};
|
|
36
|
+
/** Where the clips ship, relative to the package root — the same tree the
|
|
37
|
+
* registered previews live in (`assets/templates/<encoded id>/`). */
|
|
38
|
+
const TUTORIAL_CLIP_DIR = "assets/templates/@m0saic__media__blur-regions__v1/tutorial";
|
|
39
|
+
/**
|
|
40
|
+
* The clip as an asset for THIS runtime — the pattern the Screencap Grid and
|
|
41
|
+
* Subtitle Burn covers ship with. Node (the CLI's `--tutorial`, electron
|
|
42
|
+
* main) reads the packaged file: this module sits five folders below the
|
|
43
|
+
* package root in both `src/` and `dist/`, and an asar path is rewritten to
|
|
44
|
+
* its unpacked twin inline (no node:path import — the browser bundle has
|
|
45
|
+
* none). The browser plays the same file through the served
|
|
46
|
+
* `/template-assets/` tree, which Desktop's host rebases to the file on disk.
|
|
47
|
+
*/
|
|
48
|
+
function tutorialClipAsset(clip) {
|
|
49
|
+
var _a;
|
|
50
|
+
const isNode = typeof process !== "undefined" && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);
|
|
51
|
+
if (!isNode)
|
|
52
|
+
return { kind: "url", url: `/template-assets/${TUTORIAL_CLIP_DIR}/${clip.file}`, mediaType: "video" };
|
|
53
|
+
const here = `${__dirname}`;
|
|
54
|
+
const unpacked = here.includes("/app.asar/")
|
|
55
|
+
? here.split("/app.asar/").join("/app.asar.unpacked/")
|
|
56
|
+
: here.split("\\app.asar\\").join("\\app.asar.unpacked\\");
|
|
57
|
+
return { kind: "file", path: `${unpacked}/../../../../../${TUTORIAL_CLIP_DIR}/${clip.file}`, mediaType: "video" };
|
|
58
|
+
}
|
|
30
59
|
// ---------------------------------------------------------------------------
|
|
31
60
|
// SaaS palette — deliberate single dark look (brand orange accent).
|
|
32
61
|
// ---------------------------------------------------------------------------
|
|
@@ -315,7 +344,7 @@ function beatVisual(spec, type) {
|
|
|
315
344
|
};
|
|
316
345
|
return {
|
|
317
346
|
comp: windowCard((0, screencap_grid_cover_1.onboardingLeaf)(media), { chrome: false }),
|
|
318
|
-
assets: { [assetId]:
|
|
347
|
+
assets: { [assetId]: tutorialClipAsset(clip) },
|
|
319
348
|
clipMs: clip.durationMs,
|
|
320
349
|
};
|
|
321
350
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m0saic/templates",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@m0saic/community-m": "^0.2.0",
|
|
32
|
-
"@m0saic/dictionary": "^0.
|
|
32
|
+
"@m0saic/dictionary": "^0.3.0",
|
|
33
33
|
"@m0saic/dsl": "^2.0.0",
|
|
34
34
|
"@m0saic/dsl-file-formats": "^2.0.0",
|
|
35
35
|
"@m0saic/dsl-stdlib": "^3.0.0",
|
|
36
|
-
"@m0saic/platform": "^0.
|
|
37
|
-
"@m0saic/template-utils": "^0.
|
|
38
|
-
"@m0saic/text": "^0.
|
|
39
|
-
"@m0saic/types": "^0.
|
|
36
|
+
"@m0saic/platform": "^0.3.0",
|
|
37
|
+
"@m0saic/template-utils": "^0.3.0",
|
|
38
|
+
"@m0saic/text": "^0.3.0",
|
|
39
|
+
"@m0saic/types": "^0.3.0",
|
|
40
40
|
"@resvg/resvg-wasm": "^2.6.2"
|
|
41
41
|
},
|
|
42
42
|
"files": [
|