@cueframe/kernel 0.2.52 → 0.2.53

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 (67) 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/validators/composition.d.ts +644 -0
  6. package/dist/_members/composition/validators/registry.d.ts +1 -1
  7. package/dist/_members/composition/validators/render.d.ts +292 -0
  8. package/dist/_members/composition-ops/index.d.ts +74 -0
  9. package/dist/_members/core/render/compositionAudioAndDepth.d.ts +1 -1
  10. package/dist/_members/core/render/index.d.ts +1 -1
  11. package/dist/_members/core/render/types.d.ts +3 -1
  12. package/dist/_members/plane/contract.d.ts +1 -1
  13. package/dist/_members/primitives/captions/Captions.d.ts +18 -1
  14. package/dist/_members/primitives/captions/index.d.ts +1 -1
  15. package/dist/animate.js +2 -2
  16. package/dist/authoring/build-tools.js +6 -6
  17. package/dist/authoring/context.js +5 -5
  18. package/dist/authoring/tools.js +5 -5
  19. package/dist/authoring.js +9 -9
  20. package/dist/{chunk-MYBK6DKF.js → chunk-2BVKNYRB.js} +1 -1
  21. package/dist/{chunk-2M65KQNG.js → chunk-46DGDPXR.js} +296 -47
  22. package/dist/{chunk-KMDZDH5E.js → chunk-4DM63RTI.js} +4 -4
  23. package/dist/{chunk-QVBUYWW6.js → chunk-5E4YP44R.js} +1 -1
  24. package/dist/{chunk-3OG2674K.js → chunk-7AUHC2X7.js} +1 -1
  25. package/dist/{chunk-AVTEPAWI.js → chunk-7RGDRDAR.js} +17 -13
  26. package/dist/{chunk-7XZW26U2.js → chunk-AONWKKXK.js} +1 -1
  27. package/dist/{chunk-4B4V3HYW.js → chunk-C6ONUJIO.js} +1 -1
  28. package/dist/{chunk-MBSQKRDF.js → chunk-CJMUTCJW.js} +2 -2
  29. package/dist/{chunk-CZOVEX2D.js → chunk-CR3G2JQP.js} +1 -1
  30. package/dist/{chunk-2PU2TSUG.js → chunk-D5E5XFHK.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-LPUQTBKU.js} +41 -20
  34. package/dist/{chunk-WZ22ZYXD.js → chunk-P3DYA5NA.js} +4 -4
  35. package/dist/{chunk-Z6NY6MCL.js → chunk-RMLGMYEJ.js} +1 -1
  36. package/dist/{chunk-5JCLZPMV.js → chunk-TPKPU4PE.js} +56 -38
  37. package/dist/{chunk-CV3QQUMK.js → chunk-UFNIB3JL.js} +117 -4
  38. package/dist/{chunk-ACURZCPN.js → chunk-UKKY7HWN.js} +1 -1
  39. package/dist/{chunk-IHXMBXXL.js → chunk-VTM7NEJC.js} +30 -4
  40. package/dist/{chunk-JWW54N24.js → chunk-ZFW35DLG.js} +1 -1
  41. package/dist/{chunk-FSEB4LSU.js → chunk-ZIPGDGBR.js} +1 -1
  42. package/dist/component-runtime/render.js +2 -2
  43. package/dist/component-runtime.js +3 -3
  44. package/dist/compose.js +5 -5
  45. package/dist/composition/fonts.js +1 -1
  46. package/dist/composition/graphics-plan.js +3 -3
  47. package/dist/composition/ops.js +4 -4
  48. package/dist/composition/projection.js +3 -3
  49. package/dist/composition/validators.js +13 -3
  50. package/dist/composition-ops.js +8 -8
  51. package/dist/composition.js +15 -5
  52. package/dist/{context-2MBCDTCZ.js → context-UAS5WJRB.js} +5 -5
  53. package/dist/core/render.js +4 -4
  54. package/dist/core.js +4 -4
  55. package/dist/mcp/adapter.js +2 -2
  56. package/dist/mcp/core.js +1 -1
  57. package/dist/mcp/scene-shot.js +2 -2
  58. package/dist/mcp/server.js +12 -12
  59. package/dist/mcp.js +12 -12
  60. package/dist/primitives/captions.js +195 -32
  61. package/dist/primitives/effects.js +3 -3
  62. package/dist/primitives/layouts.js +3 -3
  63. package/dist/primitives/scenes.js +3 -3
  64. package/dist/primitives.js +5 -5
  65. package/dist/render-harness/cardFonts.js +2 -2
  66. package/dist/render-harness.js +7 -7
  67. package/package.json +14 -14
