@cueframe/kernel 0.2.52 → 0.2.54

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 (71) hide show
  1. package/dist/_members/composition/fonts/bundledFaces.d.ts +9 -15
  2. package/dist/_members/composition/fonts/captionFaces.d.ts +2 -3
  3. package/dist/_members/composition/ops/captionOps.d.ts +11 -0
  4. package/dist/_members/composition/ops/compositionOps.d.ts +20 -19
  5. package/dist/_members/composition/ops/compositionOps.shared.d.ts +1 -0
  6. package/dist/_members/composition/validators/composition.d.ts +724 -0
  7. package/dist/_members/composition/validators/registry.d.ts +1 -1
  8. package/dist/_members/composition/validators/render.d.ts +332 -0
  9. package/dist/_members/composition-ops/index.d.ts +89 -0
  10. package/dist/_members/core/render/compositionAudioAndDepth.d.ts +3 -2
  11. package/dist/_members/core/render/index.d.ts +1 -1
  12. package/dist/_members/core/render/types.d.ts +3 -1
  13. package/dist/_members/plane/contract.d.ts +1 -1
  14. package/dist/_members/primitives/captions/Captions.d.ts +18 -1
  15. package/dist/_members/primitives/captions/index.d.ts +1 -1
  16. package/dist/_members/primitives/lib/text/spec.d.ts +1 -0
  17. package/dist/animate.js +2 -2
  18. package/dist/authoring/build-tools.js +6 -6
  19. package/dist/authoring/context.js +5 -5
  20. package/dist/authoring/tools.js +5 -5
  21. package/dist/authoring.js +9 -9
  22. package/dist/{chunk-MYBK6DKF.js → chunk-2BVKNYRB.js} +1 -1
  23. package/dist/{chunk-AVTEPAWI.js → chunk-7RGDRDAR.js} +17 -13
  24. package/dist/{chunk-7XZW26U2.js → chunk-AONWKKXK.js} +1 -1
  25. package/dist/{chunk-WZ22ZYXD.js → chunk-C3ARYFN6.js} +4 -4
  26. package/dist/{chunk-4B4V3HYW.js → chunk-C6ONUJIO.js} +1 -1
  27. package/dist/{chunk-CZOVEX2D.js → chunk-CR3G2JQP.js} +1 -1
  28. package/dist/{chunk-2PU2TSUG.js → chunk-D5E5XFHK.js} +1 -1
  29. package/dist/{chunk-D2EG7J7X.js → chunk-DFB7UFZD.js} +1 -1
  30. package/dist/{chunk-FSEB4LSU.js → chunk-FYMXVYWS.js} +1 -1
  31. package/dist/{chunk-6WQHVYJD.js → chunk-G7ZSFSQG.js} +1 -1
  32. package/dist/{chunk-5ZQLMPDY.js → chunk-GAACUQAB.js} +1 -1
  33. package/dist/{chunk-3I43W7DP.js → chunk-GZMKTLO3.js} +52 -21
  34. package/dist/{chunk-QVBUYWW6.js → chunk-Q2FWFTDZ.js} +1 -1
  35. package/dist/{chunk-MBSQKRDF.js → chunk-QCGT3M7M.js} +2 -2
  36. package/dist/{chunk-KMDZDH5E.js → chunk-QCJUGKRC.js} +4 -4
  37. package/dist/{chunk-Z6NY6MCL.js → chunk-RMLGMYEJ.js} +1 -1
  38. package/dist/{chunk-IHXMBXXL.js → chunk-SIGKJOSF.js} +30 -4
  39. package/dist/{chunk-5JCLZPMV.js → chunk-T7WKIMTB.js} +63 -44
  40. package/dist/{chunk-ACURZCPN.js → chunk-UKKY7HWN.js} +1 -1
  41. package/dist/{chunk-2M65KQNG.js → chunk-V6GL37RZ.js} +394 -54
  42. package/dist/{chunk-CV3QQUMK.js → chunk-VKZTGD5Z.js} +128 -5
  43. package/dist/{chunk-JWW54N24.js → chunk-VYSBZUXZ.js} +1 -1
  44. package/dist/{chunk-3OG2674K.js → chunk-ZDE5S3DE.js} +1 -1
  45. package/dist/component-runtime/render.js +2 -2
  46. package/dist/component-runtime.js +3 -3
  47. package/dist/compose.js +5 -5
  48. package/dist/composition/fonts.js +1 -1
  49. package/dist/composition/graphics-plan.js +3 -3
  50. package/dist/composition/ops.js +4 -4
  51. package/dist/composition/projection.js +3 -3
  52. package/dist/composition/validators.js +13 -3
  53. package/dist/composition-ops.js +8 -8
  54. package/dist/composition.js +15 -5
  55. package/dist/{context-2MBCDTCZ.js → context-I7SPXR2Z.js} +5 -5
  56. package/dist/core/render.js +4 -4
  57. package/dist/core.js +4 -4
  58. package/dist/mcp/adapter.js +2 -2
  59. package/dist/mcp/core.js +1 -1
  60. package/dist/mcp/scene-shot.js +2 -2
  61. package/dist/mcp/server.js +12 -12
  62. package/dist/mcp.js +12 -12
  63. package/dist/primitives/captions.js +276 -44
  64. package/dist/primitives/effects.js +3 -3
  65. package/dist/primitives/layouts.js +3 -3
  66. package/dist/primitives/lib/text/marker.js +1 -1
  67. package/dist/primitives/scenes.js +3 -3
  68. package/dist/primitives.js +5 -5
  69. package/dist/render-harness/cardFonts.js +2 -2
  70. package/dist/render-harness.js +7 -7
  71. package/package.json +10 -10
