@jokerized/decksmith 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/README.md +794 -0
- package/dist/cli.js +8906 -0
- package/dist/deck-runtime.js +55 -0
- package/dist/index.js +8590 -0
- package/dist/mcp.js +7809 -0
- package/dist/server/errors.js +73 -0
- package/dist/server/http.js +504 -0
- package/dist/server/main.js +91 -0
- package/dist/server/options.js +198 -0
- package/dist/server/pipeline.js +356 -0
- package/dist/server/queue.js +195 -0
- package/dist/server/ui.js +1614 -0
- package/dist/server/upload.js +232 -0
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/deck/runtime.d.ts +59 -0
- package/dist/types/deck/subtitles.d.ts +101 -0
- package/dist/types/emit/archetypes/annotated-figure.d.ts +103 -0
- package/dist/types/emit/archetypes/bar-compare.d.ts +30 -0
- package/dist/types/emit/archetypes/callout.d.ts +7 -0
- package/dist/types/emit/archetypes/claim-figure.d.ts +9 -0
- package/dist/types/emit/archetypes/data-table.d.ts +21 -0
- package/dist/types/emit/archetypes/equation-walk.d.ts +2 -0
- package/dist/types/emit/archetypes/grid.d.ts +16 -0
- package/dist/types/emit/archetypes/index.d.ts +19 -0
- package/dist/types/emit/archetypes/line-chart.d.ts +22 -0
- package/dist/types/emit/archetypes/pipeline.d.ts +81 -0
- package/dist/types/emit/archetypes/split-compare.d.ts +2 -0
- package/dist/types/emit/archetypes/stack.d.ts +93 -0
- package/dist/types/emit/archetypes/title.d.ts +188 -0
- package/dist/types/emit/camera.d.ts +397 -0
- package/dist/types/emit/composition.d.ts +191 -0
- package/dist/types/emit/island.d.ts +19 -0
- package/dist/types/emit/kit.d.ts +256 -0
- package/dist/types/emit/svg.d.ts +177 -0
- package/dist/types/emit/theme.d.ts +65 -0
- package/dist/types/emit/themes/index.d.ts +40 -0
- package/dist/types/emit/themes/ink.d.ts +12 -0
- package/dist/types/emit/themes/mono.d.ts +20 -0
- package/dist/types/emit/themes/paper.d.ts +18 -0
- package/dist/types/index.d.ts +200 -0
- package/dist/types/mcp/main.d.ts +2 -0
- package/dist/types/mcp/prereqs.d.ts +22 -0
- package/dist/types/mcp/tools.d.ts +212 -0
- package/dist/types/narrate/narrate.d.ts +87 -0
- package/dist/types/narrate/tts.d.ts +134 -0
- package/dist/types/narrate/voices.d.ts +29 -0
- package/dist/types/pack/media.d.ts +61 -0
- package/dist/types/pack/pack.d.ts +16 -0
- package/dist/types/plan/codex.d.ts +24 -0
- package/dist/types/plan/duration.d.ts +394 -0
- package/dist/types/plan/prompt.d.ts +47 -0
- package/dist/types/plan/refs.d.ts +22 -0
- package/dist/types/plan/select.d.ts +116 -0
- package/dist/types/prefs.d.ts +43 -0
- package/dist/types/render/captions.d.ts +108 -0
- package/dist/types/render/ffmpeg.d.ts +129 -0
- package/dist/types/render/render.d.ts +123 -0
- package/dist/types/render/timing.d.ts +290 -0
- package/dist/types/server/errors.d.ts +11 -0
- package/dist/types/server/http.d.ts +57 -0
- package/dist/types/server/main.d.ts +1 -0
- package/dist/types/server/options.d.ts +90 -0
- package/dist/types/server/pipeline.d.ts +21 -0
- package/dist/types/server/queue.d.ts +105 -0
- package/dist/types/server/ui.d.ts +9 -0
- package/dist/types/server/upload.d.ts +107 -0
- package/dist/types/source/assets.d.ts +11 -0
- package/dist/types/source/fonts.d.ts +15 -0
- package/dist/types/source/markdown.d.ts +8 -0
- package/dist/types/types.d.ts +1992 -0
- package/dist/types/verify/budget.d.ts +41 -0
- package/dist/types/verify/check.d.ts +78 -0
- package/dist/types/verify/drift.d.ts +158 -0
- package/dist/types/verify/fidelity.d.ts +247 -0
- package/dist/types/verify/index.d.ts +207 -0
- package/dist/types/verify/overprint.d.ts +133 -0
- package/dist/types/verify/typefloor.d.ts +50 -0
- package/package.json +84 -0
|
@@ -0,0 +1,1992 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract every layer builds against.
|
|
3
|
+
*
|
|
4
|
+
* Two objects matter. `Source` is what ingestion produces: the document's
|
|
5
|
+
* structure with every asset addressable by id. `Storyboard` is what planning
|
|
6
|
+
* produces: an ordered list of beats, each accountable to something in the
|
|
7
|
+
* Source. Everything downstream is a projection of the Storyboard.
|
|
8
|
+
*
|
|
9
|
+
* The Storyboard describes pedagogy, not geometry. It carries no canvas size,
|
|
10
|
+
* no colours, no coordinates — those are decisions `emit` makes per format, so
|
|
11
|
+
* one storyboard can render as a 16:9 deck and a 9:16 short without replanning.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
/** A pointer back into the Source. Provenance is what makes a beat checkable. */
|
|
15
|
+
export declare const refSchema: z.ZodObject<{
|
|
16
|
+
kind: z.ZodEnum<{
|
|
17
|
+
figure: "figure";
|
|
18
|
+
equation: "equation";
|
|
19
|
+
table: "table";
|
|
20
|
+
section: "section";
|
|
21
|
+
}>;
|
|
22
|
+
id: z.ZodString;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export declare const figureSchema: z.ZodObject<{
|
|
25
|
+
id: z.ZodString;
|
|
26
|
+
src: z.ZodString;
|
|
27
|
+
caption: z.ZodString;
|
|
28
|
+
width: z.ZodInt;
|
|
29
|
+
height: z.ZodInt;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
export declare const equationSchema: z.ZodObject<{
|
|
32
|
+
id: z.ZodString;
|
|
33
|
+
tex: z.ZodString;
|
|
34
|
+
display: z.ZodBoolean;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const tableSchema: z.ZodObject<{
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
caption: z.ZodOptional<z.ZodString>;
|
|
39
|
+
columns: z.ZodArray<z.ZodString>;
|
|
40
|
+
rows: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export declare const sectionSchema: z.ZodObject<{
|
|
43
|
+
id: z.ZodString;
|
|
44
|
+
depth: z.ZodInt;
|
|
45
|
+
heading: z.ZodString;
|
|
46
|
+
text: z.ZodString;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export declare const sourceSchema: z.ZodObject<{
|
|
49
|
+
id: z.ZodString;
|
|
50
|
+
title: z.ZodString;
|
|
51
|
+
lang: z.ZodDefault<z.ZodString>;
|
|
52
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
53
|
+
id: z.ZodString;
|
|
54
|
+
depth: z.ZodInt;
|
|
55
|
+
heading: z.ZodString;
|
|
56
|
+
text: z.ZodString;
|
|
57
|
+
}, z.core.$strip>>;
|
|
58
|
+
figures: z.ZodArray<z.ZodObject<{
|
|
59
|
+
id: z.ZodString;
|
|
60
|
+
src: z.ZodString;
|
|
61
|
+
caption: z.ZodString;
|
|
62
|
+
width: z.ZodInt;
|
|
63
|
+
height: z.ZodInt;
|
|
64
|
+
}, z.core.$strip>>;
|
|
65
|
+
equations: z.ZodArray<z.ZodObject<{
|
|
66
|
+
id: z.ZodString;
|
|
67
|
+
tex: z.ZodString;
|
|
68
|
+
display: z.ZodBoolean;
|
|
69
|
+
}, z.core.$strip>>;
|
|
70
|
+
tables: z.ZodArray<z.ZodObject<{
|
|
71
|
+
id: z.ZodString;
|
|
72
|
+
caption: z.ZodOptional<z.ZodString>;
|
|
73
|
+
columns: z.ZodArray<z.ZodString>;
|
|
74
|
+
rows: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
75
|
+
}, z.core.$strip>>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
/**
|
|
78
|
+
* The explanatory vocabulary. Each archetype is one way of making a point, and
|
|
79
|
+
* maps to exactly one emitter. Adding a domain means adding archetypes here and
|
|
80
|
+
* an emitter beside it — nothing else in the pipeline learns about the domain.
|
|
81
|
+
*
|
|
82
|
+
* These six came out of hand-building a real deck (EXPERIMENT-002), not from
|
|
83
|
+
* guessing at what might be useful.
|
|
84
|
+
*/
|
|
85
|
+
/** One symbol in an equation, highlighted while it is explained. */
|
|
86
|
+
export declare const termSchema: z.ZodObject<{
|
|
87
|
+
tex: z.ZodString;
|
|
88
|
+
label: z.ZodString;
|
|
89
|
+
tone: z.ZodEnum<{
|
|
90
|
+
a: "a";
|
|
91
|
+
b: "b";
|
|
92
|
+
c: "c";
|
|
93
|
+
d: "d";
|
|
94
|
+
}>;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
export declare const titleParamsSchema: z.ZodObject<{
|
|
97
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
98
|
+
headline: z.ZodString;
|
|
99
|
+
sub: z.ZodOptional<z.ZodString>;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
export declare const claimFigureParamsSchema: z.ZodObject<{
|
|
102
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
103
|
+
headline: z.ZodString;
|
|
104
|
+
claim: z.ZodString;
|
|
105
|
+
figureId: z.ZodString;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export declare const equationWalkParamsSchema: z.ZodObject<{
|
|
108
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
109
|
+
headline: z.ZodString;
|
|
110
|
+
equationId: z.ZodString;
|
|
111
|
+
terms: z.ZodArray<z.ZodObject<{
|
|
112
|
+
tex: z.ZodString;
|
|
113
|
+
label: z.ZodString;
|
|
114
|
+
tone: z.ZodEnum<{
|
|
115
|
+
a: "a";
|
|
116
|
+
b: "b";
|
|
117
|
+
c: "c";
|
|
118
|
+
d: "d";
|
|
119
|
+
}>;
|
|
120
|
+
}, z.core.$strip>>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
export declare const dataTableParamsSchema: z.ZodObject<{
|
|
123
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
124
|
+
headline: z.ZodString;
|
|
125
|
+
tableId: z.ZodString;
|
|
126
|
+
highlight: z.ZodArray<z.ZodObject<{
|
|
127
|
+
row: z.ZodString;
|
|
128
|
+
tone: z.ZodEnum<{
|
|
129
|
+
a: "a";
|
|
130
|
+
b: "b";
|
|
131
|
+
c: "c";
|
|
132
|
+
d: "d";
|
|
133
|
+
}>;
|
|
134
|
+
}, z.core.$strip>>;
|
|
135
|
+
note: z.ZodOptional<z.ZodString>;
|
|
136
|
+
}, z.core.$strip>;
|
|
137
|
+
export declare const lineChartParamsSchema: z.ZodObject<{
|
|
138
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
139
|
+
headline: z.ZodString;
|
|
140
|
+
xLabel: z.ZodString;
|
|
141
|
+
yLabel: z.ZodString;
|
|
142
|
+
points: z.ZodArray<z.ZodObject<{
|
|
143
|
+
x: z.ZodString;
|
|
144
|
+
y: z.ZodNumber;
|
|
145
|
+
}, z.core.$strip>>;
|
|
146
|
+
deltas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
147
|
+
readout: z.ZodOptional<z.ZodString>;
|
|
148
|
+
}, z.core.$strip>;
|
|
149
|
+
export declare const calloutParamsSchema: z.ZodObject<{
|
|
150
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
151
|
+
headline: z.ZodString;
|
|
152
|
+
panels: z.ZodArray<z.ZodObject<{
|
|
153
|
+
label: z.ZodString;
|
|
154
|
+
lines: z.ZodArray<z.ZodString>;
|
|
155
|
+
}, z.core.$strip>>;
|
|
156
|
+
note: z.ZodOptional<z.ZodString>;
|
|
157
|
+
}, z.core.$strip>;
|
|
158
|
+
/** A labelled stage in a flow. */
|
|
159
|
+
export declare const stageSchema: z.ZodObject<{
|
|
160
|
+
label: z.ZodString;
|
|
161
|
+
note: z.ZodOptional<z.ZodString>;
|
|
162
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
163
|
+
a: "a";
|
|
164
|
+
b: "b";
|
|
165
|
+
c: "c";
|
|
166
|
+
d: "d";
|
|
167
|
+
}>>;
|
|
168
|
+
}, z.core.$strip>;
|
|
169
|
+
export declare const pipelineParamsSchema: z.ZodObject<{
|
|
170
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
171
|
+
headline: z.ZodString;
|
|
172
|
+
stages: z.ZodArray<z.ZodObject<{
|
|
173
|
+
label: z.ZodString;
|
|
174
|
+
note: z.ZodOptional<z.ZodString>;
|
|
175
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
176
|
+
a: "a";
|
|
177
|
+
b: "b";
|
|
178
|
+
c: "c";
|
|
179
|
+
d: "d";
|
|
180
|
+
}>>;
|
|
181
|
+
}, z.core.$strip>>;
|
|
182
|
+
loop: z.ZodOptional<z.ZodObject<{
|
|
183
|
+
from: z.ZodOptional<z.ZodInt>;
|
|
184
|
+
to: z.ZodInt;
|
|
185
|
+
label: z.ZodString;
|
|
186
|
+
}, z.core.$strip>>;
|
|
187
|
+
note: z.ZodOptional<z.ZodString>;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
export declare const annotatedFigureParamsSchema: z.ZodObject<{
|
|
190
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
191
|
+
headline: z.ZodString;
|
|
192
|
+
figureId: z.ZodString;
|
|
193
|
+
crop: z.ZodOptional<z.ZodObject<{
|
|
194
|
+
x: z.ZodNumber;
|
|
195
|
+
y: z.ZodNumber;
|
|
196
|
+
w: z.ZodNumber;
|
|
197
|
+
h: z.ZodNumber;
|
|
198
|
+
}, z.core.$strip>>;
|
|
199
|
+
notes: z.ZodArray<z.ZodObject<{
|
|
200
|
+
x: z.ZodNumber;
|
|
201
|
+
y: z.ZodNumber;
|
|
202
|
+
text: z.ZodString;
|
|
203
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
204
|
+
a: "a";
|
|
205
|
+
b: "b";
|
|
206
|
+
c: "c";
|
|
207
|
+
d: "d";
|
|
208
|
+
}>>;
|
|
209
|
+
}, z.core.$strip>>;
|
|
210
|
+
}, z.core.$strip>;
|
|
211
|
+
export declare const gridParamsSchema: z.ZodObject<{
|
|
212
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
213
|
+
headline: z.ZodString;
|
|
214
|
+
cols: z.ZodInt;
|
|
215
|
+
rows: z.ZodInt;
|
|
216
|
+
regions: z.ZodArray<z.ZodObject<{
|
|
217
|
+
x: z.ZodInt;
|
|
218
|
+
y: z.ZodInt;
|
|
219
|
+
w: z.ZodInt;
|
|
220
|
+
h: z.ZodInt;
|
|
221
|
+
label: z.ZodString;
|
|
222
|
+
tone: z.ZodEnum<{
|
|
223
|
+
a: "a";
|
|
224
|
+
b: "b";
|
|
225
|
+
c: "c";
|
|
226
|
+
d: "d";
|
|
227
|
+
}>;
|
|
228
|
+
}, z.core.$strip>>;
|
|
229
|
+
note: z.ZodOptional<z.ZodString>;
|
|
230
|
+
}, z.core.$strip>;
|
|
231
|
+
export declare const barCompareParamsSchema: z.ZodObject<{
|
|
232
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
233
|
+
headline: z.ZodString;
|
|
234
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
235
|
+
bars: z.ZodArray<z.ZodObject<{
|
|
236
|
+
label: z.ZodString;
|
|
237
|
+
value: z.ZodNumber;
|
|
238
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
239
|
+
a: "a";
|
|
240
|
+
b: "b";
|
|
241
|
+
c: "c";
|
|
242
|
+
d: "d";
|
|
243
|
+
}>>;
|
|
244
|
+
}, z.core.$strip>>;
|
|
245
|
+
note: z.ZodOptional<z.ZodString>;
|
|
246
|
+
}, z.core.$strip>;
|
|
247
|
+
export declare const stackParamsSchema: z.ZodObject<{
|
|
248
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
249
|
+
headline: z.ZodString;
|
|
250
|
+
layers: z.ZodArray<z.ZodObject<{
|
|
251
|
+
label: z.ZodString;
|
|
252
|
+
note: z.ZodOptional<z.ZodString>;
|
|
253
|
+
}, z.core.$strip>>;
|
|
254
|
+
note: z.ZodOptional<z.ZodString>;
|
|
255
|
+
}, z.core.$strip>;
|
|
256
|
+
export declare const splitCompareParamsSchema: z.ZodObject<{
|
|
257
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
258
|
+
headline: z.ZodString;
|
|
259
|
+
left: z.ZodObject<{
|
|
260
|
+
label: z.ZodString;
|
|
261
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
262
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
263
|
+
}, z.core.$strip>;
|
|
264
|
+
right: z.ZodObject<{
|
|
265
|
+
label: z.ZodString;
|
|
266
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
267
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
268
|
+
}, z.core.$strip>;
|
|
269
|
+
note: z.ZodOptional<z.ZodString>;
|
|
270
|
+
}, z.core.$strip>;
|
|
271
|
+
/**
|
|
272
|
+
* "This beat happens inside that part of the beat before it."
|
|
273
|
+
*
|
|
274
|
+
* The one field the canvas investigation endorsed, and the only one. A camera
|
|
275
|
+
* move between two beats reads as continuity — rather than as a fancier cut —
|
|
276
|
+
* exactly when the source supplies a containment or adjacency relation between
|
|
277
|
+
* them; the camera renders a relation, it never creates one. Counted honestly
|
|
278
|
+
* over the twelve-beat demo, two or three of eleven transitions have one, which
|
|
279
|
+
* is why this is optional and off by default rather than an infinite canvas.
|
|
280
|
+
*
|
|
281
|
+
* `element` names a part of the containing beat's own drawing, by the suffix
|
|
282
|
+
* `src/emit/svg.ts`'s `id(sid, part, i)` gives it: a pipeline's third stage is
|
|
283
|
+
* `stage2`, a grid's first region is `rgn0`. The shell resolves it against the
|
|
284
|
+
* containing scene and refuses to emit a camera at a part that beat did not
|
|
285
|
+
* draw, so a wrong name is a build error rather than a camera that lands on
|
|
286
|
+
* nothing.
|
|
287
|
+
*/
|
|
288
|
+
export declare const insideSchema: z.ZodObject<{
|
|
289
|
+
beat: z.ZodString;
|
|
290
|
+
element: z.ZodString;
|
|
291
|
+
}, z.core.$strip>;
|
|
292
|
+
export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
293
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
294
|
+
archetype: z.ZodLiteral<"title">;
|
|
295
|
+
params: z.ZodObject<{
|
|
296
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
297
|
+
headline: z.ZodString;
|
|
298
|
+
sub: z.ZodOptional<z.ZodString>;
|
|
299
|
+
}, z.core.$strip>;
|
|
300
|
+
id: z.ZodString;
|
|
301
|
+
intent: z.ZodString;
|
|
302
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
303
|
+
beat: z.ZodString;
|
|
304
|
+
element: z.ZodString;
|
|
305
|
+
}, z.core.$strip>>;
|
|
306
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
307
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
308
|
+
kind: z.ZodEnum<{
|
|
309
|
+
figure: "figure";
|
|
310
|
+
equation: "equation";
|
|
311
|
+
table: "table";
|
|
312
|
+
section: "section";
|
|
313
|
+
}>;
|
|
314
|
+
id: z.ZodString;
|
|
315
|
+
}, z.core.$strip>>>;
|
|
316
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
317
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
318
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
319
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
320
|
+
archetype: z.ZodLiteral<"claim-figure">;
|
|
321
|
+
params: z.ZodObject<{
|
|
322
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
323
|
+
headline: z.ZodString;
|
|
324
|
+
claim: z.ZodString;
|
|
325
|
+
figureId: z.ZodString;
|
|
326
|
+
}, z.core.$strip>;
|
|
327
|
+
id: z.ZodString;
|
|
328
|
+
intent: z.ZodString;
|
|
329
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
330
|
+
beat: z.ZodString;
|
|
331
|
+
element: z.ZodString;
|
|
332
|
+
}, z.core.$strip>>;
|
|
333
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
334
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
335
|
+
kind: z.ZodEnum<{
|
|
336
|
+
figure: "figure";
|
|
337
|
+
equation: "equation";
|
|
338
|
+
table: "table";
|
|
339
|
+
section: "section";
|
|
340
|
+
}>;
|
|
341
|
+
id: z.ZodString;
|
|
342
|
+
}, z.core.$strip>>>;
|
|
343
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
344
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
345
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
346
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
347
|
+
archetype: z.ZodLiteral<"equation-walk">;
|
|
348
|
+
params: z.ZodObject<{
|
|
349
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
350
|
+
headline: z.ZodString;
|
|
351
|
+
equationId: z.ZodString;
|
|
352
|
+
terms: z.ZodArray<z.ZodObject<{
|
|
353
|
+
tex: z.ZodString;
|
|
354
|
+
label: z.ZodString;
|
|
355
|
+
tone: z.ZodEnum<{
|
|
356
|
+
a: "a";
|
|
357
|
+
b: "b";
|
|
358
|
+
c: "c";
|
|
359
|
+
d: "d";
|
|
360
|
+
}>;
|
|
361
|
+
}, z.core.$strip>>;
|
|
362
|
+
}, z.core.$strip>;
|
|
363
|
+
id: z.ZodString;
|
|
364
|
+
intent: z.ZodString;
|
|
365
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
366
|
+
beat: z.ZodString;
|
|
367
|
+
element: z.ZodString;
|
|
368
|
+
}, z.core.$strip>>;
|
|
369
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
370
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
371
|
+
kind: z.ZodEnum<{
|
|
372
|
+
figure: "figure";
|
|
373
|
+
equation: "equation";
|
|
374
|
+
table: "table";
|
|
375
|
+
section: "section";
|
|
376
|
+
}>;
|
|
377
|
+
id: z.ZodString;
|
|
378
|
+
}, z.core.$strip>>>;
|
|
379
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
380
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
381
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
382
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
383
|
+
archetype: z.ZodLiteral<"data-table">;
|
|
384
|
+
params: z.ZodObject<{
|
|
385
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
386
|
+
headline: z.ZodString;
|
|
387
|
+
tableId: z.ZodString;
|
|
388
|
+
highlight: z.ZodArray<z.ZodObject<{
|
|
389
|
+
row: z.ZodString;
|
|
390
|
+
tone: z.ZodEnum<{
|
|
391
|
+
a: "a";
|
|
392
|
+
b: "b";
|
|
393
|
+
c: "c";
|
|
394
|
+
d: "d";
|
|
395
|
+
}>;
|
|
396
|
+
}, z.core.$strip>>;
|
|
397
|
+
note: z.ZodOptional<z.ZodString>;
|
|
398
|
+
}, z.core.$strip>;
|
|
399
|
+
id: z.ZodString;
|
|
400
|
+
intent: z.ZodString;
|
|
401
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
402
|
+
beat: z.ZodString;
|
|
403
|
+
element: z.ZodString;
|
|
404
|
+
}, z.core.$strip>>;
|
|
405
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
406
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
407
|
+
kind: z.ZodEnum<{
|
|
408
|
+
figure: "figure";
|
|
409
|
+
equation: "equation";
|
|
410
|
+
table: "table";
|
|
411
|
+
section: "section";
|
|
412
|
+
}>;
|
|
413
|
+
id: z.ZodString;
|
|
414
|
+
}, z.core.$strip>>>;
|
|
415
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
416
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
417
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
418
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
419
|
+
archetype: z.ZodLiteral<"line-chart">;
|
|
420
|
+
params: z.ZodObject<{
|
|
421
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
422
|
+
headline: z.ZodString;
|
|
423
|
+
xLabel: z.ZodString;
|
|
424
|
+
yLabel: z.ZodString;
|
|
425
|
+
points: z.ZodArray<z.ZodObject<{
|
|
426
|
+
x: z.ZodString;
|
|
427
|
+
y: z.ZodNumber;
|
|
428
|
+
}, z.core.$strip>>;
|
|
429
|
+
deltas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
430
|
+
readout: z.ZodOptional<z.ZodString>;
|
|
431
|
+
}, z.core.$strip>;
|
|
432
|
+
id: z.ZodString;
|
|
433
|
+
intent: z.ZodString;
|
|
434
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
435
|
+
beat: z.ZodString;
|
|
436
|
+
element: z.ZodString;
|
|
437
|
+
}, z.core.$strip>>;
|
|
438
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
439
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
440
|
+
kind: z.ZodEnum<{
|
|
441
|
+
figure: "figure";
|
|
442
|
+
equation: "equation";
|
|
443
|
+
table: "table";
|
|
444
|
+
section: "section";
|
|
445
|
+
}>;
|
|
446
|
+
id: z.ZodString;
|
|
447
|
+
}, z.core.$strip>>>;
|
|
448
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
449
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
450
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
451
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
452
|
+
archetype: z.ZodLiteral<"callout">;
|
|
453
|
+
params: z.ZodObject<{
|
|
454
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
455
|
+
headline: z.ZodString;
|
|
456
|
+
panels: z.ZodArray<z.ZodObject<{
|
|
457
|
+
label: z.ZodString;
|
|
458
|
+
lines: z.ZodArray<z.ZodString>;
|
|
459
|
+
}, z.core.$strip>>;
|
|
460
|
+
note: z.ZodOptional<z.ZodString>;
|
|
461
|
+
}, z.core.$strip>;
|
|
462
|
+
id: z.ZodString;
|
|
463
|
+
intent: z.ZodString;
|
|
464
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
465
|
+
beat: z.ZodString;
|
|
466
|
+
element: z.ZodString;
|
|
467
|
+
}, z.core.$strip>>;
|
|
468
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
469
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
470
|
+
kind: z.ZodEnum<{
|
|
471
|
+
figure: "figure";
|
|
472
|
+
equation: "equation";
|
|
473
|
+
table: "table";
|
|
474
|
+
section: "section";
|
|
475
|
+
}>;
|
|
476
|
+
id: z.ZodString;
|
|
477
|
+
}, z.core.$strip>>>;
|
|
478
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
479
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
480
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
481
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
482
|
+
archetype: z.ZodLiteral<"pipeline">;
|
|
483
|
+
params: z.ZodObject<{
|
|
484
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
485
|
+
headline: z.ZodString;
|
|
486
|
+
stages: z.ZodArray<z.ZodObject<{
|
|
487
|
+
label: z.ZodString;
|
|
488
|
+
note: z.ZodOptional<z.ZodString>;
|
|
489
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
490
|
+
a: "a";
|
|
491
|
+
b: "b";
|
|
492
|
+
c: "c";
|
|
493
|
+
d: "d";
|
|
494
|
+
}>>;
|
|
495
|
+
}, z.core.$strip>>;
|
|
496
|
+
loop: z.ZodOptional<z.ZodObject<{
|
|
497
|
+
from: z.ZodOptional<z.ZodInt>;
|
|
498
|
+
to: z.ZodInt;
|
|
499
|
+
label: z.ZodString;
|
|
500
|
+
}, z.core.$strip>>;
|
|
501
|
+
note: z.ZodOptional<z.ZodString>;
|
|
502
|
+
}, z.core.$strip>;
|
|
503
|
+
id: z.ZodString;
|
|
504
|
+
intent: z.ZodString;
|
|
505
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
506
|
+
beat: z.ZodString;
|
|
507
|
+
element: z.ZodString;
|
|
508
|
+
}, z.core.$strip>>;
|
|
509
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
510
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
511
|
+
kind: z.ZodEnum<{
|
|
512
|
+
figure: "figure";
|
|
513
|
+
equation: "equation";
|
|
514
|
+
table: "table";
|
|
515
|
+
section: "section";
|
|
516
|
+
}>;
|
|
517
|
+
id: z.ZodString;
|
|
518
|
+
}, z.core.$strip>>>;
|
|
519
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
520
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
521
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
522
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
523
|
+
archetype: z.ZodLiteral<"annotated-figure">;
|
|
524
|
+
params: z.ZodObject<{
|
|
525
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
526
|
+
headline: z.ZodString;
|
|
527
|
+
figureId: z.ZodString;
|
|
528
|
+
crop: z.ZodOptional<z.ZodObject<{
|
|
529
|
+
x: z.ZodNumber;
|
|
530
|
+
y: z.ZodNumber;
|
|
531
|
+
w: z.ZodNumber;
|
|
532
|
+
h: z.ZodNumber;
|
|
533
|
+
}, z.core.$strip>>;
|
|
534
|
+
notes: z.ZodArray<z.ZodObject<{
|
|
535
|
+
x: z.ZodNumber;
|
|
536
|
+
y: z.ZodNumber;
|
|
537
|
+
text: z.ZodString;
|
|
538
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
539
|
+
a: "a";
|
|
540
|
+
b: "b";
|
|
541
|
+
c: "c";
|
|
542
|
+
d: "d";
|
|
543
|
+
}>>;
|
|
544
|
+
}, z.core.$strip>>;
|
|
545
|
+
}, z.core.$strip>;
|
|
546
|
+
id: z.ZodString;
|
|
547
|
+
intent: z.ZodString;
|
|
548
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
549
|
+
beat: z.ZodString;
|
|
550
|
+
element: z.ZodString;
|
|
551
|
+
}, z.core.$strip>>;
|
|
552
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
553
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
554
|
+
kind: z.ZodEnum<{
|
|
555
|
+
figure: "figure";
|
|
556
|
+
equation: "equation";
|
|
557
|
+
table: "table";
|
|
558
|
+
section: "section";
|
|
559
|
+
}>;
|
|
560
|
+
id: z.ZodString;
|
|
561
|
+
}, z.core.$strip>>>;
|
|
562
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
563
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
564
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
565
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
566
|
+
archetype: z.ZodLiteral<"grid">;
|
|
567
|
+
params: z.ZodObject<{
|
|
568
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
569
|
+
headline: z.ZodString;
|
|
570
|
+
cols: z.ZodInt;
|
|
571
|
+
rows: z.ZodInt;
|
|
572
|
+
regions: z.ZodArray<z.ZodObject<{
|
|
573
|
+
x: z.ZodInt;
|
|
574
|
+
y: z.ZodInt;
|
|
575
|
+
w: z.ZodInt;
|
|
576
|
+
h: z.ZodInt;
|
|
577
|
+
label: z.ZodString;
|
|
578
|
+
tone: z.ZodEnum<{
|
|
579
|
+
a: "a";
|
|
580
|
+
b: "b";
|
|
581
|
+
c: "c";
|
|
582
|
+
d: "d";
|
|
583
|
+
}>;
|
|
584
|
+
}, z.core.$strip>>;
|
|
585
|
+
note: z.ZodOptional<z.ZodString>;
|
|
586
|
+
}, z.core.$strip>;
|
|
587
|
+
id: z.ZodString;
|
|
588
|
+
intent: z.ZodString;
|
|
589
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
590
|
+
beat: z.ZodString;
|
|
591
|
+
element: z.ZodString;
|
|
592
|
+
}, z.core.$strip>>;
|
|
593
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
594
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
595
|
+
kind: z.ZodEnum<{
|
|
596
|
+
figure: "figure";
|
|
597
|
+
equation: "equation";
|
|
598
|
+
table: "table";
|
|
599
|
+
section: "section";
|
|
600
|
+
}>;
|
|
601
|
+
id: z.ZodString;
|
|
602
|
+
}, z.core.$strip>>>;
|
|
603
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
604
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
605
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
606
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
607
|
+
archetype: z.ZodLiteral<"bar-compare">;
|
|
608
|
+
params: z.ZodObject<{
|
|
609
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
610
|
+
headline: z.ZodString;
|
|
611
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
612
|
+
bars: z.ZodArray<z.ZodObject<{
|
|
613
|
+
label: z.ZodString;
|
|
614
|
+
value: z.ZodNumber;
|
|
615
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
616
|
+
a: "a";
|
|
617
|
+
b: "b";
|
|
618
|
+
c: "c";
|
|
619
|
+
d: "d";
|
|
620
|
+
}>>;
|
|
621
|
+
}, z.core.$strip>>;
|
|
622
|
+
note: z.ZodOptional<z.ZodString>;
|
|
623
|
+
}, z.core.$strip>;
|
|
624
|
+
id: z.ZodString;
|
|
625
|
+
intent: z.ZodString;
|
|
626
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
627
|
+
beat: z.ZodString;
|
|
628
|
+
element: z.ZodString;
|
|
629
|
+
}, z.core.$strip>>;
|
|
630
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
631
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
632
|
+
kind: z.ZodEnum<{
|
|
633
|
+
figure: "figure";
|
|
634
|
+
equation: "equation";
|
|
635
|
+
table: "table";
|
|
636
|
+
section: "section";
|
|
637
|
+
}>;
|
|
638
|
+
id: z.ZodString;
|
|
639
|
+
}, z.core.$strip>>>;
|
|
640
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
641
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
642
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
643
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
644
|
+
archetype: z.ZodLiteral<"stack">;
|
|
645
|
+
params: z.ZodObject<{
|
|
646
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
647
|
+
headline: z.ZodString;
|
|
648
|
+
layers: z.ZodArray<z.ZodObject<{
|
|
649
|
+
label: z.ZodString;
|
|
650
|
+
note: z.ZodOptional<z.ZodString>;
|
|
651
|
+
}, z.core.$strip>>;
|
|
652
|
+
note: z.ZodOptional<z.ZodString>;
|
|
653
|
+
}, z.core.$strip>;
|
|
654
|
+
id: z.ZodString;
|
|
655
|
+
intent: z.ZodString;
|
|
656
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
657
|
+
beat: z.ZodString;
|
|
658
|
+
element: z.ZodString;
|
|
659
|
+
}, z.core.$strip>>;
|
|
660
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
661
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
662
|
+
kind: z.ZodEnum<{
|
|
663
|
+
figure: "figure";
|
|
664
|
+
equation: "equation";
|
|
665
|
+
table: "table";
|
|
666
|
+
section: "section";
|
|
667
|
+
}>;
|
|
668
|
+
id: z.ZodString;
|
|
669
|
+
}, z.core.$strip>>>;
|
|
670
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
671
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
672
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
673
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
674
|
+
archetype: z.ZodLiteral<"split-compare">;
|
|
675
|
+
params: z.ZodObject<{
|
|
676
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
677
|
+
headline: z.ZodString;
|
|
678
|
+
left: z.ZodObject<{
|
|
679
|
+
label: z.ZodString;
|
|
680
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
681
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
682
|
+
}, z.core.$strip>;
|
|
683
|
+
right: z.ZodObject<{
|
|
684
|
+
label: z.ZodString;
|
|
685
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
686
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
687
|
+
}, z.core.$strip>;
|
|
688
|
+
note: z.ZodOptional<z.ZodString>;
|
|
689
|
+
}, z.core.$strip>;
|
|
690
|
+
id: z.ZodString;
|
|
691
|
+
intent: z.ZodString;
|
|
692
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
693
|
+
beat: z.ZodString;
|
|
694
|
+
element: z.ZodString;
|
|
695
|
+
}, z.core.$strip>>;
|
|
696
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
697
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
698
|
+
kind: z.ZodEnum<{
|
|
699
|
+
figure: "figure";
|
|
700
|
+
equation: "equation";
|
|
701
|
+
table: "table";
|
|
702
|
+
section: "section";
|
|
703
|
+
}>;
|
|
704
|
+
id: z.ZodString;
|
|
705
|
+
}, z.core.$strip>>>;
|
|
706
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
707
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
708
|
+
}, z.core.$strip>], "archetype">;
|
|
709
|
+
/**
|
|
710
|
+
* Archetypes that draw rather than describe. `verify` warns when a deck leans on
|
|
711
|
+
* the others — a deck of headlines and bullet panels is the thing every slide
|
|
712
|
+
* generator already makes, and is not what this tool is for.
|
|
713
|
+
*/
|
|
714
|
+
export declare const DIAGRAMMATIC: ReadonlySet<string>;
|
|
715
|
+
/**
|
|
716
|
+
* The four things a beat can BE, as opposed to the twelve ways it can be drawn.
|
|
717
|
+
*
|
|
718
|
+
* Used by src/plan/select.ts to keep a shortened cut recognisable as the same
|
|
719
|
+
* argument. Coverage has to be checked at this grain and not per-archetype: the
|
|
720
|
+
* demo's twelve beats have twelve distinct archetypes, so "keep one of each
|
|
721
|
+
* archetype" protects the entire deck and cuts nothing, while "keep one of each
|
|
722
|
+
* family" is a rule that can actually bind.
|
|
723
|
+
*
|
|
724
|
+
* - `frame` states or bounds a claim: the title, the assertion over a figure,
|
|
725
|
+
* the caveat at the end. What the deck SAYS.
|
|
726
|
+
* - `structure` shows how something is put together or how two things differ.
|
|
727
|
+
* - `quantity` shows numbers: bars, a curve, a table. The EVIDENCE — and
|
|
728
|
+
* `frame` outnumbers it in most decks, which is why a cut that optimises on
|
|
729
|
+
* weight alone reliably ends up all claim and no proof.
|
|
730
|
+
* - `formal` walks an equation.
|
|
731
|
+
*
|
|
732
|
+
* `claim-figure` sits in `frame`, not `quantity`, even though a figure is on
|
|
733
|
+
* screen: the beat's work is the assertion, and the figure is its illustration.
|
|
734
|
+
*/
|
|
735
|
+
export type ArchetypeFamily = "frame" | "structure" | "quantity" | "formal";
|
|
736
|
+
export declare const ARCHETYPE_FAMILY: Readonly<Record<Archetype, ArchetypeFamily>>;
|
|
737
|
+
export declare const storyboardSchema: z.ZodObject<{
|
|
738
|
+
sourceId: z.ZodString;
|
|
739
|
+
title: z.ZodString;
|
|
740
|
+
lang: z.ZodDefault<z.ZodString>;
|
|
741
|
+
theme: z.ZodDefault<z.ZodString>;
|
|
742
|
+
beats: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
743
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
744
|
+
archetype: z.ZodLiteral<"title">;
|
|
745
|
+
params: z.ZodObject<{
|
|
746
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
747
|
+
headline: z.ZodString;
|
|
748
|
+
sub: z.ZodOptional<z.ZodString>;
|
|
749
|
+
}, z.core.$strip>;
|
|
750
|
+
id: z.ZodString;
|
|
751
|
+
intent: z.ZodString;
|
|
752
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
753
|
+
beat: z.ZodString;
|
|
754
|
+
element: z.ZodString;
|
|
755
|
+
}, z.core.$strip>>;
|
|
756
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
757
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
758
|
+
kind: z.ZodEnum<{
|
|
759
|
+
figure: "figure";
|
|
760
|
+
equation: "equation";
|
|
761
|
+
table: "table";
|
|
762
|
+
section: "section";
|
|
763
|
+
}>;
|
|
764
|
+
id: z.ZodString;
|
|
765
|
+
}, z.core.$strip>>>;
|
|
766
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
767
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
768
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
769
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
770
|
+
archetype: z.ZodLiteral<"claim-figure">;
|
|
771
|
+
params: z.ZodObject<{
|
|
772
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
773
|
+
headline: z.ZodString;
|
|
774
|
+
claim: z.ZodString;
|
|
775
|
+
figureId: z.ZodString;
|
|
776
|
+
}, z.core.$strip>;
|
|
777
|
+
id: z.ZodString;
|
|
778
|
+
intent: z.ZodString;
|
|
779
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
780
|
+
beat: z.ZodString;
|
|
781
|
+
element: z.ZodString;
|
|
782
|
+
}, z.core.$strip>>;
|
|
783
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
784
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
785
|
+
kind: z.ZodEnum<{
|
|
786
|
+
figure: "figure";
|
|
787
|
+
equation: "equation";
|
|
788
|
+
table: "table";
|
|
789
|
+
section: "section";
|
|
790
|
+
}>;
|
|
791
|
+
id: z.ZodString;
|
|
792
|
+
}, z.core.$strip>>>;
|
|
793
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
794
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
795
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
796
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
797
|
+
archetype: z.ZodLiteral<"equation-walk">;
|
|
798
|
+
params: z.ZodObject<{
|
|
799
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
800
|
+
headline: z.ZodString;
|
|
801
|
+
equationId: z.ZodString;
|
|
802
|
+
terms: z.ZodArray<z.ZodObject<{
|
|
803
|
+
tex: z.ZodString;
|
|
804
|
+
label: z.ZodString;
|
|
805
|
+
tone: z.ZodEnum<{
|
|
806
|
+
a: "a";
|
|
807
|
+
b: "b";
|
|
808
|
+
c: "c";
|
|
809
|
+
d: "d";
|
|
810
|
+
}>;
|
|
811
|
+
}, z.core.$strip>>;
|
|
812
|
+
}, z.core.$strip>;
|
|
813
|
+
id: z.ZodString;
|
|
814
|
+
intent: z.ZodString;
|
|
815
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
816
|
+
beat: z.ZodString;
|
|
817
|
+
element: z.ZodString;
|
|
818
|
+
}, z.core.$strip>>;
|
|
819
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
820
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
821
|
+
kind: z.ZodEnum<{
|
|
822
|
+
figure: "figure";
|
|
823
|
+
equation: "equation";
|
|
824
|
+
table: "table";
|
|
825
|
+
section: "section";
|
|
826
|
+
}>;
|
|
827
|
+
id: z.ZodString;
|
|
828
|
+
}, z.core.$strip>>>;
|
|
829
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
830
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
831
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
832
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
833
|
+
archetype: z.ZodLiteral<"data-table">;
|
|
834
|
+
params: z.ZodObject<{
|
|
835
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
836
|
+
headline: z.ZodString;
|
|
837
|
+
tableId: z.ZodString;
|
|
838
|
+
highlight: z.ZodArray<z.ZodObject<{
|
|
839
|
+
row: z.ZodString;
|
|
840
|
+
tone: z.ZodEnum<{
|
|
841
|
+
a: "a";
|
|
842
|
+
b: "b";
|
|
843
|
+
c: "c";
|
|
844
|
+
d: "d";
|
|
845
|
+
}>;
|
|
846
|
+
}, z.core.$strip>>;
|
|
847
|
+
note: z.ZodOptional<z.ZodString>;
|
|
848
|
+
}, z.core.$strip>;
|
|
849
|
+
id: z.ZodString;
|
|
850
|
+
intent: z.ZodString;
|
|
851
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
852
|
+
beat: z.ZodString;
|
|
853
|
+
element: z.ZodString;
|
|
854
|
+
}, z.core.$strip>>;
|
|
855
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
856
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
857
|
+
kind: z.ZodEnum<{
|
|
858
|
+
figure: "figure";
|
|
859
|
+
equation: "equation";
|
|
860
|
+
table: "table";
|
|
861
|
+
section: "section";
|
|
862
|
+
}>;
|
|
863
|
+
id: z.ZodString;
|
|
864
|
+
}, z.core.$strip>>>;
|
|
865
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
866
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
867
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
868
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
869
|
+
archetype: z.ZodLiteral<"line-chart">;
|
|
870
|
+
params: z.ZodObject<{
|
|
871
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
872
|
+
headline: z.ZodString;
|
|
873
|
+
xLabel: z.ZodString;
|
|
874
|
+
yLabel: z.ZodString;
|
|
875
|
+
points: z.ZodArray<z.ZodObject<{
|
|
876
|
+
x: z.ZodString;
|
|
877
|
+
y: z.ZodNumber;
|
|
878
|
+
}, z.core.$strip>>;
|
|
879
|
+
deltas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
880
|
+
readout: z.ZodOptional<z.ZodString>;
|
|
881
|
+
}, z.core.$strip>;
|
|
882
|
+
id: z.ZodString;
|
|
883
|
+
intent: z.ZodString;
|
|
884
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
885
|
+
beat: z.ZodString;
|
|
886
|
+
element: z.ZodString;
|
|
887
|
+
}, z.core.$strip>>;
|
|
888
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
889
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
890
|
+
kind: z.ZodEnum<{
|
|
891
|
+
figure: "figure";
|
|
892
|
+
equation: "equation";
|
|
893
|
+
table: "table";
|
|
894
|
+
section: "section";
|
|
895
|
+
}>;
|
|
896
|
+
id: z.ZodString;
|
|
897
|
+
}, z.core.$strip>>>;
|
|
898
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
899
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
900
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
901
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
902
|
+
archetype: z.ZodLiteral<"callout">;
|
|
903
|
+
params: z.ZodObject<{
|
|
904
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
905
|
+
headline: z.ZodString;
|
|
906
|
+
panels: z.ZodArray<z.ZodObject<{
|
|
907
|
+
label: z.ZodString;
|
|
908
|
+
lines: z.ZodArray<z.ZodString>;
|
|
909
|
+
}, z.core.$strip>>;
|
|
910
|
+
note: z.ZodOptional<z.ZodString>;
|
|
911
|
+
}, z.core.$strip>;
|
|
912
|
+
id: z.ZodString;
|
|
913
|
+
intent: z.ZodString;
|
|
914
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
915
|
+
beat: z.ZodString;
|
|
916
|
+
element: z.ZodString;
|
|
917
|
+
}, z.core.$strip>>;
|
|
918
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
919
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
920
|
+
kind: z.ZodEnum<{
|
|
921
|
+
figure: "figure";
|
|
922
|
+
equation: "equation";
|
|
923
|
+
table: "table";
|
|
924
|
+
section: "section";
|
|
925
|
+
}>;
|
|
926
|
+
id: z.ZodString;
|
|
927
|
+
}, z.core.$strip>>>;
|
|
928
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
929
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
930
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
931
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
932
|
+
archetype: z.ZodLiteral<"pipeline">;
|
|
933
|
+
params: z.ZodObject<{
|
|
934
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
935
|
+
headline: z.ZodString;
|
|
936
|
+
stages: z.ZodArray<z.ZodObject<{
|
|
937
|
+
label: z.ZodString;
|
|
938
|
+
note: z.ZodOptional<z.ZodString>;
|
|
939
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
940
|
+
a: "a";
|
|
941
|
+
b: "b";
|
|
942
|
+
c: "c";
|
|
943
|
+
d: "d";
|
|
944
|
+
}>>;
|
|
945
|
+
}, z.core.$strip>>;
|
|
946
|
+
loop: z.ZodOptional<z.ZodObject<{
|
|
947
|
+
from: z.ZodOptional<z.ZodInt>;
|
|
948
|
+
to: z.ZodInt;
|
|
949
|
+
label: z.ZodString;
|
|
950
|
+
}, z.core.$strip>>;
|
|
951
|
+
note: z.ZodOptional<z.ZodString>;
|
|
952
|
+
}, z.core.$strip>;
|
|
953
|
+
id: z.ZodString;
|
|
954
|
+
intent: z.ZodString;
|
|
955
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
956
|
+
beat: z.ZodString;
|
|
957
|
+
element: z.ZodString;
|
|
958
|
+
}, z.core.$strip>>;
|
|
959
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
960
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
961
|
+
kind: z.ZodEnum<{
|
|
962
|
+
figure: "figure";
|
|
963
|
+
equation: "equation";
|
|
964
|
+
table: "table";
|
|
965
|
+
section: "section";
|
|
966
|
+
}>;
|
|
967
|
+
id: z.ZodString;
|
|
968
|
+
}, z.core.$strip>>>;
|
|
969
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
970
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
971
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
972
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
973
|
+
archetype: z.ZodLiteral<"annotated-figure">;
|
|
974
|
+
params: z.ZodObject<{
|
|
975
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
976
|
+
headline: z.ZodString;
|
|
977
|
+
figureId: z.ZodString;
|
|
978
|
+
crop: z.ZodOptional<z.ZodObject<{
|
|
979
|
+
x: z.ZodNumber;
|
|
980
|
+
y: z.ZodNumber;
|
|
981
|
+
w: z.ZodNumber;
|
|
982
|
+
h: z.ZodNumber;
|
|
983
|
+
}, z.core.$strip>>;
|
|
984
|
+
notes: z.ZodArray<z.ZodObject<{
|
|
985
|
+
x: z.ZodNumber;
|
|
986
|
+
y: z.ZodNumber;
|
|
987
|
+
text: z.ZodString;
|
|
988
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
989
|
+
a: "a";
|
|
990
|
+
b: "b";
|
|
991
|
+
c: "c";
|
|
992
|
+
d: "d";
|
|
993
|
+
}>>;
|
|
994
|
+
}, z.core.$strip>>;
|
|
995
|
+
}, z.core.$strip>;
|
|
996
|
+
id: z.ZodString;
|
|
997
|
+
intent: z.ZodString;
|
|
998
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
999
|
+
beat: z.ZodString;
|
|
1000
|
+
element: z.ZodString;
|
|
1001
|
+
}, z.core.$strip>>;
|
|
1002
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1003
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1004
|
+
kind: z.ZodEnum<{
|
|
1005
|
+
figure: "figure";
|
|
1006
|
+
equation: "equation";
|
|
1007
|
+
table: "table";
|
|
1008
|
+
section: "section";
|
|
1009
|
+
}>;
|
|
1010
|
+
id: z.ZodString;
|
|
1011
|
+
}, z.core.$strip>>>;
|
|
1012
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1013
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1014
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1015
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1016
|
+
archetype: z.ZodLiteral<"grid">;
|
|
1017
|
+
params: z.ZodObject<{
|
|
1018
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1019
|
+
headline: z.ZodString;
|
|
1020
|
+
cols: z.ZodInt;
|
|
1021
|
+
rows: z.ZodInt;
|
|
1022
|
+
regions: z.ZodArray<z.ZodObject<{
|
|
1023
|
+
x: z.ZodInt;
|
|
1024
|
+
y: z.ZodInt;
|
|
1025
|
+
w: z.ZodInt;
|
|
1026
|
+
h: z.ZodInt;
|
|
1027
|
+
label: z.ZodString;
|
|
1028
|
+
tone: z.ZodEnum<{
|
|
1029
|
+
a: "a";
|
|
1030
|
+
b: "b";
|
|
1031
|
+
c: "c";
|
|
1032
|
+
d: "d";
|
|
1033
|
+
}>;
|
|
1034
|
+
}, z.core.$strip>>;
|
|
1035
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1036
|
+
}, z.core.$strip>;
|
|
1037
|
+
id: z.ZodString;
|
|
1038
|
+
intent: z.ZodString;
|
|
1039
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1040
|
+
beat: z.ZodString;
|
|
1041
|
+
element: z.ZodString;
|
|
1042
|
+
}, z.core.$strip>>;
|
|
1043
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1044
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1045
|
+
kind: z.ZodEnum<{
|
|
1046
|
+
figure: "figure";
|
|
1047
|
+
equation: "equation";
|
|
1048
|
+
table: "table";
|
|
1049
|
+
section: "section";
|
|
1050
|
+
}>;
|
|
1051
|
+
id: z.ZodString;
|
|
1052
|
+
}, z.core.$strip>>>;
|
|
1053
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1054
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1055
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1056
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1057
|
+
archetype: z.ZodLiteral<"bar-compare">;
|
|
1058
|
+
params: z.ZodObject<{
|
|
1059
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1060
|
+
headline: z.ZodString;
|
|
1061
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
1062
|
+
bars: z.ZodArray<z.ZodObject<{
|
|
1063
|
+
label: z.ZodString;
|
|
1064
|
+
value: z.ZodNumber;
|
|
1065
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
1066
|
+
a: "a";
|
|
1067
|
+
b: "b";
|
|
1068
|
+
c: "c";
|
|
1069
|
+
d: "d";
|
|
1070
|
+
}>>;
|
|
1071
|
+
}, z.core.$strip>>;
|
|
1072
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1073
|
+
}, z.core.$strip>;
|
|
1074
|
+
id: z.ZodString;
|
|
1075
|
+
intent: z.ZodString;
|
|
1076
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1077
|
+
beat: z.ZodString;
|
|
1078
|
+
element: z.ZodString;
|
|
1079
|
+
}, z.core.$strip>>;
|
|
1080
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1081
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1082
|
+
kind: z.ZodEnum<{
|
|
1083
|
+
figure: "figure";
|
|
1084
|
+
equation: "equation";
|
|
1085
|
+
table: "table";
|
|
1086
|
+
section: "section";
|
|
1087
|
+
}>;
|
|
1088
|
+
id: z.ZodString;
|
|
1089
|
+
}, z.core.$strip>>>;
|
|
1090
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1091
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1092
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1093
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1094
|
+
archetype: z.ZodLiteral<"stack">;
|
|
1095
|
+
params: z.ZodObject<{
|
|
1096
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1097
|
+
headline: z.ZodString;
|
|
1098
|
+
layers: z.ZodArray<z.ZodObject<{
|
|
1099
|
+
label: z.ZodString;
|
|
1100
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1101
|
+
}, z.core.$strip>>;
|
|
1102
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1103
|
+
}, z.core.$strip>;
|
|
1104
|
+
id: z.ZodString;
|
|
1105
|
+
intent: z.ZodString;
|
|
1106
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1107
|
+
beat: z.ZodString;
|
|
1108
|
+
element: z.ZodString;
|
|
1109
|
+
}, z.core.$strip>>;
|
|
1110
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1111
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1112
|
+
kind: z.ZodEnum<{
|
|
1113
|
+
figure: "figure";
|
|
1114
|
+
equation: "equation";
|
|
1115
|
+
table: "table";
|
|
1116
|
+
section: "section";
|
|
1117
|
+
}>;
|
|
1118
|
+
id: z.ZodString;
|
|
1119
|
+
}, z.core.$strip>>>;
|
|
1120
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1121
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1122
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1123
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1124
|
+
archetype: z.ZodLiteral<"split-compare">;
|
|
1125
|
+
params: z.ZodObject<{
|
|
1126
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1127
|
+
headline: z.ZodString;
|
|
1128
|
+
left: z.ZodObject<{
|
|
1129
|
+
label: z.ZodString;
|
|
1130
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
1131
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1132
|
+
}, z.core.$strip>;
|
|
1133
|
+
right: z.ZodObject<{
|
|
1134
|
+
label: z.ZodString;
|
|
1135
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
1136
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1137
|
+
}, z.core.$strip>;
|
|
1138
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1139
|
+
}, z.core.$strip>;
|
|
1140
|
+
id: z.ZodString;
|
|
1141
|
+
intent: z.ZodString;
|
|
1142
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1143
|
+
beat: z.ZodString;
|
|
1144
|
+
element: z.ZodString;
|
|
1145
|
+
}, z.core.$strip>>;
|
|
1146
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1147
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1148
|
+
kind: z.ZodEnum<{
|
|
1149
|
+
figure: "figure";
|
|
1150
|
+
equation: "equation";
|
|
1151
|
+
table: "table";
|
|
1152
|
+
section: "section";
|
|
1153
|
+
}>;
|
|
1154
|
+
id: z.ZodString;
|
|
1155
|
+
}, z.core.$strip>>>;
|
|
1156
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1157
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1158
|
+
}, z.core.$strip>], "archetype">>;
|
|
1159
|
+
}, z.core.$strip>;
|
|
1160
|
+
/**
|
|
1161
|
+
* What the person asking for the deck gets to decide.
|
|
1162
|
+
*
|
|
1163
|
+
* Split deliberately: `plan` reads the ones that change what is said, `emit`
|
|
1164
|
+
* reads the ones that change how it looks. Neither reaches for a field it does
|
|
1165
|
+
* not own, which is why a preferences change never invalidates a storyboard.
|
|
1166
|
+
*/
|
|
1167
|
+
export declare const prefsSchema: z.ZodObject<{
|
|
1168
|
+
slides: z.ZodDefault<z.ZodInt>;
|
|
1169
|
+
lang: z.ZodDefault<z.ZodString>;
|
|
1170
|
+
tone: z.ZodDefault<z.ZodEnum<{
|
|
1171
|
+
plain: "plain";
|
|
1172
|
+
academic: "academic";
|
|
1173
|
+
conversational: "conversational";
|
|
1174
|
+
punchy: "punchy";
|
|
1175
|
+
}>>;
|
|
1176
|
+
density: z.ZodDefault<z.ZodEnum<{
|
|
1177
|
+
sparse: "sparse";
|
|
1178
|
+
normal: "normal";
|
|
1179
|
+
dense: "dense";
|
|
1180
|
+
}>>;
|
|
1181
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1182
|
+
theme: z.ZodDefault<z.ZodString>;
|
|
1183
|
+
animationSpeed: z.ZodDefault<z.ZodNumber>;
|
|
1184
|
+
narration: z.ZodDefault<z.ZodObject<{
|
|
1185
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1186
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
1187
|
+
rate: z.ZodDefault<z.ZodString>;
|
|
1188
|
+
pitch: z.ZodDefault<z.ZodString>;
|
|
1189
|
+
subtitles: z.ZodDefault<z.ZodBoolean>;
|
|
1190
|
+
density: z.ZodDefault<z.ZodEnum<{
|
|
1191
|
+
high: "high";
|
|
1192
|
+
medium: "medium";
|
|
1193
|
+
low: "low";
|
|
1194
|
+
}>>;
|
|
1195
|
+
}, z.core.$strip>>;
|
|
1196
|
+
}, z.core.$strip>;
|
|
1197
|
+
/** One subtitle line with the timing edge-tts measured for it. */
|
|
1198
|
+
export declare const cueSchema: z.ZodObject<{
|
|
1199
|
+
start: z.ZodNumber;
|
|
1200
|
+
end: z.ZodNumber;
|
|
1201
|
+
text: z.ZodString;
|
|
1202
|
+
}, z.core.$strip>;
|
|
1203
|
+
/**
|
|
1204
|
+
* What is spoken at one stop.
|
|
1205
|
+
*
|
|
1206
|
+
* One segment per stop, so the audio and the reveal advance together: the
|
|
1207
|
+
* presenter says the sentence that belongs to the thing that just appeared.
|
|
1208
|
+
* `seconds` is measured from the rendered audio, never estimated — it is what
|
|
1209
|
+
* lets a beat's length follow its narration instead of a number someone guessed.
|
|
1210
|
+
*/
|
|
1211
|
+
export declare const segmentSchema: z.ZodObject<{
|
|
1212
|
+
stop: z.ZodInt;
|
|
1213
|
+
text: z.ZodString;
|
|
1214
|
+
audio: z.ZodString;
|
|
1215
|
+
seconds: z.ZodNumber;
|
|
1216
|
+
cues: z.ZodArray<z.ZodObject<{
|
|
1217
|
+
start: z.ZodNumber;
|
|
1218
|
+
end: z.ZodNumber;
|
|
1219
|
+
text: z.ZodString;
|
|
1220
|
+
}, z.core.$strip>>;
|
|
1221
|
+
}, z.core.$strip>;
|
|
1222
|
+
export declare const narrationSchema: z.ZodObject<{
|
|
1223
|
+
voice: z.ZodString;
|
|
1224
|
+
beats: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
1225
|
+
stop: z.ZodInt;
|
|
1226
|
+
text: z.ZodString;
|
|
1227
|
+
audio: z.ZodString;
|
|
1228
|
+
seconds: z.ZodNumber;
|
|
1229
|
+
cues: z.ZodArray<z.ZodObject<{
|
|
1230
|
+
start: z.ZodNumber;
|
|
1231
|
+
end: z.ZodNumber;
|
|
1232
|
+
text: z.ZodString;
|
|
1233
|
+
}, z.core.$strip>>;
|
|
1234
|
+
}, z.core.$strip>>>;
|
|
1235
|
+
}, z.core.$strip>;
|
|
1236
|
+
/**
|
|
1237
|
+
* How one external asset travels with the deck.
|
|
1238
|
+
*
|
|
1239
|
+
* `bake` copies the bytes in, so the pack works offline and forever. `link`
|
|
1240
|
+
* keeps the URL, so the pack stays small and the asset stays current. `embed` is
|
|
1241
|
+
* for things that are not files at all — a YouTube or Vimeo URL is a player, and
|
|
1242
|
+
* downloading it would be both wrong and, usually, against its terms.
|
|
1243
|
+
*/
|
|
1244
|
+
export declare const mediaSchema: z.ZodObject<{
|
|
1245
|
+
id: z.ZodString;
|
|
1246
|
+
policy: z.ZodEnum<{
|
|
1247
|
+
bake: "bake";
|
|
1248
|
+
link: "link";
|
|
1249
|
+
embed: "embed";
|
|
1250
|
+
}>;
|
|
1251
|
+
path: z.ZodOptional<z.ZodString>;
|
|
1252
|
+
url: z.ZodOptional<z.ZodString>;
|
|
1253
|
+
mime: z.ZodOptional<z.ZodString>;
|
|
1254
|
+
bytes: z.ZodOptional<z.ZodInt>;
|
|
1255
|
+
}, z.core.$strip>;
|
|
1256
|
+
/** Bumped only when an older reader could misread a newer pack. */
|
|
1257
|
+
export declare const PACK_VERSION = 1;
|
|
1258
|
+
/**
|
|
1259
|
+
* `deck.json` inside a `.deck` archive: everything needed to rebuild the deck,
|
|
1260
|
+
* and nothing that can be derived from it.
|
|
1261
|
+
*
|
|
1262
|
+
* A pack is the unit a user keeps, sends, and re-opens. It carries the source
|
|
1263
|
+
* and the storyboard rather than the built HTML, because the built HTML is a
|
|
1264
|
+
* projection of those two and every format profile makes a different one.
|
|
1265
|
+
*/
|
|
1266
|
+
export declare const packSchema: z.ZodObject<{
|
|
1267
|
+
version: z.ZodLiteral<1>;
|
|
1268
|
+
createdAt: z.ZodString;
|
|
1269
|
+
title: z.ZodString;
|
|
1270
|
+
prefs: z.ZodObject<{
|
|
1271
|
+
slides: z.ZodDefault<z.ZodInt>;
|
|
1272
|
+
lang: z.ZodDefault<z.ZodString>;
|
|
1273
|
+
tone: z.ZodDefault<z.ZodEnum<{
|
|
1274
|
+
plain: "plain";
|
|
1275
|
+
academic: "academic";
|
|
1276
|
+
conversational: "conversational";
|
|
1277
|
+
punchy: "punchy";
|
|
1278
|
+
}>>;
|
|
1279
|
+
density: z.ZodDefault<z.ZodEnum<{
|
|
1280
|
+
sparse: "sparse";
|
|
1281
|
+
normal: "normal";
|
|
1282
|
+
dense: "dense";
|
|
1283
|
+
}>>;
|
|
1284
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1285
|
+
theme: z.ZodDefault<z.ZodString>;
|
|
1286
|
+
animationSpeed: z.ZodDefault<z.ZodNumber>;
|
|
1287
|
+
narration: z.ZodDefault<z.ZodObject<{
|
|
1288
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1289
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
1290
|
+
rate: z.ZodDefault<z.ZodString>;
|
|
1291
|
+
pitch: z.ZodDefault<z.ZodString>;
|
|
1292
|
+
subtitles: z.ZodDefault<z.ZodBoolean>;
|
|
1293
|
+
density: z.ZodDefault<z.ZodEnum<{
|
|
1294
|
+
high: "high";
|
|
1295
|
+
medium: "medium";
|
|
1296
|
+
low: "low";
|
|
1297
|
+
}>>;
|
|
1298
|
+
}, z.core.$strip>>;
|
|
1299
|
+
}, z.core.$strip>;
|
|
1300
|
+
source: z.ZodObject<{
|
|
1301
|
+
id: z.ZodString;
|
|
1302
|
+
title: z.ZodString;
|
|
1303
|
+
lang: z.ZodDefault<z.ZodString>;
|
|
1304
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
1305
|
+
id: z.ZodString;
|
|
1306
|
+
depth: z.ZodInt;
|
|
1307
|
+
heading: z.ZodString;
|
|
1308
|
+
text: z.ZodString;
|
|
1309
|
+
}, z.core.$strip>>;
|
|
1310
|
+
figures: z.ZodArray<z.ZodObject<{
|
|
1311
|
+
id: z.ZodString;
|
|
1312
|
+
src: z.ZodString;
|
|
1313
|
+
caption: z.ZodString;
|
|
1314
|
+
width: z.ZodInt;
|
|
1315
|
+
height: z.ZodInt;
|
|
1316
|
+
}, z.core.$strip>>;
|
|
1317
|
+
equations: z.ZodArray<z.ZodObject<{
|
|
1318
|
+
id: z.ZodString;
|
|
1319
|
+
tex: z.ZodString;
|
|
1320
|
+
display: z.ZodBoolean;
|
|
1321
|
+
}, z.core.$strip>>;
|
|
1322
|
+
tables: z.ZodArray<z.ZodObject<{
|
|
1323
|
+
id: z.ZodString;
|
|
1324
|
+
caption: z.ZodOptional<z.ZodString>;
|
|
1325
|
+
columns: z.ZodArray<z.ZodString>;
|
|
1326
|
+
rows: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
1327
|
+
}, z.core.$strip>>;
|
|
1328
|
+
}, z.core.$strip>;
|
|
1329
|
+
storyboard: z.ZodObject<{
|
|
1330
|
+
sourceId: z.ZodString;
|
|
1331
|
+
title: z.ZodString;
|
|
1332
|
+
lang: z.ZodDefault<z.ZodString>;
|
|
1333
|
+
theme: z.ZodDefault<z.ZodString>;
|
|
1334
|
+
beats: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1335
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1336
|
+
archetype: z.ZodLiteral<"title">;
|
|
1337
|
+
params: z.ZodObject<{
|
|
1338
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1339
|
+
headline: z.ZodString;
|
|
1340
|
+
sub: z.ZodOptional<z.ZodString>;
|
|
1341
|
+
}, z.core.$strip>;
|
|
1342
|
+
id: z.ZodString;
|
|
1343
|
+
intent: z.ZodString;
|
|
1344
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1345
|
+
beat: z.ZodString;
|
|
1346
|
+
element: z.ZodString;
|
|
1347
|
+
}, z.core.$strip>>;
|
|
1348
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1349
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1350
|
+
kind: z.ZodEnum<{
|
|
1351
|
+
figure: "figure";
|
|
1352
|
+
equation: "equation";
|
|
1353
|
+
table: "table";
|
|
1354
|
+
section: "section";
|
|
1355
|
+
}>;
|
|
1356
|
+
id: z.ZodString;
|
|
1357
|
+
}, z.core.$strip>>>;
|
|
1358
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1359
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1360
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1361
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1362
|
+
archetype: z.ZodLiteral<"claim-figure">;
|
|
1363
|
+
params: z.ZodObject<{
|
|
1364
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1365
|
+
headline: z.ZodString;
|
|
1366
|
+
claim: z.ZodString;
|
|
1367
|
+
figureId: z.ZodString;
|
|
1368
|
+
}, z.core.$strip>;
|
|
1369
|
+
id: z.ZodString;
|
|
1370
|
+
intent: z.ZodString;
|
|
1371
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1372
|
+
beat: z.ZodString;
|
|
1373
|
+
element: z.ZodString;
|
|
1374
|
+
}, z.core.$strip>>;
|
|
1375
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1376
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1377
|
+
kind: z.ZodEnum<{
|
|
1378
|
+
figure: "figure";
|
|
1379
|
+
equation: "equation";
|
|
1380
|
+
table: "table";
|
|
1381
|
+
section: "section";
|
|
1382
|
+
}>;
|
|
1383
|
+
id: z.ZodString;
|
|
1384
|
+
}, z.core.$strip>>>;
|
|
1385
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1386
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1387
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1388
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1389
|
+
archetype: z.ZodLiteral<"equation-walk">;
|
|
1390
|
+
params: z.ZodObject<{
|
|
1391
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1392
|
+
headline: z.ZodString;
|
|
1393
|
+
equationId: z.ZodString;
|
|
1394
|
+
terms: z.ZodArray<z.ZodObject<{
|
|
1395
|
+
tex: z.ZodString;
|
|
1396
|
+
label: z.ZodString;
|
|
1397
|
+
tone: z.ZodEnum<{
|
|
1398
|
+
a: "a";
|
|
1399
|
+
b: "b";
|
|
1400
|
+
c: "c";
|
|
1401
|
+
d: "d";
|
|
1402
|
+
}>;
|
|
1403
|
+
}, z.core.$strip>>;
|
|
1404
|
+
}, z.core.$strip>;
|
|
1405
|
+
id: z.ZodString;
|
|
1406
|
+
intent: z.ZodString;
|
|
1407
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1408
|
+
beat: z.ZodString;
|
|
1409
|
+
element: z.ZodString;
|
|
1410
|
+
}, z.core.$strip>>;
|
|
1411
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1412
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1413
|
+
kind: z.ZodEnum<{
|
|
1414
|
+
figure: "figure";
|
|
1415
|
+
equation: "equation";
|
|
1416
|
+
table: "table";
|
|
1417
|
+
section: "section";
|
|
1418
|
+
}>;
|
|
1419
|
+
id: z.ZodString;
|
|
1420
|
+
}, z.core.$strip>>>;
|
|
1421
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1422
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1423
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1424
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1425
|
+
archetype: z.ZodLiteral<"data-table">;
|
|
1426
|
+
params: z.ZodObject<{
|
|
1427
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1428
|
+
headline: z.ZodString;
|
|
1429
|
+
tableId: z.ZodString;
|
|
1430
|
+
highlight: z.ZodArray<z.ZodObject<{
|
|
1431
|
+
row: z.ZodString;
|
|
1432
|
+
tone: z.ZodEnum<{
|
|
1433
|
+
a: "a";
|
|
1434
|
+
b: "b";
|
|
1435
|
+
c: "c";
|
|
1436
|
+
d: "d";
|
|
1437
|
+
}>;
|
|
1438
|
+
}, z.core.$strip>>;
|
|
1439
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1440
|
+
}, z.core.$strip>;
|
|
1441
|
+
id: z.ZodString;
|
|
1442
|
+
intent: z.ZodString;
|
|
1443
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1444
|
+
beat: z.ZodString;
|
|
1445
|
+
element: z.ZodString;
|
|
1446
|
+
}, z.core.$strip>>;
|
|
1447
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1448
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1449
|
+
kind: z.ZodEnum<{
|
|
1450
|
+
figure: "figure";
|
|
1451
|
+
equation: "equation";
|
|
1452
|
+
table: "table";
|
|
1453
|
+
section: "section";
|
|
1454
|
+
}>;
|
|
1455
|
+
id: z.ZodString;
|
|
1456
|
+
}, z.core.$strip>>>;
|
|
1457
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1458
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1459
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1460
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1461
|
+
archetype: z.ZodLiteral<"line-chart">;
|
|
1462
|
+
params: z.ZodObject<{
|
|
1463
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1464
|
+
headline: z.ZodString;
|
|
1465
|
+
xLabel: z.ZodString;
|
|
1466
|
+
yLabel: z.ZodString;
|
|
1467
|
+
points: z.ZodArray<z.ZodObject<{
|
|
1468
|
+
x: z.ZodString;
|
|
1469
|
+
y: z.ZodNumber;
|
|
1470
|
+
}, z.core.$strip>>;
|
|
1471
|
+
deltas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1472
|
+
readout: z.ZodOptional<z.ZodString>;
|
|
1473
|
+
}, z.core.$strip>;
|
|
1474
|
+
id: z.ZodString;
|
|
1475
|
+
intent: z.ZodString;
|
|
1476
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1477
|
+
beat: z.ZodString;
|
|
1478
|
+
element: z.ZodString;
|
|
1479
|
+
}, z.core.$strip>>;
|
|
1480
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1481
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1482
|
+
kind: z.ZodEnum<{
|
|
1483
|
+
figure: "figure";
|
|
1484
|
+
equation: "equation";
|
|
1485
|
+
table: "table";
|
|
1486
|
+
section: "section";
|
|
1487
|
+
}>;
|
|
1488
|
+
id: z.ZodString;
|
|
1489
|
+
}, z.core.$strip>>>;
|
|
1490
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1491
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1492
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1493
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1494
|
+
archetype: z.ZodLiteral<"callout">;
|
|
1495
|
+
params: z.ZodObject<{
|
|
1496
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1497
|
+
headline: z.ZodString;
|
|
1498
|
+
panels: z.ZodArray<z.ZodObject<{
|
|
1499
|
+
label: z.ZodString;
|
|
1500
|
+
lines: z.ZodArray<z.ZodString>;
|
|
1501
|
+
}, z.core.$strip>>;
|
|
1502
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1503
|
+
}, z.core.$strip>;
|
|
1504
|
+
id: z.ZodString;
|
|
1505
|
+
intent: z.ZodString;
|
|
1506
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1507
|
+
beat: z.ZodString;
|
|
1508
|
+
element: z.ZodString;
|
|
1509
|
+
}, z.core.$strip>>;
|
|
1510
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1511
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1512
|
+
kind: z.ZodEnum<{
|
|
1513
|
+
figure: "figure";
|
|
1514
|
+
equation: "equation";
|
|
1515
|
+
table: "table";
|
|
1516
|
+
section: "section";
|
|
1517
|
+
}>;
|
|
1518
|
+
id: z.ZodString;
|
|
1519
|
+
}, z.core.$strip>>>;
|
|
1520
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1521
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1522
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1523
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1524
|
+
archetype: z.ZodLiteral<"pipeline">;
|
|
1525
|
+
params: z.ZodObject<{
|
|
1526
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1527
|
+
headline: z.ZodString;
|
|
1528
|
+
stages: z.ZodArray<z.ZodObject<{
|
|
1529
|
+
label: z.ZodString;
|
|
1530
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1531
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
1532
|
+
a: "a";
|
|
1533
|
+
b: "b";
|
|
1534
|
+
c: "c";
|
|
1535
|
+
d: "d";
|
|
1536
|
+
}>>;
|
|
1537
|
+
}, z.core.$strip>>;
|
|
1538
|
+
loop: z.ZodOptional<z.ZodObject<{
|
|
1539
|
+
from: z.ZodOptional<z.ZodInt>;
|
|
1540
|
+
to: z.ZodInt;
|
|
1541
|
+
label: z.ZodString;
|
|
1542
|
+
}, z.core.$strip>>;
|
|
1543
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1544
|
+
}, z.core.$strip>;
|
|
1545
|
+
id: z.ZodString;
|
|
1546
|
+
intent: z.ZodString;
|
|
1547
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1548
|
+
beat: z.ZodString;
|
|
1549
|
+
element: z.ZodString;
|
|
1550
|
+
}, z.core.$strip>>;
|
|
1551
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1552
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1553
|
+
kind: z.ZodEnum<{
|
|
1554
|
+
figure: "figure";
|
|
1555
|
+
equation: "equation";
|
|
1556
|
+
table: "table";
|
|
1557
|
+
section: "section";
|
|
1558
|
+
}>;
|
|
1559
|
+
id: z.ZodString;
|
|
1560
|
+
}, z.core.$strip>>>;
|
|
1561
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1562
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1563
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1564
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1565
|
+
archetype: z.ZodLiteral<"annotated-figure">;
|
|
1566
|
+
params: z.ZodObject<{
|
|
1567
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1568
|
+
headline: z.ZodString;
|
|
1569
|
+
figureId: z.ZodString;
|
|
1570
|
+
crop: z.ZodOptional<z.ZodObject<{
|
|
1571
|
+
x: z.ZodNumber;
|
|
1572
|
+
y: z.ZodNumber;
|
|
1573
|
+
w: z.ZodNumber;
|
|
1574
|
+
h: z.ZodNumber;
|
|
1575
|
+
}, z.core.$strip>>;
|
|
1576
|
+
notes: z.ZodArray<z.ZodObject<{
|
|
1577
|
+
x: z.ZodNumber;
|
|
1578
|
+
y: z.ZodNumber;
|
|
1579
|
+
text: z.ZodString;
|
|
1580
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
1581
|
+
a: "a";
|
|
1582
|
+
b: "b";
|
|
1583
|
+
c: "c";
|
|
1584
|
+
d: "d";
|
|
1585
|
+
}>>;
|
|
1586
|
+
}, z.core.$strip>>;
|
|
1587
|
+
}, z.core.$strip>;
|
|
1588
|
+
id: z.ZodString;
|
|
1589
|
+
intent: z.ZodString;
|
|
1590
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1591
|
+
beat: z.ZodString;
|
|
1592
|
+
element: z.ZodString;
|
|
1593
|
+
}, z.core.$strip>>;
|
|
1594
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1595
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1596
|
+
kind: z.ZodEnum<{
|
|
1597
|
+
figure: "figure";
|
|
1598
|
+
equation: "equation";
|
|
1599
|
+
table: "table";
|
|
1600
|
+
section: "section";
|
|
1601
|
+
}>;
|
|
1602
|
+
id: z.ZodString;
|
|
1603
|
+
}, z.core.$strip>>>;
|
|
1604
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1605
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1606
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1607
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1608
|
+
archetype: z.ZodLiteral<"grid">;
|
|
1609
|
+
params: z.ZodObject<{
|
|
1610
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1611
|
+
headline: z.ZodString;
|
|
1612
|
+
cols: z.ZodInt;
|
|
1613
|
+
rows: z.ZodInt;
|
|
1614
|
+
regions: z.ZodArray<z.ZodObject<{
|
|
1615
|
+
x: z.ZodInt;
|
|
1616
|
+
y: z.ZodInt;
|
|
1617
|
+
w: z.ZodInt;
|
|
1618
|
+
h: z.ZodInt;
|
|
1619
|
+
label: z.ZodString;
|
|
1620
|
+
tone: z.ZodEnum<{
|
|
1621
|
+
a: "a";
|
|
1622
|
+
b: "b";
|
|
1623
|
+
c: "c";
|
|
1624
|
+
d: "d";
|
|
1625
|
+
}>;
|
|
1626
|
+
}, z.core.$strip>>;
|
|
1627
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1628
|
+
}, z.core.$strip>;
|
|
1629
|
+
id: z.ZodString;
|
|
1630
|
+
intent: z.ZodString;
|
|
1631
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1632
|
+
beat: z.ZodString;
|
|
1633
|
+
element: z.ZodString;
|
|
1634
|
+
}, z.core.$strip>>;
|
|
1635
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1636
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1637
|
+
kind: z.ZodEnum<{
|
|
1638
|
+
figure: "figure";
|
|
1639
|
+
equation: "equation";
|
|
1640
|
+
table: "table";
|
|
1641
|
+
section: "section";
|
|
1642
|
+
}>;
|
|
1643
|
+
id: z.ZodString;
|
|
1644
|
+
}, z.core.$strip>>>;
|
|
1645
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1646
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1647
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1648
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1649
|
+
archetype: z.ZodLiteral<"bar-compare">;
|
|
1650
|
+
params: z.ZodObject<{
|
|
1651
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1652
|
+
headline: z.ZodString;
|
|
1653
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
1654
|
+
bars: z.ZodArray<z.ZodObject<{
|
|
1655
|
+
label: z.ZodString;
|
|
1656
|
+
value: z.ZodNumber;
|
|
1657
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
1658
|
+
a: "a";
|
|
1659
|
+
b: "b";
|
|
1660
|
+
c: "c";
|
|
1661
|
+
d: "d";
|
|
1662
|
+
}>>;
|
|
1663
|
+
}, z.core.$strip>>;
|
|
1664
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1665
|
+
}, z.core.$strip>;
|
|
1666
|
+
id: z.ZodString;
|
|
1667
|
+
intent: z.ZodString;
|
|
1668
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1669
|
+
beat: z.ZodString;
|
|
1670
|
+
element: z.ZodString;
|
|
1671
|
+
}, z.core.$strip>>;
|
|
1672
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1673
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1674
|
+
kind: z.ZodEnum<{
|
|
1675
|
+
figure: "figure";
|
|
1676
|
+
equation: "equation";
|
|
1677
|
+
table: "table";
|
|
1678
|
+
section: "section";
|
|
1679
|
+
}>;
|
|
1680
|
+
id: z.ZodString;
|
|
1681
|
+
}, z.core.$strip>>>;
|
|
1682
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1683
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1684
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1685
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1686
|
+
archetype: z.ZodLiteral<"stack">;
|
|
1687
|
+
params: z.ZodObject<{
|
|
1688
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1689
|
+
headline: z.ZodString;
|
|
1690
|
+
layers: z.ZodArray<z.ZodObject<{
|
|
1691
|
+
label: z.ZodString;
|
|
1692
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1693
|
+
}, z.core.$strip>>;
|
|
1694
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1695
|
+
}, z.core.$strip>;
|
|
1696
|
+
id: z.ZodString;
|
|
1697
|
+
intent: z.ZodString;
|
|
1698
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1699
|
+
beat: z.ZodString;
|
|
1700
|
+
element: z.ZodString;
|
|
1701
|
+
}, z.core.$strip>>;
|
|
1702
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1703
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1704
|
+
kind: z.ZodEnum<{
|
|
1705
|
+
figure: "figure";
|
|
1706
|
+
equation: "equation";
|
|
1707
|
+
table: "table";
|
|
1708
|
+
section: "section";
|
|
1709
|
+
}>;
|
|
1710
|
+
id: z.ZodString;
|
|
1711
|
+
}, z.core.$strip>>>;
|
|
1712
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1713
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1714
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1715
|
+
narration: z.ZodOptional<z.ZodString>;
|
|
1716
|
+
archetype: z.ZodLiteral<"split-compare">;
|
|
1717
|
+
params: z.ZodObject<{
|
|
1718
|
+
eyebrow: z.ZodOptional<z.ZodString>;
|
|
1719
|
+
headline: z.ZodString;
|
|
1720
|
+
left: z.ZodObject<{
|
|
1721
|
+
label: z.ZodString;
|
|
1722
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
1723
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1724
|
+
}, z.core.$strip>;
|
|
1725
|
+
right: z.ZodObject<{
|
|
1726
|
+
label: z.ZodString;
|
|
1727
|
+
figureId: z.ZodOptional<z.ZodString>;
|
|
1728
|
+
lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1729
|
+
}, z.core.$strip>;
|
|
1730
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1731
|
+
}, z.core.$strip>;
|
|
1732
|
+
id: z.ZodString;
|
|
1733
|
+
intent: z.ZodString;
|
|
1734
|
+
inside: z.ZodOptional<z.ZodObject<{
|
|
1735
|
+
beat: z.ZodString;
|
|
1736
|
+
element: z.ZodString;
|
|
1737
|
+
}, z.core.$strip>>;
|
|
1738
|
+
claim: z.ZodOptional<z.ZodString>;
|
|
1739
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1740
|
+
kind: z.ZodEnum<{
|
|
1741
|
+
figure: "figure";
|
|
1742
|
+
equation: "equation";
|
|
1743
|
+
table: "table";
|
|
1744
|
+
section: "section";
|
|
1745
|
+
}>;
|
|
1746
|
+
id: z.ZodString;
|
|
1747
|
+
}, z.core.$strip>>>;
|
|
1748
|
+
weight: z.ZodDefault<z.ZodNumber>;
|
|
1749
|
+
seconds: z.ZodDefault<z.ZodNumber>;
|
|
1750
|
+
}, z.core.$strip>], "archetype">>;
|
|
1751
|
+
}, z.core.$strip>;
|
|
1752
|
+
narration: z.ZodOptional<z.ZodObject<{
|
|
1753
|
+
voice: z.ZodString;
|
|
1754
|
+
beats: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
1755
|
+
stop: z.ZodInt;
|
|
1756
|
+
text: z.ZodString;
|
|
1757
|
+
audio: z.ZodString;
|
|
1758
|
+
seconds: z.ZodNumber;
|
|
1759
|
+
cues: z.ZodArray<z.ZodObject<{
|
|
1760
|
+
start: z.ZodNumber;
|
|
1761
|
+
end: z.ZodNumber;
|
|
1762
|
+
text: z.ZodString;
|
|
1763
|
+
}, z.core.$strip>>;
|
|
1764
|
+
}, z.core.$strip>>>;
|
|
1765
|
+
}, z.core.$strip>>;
|
|
1766
|
+
media: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1767
|
+
id: z.ZodString;
|
|
1768
|
+
policy: z.ZodEnum<{
|
|
1769
|
+
bake: "bake";
|
|
1770
|
+
link: "link";
|
|
1771
|
+
embed: "embed";
|
|
1772
|
+
}>;
|
|
1773
|
+
path: z.ZodOptional<z.ZodString>;
|
|
1774
|
+
url: z.ZodOptional<z.ZodString>;
|
|
1775
|
+
mime: z.ZodOptional<z.ZodString>;
|
|
1776
|
+
bytes: z.ZodOptional<z.ZodInt>;
|
|
1777
|
+
}, z.core.$strip>>>;
|
|
1778
|
+
}, z.core.$strip>;
|
|
1779
|
+
/**
|
|
1780
|
+
* The profiles that ship with a name. `FORMATS` is keyed by these and nothing
|
|
1781
|
+
* else; `DESTINATIONS` and the budget helpers are indexed by them.
|
|
1782
|
+
*
|
|
1783
|
+
* `Format["id"]` is deliberately WIDER than this — a canvas the caller sized
|
|
1784
|
+
* itself is a real format with a real id, and it is not in this union. See
|
|
1785
|
+
* `resizeFormat`.
|
|
1786
|
+
*/
|
|
1787
|
+
export type PresetId = "deck-16x9" | "video-16x9" | "short-9x16" | "post-1x1";
|
|
1788
|
+
/**
|
|
1789
|
+
* Output profiles. A profile decides canvas, pacing, and how many beats
|
|
1790
|
+
* survive — never what the beats mean.
|
|
1791
|
+
*
|
|
1792
|
+
* A plain type, not a schema: the preset table below is the only source of NAMED
|
|
1793
|
+
* formats there is, and the one other constructor (`resizeFormat`) validates its
|
|
1794
|
+
* own arguments, so there is no boundary at which one could arrive unvalidated.
|
|
1795
|
+
*/
|
|
1796
|
+
export interface Format {
|
|
1797
|
+
/**
|
|
1798
|
+
* A `PresetId` for the four named profiles, `custom-<w>x<h>` for a canvas the
|
|
1799
|
+
* caller sized. Printed in build lines and in cut explanations, so it has to
|
|
1800
|
+
* describe the thing that was actually built: a resized profile keeps its
|
|
1801
|
+
* base's pacing but NOT its name, because "short-9x16" over a 1080x1350 canvas
|
|
1802
|
+
* would be a lie in every message that quotes it.
|
|
1803
|
+
*/
|
|
1804
|
+
id: string;
|
|
1805
|
+
width: number;
|
|
1806
|
+
height: number;
|
|
1807
|
+
/** Keep only beats at or above this weight. */
|
|
1808
|
+
minWeight: number;
|
|
1809
|
+
/** Deck mode emits a slideshow island; video mode does not. */
|
|
1810
|
+
navigable: boolean;
|
|
1811
|
+
/**
|
|
1812
|
+
* The longest NARRATED cut this format may produce, in seconds.
|
|
1813
|
+
*
|
|
1814
|
+
* A length, like a canvas, is part of what a format is: a 9x16 file that runs
|
|
1815
|
+
* four minutes is not a short, it is a tall video nobody can post. So the
|
|
1816
|
+
* number is a hard ceiling and `verify`'s budget gate reads it — see
|
|
1817
|
+
* src/verify/budget.ts for why exceeding it fails the build rather than
|
|
1818
|
+
* silently trimming beats.
|
|
1819
|
+
*
|
|
1820
|
+
* `Infinity` where no platform imposes one. That is not "unchecked": a
|
|
1821
|
+
* presented deck is paced by the person clicking through it, and long-form
|
|
1822
|
+
* video has no ceiling worth encoding, so any finite number here would be a
|
|
1823
|
+
* house rule dressed up as a constraint.
|
|
1824
|
+
*
|
|
1825
|
+
* Optional in the TYPE, mandatory in the TABLE — `test/types.test.ts` asserts
|
|
1826
|
+
* every entry in `FORMATS` states one. A required field cannot tell "chose
|
|
1827
|
+
* Infinity" apart from "forgot the field", and it would force every test
|
|
1828
|
+
* fixture that needs a canvas to invent a length it does not care about.
|
|
1829
|
+
* Absent reads as unbudgeted, which is the safe direction for a fixture and
|
|
1830
|
+
* the one the coherence test refuses for a shipped profile.
|
|
1831
|
+
*/
|
|
1832
|
+
maxSeconds?: number;
|
|
1833
|
+
/**
|
|
1834
|
+
* A tighter ceiling that only some destinations impose — a warning, not a
|
|
1835
|
+
* failure. Omitted when every destination for the format agrees on `maxSeconds`.
|
|
1836
|
+
*/
|
|
1837
|
+
warnSeconds?: number;
|
|
1838
|
+
}
|
|
1839
|
+
/** A real place a built file gets uploaded, and the length it stops accepting at. */
|
|
1840
|
+
export interface Destination {
|
|
1841
|
+
/** What a person would call it. Printed in budget findings. */
|
|
1842
|
+
name: string;
|
|
1843
|
+
/** Longest video this destination takes, in seconds. */
|
|
1844
|
+
maxSeconds: number;
|
|
1845
|
+
}
|
|
1846
|
+
/**
|
|
1847
|
+
* Where each format's file is actually going.
|
|
1848
|
+
*
|
|
1849
|
+
* The budget numbers used to be two literals with a comment, and a comment is
|
|
1850
|
+
* not a check: Instagram raised Reels from 90 seconds to three minutes in early
|
|
1851
|
+
* 2025, and the table went on quoting 90 as an Instagram limit long after that
|
|
1852
|
+
* stopped being true. A number in a table nobody can trace is a trap, so
|
|
1853
|
+
* `maxSeconds` and `warnSeconds` are DERIVED from this list — you cannot state a
|
|
1854
|
+
* budget here without naming the destination it came from.
|
|
1855
|
+
*
|
|
1856
|
+
* WHAT IS DELIBERATELY ABSENT. TikTok takes ten minutes and LinkedIn takes
|
|
1857
|
+
* fifteen, and neither is listed, because the cap is the LOOSEST limit among a
|
|
1858
|
+
* format's destinations: adding one permissive platform would raise `short-9x16`
|
|
1859
|
+
* to 600s and the gate would stop failing the four-minute short it exists to
|
|
1860
|
+
* catch. So a destination belongs here only if it CONSTRAINS the deliverable —
|
|
1861
|
+
* a platform that accepts anything the others accept adds nothing but slack.
|
|
1862
|
+
*
|
|
1863
|
+
* Verified by hand, not by network (nothing here may reach one). These move;
|
|
1864
|
+
* when one does, the finding it produces names it, so the stale number is
|
|
1865
|
+
* findable from the message rather than only from this file.
|
|
1866
|
+
*/
|
|
1867
|
+
export declare const DESTINATIONS: Readonly<Record<PresetId, readonly Destination[]>>;
|
|
1868
|
+
/** The loosest destination: what the format may produce at all. */
|
|
1869
|
+
export declare function maxSecondsFor(id: string): number;
|
|
1870
|
+
/** The tightest destination, when it is tighter — a warning, never a failure. */
|
|
1871
|
+
export declare function warnSecondsFor(id: string): number | undefined;
|
|
1872
|
+
/** The destination a given ceiling came from, for a message that can name it. */
|
|
1873
|
+
export declare function destinationAt(id: string, seconds: number): Destination | undefined;
|
|
1874
|
+
export declare const FORMATS: Record<string, Format>;
|
|
1875
|
+
/**
|
|
1876
|
+
* The smallest edge a canvas may have.
|
|
1877
|
+
*
|
|
1878
|
+
* Not a taste call. Every absolute measurement in `src/emit/kit.ts` is scaled by
|
|
1879
|
+
* `width / 1920`; at 64px wide that factor is 0.033, which rounds the scene
|
|
1880
|
+
* padding to 4px and puts every emitted type size under 3px. The composition is
|
|
1881
|
+
* still valid HTML — it is just an image of grey smears, and no gate can tell
|
|
1882
|
+
* that from a deck. Below this there is nothing left to be wrong about.
|
|
1883
|
+
*/
|
|
1884
|
+
export declare const MIN_EDGE = 64;
|
|
1885
|
+
/**
|
|
1886
|
+
* The largest edge a canvas may have.
|
|
1887
|
+
*
|
|
1888
|
+
* Chrome's `Page.captureScreenshot` — which is how `render` gets every frame —
|
|
1889
|
+
* is bounded by the maximum texture size, 16384px on the desktop builds
|
|
1890
|
+
* hyperframes drives. Past it capture fails partway through a job that has
|
|
1891
|
+
* already burned an hour, which is the worst possible place to learn a number.
|
|
1892
|
+
*/
|
|
1893
|
+
export declare const MAX_EDGE = 16384;
|
|
1894
|
+
/**
|
|
1895
|
+
* The most lopsided canvas the layout survives, long edge over short.
|
|
1896
|
+
*
|
|
1897
|
+
* DERIVED, not chosen for looks. `padY` in src/emit/kit.ts is `84 × width/1920`
|
|
1898
|
+
* — the vertical padding scales with WIDTH, because the type it clears scales
|
|
1899
|
+
* with width — so on a canvas `k` times wider than tall the two paddings take
|
|
1900
|
+
* `0.0875 × k` of the height. At k = 8 that is 70% of the frame gone to margin
|
|
1901
|
+
* and 30% left to draw in; at k = 11.4 the content box is exactly zero and every
|
|
1902
|
+
* archetype lays out into negative space without a single gate firing. 8 is the
|
|
1903
|
+
* last ratio at which "the slide is mostly margin" is still a slide.
|
|
1904
|
+
*
|
|
1905
|
+
* Applied in both directions. The tall side has no such collapse — it fails
|
|
1906
|
+
* through the type scale instead, which `canvasWarnings` reports below.
|
|
1907
|
+
*/
|
|
1908
|
+
export declare const MAX_ASPECT = 8;
|
|
1909
|
+
/**
|
|
1910
|
+
* Below this width the deck is legible only to a machine.
|
|
1911
|
+
*
|
|
1912
|
+
* Half of the 1920 canvas every measurement in `src/emit` was chosen against.
|
|
1913
|
+
*
|
|
1914
|
+
* MEASURED, on the demo storyboard, by emitting at each canvas and bisecting
|
|
1915
|
+
* (experiments/011-sizing/sweep.mjs). Two things came out of it, and they are
|
|
1916
|
+
* why this is a WARNING and only a warning:
|
|
1917
|
+
*
|
|
1918
|
+
* - The archetypes already refuse rather than shrink. The smallest 16:9 canvas
|
|
1919
|
+
* the demo lays out on is about 1325x745; below it `split-compare` throws
|
|
1920
|
+
* `the panels do not fit beside each other at the 40px floor`, by name, with
|
|
1921
|
+
* the beat id. Square gives up around 740x740 and 9:16 around 429x763 — the
|
|
1922
|
+
* narrow shapes get further because they stack instead of sitting side by
|
|
1923
|
+
* side. So the range between here and there produces a clear build error, not
|
|
1924
|
+
* a bad deck, and does not need a warning on top of it.
|
|
1925
|
+
* - Under that boundary the sizes that DO emit put the 40px type floor between
|
|
1926
|
+
* 20 and 28 real canvas pixels depending on `REF_PULL` in src/emit/kit.ts,
|
|
1927
|
+
* and text that small does not survive H.264 chroma subsampling at any
|
|
1928
|
+
* bitrate. Nothing in the gate stack measures rendered glyph size, so this
|
|
1929
|
+
* line is the only warning that will ever be given.
|
|
1930
|
+
*
|
|
1931
|
+
* Not an error, because a 100x100 deck is a legal thing to ask for — a thumbnail
|
|
1932
|
+
* strip, a favicon-scale loop — and this is not the place to argue about it.
|
|
1933
|
+
*/
|
|
1934
|
+
export declare const LEGIBLE_W = 960;
|
|
1935
|
+
/**
|
|
1936
|
+
* Why this canvas cannot be built, in one sentence, or nothing.
|
|
1937
|
+
*
|
|
1938
|
+
* Separate from `canvasWarnings` because the two have different consequences and
|
|
1939
|
+
* the caller must not have to tell them apart by reading the prose.
|
|
1940
|
+
*/
|
|
1941
|
+
export declare function canvasProblem(width: number, height: number): string | undefined;
|
|
1942
|
+
/**
|
|
1943
|
+
* What is legal but probably not what the caller meant. Printed, never fatal.
|
|
1944
|
+
*/
|
|
1945
|
+
export declare function canvasWarnings(width: number, height: number): string[];
|
|
1946
|
+
/**
|
|
1947
|
+
* The same profile on a different canvas.
|
|
1948
|
+
*
|
|
1949
|
+
* WHAT IS AND IS NOT DERIVED. `minWeight`, the duration budget and `navigable`
|
|
1950
|
+
* come from `base` untouched, because there is nothing about a pixel count that
|
|
1951
|
+
* implies any of them: `short-9x16`'s 0.6 floor and 180-second ceiling are facts
|
|
1952
|
+
* about YouTube Shorts, not about being 1080 wide, and inventing an equivalent
|
|
1953
|
+
* for 1080x1350 would be exactly the house-rule-dressed-as-a-constraint that the
|
|
1954
|
+
* note on `DESTINATIONS` exists to forbid. So a resized format inherits from a
|
|
1955
|
+
* profile the caller NAMED — `--width 1080 --height 1350` alone means
|
|
1956
|
+
* "deck-16x9 at another size": unbudgeted, no floor, navigable — and
|
|
1957
|
+
* `--format short-9x16 --width 1080 --height 1350` means "a Reel, but 4:5".
|
|
1958
|
+
*
|
|
1959
|
+
* A canvas identical to the base's returns the base itself, so that stating the
|
|
1960
|
+
* size you were going to get anyway cannot rename your format or cost you the
|
|
1961
|
+
* budget attached to its name.
|
|
1962
|
+
*/
|
|
1963
|
+
export declare function resizeFormat(base: Format, width: number, height: number): Format;
|
|
1964
|
+
/** Whether this format's canvas was given rather than named. */
|
|
1965
|
+
export declare function isCustom(format: Format): boolean;
|
|
1966
|
+
/** Verdicts are produced and printed in one process; nothing parses them back. */
|
|
1967
|
+
export interface Finding {
|
|
1968
|
+
severity: "error" | "warning" | "info";
|
|
1969
|
+
/** Which gate produced it: lint | runtime | layout | motion | contrast. */
|
|
1970
|
+
gate: string;
|
|
1971
|
+
rule: string;
|
|
1972
|
+
message: string;
|
|
1973
|
+
beatId?: string;
|
|
1974
|
+
}
|
|
1975
|
+
export interface Verdict {
|
|
1976
|
+
passed: boolean;
|
|
1977
|
+
findings: Finding[];
|
|
1978
|
+
}
|
|
1979
|
+
export type Ref = z.infer<typeof refSchema>;
|
|
1980
|
+
export type Figure = z.infer<typeof figureSchema>;
|
|
1981
|
+
export type Equation = z.infer<typeof equationSchema>;
|
|
1982
|
+
export type Table = z.infer<typeof tableSchema>;
|
|
1983
|
+
export type Section = z.infer<typeof sectionSchema>;
|
|
1984
|
+
export type Source = z.infer<typeof sourceSchema>;
|
|
1985
|
+
export type Term = z.infer<typeof termSchema>;
|
|
1986
|
+
export type Beat = z.infer<typeof beatSchema>;
|
|
1987
|
+
export type Archetype = Beat["archetype"];
|
|
1988
|
+
export type Storyboard = z.infer<typeof storyboardSchema>;
|
|
1989
|
+
/** Narrow a beat to one archetype — the emitters' entry point. */
|
|
1990
|
+
export type BeatOf<A extends Archetype> = Extract<Beat, {
|
|
1991
|
+
archetype: A;
|
|
1992
|
+
}>;
|