@@ -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<{
@@ -316,6 +316,79 @@ export declare const RenderSnapshot: z.ZodObject<{
316
316
  annotationColor: z.ZodOptional<z.ZodString>;
317
317
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
318
318
  }, z.core.$strip>>;
319
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
320
+ segmentIndex: z.ZodNumber;
321
+ wordStartIndex: z.ZodNumber;
322
+ wordEndIndex: z.ZodNumber;
323
+ region: z.ZodObject<{
324
+ x: z.ZodNumber;
325
+ y: z.ZodNumber;
326
+ w: z.ZodNumber;
327
+ h: z.ZodNumber;
328
+ }, z.core.$strip>;
329
+ scale: z.ZodOptional<z.ZodNumber>;
330
+ rotation: z.ZodOptional<z.ZodNumber>;
331
+ style: z.ZodOptional<z.ZodObject<{
332
+ fontFamily: z.ZodOptional<z.ZodString>;
333
+ fontWeight: z.ZodOptional<z.ZodNumber>;
334
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
335
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
336
+ normal: "normal";
337
+ italic: "italic";
338
+ }>>;
339
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
340
+ fontSize: z.ZodOptional<z.ZodNumber>;
341
+ color: z.ZodOptional<z.ZodString>;
342
+ highlightColor: z.ZodOptional<z.ZodString>;
343
+ backgroundColor: z.ZodOptional<z.ZodString>;
344
+ plate: z.ZodOptional<z.ZodEnum<{
345
+ none: "none";
346
+ glass: "glass";
347
+ solid: "solid";
348
+ }>>;
349
+ textTransform: z.ZodOptional<z.ZodEnum<{
350
+ none: "none";
351
+ uppercase: "uppercase";
352
+ capitalize: "capitalize";
353
+ }>>;
354
+ emphasisColor: z.ZodOptional<z.ZodString>;
355
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
356
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
357
+ none: "none";
358
+ uppercase: "uppercase";
359
+ capitalize: "capitalize";
360
+ }>>;
361
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
362
+ entrance: z.ZodOptional<z.ZodEnum<{
363
+ none: "none";
364
+ fade: "fade";
365
+ "word-pop": "word-pop";
366
+ "stagger-up": "stagger-up";
367
+ }>>;
368
+ entranceMs: z.ZodOptional<z.ZodNumber>;
369
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
370
+ exitMs: z.ZodOptional<z.ZodNumber>;
371
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
372
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
373
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
374
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
375
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
376
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
377
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
378
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
379
+ annotationColor: z.ZodOptional<z.ZodString>;
380
+ }, z.core.$strict>>;
381
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
382
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
383
+ wordIndex: z.ZodNumber;
384
+ emphasis: z.ZodOptional<z.ZodBoolean>;
385
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
386
+ circle: "circle";
387
+ underline: "underline";
388
+ }>>>;
389
+ }, z.core.$strict>>>;
390
+ wordSignature: z.ZodString;
391
+ }, z.core.$strict>>>;
319
392
  zPlane: z.ZodOptional<z.ZodEnum<{
320
393
  front: "front";
321
394
  "behind-subject": "behind-subject";
@@ -397,6 +470,79 @@ export declare const RenderSnapshot: z.ZodObject<{
397
470
  annotationColor: z.ZodOptional<z.ZodString>;
398
471
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
399
472
  }, z.core.$strip>>;
473
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
474
+ segmentIndex: z.ZodNumber;
475
+ wordStartIndex: z.ZodNumber;
476
+ wordEndIndex: z.ZodNumber;
477
+ region: z.ZodObject<{
478
+ x: z.ZodNumber;
479
+ y: z.ZodNumber;
480
+ w: z.ZodNumber;
481
+ h: z.ZodNumber;
482
+ }, z.core.$strip>;
483
+ scale: z.ZodOptional<z.ZodNumber>;
484
+ rotation: z.ZodOptional<z.ZodNumber>;
485
+ style: z.ZodOptional<z.ZodObject<{
486
+ fontFamily: z.ZodOptional<z.ZodString>;
487
+ fontWeight: z.ZodOptional<z.ZodNumber>;
488
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
489
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
490
+ normal: "normal";
491
+ italic: "italic";
492
+ }>>;
493
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
494
+ fontSize: z.ZodOptional<z.ZodNumber>;
495
+ color: z.ZodOptional<z.ZodString>;
496
+ highlightColor: z.ZodOptional<z.ZodString>;
497
+ backgroundColor: z.ZodOptional<z.ZodString>;
498
+ plate: z.ZodOptional<z.ZodEnum<{
499
+ none: "none";
500
+ glass: "glass";
501
+ solid: "solid";
502
+ }>>;
503
+ textTransform: z.ZodOptional<z.ZodEnum<{
504
+ none: "none";
505
+ uppercase: "uppercase";
506
+ capitalize: "capitalize";
507
+ }>>;
508
+ emphasisColor: z.ZodOptional<z.ZodString>;
509
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
510
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
511
+ none: "none";
512
+ uppercase: "uppercase";
513
+ capitalize: "capitalize";
514
+ }>>;
515
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
516
+ entrance: z.ZodOptional<z.ZodEnum<{
517
+ none: "none";
518
+ fade: "fade";
519
+ "word-pop": "word-pop";
520
+ "stagger-up": "stagger-up";
521
+ }>>;
522
+ entranceMs: z.ZodOptional<z.ZodNumber>;
523
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
524
+ exitMs: z.ZodOptional<z.ZodNumber>;
525
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
526
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
527
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
528
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
529
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
530
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
531
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
532
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
533
+ annotationColor: z.ZodOptional<z.ZodString>;
534
+ }, z.core.$strict>>;
535
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
536
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
537
+ wordIndex: z.ZodNumber;
538
+ emphasis: z.ZodOptional<z.ZodBoolean>;
539
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
540
+ circle: "circle";
541
+ underline: "underline";
542
+ }>>>;
543
+ }, z.core.$strict>>>;
544
+ wordSignature: z.ZodString;
545
+ }, z.core.$strict>>>;
400
546
  zPlane: z.ZodOptional<z.ZodEnum<{
401
547
  front: "front";
402
548
  "behind-subject": "behind-subject";
@@ -1161,6 +1307,79 @@ export declare const RenderJob: z.ZodObject<{
1161
1307
  annotationColor: z.ZodOptional<z.ZodString>;
1162
1308
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
1163
1309
  }, z.core.$strip>>;
1310
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1311
+ segmentIndex: z.ZodNumber;
1312
+ wordStartIndex: z.ZodNumber;
1313
+ wordEndIndex: z.ZodNumber;
1314
+ region: z.ZodObject<{
1315
+ x: z.ZodNumber;
1316
+ y: z.ZodNumber;
1317
+ w: z.ZodNumber;
1318
+ h: z.ZodNumber;
1319
+ }, z.core.$strip>;
1320
+ scale: z.ZodOptional<z.ZodNumber>;
1321
+ rotation: z.ZodOptional<z.ZodNumber>;
1322
+ style: z.ZodOptional<z.ZodObject<{
1323
+ fontFamily: z.ZodOptional<z.ZodString>;
1324
+ fontWeight: z.ZodOptional<z.ZodNumber>;
1325
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
1326
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
1327
+ normal: "normal";
1328
+ italic: "italic";
1329
+ }>>;
1330
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
1331
+ fontSize: z.ZodOptional<z.ZodNumber>;
1332
+ color: z.ZodOptional<z.ZodString>;
1333
+ highlightColor: z.ZodOptional<z.ZodString>;
1334
+ backgroundColor: z.ZodOptional<z.ZodString>;
1335
+ plate: z.ZodOptional<z.ZodEnum<{
1336
+ none: "none";
1337
+ glass: "glass";
1338
+ solid: "solid";
1339
+ }>>;
1340
+ textTransform: z.ZodOptional<z.ZodEnum<{
1341
+ none: "none";
1342
+ uppercase: "uppercase";
1343
+ capitalize: "capitalize";
1344
+ }>>;
1345
+ emphasisColor: z.ZodOptional<z.ZodString>;
1346
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
1347
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
1348
+ none: "none";
1349
+ uppercase: "uppercase";
1350
+ capitalize: "capitalize";
1351
+ }>>;
1352
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
1353
+ entrance: z.ZodOptional<z.ZodEnum<{
1354
+ none: "none";
1355
+ fade: "fade";
1356
+ "word-pop": "word-pop";
1357
+ "stagger-up": "stagger-up";
1358
+ }>>;
1359
+ entranceMs: z.ZodOptional<z.ZodNumber>;
1360
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
1361
+ exitMs: z.ZodOptional<z.ZodNumber>;
1362
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
1363
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
1364
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
1365
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
1366
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
1367
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
1368
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
1369
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
1370
+ annotationColor: z.ZodOptional<z.ZodString>;
1371
+ }, z.core.$strict>>;
1372
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
1373
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1374
+ wordIndex: z.ZodNumber;
1375
+ emphasis: z.ZodOptional<z.ZodBoolean>;
1376
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1377
+ circle: "circle";
1378
+ underline: "underline";
1379
+ }>>>;
1380
+ }, z.core.$strict>>>;
1381
+ wordSignature: z.ZodString;
1382
+ }, z.core.$strict>>>;
1164
1383
  zPlane: z.ZodOptional<z.ZodEnum<{
1165
1384
  front: "front";
1166
1385
  "behind-subject": "behind-subject";
@@ -1242,6 +1461,79 @@ export declare const RenderJob: z.ZodObject<{
1242
1461
  annotationColor: z.ZodOptional<z.ZodString>;
1243
1462
  maxWidthPercent: z.ZodOptional<z.ZodNumber>;
1244
1463
  }, z.core.$strip>>;
1464
+ layouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1465
+ segmentIndex: z.ZodNumber;
1466
+ wordStartIndex: z.ZodNumber;
1467
+ wordEndIndex: z.ZodNumber;
1468
+ region: z.ZodObject<{
1469
+ x: z.ZodNumber;
1470
+ y: z.ZodNumber;
1471
+ w: z.ZodNumber;
1472
+ h: z.ZodNumber;
1473
+ }, z.core.$strip>;
1474
+ scale: z.ZodOptional<z.ZodNumber>;
1475
+ rotation: z.ZodOptional<z.ZodNumber>;
1476
+ style: z.ZodOptional<z.ZodObject<{
1477
+ fontFamily: z.ZodOptional<z.ZodString>;
1478
+ fontWeight: z.ZodOptional<z.ZodNumber>;
1479
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
1480
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
1481
+ normal: "normal";
1482
+ italic: "italic";
1483
+ }>>;
1484
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
1485
+ fontSize: z.ZodOptional<z.ZodNumber>;
1486
+ color: z.ZodOptional<z.ZodString>;
1487
+ highlightColor: z.ZodOptional<z.ZodString>;
1488
+ backgroundColor: z.ZodOptional<z.ZodString>;
1489
+ plate: z.ZodOptional<z.ZodEnum<{
1490
+ none: "none";
1491
+ glass: "glass";
1492
+ solid: "solid";
1493
+ }>>;
1494
+ textTransform: z.ZodOptional<z.ZodEnum<{
1495
+ none: "none";
1496
+ uppercase: "uppercase";
1497
+ capitalize: "capitalize";
1498
+ }>>;
1499
+ emphasisColor: z.ZodOptional<z.ZodString>;
1500
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
1501
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
1502
+ none: "none";
1503
+ uppercase: "uppercase";
1504
+ capitalize: "capitalize";
1505
+ }>>;
1506
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
1507
+ entrance: z.ZodOptional<z.ZodEnum<{
1508
+ none: "none";
1509
+ fade: "fade";
1510
+ "word-pop": "word-pop";
1511
+ "stagger-up": "stagger-up";
1512
+ }>>;
1513
+ entranceMs: z.ZodOptional<z.ZodNumber>;
1514
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
1515
+ exitMs: z.ZodOptional<z.ZodNumber>;
1516
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
1517
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
1518
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
1519
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
1520
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
1521
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
1522
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
1523
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
1524
+ annotationColor: z.ZodOptional<z.ZodString>;
1525
+ }, z.core.$strict>>;
1526
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
1527
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1528
+ wordIndex: z.ZodNumber;
1529
+ emphasis: z.ZodOptional<z.ZodBoolean>;
1530
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1531
+ circle: "circle";
1532
+ underline: "underline";
1533
+ }>>>;
1534
+ }, z.core.$strict>>>;
1535
+ wordSignature: z.ZodString;
1536
+ }, z.core.$strict>>>;
1245
1537
  zPlane: z.ZodOptional<z.ZodEnum<{
1246
1538
  front: "front";
1247
1539
  "behind-subject": "behind-subject";
@@ -802,6 +802,80 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
802
802
  annotationColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
803
803
  maxWidthPercent: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
804
804
  }, z.core.$strip>>;