@@ -38,8 +38,8 @@ export declare const PrimitiveRegistryEntry: z.ZodObject<{
38
38
  overlay: "overlay";
39
39
  effect: "effect";
40
40
  text: "text";
41
- transition: "transition";
42
41
  layout: "layout";
42
+ transition: "transition";
43
43
  }>;
44
44
  version: z.ZodString;
45
45
  origin: z.ZodEnum<{
@@ -281,6 +281,9 @@ export declare const RenderSnapshot: z.ZodObject<{
281
281
  uppercase: "uppercase";
282
282
  capitalize: "capitalize";
283
283
  }>>;
284
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
285
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
286
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
284
287
  emphasisColor: z.ZodOptional<z.ZodString>;
285
288
  emphasisGradient: z.ZodOptional<z.ZodString>;
286
289
  emphasisScale: z.ZodOptional<z.ZodNumber>;
@@ -313,9 +316,89 @@ export declare const RenderSnapshot: z.ZodObject<{
313
316
  emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
314
317
  emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
315
318
  emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
319
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
316
320
  annotationColor: z.ZodOptional<z.ZodString>;
321
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
317
322
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
318
323
  }, z.core.$strip>>;
324
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
325
+ segmentIndex: z.ZodNumber;
326
+ wordStartIndex: z.ZodNumber;
327
+ wordEndIndex: z.ZodNumber;
328
+ region: z.ZodObject<{
329
+ x: z.ZodNumber;
330
+ y: z.ZodNumber;
331
+ w: z.ZodNumber;
332
+ h: z.ZodNumber;
333
+ }, z.core.$strip>;
334
+ scale: z.ZodOptional<z.ZodNumber>;
335
+ rotation: z.ZodOptional<z.ZodNumber>;
336
+ style: z.ZodOptional<z.ZodObject<{
337
+ fontFamily: z.ZodOptional<z.ZodString>;
338
+ fontWeight: z.ZodOptional<z.ZodNumber>;
339
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
340
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
341
+ normal: "normal";
342
+ italic: "italic";
343
+ }>>;
344
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
345
+ fontSize: z.ZodOptional<z.ZodNumber>;
346
+ color: z.ZodOptional<z.ZodString>;
347
+ highlightColor: z.ZodOptional<z.ZodString>;
348
+ backgroundColor: z.ZodOptional<z.ZodString>;
349
+ plate: z.ZodOptional<z.ZodEnum<{
350
+ none: "none";
351
+ glass: "glass";
352
+ solid: "solid";
353
+ }>>;
354
+ textTransform: z.ZodOptional<z.ZodEnum<{
355
+ none: "none";
356
+ uppercase: "uppercase";
357
+ capitalize: "capitalize";
358
+ }>>;
359
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
360
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
361
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
362
+ emphasisColor: z.ZodOptional<z.ZodString>;
363
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
364
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
365
+ none: "none";
366
+ uppercase: "uppercase";
367
+ capitalize: "capitalize";
368
+ }>>;
369
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
370
+ entrance: z.ZodOptional<z.ZodEnum<{
371
+ none: "none";
372
+ fade: "fade";
373
+ "word-pop": "word-pop";
374
+ "stagger-up": "stagger-up";
375
+ }>>;
376
+ entranceMs: z.ZodOptional<z.ZodNumber>;
377
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
378
+ exitMs: z.ZodOptional<z.ZodNumber>;
379
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
380
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
381
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
382
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
383
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
384
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
385
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
386
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
387
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
388
+ annotationColor: z.ZodOptional<z.ZodString>;
389
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
390
+ }, z.core.$strict>>;
391
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
392
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
393
+ wordIndex: z.ZodNumber;
394
+ emphasis: z.ZodOptional<z.ZodBoolean>;
395
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
396
+ circle: "circle";
397
+ underline: "underline";
398
+ }>>>;
399
+ }, z.core.$strict>>>;
400
+ wordSignature: z.ZodString;
401
+ }, z.core.$strict>>>;
319
402
  zPlane: z.ZodOptional<z.ZodEnum<{
320
403
  front: "front";
321
404
  "behind-subject": "behind-subject";
@@ -362,6 +445,9 @@ export declare const RenderSnapshot: z.ZodObject<{
362
445
  uppercase: "uppercase";
363
446
  capitalize: "capitalize";
364
447
  }>>;
448
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
449
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
450
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
365
451
  emphasisColor: z.ZodOptional<z.ZodString>;
366
452
  emphasisGradient: z.ZodOptional<z.ZodString>;
367
453
  emphasisScale: z.ZodOptional<z.ZodNumber>;
@@ -394,9 +480,89 @@ export declare const RenderSnapshot: z.ZodObject<{
394
480
  emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
395
481
  emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
396
482
  emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
483
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
397
484
  annotationColor: z.ZodOptional<z.ZodString>;
485
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
398
486
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
399
487
  }, z.core.$strip>>;
488
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
489
+ segmentIndex: z.ZodNumber;
490
+ wordStartIndex: z.ZodNumber;
491
+ wordEndIndex: z.ZodNumber;
492
+ region: z.ZodObject<{
493
+ x: z.ZodNumber;
494
+ y: z.ZodNumber;
495
+ w: z.ZodNumber;
496
+ h: z.ZodNumber;
497
+ }, z.core.$strip>;
498
+ scale: z.ZodOptional<z.ZodNumber>;
499
+ rotation: z.ZodOptional<z.ZodNumber>;
500
+ style: z.ZodOptional<z.ZodObject<{
501
+ fontFamily: z.ZodOptional<z.ZodString>;
502
+ fontWeight: z.ZodOptional<z.ZodNumber>;
503
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
504
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
505
+ normal: "normal";
506
+ italic: "italic";
507
+ }>>;
508
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
509
+ fontSize: z.ZodOptional<z.ZodNumber>;
510
+ color: z.ZodOptional<z.ZodString>;
511
+ highlightColor: z.ZodOptional<z.ZodString>;
512
+ backgroundColor: z.ZodOptional<z.ZodString>;
513
+ plate: z.ZodOptional<z.ZodEnum<{
514
+ none: "none";
515
+ glass: "glass";
516
+ solid: "solid";
517
+ }>>;
518
+ textTransform: z.ZodOptional<z.ZodEnum<{
519
+ none: "none";
520
+ uppercase: "uppercase";
521
+ capitalize: "capitalize";
522
+ }>>;
523
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
524
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
525
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
526
+ emphasisColor: z.ZodOptional<z.ZodString>;
527
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
528
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
529
+ none: "none";
530
+ uppercase: "uppercase";
531
+ capitalize: "capitalize";
532
+ }>>;
533
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
534
+ entrance: z.ZodOptional<z.ZodEnum<{
535
+ none: "none";
536
+ fade: "fade";
537
+ "word-pop": "word-pop";
538
+ "stagger-up": "stagger-up";
539
+ }>>;
540
+ entranceMs: z.ZodOptional<z.ZodNumber>;
541
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
542
+ exitMs: z.ZodOptional<z.ZodNumber>;
543
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
544
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
545
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
546
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
547
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
548
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
549
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
550
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
551
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
552
+ annotationColor: z.ZodOptional<z.ZodString>;
553
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
554
+ }, z.core.$strict>>;
555
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
556
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
557
+ wordIndex: z.ZodNumber;
558
+ emphasis: z.ZodOptional<z.ZodBoolean>;
559
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
560
+ circle: "circle";
561
+ underline: "underline";
562
+ }>>>;
563
+ }, z.core.$strict>>>;
564
+ wordSignature: z.ZodString;
565
+ }, z.core.$strict>>>;
400
566
  zPlane: z.ZodOptional<z.ZodEnum<{
401
567
  front: "front";
402
568
  "behind-subject": "behind-subject";
@@ -1126,6 +1292,9 @@ export declare const RenderJob: z.ZodObject<{
1126
1292
  uppercase: "uppercase";
1127
1293
  capitalize: "capitalize";
1128
1294
  }>>;
1295
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
1296
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
1297
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
1129
1298
  emphasisColor: z.ZodOptional<z.ZodString>;
1130
1299
  emphasisGradient: z.ZodOptional<z.ZodString>;
1131
1300
  emphasisScale: z.ZodOptional<z.ZodNumber>;
@@ -1158,9 +1327,89 @@ export declare const RenderJob: z.ZodObject<{
1158
1327
  emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
1159
1328
  emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
1160
1329
  emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
1330
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
1161
1331
  annotationColor: z.ZodOptional<z.ZodString>;
1332
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
1162
1333
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
1163
1334
  }, z.core.$strip>>;
1335
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1336
+ segmentIndex: z.ZodNumber;
1337
+ wordStartIndex: z.ZodNumber;
1338
+ wordEndIndex: z.ZodNumber;
1339
+ region: z.ZodObject<{
1340
+ x: z.ZodNumber;
1341
+ y: z.ZodNumber;
1342
+ w: z.ZodNumber;
1343
+ h: z.ZodNumber;
1344
+ }, z.core.$strip>;
1345
+ scale: z.ZodOptional<z.ZodNumber>;
1346
+ rotation: z.ZodOptional<z.ZodNumber>;
1347
+ style: z.ZodOptional<z.ZodObject<{
1348
+ fontFamily: z.ZodOptional<z.ZodString>;
1349
+ fontWeight: z.ZodOptional<z.ZodNumber>;
1350
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
1351
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
1352
+ normal: "normal";
1353
+ italic: "italic";
1354
+ }>>;
1355
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
1356
+ fontSize: z.ZodOptional<z.ZodNumber>;
1357
+ color: z.ZodOptional<z.ZodString>;
1358
+ highlightColor: z.ZodOptional<z.ZodString>;
1359
+ backgroundColor: z.ZodOptional<z.ZodString>;
1360
+ plate: z.ZodOptional<z.ZodEnum<{
1361
+ none: "none";
1362
+ glass: "glass";
1363
+ solid: "solid";
1364
+ }>>;
1365
+ textTransform: z.ZodOptional<z.ZodEnum<{
1366
+ none: "none";
1367
+ uppercase: "uppercase";
1368
+ capitalize: "capitalize";
1369
+ }>>;
1370
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
1371
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
1372
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
1373
+ emphasisColor: z.ZodOptional<z.ZodString>;
1374
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
1375
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
1376
+ none: "none";
1377
+ uppercase: "uppercase";
1378
+ capitalize: "capitalize";
1379
+ }>>;
1380
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
1381
+ entrance: z.ZodOptional<z.ZodEnum<{
1382
+ none: "none";
1383
+ fade: "fade";
1384
+ "word-pop": "word-pop";
1385
+ "stagger-up": "stagger-up";
1386
+ }>>;
1387
+ entranceMs: z.ZodOptional<z.ZodNumber>;
1388
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
1389
+ exitMs: z.ZodOptional<z.ZodNumber>;
1390
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
1391
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
1392
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
1393
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
1394
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
1395
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
1396
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
1397
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
1398
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
1399
+ annotationColor: z.ZodOptional<z.ZodString>;
1400
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
1401
+ }, z.core.$strict>>;
1402
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
1403
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1404
+ wordIndex: z.ZodNumber;
1405
+ emphasis: z.ZodOptional<z.ZodBoolean>;
1406
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1407
+ circle: "circle";
1408
+ underline: "underline";
1409
+ }>>>;
1410
+ }, z.core.$strict>>>;
1411
+ wordSignature: z.ZodString;
1412
+ }, z.core.$strict>>>;
1164
1413
  zPlane: z.ZodOptional<z.ZodEnum<{
1165
1414
  front: "front";
1166
1415
  "behind-subject": "behind-subject";
@@ -1207,6 +1456,9 @@ export declare const RenderJob: z.ZodObject<{
1207
1456
  uppercase: "uppercase";
1208
1457
  capitalize: "capitalize";
1209
1458
  }>>;
1459
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
1460
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
1461
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
1210
1462
  emphasisColor: z.ZodOptional<z.ZodString>;
1211
1463
  emphasisGradient: z.ZodOptional<z.ZodString>;
1212
1464
  emphasisScale: z.ZodOptional<z.ZodNumber>;
@@ -1239,9 +1491,89 @@ export declare const RenderJob: z.ZodObject<{
1239
1491
  emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
1240
1492
  emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
1241
1493
  emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
1494
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
1242
1495
  annotationColor: z.ZodOptional<z.ZodString>;
1496
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
1243
1497
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
1244
1498
  }, z.core.$strip>>;
1499
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1500
+ segmentIndex: z.ZodNumber;
1501
+ wordStartIndex: z.ZodNumber;
1502
+ wordEndIndex: z.ZodNumber;
1503
+ region: z.ZodObject<{
1504
+ x: z.ZodNumber;
1505
+ y: z.ZodNumber;
1506
+ w: z.ZodNumber;
1507
+ h: z.ZodNumber;
1508
+ }, z.core.$strip>;
1509
+ scale: z.ZodOptional<z.ZodNumber>;
1510
+ rotation: z.ZodOptional<z.ZodNumber>;
1511
+ style: z.ZodOptional<z.ZodObject<{
1512
+ fontFamily: z.ZodOptional<z.ZodString>;
1513
+ fontWeight: z.ZodOptional<z.ZodNumber>;
1514
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
1515
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
1516
+ normal: "normal";
1517
+ italic: "italic";
1518
+ }>>;
1519
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
1520
+ fontSize: z.ZodOptional<z.ZodNumber>;
1521
+ color: z.ZodOptional<z.ZodString>;
1522
+ highlightColor: z.ZodOptional<z.ZodString>;
1523
+ backgroundColor: z.ZodOptional<z.ZodString>;
1524
+ plate: z.ZodOptional<z.ZodEnum<{
1525
+ none: "none";
1526
+ glass: "glass";
1527
+ solid: "solid";
1528
+ }>>;
1529
+ textTransform: z.ZodOptional<z.ZodEnum<{
1530
+ none: "none";
1531
+ uppercase: "uppercase";
1532
+ capitalize: "capitalize";
1533
+ }>>;
1534
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
1535
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
1536
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
1537
+ emphasisColor: z.ZodOptional<z.ZodString>;
1538
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
1539
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
1540
+ none: "none";
1541
+ uppercase: "uppercase";
1542
+ capitalize: "capitalize";
1543
+ }>>;
1544
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
1545
+ entrance: z.ZodOptional<z.ZodEnum<{
1546
+ none: "none";
1547
+ fade: "fade";
1548
+ "word-pop": "word-pop";
1549
+ "stagger-up": "stagger-up";
1550
+ }>>;
1551
+ entranceMs: z.ZodOptional<z.ZodNumber>;
1552
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
1553
+ exitMs: z.ZodOptional<z.ZodNumber>;
1554
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
1555
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
1556
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
1557
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
1558
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
1559
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
1560
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
1561
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
1562
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
1563
+ annotationColor: z.ZodOptional<z.ZodString>;
1564
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
1565
+ }, z.core.$strict>>;
1566
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
1567
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1568
+ wordIndex: z.ZodNumber;
1569
+ emphasis: z.ZodOptional<z.ZodBoolean>;
1570
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1571
+ circle: "circle";
1572
+ underline: "underline";
1573
+ }>>>;
1574
+ }, z.core.$strict>>>;
1575
+ wordSignature: z.ZodString;
1576
+ }, z.core.$strict>>>;
1245
1577
  zPlane: z.ZodOptional<z.ZodEnum<{
1246
1578
  front: "front";
1247
1579
  "behind-subject": "behind-subject";
@@ -684,6 +684,9 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
684
684
  uppercase: "uppercase";
685
685
  capitalize: "capitalize";
686
686
  }>>>;
