@cueframe/kernel 0.2.56 → 0.2.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/THIRD_PARTY_NOTICES.md +111 -0
  2. package/dist/_members/component-runtime/template/bind.d.ts +22 -0
  3. package/dist/_members/component-runtime/template/bind.d.ts.map +1 -0
  4. package/dist/_members/component-runtime/template/extract.d.ts +31 -0
  5. package/dist/_members/component-runtime/template/extract.d.ts.map +1 -0
  6. package/dist/_members/component-runtime/template/index.d.ts +5 -0
  7. package/dist/_members/component-runtime/template/index.d.ts.map +1 -0
  8. package/dist/_members/component-runtime/template/schema.d.ts +1580 -0
  9. package/dist/_members/component-runtime/template/schema.d.ts.map +1 -0
  10. package/dist/_members/component-runtime/template/testing/fixtures.d.ts +33 -0
  11. package/dist/_members/component-runtime/template/testing/fixtures.d.ts.map +1 -0
  12. package/dist/_members/component-runtime/template/testing/index.d.ts +3 -0
  13. package/dist/_members/component-runtime/template/testing/index.d.ts.map +1 -0
  14. package/dist/_members/component-runtime/template/testing/templateApplyContract.d.ts +54 -0
  15. package/dist/_members/component-runtime/template/testing/templateApplyContract.d.ts.map +1 -0
  16. package/dist/_members/composition/primitive-catalog/index.d.ts +2 -1
  17. package/dist/_members/composition/primitive-catalog/types.d.ts +3 -1
  18. package/dist/_members/composition/projection/brandKit.d.ts +1 -0
  19. package/dist/_members/composition/validators/brandKit.d.ts +8 -0
  20. package/dist/_members/composition/validators/brandKitBody.d.ts +543 -0
  21. package/dist/_members/composition/validators/render.d.ts +2 -0
  22. package/dist/_members/errors/registry.d.ts +36 -0
  23. package/dist/_members/mcp/server.d.ts +5 -2
  24. package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +1 -1
  25. package/dist/_members/primitives/effects/blur/config.d.ts +1 -1
  26. package/dist/_members/primitives/effects/color-grade/config.d.ts +2 -2
  27. package/dist/_members/primitives/effects/grain/config.d.ts +3 -3
  28. package/dist/_members/primitives/effects/particles/config.d.ts +2 -2
  29. package/dist/_members/primitives/effects/stage-camera/config.d.ts +6 -6
  30. package/dist/_members/primitives/effects/vignette/config.d.ts +1 -1
  31. package/dist/_members/primitives/layouts/flex-layout/config.d.ts +3 -3
  32. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +2 -2
  33. package/dist/_members/primitives/lib/types.d.ts +1 -1
  34. package/dist/_members/primitives/scenes/device-showcase/config.d.ts +7 -7
  35. package/dist/_members/primitives/text/cinematic-title/config.d.ts +3 -3
  36. package/dist/_members/primitives/text/karaoke/config.d.ts +1 -1
  37. package/dist/_members/primitives/text/kinetic-type/config.d.ts +3 -3
  38. package/dist/_members/primitives/text/stat-counter/config.d.ts +1 -1
  39. package/dist/_members/primitives/text/text-effect/config.d.ts +2 -2
  40. package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +1 -1
  41. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +3 -3
  42. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +2 -2
  43. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +2 -2
  44. package/dist/authoring/build-tools.js +5 -4
  45. package/dist/authoring/context.js +2 -1
  46. package/dist/authoring/tools.js +4 -3
  47. package/dist/authoring.js +8 -7
  48. package/dist/{chunk-O7QDAIB6.js → chunk-2L33CKIY.js} +3 -5
  49. package/dist/{chunk-N54EGUVM.js → chunk-3VLDQE26.js} +1 -1
  50. package/dist/{chunk-7AZLFN26.js → chunk-4NIJWK45.js} +20 -12
  51. package/dist/{chunk-KSRFYFUZ.js → chunk-5T655LYZ.js} +1 -1
  52. package/dist/{chunk-E2LKX6C4.js → chunk-6UZYUWBX.js} +1 -1
  53. package/dist/{chunk-EGIVPZCJ.js → chunk-7EDLPIUN.js} +3 -3
  54. package/dist/{chunk-FOST4XYJ.js → chunk-7NIOFHMH.js} +2 -2
  55. package/dist/{chunk-E63UEO5C.js → chunk-AK5QBHOB.js} +6 -0
  56. package/dist/{chunk-TLOYCCCI.js → chunk-DKBFAQCW.js} +1 -0
  57. package/dist/{chunk-BDFAA747.js → chunk-GQ6XGAFB.js} +1 -1
  58. package/dist/chunk-IG3YAOUZ.js +418 -0
  59. package/dist/{chunk-Z4G3VM3H.js → chunk-JN3GF36B.js} +1 -1
  60. package/dist/{chunk-DV7ZFVL4.js → chunk-MFMR3LHO.js} +1 -1
  61. package/dist/{chunk-JPMVNMF3.js → chunk-MNO6AO2J.js} +1 -1
  62. package/dist/{chunk-VDLWT5RY.js → chunk-NVXSKKRN.js} +9 -8
  63. package/dist/chunk-PWWZTY3G.js +254 -0
  64. package/dist/chunk-REST55RC.js +366 -0
  65. package/dist/chunk-TR53N6HB.js +196 -0
  66. package/dist/{chunk-4DQRD7TD.js → chunk-UXRSEMJJ.js} +201 -201
  67. package/dist/component-runtime/template/testing.d.ts +1 -0
  68. package/dist/component-runtime/template/testing.js +380 -0
  69. package/dist/component-runtime/template.d.ts +1 -0
  70. package/dist/component-runtime/template.js +99 -0
  71. package/dist/compose.js +10 -10
  72. package/dist/composition/floors.js +1 -1
  73. package/dist/composition/graphics-plan.js +1 -1
  74. package/dist/composition/ops.js +2 -1
  75. package/dist/composition/primitive-catalog.js +3 -1
  76. package/dist/composition/projection.js +3 -3
  77. package/dist/composition/validators/brand-kit-body.d.ts +1 -0
  78. package/dist/composition/validators/brand-kit-body.js +17 -0
  79. package/dist/composition/validators.js +10 -6
  80. package/dist/composition-ops.js +8 -7
  81. package/dist/composition.js +13 -9
  82. package/dist/{context-O2HHUVSA.js → context-4WSFPRLX.js} +2 -1
  83. package/dist/core/render.js +5 -5
  84. package/dist/core/select.js +2 -2
  85. package/dist/core.js +5 -5
  86. package/dist/director/ai-sdk.js +3 -3
  87. package/dist/director/domain.js +2 -2
  88. package/dist/director.js +3 -3
  89. package/dist/errors.js +1 -1
  90. package/dist/mcp/server.js +1 -24
  91. package/dist/mcp.js +1 -24
  92. package/dist/nle-export.js +1 -1
  93. package/dist/primitives/captions.js +3 -3
  94. package/dist/primitives/hero-text.js +2 -2
  95. package/dist/primitives/scenes.js +2 -2
  96. package/dist/primitives/text.js +2 -2
  97. package/dist/primitives.js +8 -8
  98. package/dist/render-harness/cardAssetAdmission.js +2 -2
  99. package/dist/render-harness/cardFonts.js +2 -2
  100. package/dist/render-harness/renderInputAssets.js +2 -2
  101. package/dist/render-harness.js +9 -9
  102. package/dist/src-ZP6727AA.js +70 -0
  103. package/package.json +25 -13
  104. package/dist/chunk-VDNMCD6S.js +0 -660
  105. package/dist/{chunk-X34KW2SL.js → chunk-RBWS5XHE.js} +4 -4
  106. package/dist/{chunk-7SQOXIWR.js → chunk-RL5SO653.js} +3 -3
  107. package/dist/{chunk-MPAOB7HY.js → chunk-UKDBU7HM.js} +4 -4