805
+ }, z.core.$strict>, z.ZodObject<{
806
+ type: z.ZodLiteral<"setCaptionLayouts">;
807
+ layouts: z.ZodArray<z.ZodObject<{
808
+ segmentIndex: z.ZodNumber;
809
+ wordStartIndex: z.ZodNumber;
810
+ wordEndIndex: z.ZodNumber;
811
+ region: z.ZodObject<{
812
+ x: z.ZodNumber;
813
+ y: z.ZodNumber;
814
+ w: z.ZodNumber;
815
+ h: z.ZodNumber;
816
+ }, z.core.$strip>;
817
+ scale: z.ZodOptional<z.ZodNumber>;
818
+ rotation: z.ZodOptional<z.ZodNumber>;
819
+ style: z.ZodOptional<z.ZodObject<{
820
+ fontFamily: z.ZodOptional<z.ZodString>;
821
+ fontWeight: z.ZodOptional<z.ZodNumber>;
822
+ emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
823
+ emphasisFontStyle: z.ZodOptional<z.ZodEnum<{
824
+ normal: "normal";
825
+ italic: "italic";
826
+ }>>;
827
+ emphasisFontFamily: z.ZodOptional<z.ZodString>;
828
+ fontSize: z.ZodOptional<z.ZodNumber>;
829
+ color: z.ZodOptional<z.ZodString>;
830
+ highlightColor: z.ZodOptional<z.ZodString>;
831
+ backgroundColor: z.ZodOptional<z.ZodString>;
832
+ plate: z.ZodOptional<z.ZodEnum<{
833
+ none: "none";
834
+ glass: "glass";
835
+ solid: "solid";
836
+ }>>;
837
+ textTransform: z.ZodOptional<z.ZodEnum<{
838
+ none: "none";
839
+ uppercase: "uppercase";
840
+ capitalize: "capitalize";
841
+ }>>;
842
+ emphasisColor: z.ZodOptional<z.ZodString>;
843
+ emphasisScale: z.ZodOptional<z.ZodNumber>;
844
+ emphasisTextTransform: z.ZodOptional<z.ZodEnum<{
845
+ none: "none";
846
+ uppercase: "uppercase";
847
+ capitalize: "capitalize";
848
+ }>>;
849
+ emphasisLetterSpacing: z.ZodOptional<z.ZodNumber>;
850
+ entrance: z.ZodOptional<z.ZodEnum<{
851
+ none: "none";
852
+ fade: "fade";
853
+ "word-pop": "word-pop";
854
+ "stagger-up": "stagger-up";
855
+ }>>;
856
+ entranceMs: z.ZodOptional<z.ZodNumber>;
857
+ entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
858
+ exitMs: z.ZodOptional<z.ZodNumber>;
859
+ emphasisPlate: z.ZodOptional<z.ZodBoolean>;
860
+ emphasisPlateColor: z.ZodOptional<z.ZodString>;
861
+ emphasisPlateTextColor: z.ZodOptional<z.ZodString>;
862
+ emphasisPlateAltColor: z.ZodOptional<z.ZodString>;
863
+ emphasisPlateAltTextColor: z.ZodOptional<z.ZodString>;
864
+ emphasisPlateRadius: z.ZodOptional<z.ZodNumber>;
865
+ emphasisPlatePadX: z.ZodOptional<z.ZodNumber>;
866
+ emphasisPlatePadY: z.ZodOptional<z.ZodNumber>;
867
+ annotationColor: z.ZodOptional<z.ZodString>;
868
+ }, z.core.$strict>>;
869
+ holdThroughWordIndex: z.ZodOptional<z.ZodNumber>;
870
+ wordMarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
871
+ wordIndex: z.ZodNumber;
872
+ emphasis: z.ZodOptional<z.ZodBoolean>;
873
+ annotate: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
874
+ circle: "circle";
875
+ underline: "underline";
876
+ }>>>;
877
+ }, z.core.$strict>>>;
878
+ }, z.core.$strict>>;
805
879
  }, z.core.$strict>, z.ZodObject<{
806
880
  type: z.ZodLiteral<"applyMotionPreset">;
807
881
  clipId: z.ZodString;
@@ -6,7 +6,7 @@ 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
11
  export type VisiblePictureClip = Pick<CompositionClip, 'id' | 'trackId' | 'contentIndex' | 'layerIndex' | 'timelineStartFrames' | 'durationInFrames'> & Partial<Pick<CompositionClip, 'region' | 'fit' | 'sourceWidth' | 'sourceHeight' | 'cropTrajectory' | 'cropTrajectoryUrl' | 'captionVisibility' | 'packedUrl' | 'mediaType'>> & {
12
12
  hasClipEffects?: boolean;
@@ -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';
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,
@@ -4,19 +4,19 @@ import {
4
4
  buildPlannerTools,
5
5
  buildToolsFromSchemas,
6
6
  extractProviderError
7
- } from "../chunk-QVBUYWW6.js";
8
- import "../chunk-KMDZDH5E.js";
7
+ } from "../chunk-5E4YP44R.js";
8
+ import "../chunk-4DM63RTI.js";
9
9
  import "../chunk-JOURGVOR.js";
10
10
  import "../chunk-7AZLFN26.js";
11
- import "../chunk-5JCLZPMV.js";
12
- import "../chunk-MBSQKRDF.js";
13
- import "../chunk-CV3QQUMK.js";
11
+ import "../chunk-TPKPU4PE.js";
12
+ import "../chunk-CJMUTCJW.js";
13
+ import "../chunk-UFNIB3JL.js";
14
14
  import "../chunk-WPZKOVYF.js";
15
15
  import "../chunk-B7J5UUUV.js";
16
16
  import "../chunk-KYRDKK2D.js";
17
17
  import "../chunk-WREYUH2E.js";
18
18
  import "../chunk-7PA7FGLD.js";
19
- import "../chunk-AVTEPAWI.js";
19
+ import "../chunk-7RGDRDAR.js";
20
20
  import "../chunk-2ESYSVXG.js";
21
21
  export {
22
22
  ZERO_USAGE,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  buildDirectorContext
3
- } from "../chunk-FSEB4LSU.js";
4
- import "../chunk-5JCLZPMV.js";
5
- import "../chunk-MBSQKRDF.js";
6
- import "../chunk-CV3QQUMK.js";
3
+ } from "../chunk-ZIPGDGBR.js";
4
+ import "../chunk-TPKPU4PE.js";
5
+ import "../chunk-CJMUTCJW.js";
6
+ import "../chunk-UFNIB3JL.js";
7
7
  import "../chunk-WPZKOVYF.js";