687
+ letterSpacing: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
688
+ wordGapEm: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
689
+ lineGapEm: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
687
690
  emphasisColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
688
691
  emphasisGradient: z.ZodOptional<z.ZodOptional<z.ZodString>>;
689
692
  emphasisScale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
@@ -716,7 +719,9 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
716
719
  emphasisPlateRadius: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
717
720
  emphasisPlatePadX: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
718
721
  emphasisPlatePadY: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
722
+ emphasisPlateReveal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
719
723
  annotationColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
724
+ annotationStrokeWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
720
725
  maxWidthPercent: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
721
726
  }, z.core.$strip>;
722
727
  }, z.core.$strict>, z.ZodObject<{
@@ -767,6 +772,9 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
767
772
  uppercase: "uppercase";
768
773
  capitalize: "capitalize";
769
774
  }>>>;
775
+ letterSpacing: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
776
+ wordGapEm: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
777
+ lineGapEm: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
770
778
  emphasisColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
771
779
  emphasisGradient: z.ZodOptional<z.ZodOptional<z.ZodString>>;
772
780
  emphasisScale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
@@ -799,9 +807,90 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
799
807
  emphasisPlateRadius: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
800
808
  emphasisPlatePadX: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
801
809
  emphasisPlatePadY: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
810
+ emphasisPlateReveal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
802
811
  annotationColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