@@ -1,660 +0,0 @@
1
- import {
2
- Composition,
3
- Copy,
4
- Format,
5
- GraphicRole,
6
- OpaqueId
7
- } from "./chunk-UFD4EZHM.js";
8
- import {
9
- brandKitCaptionFaceIssues
10
- } from "./chunk-OOL7ZUG7.js";
11
-
12
- // ../composition/src/validators/composePlan.ts
13
- import { z } from "zod";
14
- var PlanSubject = z.discriminatedUnion("kind", [
15
- z.object({ kind: z.literal("face"), faceId: z.string().min(1) }),
16
- z.object({ kind: z.literal("all-faces") }),
17
- z.object({ kind: z.literal("frame-center") }),
18
- z.object({ kind: z.literal("active-speaker") }),
19
- z.object({
20
- kind: z.literal("point"),
21
- x: z.number().min(0).max(1),
22
- y: z.number().min(0).max(1)
23
- })
24
- ]);
25
- var PlanFramingSegment = z.object({
26
- startSec: z.number().nonnegative(),
27
- endSec: z.number().positive(),
28
- action: z.enum(["frame", "keep", "trim"]).describe(
29
- "'frame' = SHOW this span cropped/tracked per `subject`. 'keep' = SHOW this span as-is, no reframe (footage with nothing to track). 'trim' = DELETE this span from the output entirely \u2014 trimmed footage never appears."
30
- ),
31
- subject: PlanSubject.optional(),
32
- shotScale: z.enum(["close", "standard", "wide"]).optional(),
33
- zoomScale: z.number().min(0.4).max(1).optional(),
34
- verticalBias: z.number().min(-0.3).max(0.3).optional(),
35
- lateralBias: z.number().min(-0.3).max(0.3).optional(),
36
- intent: z.string().optional()
37
- }).refine((s) => s.action !== "frame" || s.subject !== void 0, {
38
- message: "frame segment requires a subject \u2014 for footage with no trackable subject use action:'keep' (shown as-is); do NOT trim spans you want shown"
39
- }).refine((s) => s.action !== "keep" || s.subject === void 0, {
40
- message: "keep segment shows footage as-is \u2014 it takes no subject (use action:'frame' to track one)"
41
- }).refine((s) => s.shotScale === void 0 || s.zoomScale === void 0, {
42
- message: "framing segment takes EITHER shotScale (editorial scale \u2014 the bake calibrates the zoom to the detected face) OR zoomScale (an explicit fraction of the frame), never both: shotScale wins and the zoomScale would be silently discarded",
43
- path: ["zoomScale"]
44
- });
45
- var PlanCut = z.object({
46
- startSec: z.number().nonnegative(),
47
- endSec: z.number().positive(),
48
- reason: z.string().min(1)
49
- });
50
- var PlanAssetRequest = z.object({
51
- id: z.string().min(1),
52
- atSec: z.number().nonnegative(),
53
- durSec: z.number().positive(),
54
- kind: z.enum(["broll", "audio", "sfx", "music", "ambience", "gif", "image"]),
55
- source: z.enum(["find", "generate"]),
56
- intent: z.string().min(1),
57
- resolvedMediaId: z.string().optional()
58
- });
59
- var PlanGraphicRequest = z.object({
60
- id: z.string().min(1),
61
- atSec: z.number().nonnegative(),
62
- durSec: z.number().positive(),
63
- role: GraphicRole,
64
- copy: Copy,
65
- intent: z.string().min(1)
66
- });
67
- var PlanMarker = z.object({
68
- startSec: z.number().nonnegative(),
69
- endSec: z.number().nonnegative().optional(),
70
- kind: z.string().min(1),
71
- name: z.string().optional()
72
- });
73
- var ComposePlan = z.object({
74
- framing: z.array(PlanFramingSegment).min(1),
75
- cuts: z.array(PlanCut).optional(),
76
- captions: z.object({ styleIntent: z.string().optional() }).optional(),
77
- assets: z.array(PlanAssetRequest).optional(),
78
- graphics: z.array(PlanGraphicRequest).optional(),
79
- markers: z.array(PlanMarker).optional()
80
- });
81
-
82
- // ../composition/src/validators/brandKit.ts
83
- import { z as z2 } from "zod";
84
- var EasingValue = z2.union([
85
- z2.enum(["linear", "ease", "ease-in", "ease-out", "ease-in-out"]),
86
- z2.object({
87
- kind: z2.literal("cubic-bezier"),
88
- x1: z2.number().min(0).max(1),
89
- y1: z2.number(),
90
- x2: z2.number().min(0).max(1),
91
- y2: z2.number()
92
- })
93
- ]);
94
- var AudioPaletteRef = z2.string().min(1);
95
- var FontRef = z2.union([
96
- z2.object({
97
- kind: z2.literal("system"),
98
- family: z2.string().min(1),
99
- weight: z2.number().int().min(1).max(1e3).optional(),
100
- style: z2.enum(["normal", "italic"]).optional()
101
- }),
102
- z2.object({
103
- kind: z2.literal("web"),
104
- family: z2.string().min(1),
105
- url: z2.string().url().optional(),
106
- weight: z2.number().int().min(1).max(1e3).optional(),
107
- style: z2.enum(["normal", "italic"]).optional()
108
- }),
109
- z2.object({
110
- kind: z2.literal("uploaded"),
111
- fontId: OpaqueId,
112
- family: z2.string().optional(),
113
- weight: z2.number().int().min(1).max(1e3).optional(),
114
- style: z2.enum(["normal", "italic"]).optional()
115
- })
116
- ]);
117
- var Colors = z2.object({
118
- primary: z2.string().min(1),
119
- secondary: z2.string().optional(),
120
- accent: z2.string().min(1),
121
- background: z2.string().min(1),
122
- text: z2.string().min(1),
123
- textMuted: z2.string().optional(),
124
- border: z2.string().optional(),
125
- surface: z2.string().optional(),
126
- card: z2.string().optional(),
127
- gridLine: z2.string().optional(),
128
- accentMuted: z2.string().optional(),
129
- textOnAccent: z2.string().optional(),
130
- textOnSurface: z2.string().optional()
131
- });
132
- var Fonts = z2.object({
133
- heading: FontRef,
134
- body: FontRef.optional(),
135
- caption: FontRef.optional()
136
- });
137
- var Spacing = z2.object({
138
- base: z2.number().positive().optional(),
139
- lg: z2.number().positive().optional(),
140
- sm: z2.number().positive().optional()
141
- });
142
- var Sizing = z2.object({
143
- fontSizeHeading: z2.number().positive().optional(),
144
- fontSizeBody: z2.number().positive().optional(),
145
- fontSizeLabel: z2.number().positive().optional(),
146
- borderRadius: z2.number().nonnegative().optional()
147
- });
148
- var Motion = z2.object({
149
- duration: z2.number().positive().optional(),
150
- easing: EasingValue.optional(),
151
- entrance: z2.enum(["none", "fade", "word-pop", "stagger-up"]).optional(),
152
- staggerMs: z2.number().nonnegative().optional(),
153
- exitMs: z2.number().nonnegative().optional()
154
- });
155
- var Placement = z2.enum(["tl", "tr", "bl", "br"]);
156
- var Logo = z2.object({
157
- src: z2.string().min(1),
158
- alt: z2.string().optional(),
159
- placement: Placement.optional(),
160
- sizePct: z2.number().positive().optional()
161
- });
162
- var IntroOutro = z2.object({
163
- kind: z2.enum(["card", "video"]),
164
- src: z2.string().min(1).optional(),
165
- title: z2.string().optional(),
166
- subtitle: z2.string().optional(),
167
- durationMs: z2.number().positive().optional()
168
- });
169
- var Watermark = z2.object({
170
- src: z2.string().min(1),
171
- opacity: z2.number().min(0).max(1).optional(),
172
- placement: Placement.optional()
173
- });
174
- var MotifBody = z2.discriminatedUnion("kind", [
175
- z2.object({
176
- kind: z2.literal("card"),
177
- html: z2.string().min(1),
178
- tokens: z2.record(z2.string(), z2.string()).optional()
179
- }),
180
- z2.object({
181
- kind: z2.literal("overlay"),
182
- primitiveId: z2.string().min(1),
183
- params: z2.record(z2.string(), z2.unknown()).optional()
184
- }),
185
- z2.object({
186
- kind: z2.literal("component"),
187
- componentId: z2.string().min(1),
188
- props: z2.record(z2.string(), z2.unknown()).optional()
189
- })
190
- ]);
191
- var MotifMotionPreset = z2.enum([
192
- "fade-up",
193
- "slide-in-left",
194
- "slide-in-right",
195
- "scale-pop",
196
- "stagger-reveal"
197
- ]);
198
- var Motif = z2.object({
199
- id: z2.string().min(1).max(40),
200
- observed: z2.string().min(1).max(500),
201
- body: MotifBody,
202
- motion: z2.object({
203
- preset: MotifMotionPreset,
204
- enterMs: z2.number().int().min(0).max(5e3).optional(),
205
- exitMs: z2.number().int().min(0).max(5e3).optional(),
206
- staggerMs: z2.number().int().min(0).max(2e3).optional(),
207
- confidence: z2.enum(["high", "low"]).optional()
208
- }).optional(),
209
- role: GraphicRole,
210
- zone: z2.object({ x: z2.number(), y: z2.number(), w: z2.number(), h: z2.number() }).optional(),
211
- evidence: z2.array(z2.number().int().min(0)).max(24).optional(),
212
- diffScore: z2.number().min(0).max(1).optional(),
213
- coverage: z2.enum(["reproduced", "approximated", "skipped"]),
214
- skipReason: z2.string().max(300).optional()
215
- });
216
- var AccessControl = z2.object({
217
- public: z2.boolean().optional(),
218
- readerOrgIds: z2.array(z2.string()).optional(),
219
- writerOrgIds: z2.array(z2.string()).optional()
220
- });
221
- var LicenseDeclaration = z2.object({
222
- type: z2.string().min(1),
223
- source: z2.string().optional(),
224
- notes: z2.string().optional()
225
- });
226
- var BrandKit = z2.object({
227
- id: z2.string().min(1),
228
- name: z2.string().min(1),
229
- colors: Colors,
230
- fonts: Fonts,
231
- spacing: Spacing.optional(),
232
- sizing: Sizing.optional(),
233
- motion: Motion.optional(),
234
- captionProfile: z2.object({
235
- color: z2.string().optional(),
236
- highlightColor: z2.string().optional(),
237
- emphasisColor: z2.string().optional(),
238
- plate: z2.enum(["glass", "solid", "none"]).optional(),
239
- entrance: z2.enum(["none", "fade", "word-pop", "stagger-up"]).optional(),
240
- entranceMs: z2.number().optional(),
241
- entranceStaggerMs: z2.number().optional(),
242
- exitMs: z2.number().optional(),
243
- fontFamily: z2.string().optional(),
244
- // The ordinary run's weight. The profile could name a caption family but never how heavy it
245
- // was drawn, so the only answer to "that weight has no file behind it" was to change the
246
- // family. A family that does not declare this weight is still refused here — but now at a
247
- // field the author can set, and a family that ships it needs no setting at all: every
248
- // bundled family declares a base and an emphasis weight it has bytes for.
249
- fontWeight: z2.number().int().min(100).max(900).multipleOf(100).optional(),
250
- emphasisFontFamily: z2.string().optional(),
251
- emphasisScale: z2.number().positive().optional(),
252
- // A CSS weight, and the profile is projected straight onto the caption style, so it is held
253
- // to the same range the composition holds `emphasisFontWeight` to. An unbounded number here
254
- // was a hole: 0 or 1500 named no face at all.
255
- emphasisFontWeight: z2.number().int().min(100).max(900).optional(),
256
- emphasisFontStyle: z2.enum(["normal", "italic"]).optional(),
257
- emphasisTextTransform: z2.enum(["none", "uppercase"]).optional(),
258
- emphasisLetterSpacing: z2.number().optional(),
259
- emphasisPlate: z2.boolean().optional(),
260
- emphasisPlateColor: z2.string().optional(),
261
- emphasisPlateTextColor: z2.string().optional()
262
- }).optional(),
263
- exemplarKeys: z2.array(z2.string().min(1)).max(24).optional(),
264
- contactSheetKey: z2.string().min(1).optional(),
265
- motifs: z2.array(Motif).max(24).optional(),
266
- styleRubric: z2.string().max(4e3).optional(),
267
- density: z2.object({
268
- graphicsPerMin: z2.number().min(0).max(60),
269
- maxSimultaneous: z2.number().int().min(1).max(6)
270
- }).optional(),
271
- inspiration: z2.object({
272
- sources: z2.array(z2.string()).min(1).max(24),
273
- extractedAt: z2.number(),
274
- extractionVersion: z2.string().min(1).max(60)
275
- }).optional(),
276
- logo: Logo.optional(),
277
- intro: IntroOutro.optional(),
278
- outro: IntroOutro.optional(),
279
- watermark: Watermark.optional(),
280
- audio: z2.object({
281
- sfxIntensity: z2.enum(["off", "light", "standard", "dense"]).optional(),
282
- musicEnabled: z2.boolean().optional(),
283
- musicMood: z2.string().max(300).optional(),
284
- sonicLogo: z2.object({
285
- ref: AudioPaletteRef,
286
- placement: z2.enum(["intro", "outro", "both"]),
287
- offsetMs: z2.number().int().min(0).max(1e4).optional()
288
- }).optional(),
289
- uiSoundSet: z2.object({
290
- tick: AudioPaletteRef.optional(),
291
- pop: AudioPaletteRef.optional(),
292
- impact: AudioPaletteRef.optional(),
293
- confirm: AudioPaletteRef.optional(),
294
- error: AudioPaletteRef.optional(),
295
- whoosh: AudioPaletteRef.optional(),
296
- riser: AudioPaletteRef.optional()
297
- }).optional(),
298
- bedStyle: z2.object({
299
- bedId: AudioPaletteRef.optional(),
300
- genre: z2.string().max(120).optional(),
301
- bpmRange: z2.object({ min: z2.number(), max: z2.number() }).optional()
302
- }).optional(),
303
- ambiencePreference: z2.object({ ref: AudioPaletteRef }).nullable().optional()
304
- }).optional(),
305
- license: LicenseDeclaration.optional(),
306
- licenseVerification: z2.enum([
307
- "attested",
308
- "cueframe-verified",
309
- "third-party-verified"
310
- ]).optional(),
311
- ownerOrgId: z2.string().optional(),
312
- acl: AccessControl.optional()
313
- }).superRefine((kit, ctx) => {
314
- for (const issue of brandKitCaptionFaceIssues(kit)) {
315
- ctx.addIssue({ code: "custom", path: issue.path.split("."), message: issue.message });
316
- }
317
- });
318
-
319
- // ../composition/src/validators/font.ts
320
- import { z as z3 } from "zod";
321
- var FontStatus = z3.enum([
322
- "pending",
323
- "uploading",
324
- "analyzing",
325
- "subsetting",
326
- "ready",
327
- "partial",
328
- // common-glyphs buffer present, custom glyphs still subsetting
329
- "failed"
330
- ]);
331
- var FontVariant = z3.object({
332
- weight: z3.number().int().min(100).max(900),
333
- style: z3.enum(["normal", "italic"]),
334
- storageKey: z3.string().min(1),
335
- byteSize: z3.number().int().nonnegative().optional(),
336
- subsetComplete: z3.boolean().optional()
337
- });
338
- var Font = z3.object({
339
- id: z3.string().min(1),
340
- family: z3.string().min(1),
341
- status: FontStatus,
342
- variants: z3.array(FontVariant).nonempty(),
343
- source: z3.enum(["uploaded", "system", "web"]).optional(),
344
- license: z3.object({
345
- type: z3.string().min(1),
346
- source: z3.string().optional(),
347
- notes: z3.string().optional()
348
- }).optional(),
349
- createdAt: z3.number().optional(),
350
- // epoch ms
351
- ownerOrgId: z3.string().optional()
352
- });
353
-
354
- // ../composition/src/validators/render.ts
355
- import { z as z4 } from "zod";
356
- var RenderPriority = z4.enum(["interactive", "standard", "background"]);
357
- var RenderIntent = z4.enum(["preview", "final"]);
358
- var RenderMode = z4.enum(["offline", "live"]);
359
- var RenderCancelReason = z4.enum([
360
- "user",
361
- "agent",
362
- "cost_limit",
363
- "superseded",
364
- "source_removed",
365
- "timeout",
366
- "error"
367
- ]);
368
- var RenderStatus = z4.enum([
369
- "pending",
370
- "rendering",
371
- "complete",
372
- "error",
373
- "cancelled"
374
- ]);
375
- var RenderProgressPhase = z4.object({
376
- phase: z4.string().min(1),
377
- percent: z4.number().min(0).max(100),
378
- scenesTotal: z4.number().int().positive().optional()
379
- });
380
- var RegistryPin = z4.object({
381
- package: z4.string().min(1),
382
- name: z4.string().min(1),
383
- version: z4.string().min(1)
384
- });
385
- var MediaSourceSnapshot = z4.object({
386
- mediaId: OpaqueId,
387
- presignedUrl: z4.string().url(),
388
- expiresAt: z4.number().optional()
389
- });
390
- var RenderSnapshot = z4.object({
391
- composition: Composition,
392
- brandKit: BrandKit.optional(),
393
- mediaSources: z4.array(MediaSourceSnapshot),
394
- registryPins: z4.array(RegistryPin),
395
- capturedAt: z4.number()
396
- });
397
- var R2Destination = z4.object({
398
- kind: z4.literal("r2"),
399
- path: z4.string().optional()
400
- });
401
- var S3Destination = z4.object({
402
- kind: z4.literal("s3"),
403
- credentialId: z4.string().min(1),
404
- bucket: z4.string().min(1),
405
- key: z4.string().min(1),
406
- region: z4.string().optional(),
407
- acl: z4.string().optional()
408
- });
409
- var YoutubeDestination = z4.object({
410
- kind: z4.literal("youtube"),
411
- credentialId: z4.string().min(1),
412
- title: z4.string().min(1),
413
- description: z4.string().optional(),
414
- privacy: z4.enum(["public", "unlisted", "private"]),
415
- tags: z4.array(z4.string()).optional()
416
- });
417
- var MuxDestination = z4.object({
418
- kind: z4.literal("mux"),
419
- credentialId: z4.string().min(1),
420
- passthrough: z4.string().optional()
421
- });
422
- var WebhookDestination = z4.object({
423
- kind: z4.literal("webhook"),
424
- url: z4.string().url(),
425
- signingKeyId: z4.string().optional(),
426
- headers: z4.record(z4.string(), z4.string()).optional()
427
- });
428
- var Destination = z4.discriminatedUnion("kind", [
429
- R2Destination,
430
- S3Destination,
431
- YoutubeDestination,
432
- MuxDestination,
433
- WebhookDestination
434
- ]);
435
- var DestinationDeliveryStatus = z4.enum([
436
- "pending",
437
- "uploading",
438
- "delivered",
439
- "failed"
440
- ]);
441
- var DestinationResult = z4.object({
442
- destinationIndex: z4.number().int().nonnegative(),
443
- status: DestinationDeliveryStatus,
444
- url: z4.string().url().optional(),
445
- deliveredAt: z4.number().optional(),
446
- error: z4.string().optional()
447
- });
448
- var RenderJob = z4.object({
449
- id: OpaqueId,
450
- projectId: OpaqueId.optional(),
451
- compositionId: OpaqueId,
452
- compositionVersionId: z4.string().min(1),
453
- status: RenderStatus,
454
- progress: RenderProgressPhase.optional(),
455
- mode: RenderMode.optional(),
456
- priority: RenderPriority,
457
- // required per data-model.md § Render priority
458
- intent: RenderIntent.optional(),
459
- snapshot: RenderSnapshot.optional(),
460
- snapshotRef: z4.string().optional(),
461
- outputUrl: z4.string().url().optional(),
462
- outputExpiresAt: z4.number().optional(),
463
- // epoch ms
464
- destinations: z4.array(Destination).optional(),
465
- destinationResults: z4.array(DestinationResult).optional(),
466
- cancelReason: RenderCancelReason.optional(),
467
- error: z4.object({
468
- code: z4.string(),
469
- message: z4.string(),
470
- details: z4.record(z4.string(), z4.unknown()).optional()
471
- }).optional(),
472
- createdAt: z4.number(),
473
- updatedAt: z4.number()
474
- });
475
- var RenderProgress = z4.object({
476
- jobId: OpaqueId,
477
- status: RenderStatus,
478
- percent: z4.number().min(0).max(100).optional(),
479
- framesRendered: z4.number().int().nonnegative().optional(),
480
- framesTotal: z4.number().int().positive().optional()
481
- });
482
-
483
- // ../composition/src/validators/registry.ts
484
- import { z as z5 } from "zod";
485
- var PrimitiveOriginClass = z5.enum([
486
- "first-party",
487
- "community-verified",
488
- "community-unverified",
489
- "user-private",
490
- "sandbox",
491
- "deprecated"
492
- ]);
493
- var PrimitiveMode = z5.enum(["2d", "immersive", "interactive"]);
494
- var PrimitiveToken = z5.object({
495
- path: z5.string().min(1),
496
- fallback: z5.unknown()
497
- });
498
- var PrimitiveOtioMapping = z5.object({
499
- effectName: z5.string().min(1),
500
- metadata: z5.record(z5.string(), z5.unknown()).optional()
501
- });
502
- var PrimitiveMeta = z5.object({
503
- description: z5.string().optional(),
504
- use_when: z5.array(z5.string()).optional(),
505
- avoid_when: z5.array(z5.string()).optional(),
506
- vibe: z5.array(z5.string()).optional(),
507
- formats: z5.array(z5.string()).optional(),
508
- pairs_well_with: z5.array(z5.string()).optional(),
509
- exemplars: z5.array(z5.string()).optional()
510
- });
511
- var PrimitiveRegistryEntry = z5.object({
512
- name: z5.string().min(1),
513
- package: z5.string().min(1),
514
- category: z5.enum(["overlay", "text", "effect", "transition", "layout"]),
515
- version: z5.string().min(1),
516
- origin: PrimitiveOriginClass,
517
- modes: z5.array(PrimitiveMode).optional(),
518
- paramsSchema: z5.unknown(),
519
- varyingParams: z5.array(z5.string()).optional(),
520
- extends: z5.string().optional(),
521
- tokens: z5.array(PrimitiveToken).optional(),
522
- otio: PrimitiveOtioMapping.optional(),
523
- meta: PrimitiveMeta.optional()
524
- });
525
-
526
- // ../composition/src/validators/project.ts
527
- import { z as z6 } from "zod";
528
- var Project = z6.object({
529
- id: OpaqueId,
530
- name: z6.string().min(1),
531
- defaultFormat: Format.optional(),
532
- palConformDefault: z6.union([z6.literal(24), z6.literal(30)]).optional(),
533
- activeCompositionId: OpaqueId.nullable().optional(),
534
- brandKitId: z6.string().optional(),
535
- ownerOrgId: z6.string().optional(),
536
- createdAt: z6.number(),
537
- updatedAt: z6.number()
538
- });
539
-
540
- // ../composition/src/validators/session.ts
541
- import { z as z7 } from "zod";
542
- var SessionMediaRole = z7.enum([
543
- "main",
544
- "wide",
545
- "facecam",
546
- "screen",
547
- "audio"
548
- ]);
549
- var SessionMember = z7.object({
550
- mediaId: OpaqueId,
551
- role: SessionMediaRole,
552
- label: z7.string().optional()
553
- // human-readable annotation, e.g., "host's camera"
554
- });
555
- var SessionMux = z7.object({
556
- videoRole: z7.enum(["main", "wide", "facecam", "screen"]),
557
- audioRole: z7.literal("audio")
558
- });
559
- var Session = z7.object({
560
- id: OpaqueId,
561
- name: z7.string().min(1),
562
- members: z7.array(SessionMember).nonempty(),
563
- mux: z7.array(SessionMux).optional(),
564
- ownerOrgId: z7.string().optional(),
565
- createdAt: z7.number(),
566
- updatedAt: z7.number()
567
- });
568
-
569
- // ../composition/src/validators/webhook.ts
570
- import { z as z8 } from "zod";
571
- var SubstrateWebhookEvent = z8.enum([
572
- "render.completed",
573
- "media.transcribed",
574
- "media.completed",
575
- "composition.updated"
576
- ]);
577
- var WebhookDeliveryStatus = z8.enum([
578
- "pending",
579
- "delivering",
580
- "delivered",
581
- "failed",
582
- "exhausted"
583
- // retry budget burned through
584
- ]);
585
- var Webhook = z8.object({
586
- id: OpaqueId,
587
- url: z8.string().url(),
588
- events: z8.array(z8.string().min(1)).nonempty(),
589
- signingKeyId: z8.string().optional(),
590
- headers: z8.record(z8.string(), z8.string()).optional(),
591
- enabled: z8.boolean().optional(),
592
- ownerOrgId: z8.string().optional(),
593
- createdAt: z8.number(),
594
- updatedAt: z8.number()
595
- });
596
- var WebhookDelivery = z8.object({
597
- id: z8.string().min(1),
598
- webhookId: OpaqueId,
599
- event: z8.string().min(1),
600
- payload: z8.record(z8.string(), z8.unknown()),
601
- status: WebhookDeliveryStatus,
602
- attemptCount: z8.number().int().nonnegative(),
603
- responseStatus: z8.number().int().optional(),
604
- responseBody: z8.string().optional(),
605
- error: z8.string().optional(),
606
- createdAt: z8.number(),
607
- deliveredAt: z8.number().optional()
608
- });
609
-
610
- export {
611
- PlanSubject,
612
- PlanFramingSegment,
613
- PlanCut,
614
- PlanAssetRequest,
615
- PlanGraphicRequest,
616
- PlanMarker,
617
- ComposePlan,
618
- EasingValue,
619
- AudioPaletteRef,
620
- FontRef,
621
- Motif,
622
- BrandKit,
623
- FontStatus,
624
- FontVariant,
625
- Font,
626
- RenderPriority,
627
- RenderIntent,
628
- RenderMode,
629
- RenderCancelReason,
630
- RenderStatus,
631
- RenderProgressPhase,
632
- RegistryPin,
633
- MediaSourceSnapshot,
634
- RenderSnapshot,
635
- R2Destination,
636
- S3Destination,
637
- YoutubeDestination,
638
- MuxDestination,
639
- WebhookDestination,
640
- Destination,
641
- DestinationDeliveryStatus,
642
- DestinationResult,
643
- RenderJob,
644
- RenderProgress,
645
- PrimitiveOriginClass,
646
- PrimitiveMode,
647
- PrimitiveToken,
648
- PrimitiveOtioMapping,
649
- PrimitiveMeta,
650
- PrimitiveRegistryEntry,
651
- Project,
652
- SessionMediaRole,
653
- SessionMember,
654
- SessionMux,
655
- Session,
656
- SubstrateWebhookEvent,
657
- WebhookDeliveryStatus,
658
- Webhook,
659
- WebhookDelivery
660
- };
@@ -12,15 +12,15 @@ import {
12
12
  FLOOR_TEXT,
13
13
  resolveContrast
14
14
  } from "./chunk-FWSJLHSV.js";
15
- import {
16
- FitText,
17
- resolveFitFontSize
18
- } from "./chunk-XHGZ2E77.js";
19
15
  import {
20
16
  resolveEasing,
21
17
  staggerRise,
22
18
  staggerUp
23
19
  } from "./chunk-ZFEXATWN.js";
20
+ import {
21
+ FitText,
22
+ resolveFitFontSize
23
+ } from "./chunk-XHGZ2E77.js";
24
24
  import {
25
25
  ACCENT,
26
26
  ACCENT_STRONG,
@@ -4,15 +4,15 @@ import {
4
4
  import {
5
5
  resolveContrast
6
6
  } from "./chunk-FWSJLHSV.js";
7
- import {
8
- resolveFitFontSize
9
- } from "./chunk-XHGZ2E77.js";
10
7
  import {
11
8
  fadeProgress,
12
9
  resolveEasing,
13
10
  staggerUp,
14
11
  wordPop
15
12
  } from "./chunk-ZFEXATWN.js";
13
+ import {
14
+ resolveFitFontSize
15
+ } from "./chunk-XHGZ2E77.js";
16
16
 
17
17
  // ../execution/primitives/src/hero-text/HeroText.tsx
18
18
  import { useCurrentFrame, useVideoConfig } from "remotion";