8
8
  import "../chunk-B7J5UUUV.js";
9
9
  import "../chunk-KYRDKK2D.js";
10
10
  import "../chunk-WREYUH2E.js";
11
- import "../chunk-AVTEPAWI.js";
11
+ import "../chunk-7RGDRDAR.js";
12
12
  import "../chunk-2ESYSVXG.js";
13
13
  export {
14
14
  buildDirectorContext
@@ -6,18 +6,18 @@ import {
6
6
  COMPOSE_ROLE_TOOLS,
7
7
  COMPOSE_ROLE_TOOL_NAMES,
8
8
  dispatchComposeRoleTool
9
- } from "../chunk-KMDZDH5E.js";
9
+ } from "../chunk-4DM63RTI.js";
10
10
  import "../chunk-JOURGVOR.js";
11
11
  import "../chunk-7AZLFN26.js";
12
- import "../chunk-5JCLZPMV.js";
13
- import "../chunk-MBSQKRDF.js";
14
- import "../chunk-CV3QQUMK.js";
12
+ import "../chunk-TPKPU4PE.js";
13
+ import "../chunk-CJMUTCJW.js";
14
+ import "../chunk-UFNIB3JL.js";
15
15
  import "../chunk-WPZKOVYF.js";
16
16
  import "../chunk-B7J5UUUV.js";