812
+ annotationStrokeWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
803
813
  maxWidthPercent: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
804
814
  }, z.core.$strip>>;
815
+ }, z.core.$strict>, z.ZodObject<{
816
+ type: z.ZodLiteral<"setCaptionLayouts">;
817
+ layouts: z.ZodArray<z.ZodObject<{
818
+ segmentIndex: z.ZodNumber;
819
+ wordStartIndex: z.ZodNumber;
820
+ wordEndIndex: z.ZodNumber;
821
+ region: z.ZodObject<{
822
+ x: z.ZodNumber;
823
+ y: z.ZodNumber;
824
+ w: z.ZodNumber;
825
+ h: z.ZodNumber;
826
+ }, z.core.$strip>;
827
+ scale: z.ZodOptional<z.ZodNumber>;
828
+ rotation: z.ZodOptional<z.ZodNumber>;
829
+ style: z.ZodOptional<z.ZodObject<{
830
+ fontFamily: z.ZodOptional<z.ZodString>;
831
+ fontWeight: z.ZodOptional<z.ZodNumber>;
832
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
833
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
834
+ normal: "normal";
835
+ italic: "italic";
836
+ }>>;
837
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
838
+ fontSize: z.ZodOptional<z.ZodNumber>;
839
+ color: z.ZodOptional<z.ZodString>;
840
+ highlightColor: z.ZodOptional<z.ZodString>;
841
+ backgroundColor: z.ZodOptional<z.ZodString>;
842
+ plate: z.ZodOptional<z.ZodEnum<{
843
+ none: "none";
844
+ glass: "glass";
845
+ solid: "solid";
846
+ }>>;
847
+ textTransform: z.ZodOptional<z.ZodEnum<{
848
+ none: "none";
849
+ uppercase: "uppercase";
850
+ capitalize: "capitalize";
851
+ }>>;
852
+ letterSpacing: z.ZodOptional<z.ZodNumber>;
853
+ wordGapEm: z.ZodOptional<z.ZodNumber>;
854
+ lineGapEm: z.ZodOptional<z.ZodNumber>;
855
+ emphasisColor: z.ZodOptional<z.ZodString>;
856
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
857
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
858
+ none: "none";
859
+ uppercase: "uppercase";
860
+ capitalize: "capitalize";
861
+ }>>;
862
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
863
+ entrance: z.ZodOptional<z.ZodEnum<{
864
+ none: "none";
865
+ fade: "fade";
866
+ "word-pop": "word-pop";
867
+ "stagger-up": "stagger-up";
868
+ }>>;
869
+ entranceMs: z.ZodOptional<z.ZodNumber>;
870
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
871
+ exitMs: z.ZodOptional<z.ZodNumber>;
872
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
873
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
874
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
875
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
876
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
877
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
878
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
879
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
880
+ emphasisPlateReveal: z.ZodOptional<z.ZodBoolean>;
881
+ annotationColor: z.ZodOptional<z.ZodString>;
882
+ annotationStrokeWidth: z.ZodOptional<z.ZodNumber>;
883
+ }, z.core.$strict>>;
884
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
885
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
886
+ wordIndex: z.ZodNumber;
887
+ emphasis: z.ZodOptional<z.ZodBoolean>;
888
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
889
+ circle: "circle";
890
+ underline: "underline";
891
+ }>>>;
892
+ }, z.core.$strict>>>;
893
+ }, z.core.$strict>>;
805
894
  }, z.core.$strict>, z.ZodObject<{
806
895
  type: z.ZodLiteral<"applyMotionPreset">;
807
896
  clipId: z.ZodString;
@@ -6,11 +6,12 @@ export declare function bindBehindSubjectHosts(overlays: CompositionOverlay[], c
6
6
  export declare function assertBehindSubjectCaptionCoverage(captionSegments: RenderInput['captionSegments'], clips: readonly CompositionClip[], fps: number, output: {
7
7
  width: number;
8
8
  height: number;
9
- }, effects?: readonly CompositionEffect[]): void;
9
+ }, effects?: readonly CompositionEffect[], captionLayouts?: RenderInput['captionLayouts']): void;
10
10
  /** The geometry needed to decide which video picture is visible, without an asset URL. */
11
- export type VisiblePictureClip = Pick<CompositionClip, 'id' | 'trackId' | 'contentIndex' | 'layerIndex' | 'timelineStartFrames' | 'durationInFrames'> & Partial<Pick<CompositionClip, 'region' | 'fit' | 'sourceWidth' | 'sourceHeight' | 'cropTrajectory' | 'cropTrajectoryUrl' | 'captionVisibility' | 'packedUrl' | 'mediaType'>> & {
11
+ export type VisiblePictureClip = Pick<CompositionClip, 'id' | 'trackId' | 'contentIndex' | 'layerIndex' | 'timelineStartFrames' | 'durationInFrames'> & Partial<Pick<CompositionClip, 'region' | 'fit' | 'sourceWidth' | 'sourceHeight' | 'cropTrajectory' | 'cropTrajectoryUrl' | 'captionVisibility' | 'packedUrl' | 'mediaType' | 'opacity' | 'scale' | 'rotation' | 'animate' | 'transitionIn'>> & {
12
12
  hasClipEffects?: boolean;
13
13
  hasCropIntent?: boolean;
14
+ hasTransition?: boolean;
14
15
  };
15
16
  /** The visible full-frame picture at each interval, following the renderer's zIndex/layer order. */
16
17
  export declare function visiblePackedHostWindows(clips: readonly VisiblePictureClip[], startFrame: number, endFrame: number, output: {
@@ -1,4 +1,4 @@
1
- export type { RenderInput, ProjectedVisualIdentity, CompositionClip, CompositionOverlay, CompositionAudioTrack, CompositionEffect, CaptionWord, CaptionStyle, OverlayTemplate, OverlayParams, SceneShotOverlayMarkerV1, SceneShotSealedFontFace, SceneShotSlotBindingV1 } from './types.js';
1
+ export type { RenderInput, ProjectedVisualIdentity, CompositionClip, CompositionOverlay, CompositionAudioTrack, CompositionEffect, CaptionWord, CaptionStyle, CaptionLayout, OverlayTemplate, OverlayParams, SceneShotOverlayMarkerV1, SceneShotSealedFontFace, SceneShotSlotBindingV1 } from './types.js';
2
2
  export { SCENE_SHOT_IMAGE_MIME_TYPES, SCENE_SHOT_PARAM, SCENE_SHOT_PREPARATION_STAGE, assertSceneClipShapes, prepareSceneShotRenderInput, readSceneShotManifest, resolvePinnedSceneFactsV1, sceneSourceResolverForPinnedRows, } from './sceneShotPreparation.js';
3
3
  export type { PreparedRenderInputLeaseV1, ResolvedScenePreparationFactsV1, SceneShotPreparationDependenciesV1, SceneShotPreparationLocator, } from './sceneShotPreparation.js';
4
4
  export type { ResolvedBrandKit } from '../../composition/projection/index.js';
@@ -4,7 +4,7 @@ import type { Reframe } from '../../composition/reframe/index.js';
4
4
  import type { SceneBuilderDescriptorV1, SceneExactRateV1, SceneObjectV2, ScenePreparedJson, SealedSceneShotPlanV1 } from '../../composition/scene/index.js';
5
5
  export type { SceneBuilderAllocationDescriptorV1, SceneBuilderDescriptorV1, SceneBuilderPartDescriptorV1, SceneBuilderSlotDescriptorV1, SceneExactRateV1, } from '../../composition/scene/index.js';
6
6
  import type { TrajectoryData } from '../../composition/reframe/trajectory.js';
7
- import type { CaptionWord as WireCaptionWord, CaptionStyle as WireCaptionStyle } from '../../composition/validators/index.js';
7
+ import type { CaptionWord as WireCaptionWord, CaptionStyle as WireCaptionStyle, CaptionLayout as WireCaptionLayout } from '../../composition/validators/index.js';
8
8
  export type OverlayTemplate = 'custom' | 'gif' | 'image' | 'lottie' | (string & {});
9
9
  /**
10
10
  * Stable visual ordering projected from Composition.tracks.
@@ -157,6 +157,7 @@ export interface CompositionOverlay extends ProjectedVisualIdentity {
157
157
  animate?: CompositionClip['animate'];
158
158
  }
159
159
  export type CaptionWord = WireCaptionWord;
160
+ export type CaptionLayout = WireCaptionLayout;
160
161
  export type CaptionStyle = WireCaptionStyle & Required<Pick<WireCaptionStyle, 'fontFamily' | 'fontSize' | 'fontWeight' | 'color' | 'highlightColor' | 'backgroundColor' | 'position' | 'textTransform'>>;
161
162
  export interface CompositionEffect extends ProjectedVisualIdentity {
162
163
  id: string;
@@ -192,6 +193,7 @@ export interface RenderInput {
192
193
  audioTracks?: CompositionAudioTrack[];
193
194
  effects?: CompositionEffect[];
194
195
  captionSegments?: CaptionWord[][];
196
+ captionLayouts?: CaptionLayout[];
195
197
  captionsBehind?: boolean;
196
198
  captionStyle?: Partial<CaptionStyle>;
197
199
  width: number;
@@ -76,12 +76,12 @@ export declare const PreviewFrameRequest: z.ZodObject<{
76
76
  }, z.core.$strict>;
77
77
  /** Synchronous desktop variant: the mounted persisted document is the only target. */
78
78
  export declare const DesktopPreviewFrameRequest: z.ZodObject<{
79
+ scale: z.ZodOptional<z.ZodNumber>;
79
80
  timestamps: z.ZodArray<z.ZodNumber>;
80
81
  imageFormat: z.ZodOptional<z.ZodEnum<{
81
82
  png: "png";
82
83
  jpeg: "jpeg";
83
84
  }>>;
84
- scale: z.ZodOptional<z.ZodNumber>;
85
85
  jpegQuality: z.ZodOptional<z.ZodNumber>;
86
86
  }, z.core.$strict>;
87
87
  /**
@@ -1,9 +1,26 @@
1
1
  import type { CaptionWord, CaptionStyle } from '../../core/render/index.js';
2
- export declare function Captions({ segments, style: userStyle, region, }: {
2
+ import type { CaptionLayout } from '../../composition/validators/index.js';
3
+ export declare function Captions({ segments, style: userStyle, region, holdUntilMs, scale, rotation, syncWordVisibility, singlePageRequired, layoutLabel, }: {
3
4
  segments: CaptionWord[][];
4
5
  style?: Partial<CaptionStyle>;
5
6
  region?: {
6
7
  y: number;
7
8
  h: number;
8
9
  };
10
+ holdUntilMs?: number;
11
+ scale?: number;
12
+ rotation?: number;
13
+ syncWordVisibility?: boolean;
14
+ singlePageRequired?: boolean;
15
+ layoutLabel?: string;
9
16
  }): import("react").JSX.Element | null;
17
+ /** Draw default transcript words and independently placed native word ranges on the same frame. */
18
+ export declare function CaptionLayoutLayer({ segments, layouts, style, region, }: {
19
+ segments: CaptionWord[][];
20
+ layouts?: CaptionLayout[];
21
+ style?: Partial<CaptionStyle>;
22
+ region?: {
23
+ y: number;
24
+ h: number;
25
+ };
26
+ }): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- export { Captions } from './Captions.js';
1
+ export { Captions, CaptionLayoutLayer } from './Captions.js';
2
2
  export type { CaptionWord, CaptionStyle, EmphasisWord } from '../../core/render/index.js';
@@ -5,6 +5,7 @@ export interface TextRecolor {
5
5
  export interface TextMarker {
6
6
  kind: 'circle' | 'underline';
7
7
  color: string;
8
+ strokeWidth?: number;
8
9
  }
9
10
  export interface TextPlate {
10
11
  color: string;
package/dist/animate.js CHANGED
@@ -102,7 +102,7 @@ import {
102
102
  useStage,
103
103
  weightsAt,
104
104
  worldTransform
105
- } from "./chunk-2PU2TSUG.js";
105
+ } from "./chunk-D5E5XFHK.js";
106
106
  import {
107
107
  DEFAULT_LIGHTING_PROFILE,
108
108
  DEVICE_GLASS_OPACITY_ENCODED,
@@ -185,7 +185,7 @@ import {
185
185
  selectSceneBakeScale
186
186
  } from "./chunk-CL5Y6V6K.js";
187
187
  import "./chunk-2L7PYYJK.js";
188
- import "./chunk-AVTEPAWI.js";
188
+ import "./chunk-7RGDRDAR.js";
189
189
  import "./chunk-2ESYSVXG.js";
190
190
  export {
191
191
  ALLOWED_BAKE_SCALES,