17
17
  import "../chunk-KYRDKK2D.js";
18
18
  import "../chunk-WREYUH2E.js";
19
19
  import "../chunk-7PA7FGLD.js";
20
- import "../chunk-AVTEPAWI.js";
20
+ import "../chunk-7RGDRDAR.js";
21
21
  import "../chunk-2ESYSVXG.js";
22
22
  export {
23
23
  COMPOSE_MOTION_TOOLS,
package/dist/authoring.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  buildPlannerTools,
12
12
  buildToolsFromSchemas,
13
13
  extractProviderError
14
- } from "./chunk-QVBUYWW6.js";
14
+ } from "./chunk-5E4YP44R.js";
15
15
  import {
16
16
  COMPOSE_MOTION_TOOLS,
17
17
  COMPOSE_MOTION_VERIFY_TOOLS,
@@ -20,14 +20,14 @@ import {
20
20
  COMPOSE_ROLE_TOOLS,
21
21
  COMPOSE_ROLE_TOOL_NAMES,
22
22
  dispatchComposeRoleTool
23
- } from "./chunk-KMDZDH5E.js";
23
+ } from "./chunk-4DM63RTI.js";
24
24
  import {
25
25
  AgentFixableCaptureError,
26
26
  getExcludedTools
27
27
  } from "./chunk-JOURGVOR.js";
28
28
  import {
29
29
  buildDirectorContext
30
- } from "./chunk-FSEB4LSU.js";
30
+ } from "./chunk-ZIPGDGBR.js";
31
31
  import {
32
32
  buildFastModel,
33
33
  buildModel,
@@ -49,16 +49,16 @@ import {
49
49
  initCodeGenPrompts
50
50
  } from "./chunk-Y4HPN4BC.js";
51
51
  import "./chunk-7AZLFN26.js";
52
- import "./chunk-5JCLZPMV.js";
53
- import "./chunk-MBSQKRDF.js";
54
- import "./chunk-CV3QQUMK.js";
52
+ import "./chunk-TPKPU4PE.js";
53
+ import "./chunk-CJMUTCJW.js";
54
+ import "./chunk-UFNIB3JL.js";
55
55
  import "./chunk-WPZKOVYF.js";
56
56
  import "./chunk-B7J5UUUV.js";
57
57
  import "./chunk-KYRDKK2D.js";
58
- import "./chunk-6WQHVYJD.js";
58
+ import "./chunk-G7ZSFSQG.js";
59
59
  import {
60
60
  cssLayoutVars
61
- } from "./chunk-Z6NY6MCL.js";
61
+ } from "./chunk-RMLGMYEJ.js";
62
62
  import "./chunk-WREYUH2E.js";
63
63
  import "./chunk-ILO4NEZ3.js";
64
64
  import "./chunk-E63UEO5C.js";
@@ -69,7 +69,7 @@ import {
69
69
  isSceneShotClip
70
70
  } from "./chunk-CL5Y6V6K.js";
71
71
  import "./chunk-2L7PYYJK.js";
72
- import "./chunk-AVTEPAWI.js";
72
+ import "./chunk-7RGDRDAR.js";
73
73
  import "./chunk-2ESYSVXG.js";
74
74
 
75
75
  // ../authoring/src/agent.ts