@cueframe/kernel 0.0.1

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 (1119) hide show
  1. package/dist/TextureLoader-UQOFUSAP.js +422 -0
  2. package/dist/VideoTexture-AQWSPIJG.js +62 -0
  3. package/dist/_members/account-model/index.d.ts +1 -0
  4. package/dist/_members/account-model/index.js +4 -0
  5. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +97 -0
  6. package/dist/_members/account-model/testing/conversationStoreContract.js +168 -0
  7. package/dist/_members/account-model/testing/index.d.ts +7 -0
  8. package/dist/_members/account-model/testing/index.js +7 -0
  9. package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +52 -0
  10. package/dist/_members/account-model/testing/restorePointStoreContract.js +69 -0
  11. package/dist/_members/account-model/types/index.d.ts +5 -0
  12. package/dist/_members/account-model/types/index.js +1 -0
  13. package/dist/_members/account-model/validators/contextFile.d.ts +36 -0
  14. package/dist/_members/account-model/validators/contextFile.js +18 -0
  15. package/dist/_members/account-model/validators/conversation.d.ts +153 -0
  16. package/dist/_members/account-model/validators/conversation.js +95 -0
  17. package/dist/_members/account-model/validators/dashboardInsight.d.ts +30 -0
  18. package/dist/_members/account-model/validators/dashboardInsight.js +16 -0
  19. package/dist/_members/account-model/validators/index.d.ts +7 -0
  20. package/dist/_members/account-model/validators/index.js +7 -0
  21. package/dist/_members/account-model/validators/sessionToken.d.ts +79 -0
  22. package/dist/_members/account-model/validators/sessionToken.js +49 -0
  23. package/dist/_members/account-model/validators/uploadToken.d.ts +33 -0
  24. package/dist/_members/account-model/validators/uploadToken.js +16 -0
  25. package/dist/_members/account-model/validators/userSettings.d.ts +22 -0
  26. package/dist/_members/account-model/validators/userSettings.js +12 -0
  27. package/dist/_members/account-model/validators/workingComposition.d.ts +34 -0
  28. package/dist/_members/account-model/validators/workingComposition.js +20 -0
  29. package/dist/_members/animate/animations/Create.d.ts +36 -0
  30. package/dist/_members/animate/animations/FadeIn.d.ts +36 -0
  31. package/dist/_members/animate/animations/GrowArrow.d.ts +36 -0
  32. package/dist/_members/animate/animations/GrowFromCenter.d.ts +25 -0
  33. package/dist/_members/animate/animations/Indicate.d.ts +29 -0
  34. package/dist/_members/animate/animations/MoveAlongPath.d.ts +30 -0
  35. package/dist/_members/animate/animations/Transform.d.ts +46 -0
  36. package/dist/_members/animate/animations/Wiggle.d.ts +31 -0
  37. package/dist/_members/animate/animations/Write.d.ts +35 -0
  38. package/dist/_members/animate/animations/index.d.ts +9 -0
  39. package/dist/_members/animate/composition/AnimationGroup.d.ts +32 -0
  40. package/dist/_members/animate/composition/LaggedStart.d.ts +33 -0
  41. package/dist/_members/animate/composition/Succession.d.ts +27 -0
  42. package/dist/_members/animate/composition/index.d.ts +3 -0
  43. package/dist/_members/animate/easing/index.d.ts +3 -0
  44. package/dist/_members/animate/easing/rush.d.ts +16 -0
  45. package/dist/_members/animate/easing/smooth.d.ts +8 -0
  46. package/dist/_members/animate/easing/smootherstep.d.ts +7 -0
  47. package/dist/_members/animate/index.d.ts +25 -0
  48. package/dist/_members/animate/mobjects/Arrow.d.ts +41 -0
  49. package/dist/_members/animate/mobjects/BrandBox.d.ts +43 -0
  50. package/dist/_members/animate/mobjects/DiGraph.d.ts +21 -0
  51. package/dist/_members/animate/mobjects/Graph.d.ts +72 -0
  52. package/dist/_members/animate/mobjects/index.d.ts +4 -0
  53. package/dist/_members/animate/three/ThreeCanvas.d.ts +36 -0
  54. package/dist/_members/animate/three/drei.d.ts +13 -0
  55. package/dist/_members/animate/three/index.d.ts +2 -0
  56. package/dist/_members/authoring/agent/buildTools.d.ts +54 -0
  57. package/dist/_members/authoring/agent/contextManagement.d.ts +73 -0
  58. package/dist/_members/authoring/agent/errors.d.ts +12 -0
  59. package/dist/_members/authoring/agent/index.d.ts +2 -0
  60. package/dist/_members/authoring/agent/memoryTool.d.ts +8 -0
  61. package/dist/_members/authoring/agent/promptCache.d.ts +34 -0
  62. package/dist/_members/authoring/agent.d.ts +59 -0
  63. package/dist/_members/authoring/capabilities.d.ts +306 -0
  64. package/dist/_members/authoring/composer/index.d.ts +2 -0
  65. package/dist/_members/authoring/composer/scopes.d.ts +26 -0
  66. package/dist/_members/authoring/context/brand.d.ts +37 -0
  67. package/dist/_members/authoring/context/brandTokens.d.ts +6 -0
  68. package/dist/_members/authoring/context/index.d.ts +8 -0
  69. package/dist/_members/authoring/context/timeline.d.ts +33 -0
  70. package/dist/_members/authoring/context/transcript.d.ts +24 -0
  71. package/dist/_members/authoring/context/types.d.ts +5 -0
  72. package/dist/_members/authoring/decomposer.d.ts +17 -0
  73. package/dist/_members/authoring/evaluate.d.ts +37 -0
  74. package/dist/_members/authoring/evaluator.d.ts +22 -0
  75. package/dist/_members/authoring/index.d.ts +25 -0
  76. package/dist/_members/authoring/models/modelFactory.d.ts +107 -0
  77. package/dist/_members/authoring/motion/applyMotionPreset.d.ts +31 -0
  78. package/dist/_members/authoring/motion/index.d.ts +6 -0
  79. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +38 -0
  80. package/dist/_members/authoring/motion/shell.d.ts +30 -0
  81. package/dist/_members/authoring/pipelineTrace.d.ts +38 -0
  82. package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +5 -0
  83. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +18 -0
  84. package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +5 -0
  85. package/dist/_members/authoring/prompts/graphics.d.ts +14 -0
  86. package/dist/_members/authoring/prompts/index.d.ts +4 -0
  87. package/dist/_members/authoring/prompts/plannerPrompt.d.ts +48 -0
  88. package/dist/_members/authoring/providers/index.d.ts +1 -0
  89. package/dist/_members/authoring/providers/resourceApi.d.ts +32 -0
  90. package/dist/_members/authoring/resource-routing.d.ts +186 -0
  91. package/dist/_members/authoring/resources.d.ts +59 -0
  92. package/dist/_members/authoring/scope.d.ts +31 -0
  93. package/dist/_members/authoring/tools/brandTokens.d.ts +34 -0
  94. package/dist/_members/authoring/tools/composeRoleTools.d.ts +112 -0
  95. package/dist/_members/authoring/tools/index.d.ts +4 -0
  96. package/dist/_members/authoring/tools/toolSets.d.ts +54 -0
  97. package/dist/_members/authoring/transpileComponent.d.ts +40 -0
  98. package/dist/_members/authoring/transpileHelper.d.ts +26 -0
  99. package/dist/_members/authoring/types.d.ts +572 -0
  100. package/dist/_members/brand-derivation/constants.d.ts +27 -0
  101. package/dist/_members/brand-derivation/constants.js +20 -0
  102. package/dist/_members/brand-derivation/contrastSafe.d.ts +47 -0
  103. package/dist/_members/brand-derivation/contrastSafe.js +114 -0
  104. package/dist/_members/brand-derivation/index.d.ts +1 -0
  105. package/dist/_members/brand-derivation/index.js +1 -0
  106. package/dist/_members/compose/CompositionRenderer.d.ts +12 -0
  107. package/dist/_members/compose/catalog.d.ts +1 -0
  108. package/dist/_members/compose/index.d.ts +8 -0
  109. package/dist/_members/compose/primitiveRegistry.d.ts +90 -0
  110. package/dist/_members/compose/sceneToRenderInput.d.ts +51 -0
  111. package/dist/_members/compose/schema.d.ts +45 -0
  112. package/dist/_members/compose/tokenResolver.d.ts +28 -0
  113. package/dist/_members/composition/audio/audioMix.d.ts +67 -0
  114. package/dist/_members/composition/audio/audioMix.js +61 -0
  115. package/dist/_members/composition/audio/index.d.ts +5 -0
  116. package/dist/_members/composition/audio/index.js +5 -0
  117. package/dist/_members/composition/audio/mixStaging.d.ts +107 -0
  118. package/dist/_members/composition/audio/mixStaging.js +195 -0
  119. package/dist/_members/composition/audio/musicPack.d.ts +56 -0
  120. package/dist/_members/composition/audio/musicPack.generated.d.ts +9 -0
  121. package/dist/_members/composition/audio/musicPack.generated.js +136 -0
  122. package/dist/_members/composition/audio/musicPack.js +36 -0
  123. package/dist/_members/composition/audio/pack.d.ts +67 -0
  124. package/dist/_members/composition/audio/pack.generated.d.ts +9 -0
  125. package/dist/_members/composition/audio/pack.generated.js +603 -0
  126. package/dist/_members/composition/audio/pack.js +48 -0
  127. package/dist/_members/composition/audio/palette.d.ts +82 -0
  128. package/dist/_members/composition/audio/palette.js +134 -0
  129. package/dist/_members/composition/autozoom/index.d.ts +57 -0
  130. package/dist/_members/composition/autozoom/index.js +83 -0
  131. package/dist/_members/composition/brand-kit.d.ts +58 -0
  132. package/dist/_members/composition/brand-kit.js +45 -0
  133. package/dist/_members/composition/brief/contract.d.ts +132 -0
  134. package/dist/_members/composition/brief/contract.js +209 -0
  135. package/dist/_members/composition/color-grade.d.ts +17 -0
  136. package/dist/_members/composition/color-grade.js +80 -0
  137. package/dist/_members/composition/depth.d.ts +24 -0
  138. package/dist/_members/composition/depth.js +8 -0
  139. package/dist/_members/composition/fixtures/agentErrored.d.ts +25 -0
  140. package/dist/_members/composition/fixtures/index.d.ts +7 -0
  141. package/dist/_members/composition/fixtures/index.js +143 -0
  142. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +25 -0
  143. package/dist/_members/composition/fixtures/vaayaErrored.js +203 -0
  144. package/dist/_members/composition/fonts.d.ts +68 -0
  145. package/dist/_members/composition/fonts.js +162 -0
  146. package/dist/_members/composition/graphics-plan/compile.d.ts +43 -0
  147. package/dist/_members/composition/graphics-plan/compile.js +221 -0
  148. package/dist/_members/composition/graphics-plan/index.d.ts +11 -0
  149. package/dist/_members/composition/graphics-plan/index.js +10 -0
  150. package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +51 -0
  151. package/dist/_members/composition/graphics-plan/instantiateMotif.js +44 -0
  152. package/dist/_members/composition/graphics-plan/motion.d.ts +19 -0
  153. package/dist/_members/composition/graphics-plan/motion.js +66 -0
  154. package/dist/_members/composition/graphics-plan/schemas.d.ts +1672 -0
  155. package/dist/_members/composition/graphics-plan/schemas.js +261 -0
  156. package/dist/_members/composition/graphics-plan/solve.d.ts +34 -0
  157. package/dist/_members/composition/graphics-plan/solve.js +145 -0
  158. package/dist/_members/composition/index.d.ts +7 -0
  159. package/dist/_members/composition/index.js +5 -0
  160. package/dist/_members/composition/invariants/clipPlacement.d.ts +65 -0
  161. package/dist/_members/composition/invariants/clipPlacement.js +69 -0
  162. package/dist/_members/composition/invariants/composition.d.ts +9 -0
  163. package/dist/_members/composition/invariants/composition.js +28 -0
  164. package/dist/_members/composition/invariants/errors.d.ts +11 -0
  165. package/dist/_members/composition/invariants/errors.js +10 -0
  166. package/dist/_members/composition/invariants/etag.d.ts +10 -0
  167. package/dist/_members/composition/invariants/etag.js +38 -0
  168. package/dist/_members/composition/invariants/ids.d.ts +9 -0
  169. package/dist/_members/composition/invariants/ids.js +33 -0
  170. package/dist/_members/composition/invariants/index.d.ts +9 -0
  171. package/dist/_members/composition/invariants/index.js +9 -0
  172. package/dist/_members/composition/invariants/keyframes.d.ts +23 -0
  173. package/dist/_members/composition/invariants/keyframes.js +45 -0
  174. package/dist/_members/composition/invariants/markers.d.ts +9 -0
  175. package/dist/_members/composition/invariants/markers.js +29 -0
  176. package/dist/_members/composition/invariants/time.d.ts +22 -0
  177. package/dist/_members/composition/invariants/time.js +20 -0
  178. package/dist/_members/composition/invariants/tracks.d.ts +58 -0
  179. package/dist/_members/composition/invariants/tracks.js +304 -0
  180. package/dist/_members/composition/ops/compositionOps.d.ts +129 -0
  181. package/dist/_members/composition/ops/compositionOps.js +1056 -0
  182. package/dist/_members/composition/ops/headlessStore.d.ts +40 -0
  183. package/dist/_members/composition/ops/headlessStore.js +94 -0
  184. package/dist/_members/composition/ops/index.d.ts +6 -0
  185. package/dist/_members/composition/ops/index.js +4 -0
  186. package/dist/_members/composition/ops/selectors.d.ts +81 -0
  187. package/dist/_members/composition/ops/selectors.js +118 -0
  188. package/dist/_members/composition/ops/timeline-word.d.ts +24 -0
  189. package/dist/_members/composition/ops/timeline-word.js +1 -0
  190. package/dist/_members/composition/ops/transcript.d.ts +44 -0
  191. package/dist/_members/composition/ops/transcript.js +77 -0
  192. package/dist/_members/composition/ops/types.d.ts +145 -0
  193. package/dist/_members/composition/ops/types.js +16 -0
  194. package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +82 -0
  195. package/dist/_members/composition/primitive-catalog/catalogQuery.js +150 -0
  196. package/dist/_members/composition/primitive-catalog/disabled.d.ts +3 -0
  197. package/dist/_members/composition/primitive-catalog/disabled.js +32 -0
  198. package/dist/_members/composition/primitive-catalog/generated/meta.d.ts +2 -0
  199. package/dist/_members/composition/primitive-catalog/generated/meta.js +15161 -0
  200. package/dist/_members/composition/primitive-catalog/index.d.ts +28 -0
  201. package/dist/_members/composition/primitive-catalog/index.js +46 -0
  202. package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +76 -0
  203. package/dist/_members/composition/primitive-catalog/paramValidation.js +231 -0
  204. package/dist/_members/composition/primitive-catalog/projection.d.ts +99 -0
  205. package/dist/_members/composition/primitive-catalog/projection.js +164 -0
  206. package/dist/_members/composition/primitive-catalog/types.d.ts +123 -0
  207. package/dist/_members/composition/primitive-catalog/types.js +14 -0
  208. package/dist/_members/composition/projection/behind-placement.d.ts +64 -0
  209. package/dist/_members/composition/projection/behind-placement.js +62 -0
  210. package/dist/_members/composition/projection/brandKit.d.ts +308 -0
  211. package/dist/_members/composition/projection/brandKit.js +482 -0
  212. package/dist/_members/composition/projection/cardTokens.d.ts +70 -0
  213. package/dist/_members/composition/projection/cardTokens.js +209 -0
  214. package/dist/_members/composition/projection/composition-floor.d.ts +349 -0
  215. package/dist/_members/composition/projection/composition-floor.js +582 -0
  216. package/dist/_members/composition/projection/cropProjection.d.ts +140 -0
  217. package/dist/_members/composition/projection/cropProjection.js +257 -0
  218. package/dist/_members/composition/projection/index.d.ts +7 -0
  219. package/dist/_members/composition/projection/index.js +7 -0
  220. package/dist/_members/composition/projection/occlusion-budget.d.ts +67 -0
  221. package/dist/_members/composition/projection/occlusion-budget.js +104 -0
  222. package/dist/_members/composition/projection/safe-zones.d.ts +38 -0
  223. package/dist/_members/composition/projection/safe-zones.js +99 -0
  224. package/dist/_members/composition/reframe/aspectLoss.d.ts +49 -0
  225. package/dist/_members/composition/reframe/aspectLoss.js +115 -0
  226. package/dist/_members/composition/reframe/coverage.d.ts +48 -0
  227. package/dist/_members/composition/reframe/coverage.js +62 -0
  228. package/dist/_members/composition/reframe/derive.d.ts +37 -0
  229. package/dist/_members/composition/reframe/derive.js +73 -0
  230. package/dist/_members/composition/reframe/index.d.ts +658 -0
  231. package/dist/_members/composition/reframe/index.js +109 -0
  232. package/dist/_members/composition/reframe/kenBurns.d.ts +43 -0
  233. package/dist/_members/composition/reframe/kenBurns.js +64 -0
  234. package/dist/_members/composition/reframe/shotScale.d.ts +118 -0
  235. package/dist/_members/composition/reframe/shotScale.js +176 -0
  236. package/dist/_members/composition/reframe/trajectory.d.ts +99 -0
  237. package/dist/_members/composition/reframe/trajectory.js +124 -0
  238. package/dist/_members/composition/timeline/compound.d.ts +36 -0
  239. package/dist/_members/composition/timeline/compound.js +134 -0
  240. package/dist/_members/composition/timeline/index.d.ts +9 -0
  241. package/dist/_members/composition/timeline/index.js +9 -0
  242. package/dist/_members/composition/timeline/intent.d.ts +54 -0
  243. package/dist/_members/composition/timeline/intent.js +228 -0
  244. package/dist/_members/composition/timeline/keyframes.d.ts +50 -0
  245. package/dist/_members/composition/timeline/keyframes.js +121 -0
  246. package/dist/_members/composition/timeline/link.d.ts +36 -0
  247. package/dist/_members/composition/timeline/link.js +59 -0
  248. package/dist/_members/composition/timeline/occupancy.d.ts +72 -0
  249. package/dist/_members/composition/timeline/occupancy.js +36 -0
  250. package/dist/_members/composition/timeline/placement.d.ts +86 -0
  251. package/dist/_members/composition/timeline/placement.js +74 -0
  252. package/dist/_members/composition/timeline/plan.d.ts +109 -0
  253. package/dist/_members/composition/timeline/plan.js +31 -0
  254. package/dist/_members/composition/timeline/resolve.d.ts +55 -0
  255. package/dist/_members/composition/timeline/resolve.js +170 -0
  256. package/dist/_members/composition/timeline/trims.d.ts +54 -0
  257. package/dist/_members/composition/timeline/trims.js +278 -0
  258. package/dist/_members/composition/types/index.d.ts +8 -0
  259. package/dist/_members/composition/types/index.js +1 -0
  260. package/dist/_members/composition/validators/brandKit.d.ts +1472 -0
  261. package/dist/_members/composition/validators/brandKit.js +295 -0
  262. package/dist/_members/composition/validators/composePlan.d.ts +960 -0
  263. package/dist/_members/composition/validators/composePlan.js +113 -0
  264. package/dist/_members/composition/validators/composition.d.ts +6881 -0
  265. package/dist/_members/composition/validators/composition.js +703 -0
  266. package/dist/_members/composition/validators/font.d.ts +114 -0
  267. package/dist/_members/composition/validators/font.js +34 -0
  268. package/dist/_members/composition/validators/graphicKinds.d.ts +32 -0
  269. package/dist/_members/composition/validators/graphicKinds.js +30 -0
  270. package/dist/_members/composition/validators/index.d.ts +9 -0
  271. package/dist/_members/composition/validators/index.js +9 -0
  272. package/dist/_members/composition/validators/project.d.ts +62 -0
  273. package/dist/_members/composition/validators/project.js +29 -0
  274. package/dist/_members/composition/validators/registry.d.ts +161 -0
  275. package/dist/_members/composition/validators/registry.js +41 -0
  276. package/dist/_members/composition/validators/render.d.ts +8274 -0
  277. package/dist/_members/composition/validators/render.js +139 -0
  278. package/dist/_members/composition/validators/session.d.ts +117 -0
  279. package/dist/_members/composition/validators/session.js +37 -0
  280. package/dist/_members/composition/validators/webhook.d.ts +83 -0
  281. package/dist/_members/composition/validators/webhook.js +72 -0
  282. package/dist/_members/composition-ops/alphaLayers.d.ts +70 -0
  283. package/dist/_members/composition-ops/alphaLayers.js +141 -0
  284. package/dist/_members/composition-ops/index.d.ts +4940 -0
  285. package/dist/_members/composition-ops/index.js +637 -0
  286. package/dist/_members/composition-ops/materializeGrid.d.ts +56 -0
  287. package/dist/_members/composition-ops/materializeGrid.js +99 -0
  288. package/dist/_members/composition-ops/opRecorder.d.ts +77 -0
  289. package/dist/_members/composition-ops/opRecorder.js +196 -0
  290. package/dist/_members/composition-ops/recordingStore.d.ts +23 -0
  291. package/dist/_members/composition-ops/recordingStore.js +14 -0
  292. package/dist/_members/composition-ops/replaceRegion.d.ts +65 -0
  293. package/dist/_members/composition-ops/replaceRegion.js +102 -0
  294. package/dist/_members/composition-ops/testFixtures.d.ts +19 -0
  295. package/dist/_members/composition-ops/testFixtures.js +19 -0
  296. package/dist/_members/core/index.d.ts +3 -0
  297. package/dist/_members/core/index.js +5 -0
  298. package/dist/_members/core/render/bookends.d.ts +62 -0
  299. package/dist/_members/core/render/bookends.js +53 -0
  300. package/dist/_members/core/render/captions.d.ts +65 -0
  301. package/dist/_members/core/render/captions.js +127 -0
  302. package/dist/_members/core/render/compositionRender.d.ts +190 -0
  303. package/dist/_members/core/render/compositionRender.js +1249 -0
  304. package/dist/_members/core/render/deriveTrajectory.d.ts +188 -0
  305. package/dist/_members/core/render/deriveTrajectory.js +889 -0
  306. package/dist/_members/core/render/emphasis.d.ts +13 -0
  307. package/dist/_members/core/render/emphasis.js +16 -0
  308. package/dist/_members/core/render/eval/cropBox.d.ts +88 -0
  309. package/dist/_members/core/render/eval/cropBox.js +139 -0
  310. package/dist/_members/core/render/eval/inclusion.d.ts +50 -0
  311. package/dist/_members/core/render/eval/inclusion.js +96 -0
  312. package/dist/_members/core/render/eval/index.d.ts +93 -0
  313. package/dist/_members/core/render/eval/index.js +146 -0
  314. package/dist/_members/core/render/eval/metrics.d.ts +50 -0
  315. package/dist/_members/core/render/eval/metrics.js +94 -0
  316. package/dist/_members/core/render/exportSettings.d.ts +40 -0
  317. package/dist/_members/core/render/exportSettings.js +65 -0
  318. package/dist/_members/core/render/index.d.ts +14 -0
  319. package/dist/_members/core/render/index.js +20 -0
  320. package/dist/_members/core/render/mapFaceToPerson.d.ts +39 -0
  321. package/dist/_members/core/render/mapFaceToPerson.js +73 -0
  322. package/dist/_members/core/render/types.d.ts +304 -0
  323. package/dist/_members/core/render/types.js +8 -0
  324. package/dist/_members/core/render/vcam/cameraPath.d.ts +51 -0
  325. package/dist/_members/core/render/vcam/cameraPath.js +248 -0
  326. package/dist/_members/core/render/vcam/constants.d.ts +113 -0
  327. package/dist/_members/core/render/vcam/constants.js +115 -0
  328. package/dist/_members/core/render/vcam/errorCodes.d.ts +30 -0
  329. package/dist/_members/core/render/vcam/errorCodes.js +39 -0
  330. package/dist/_members/core/render/vcam/framing.d.ts +90 -0
  331. package/dist/_members/core/render/vcam/framing.js +136 -0
  332. package/dist/_members/core/render/vcam/requiredRegion.d.ts +85 -0
  333. package/dist/_members/core/render/vcam/requiredRegion.js +137 -0
  334. package/dist/_members/core/render/vcam/shots.d.ts +45 -0
  335. package/dist/_members/core/render/vcam/shots.js +53 -0
  336. package/dist/_members/core/render/vcam/subjectSet.d.ts +106 -0
  337. package/dist/_members/core/render/vcam/subjectSet.js +388 -0
  338. package/dist/_members/core/select/errorCodes.d.ts +27 -0
  339. package/dist/_members/core/select/errorCodes.js +38 -0
  340. package/dist/_members/core/select/index.d.ts +27 -0
  341. package/dist/_members/core/select/index.js +26 -0
  342. package/dist/_members/core/select/model.d.ts +178 -0
  343. package/dist/_members/core/select/model.js +18 -0
  344. package/dist/_members/core/select/select.d.ts +63 -0
  345. package/dist/_members/core/select/select.js +244 -0
  346. package/dist/_members/core/select/stabilize.d.ts +145 -0
  347. package/dist/_members/core/select/stabilize.js +242 -0
  348. package/dist/_members/core/types.d.ts +84 -0
  349. package/dist/_members/core/types.js +7 -0
  350. package/dist/_members/errors/index.d.ts +1 -0
  351. package/dist/_members/errors/index.js +1 -0
  352. package/dist/_members/errors/registry.d.ts +708 -0
  353. package/dist/_members/errors/registry.js +560 -0
  354. package/dist/_members/foundation/codes/index.d.ts +31 -0
  355. package/dist/_members/foundation/codes/index.js +31 -0
  356. package/dist/_members/foundation/index.d.ts +2 -0
  357. package/dist/_members/foundation/index.js +2 -0
  358. package/dist/_members/foundation/primitives/index.d.ts +9 -0
  359. package/dist/_members/foundation/primitives/index.js +5 -0
  360. package/dist/_members/mcp/adapter.d.ts +138 -0
  361. package/dist/_members/mcp/adapter.js +771 -0
  362. package/dist/_members/mcp/burnedNames.d.ts +23 -0
  363. package/dist/_members/mcp/burnedNames.js +73 -0
  364. package/dist/_members/mcp/core.d.ts +158 -0
  365. package/dist/_members/mcp/core.js +390 -0
  366. package/dist/_members/mcp/curation.d.ts +155 -0
  367. package/dist/_members/mcp/curation.js +792 -0
  368. package/dist/_members/mcp/executor.d.ts +60 -0
  369. package/dist/_members/mcp/executor.js +142 -0
  370. package/dist/_members/mcp/format.d.ts +7 -0
  371. package/dist/_members/mcp/format.js +9 -0
  372. package/dist/_members/mcp/generated/catalogPreviews.d.ts +2 -0
  373. package/dist/_members/mcp/generated/catalogPreviews.js +95 -0
  374. package/dist/_members/mcp/generated/harness.d.ts +1 -0
  375. package/dist/_members/mcp/generated/harness.js +81 -0
  376. package/dist/_members/mcp/generated/operations.d.ts +41 -0
  377. package/dist/_members/mcp/generated/operations.js +131 -0
  378. package/dist/_members/mcp/index.d.ts +3 -0
  379. package/dist/_members/mcp/index.js +50 -0
  380. package/dist/_members/mcp/internalLoopTools.d.ts +25 -0
  381. package/dist/_members/mcp/internalLoopTools.js +109 -0
  382. package/dist/_members/mcp/prompts.d.ts +22 -0
  383. package/dist/_members/mcp/prompts.js +45 -0
  384. package/dist/_members/mcp/resources.d.ts +16 -0
  385. package/dist/_members/mcp/resources.js +166 -0
  386. package/dist/_members/mcp/server.d.ts +92 -0
  387. package/dist/_members/mcp/server.js +340 -0
  388. package/dist/_members/mcp/wait.d.ts +37 -0
  389. package/dist/_members/mcp/wait.js +378 -0
  390. package/dist/_members/mcp/x402Meta.d.ts +50 -0
  391. package/dist/_members/mcp/x402Meta.js +66 -0
  392. package/dist/_members/media-model/api.d.ts +877 -0
  393. package/dist/_members/media-model/api.js +175 -0
  394. package/dist/_members/media-model/index.d.ts +1 -0
  395. package/dist/_members/media-model/index.js +1 -0
  396. package/dist/_members/media-model/media-kind.d.ts +36 -0
  397. package/dist/_members/media-model/media-kind.js +116 -0
  398. package/dist/_members/media-model/testing/index.d.ts +2 -0
  399. package/dist/_members/media-model/testing/index.js +1 -0
  400. package/dist/_members/media-model/testing/mediaStoreContract.d.ts +17 -0
  401. package/dist/_members/media-model/testing/mediaStoreContract.js +82 -0
  402. package/dist/_members/media-model/transcriptSearch.d.ts +54 -0
  403. package/dist/_members/media-model/transcriptSearch.js +70 -0
  404. package/dist/_members/media-model/transcriptSearchCases.json +79 -0
  405. package/dist/_members/nle-export/compact-timeline.d.ts +2 -0
  406. package/dist/_members/nle-export/compact-timeline.js +73 -0
  407. package/dist/_members/nle-export/compact-timeline.js.map +1 -0
  408. package/dist/_members/nle-export/composition-to-input.d.ts +2 -0
  409. package/dist/_members/nle-export/composition-to-input.js +147 -0
  410. package/dist/_members/nle-export/composition-to-input.js.map +1 -0
  411. package/dist/_members/nle-export/fcpxml.d.ts +15 -0
  412. package/dist/_members/nle-export/fcpxml.js +159 -0
  413. package/dist/_members/nle-export/fcpxml.js.map +1 -0
  414. package/dist/_members/nle-export/index.d.ts +11 -0
  415. package/dist/_members/nle-export/index.js +12 -0
  416. package/dist/_members/nle-export/index.js.map +1 -0
  417. package/dist/_members/nle-export/premiere.d.ts +2 -0
  418. package/dist/_members/nle-export/premiere.js +161 -0
  419. package/dist/_members/nle-export/premiere.js.map +1 -0
  420. package/dist/_members/nle-export/server/index.d.ts +1 -0
  421. package/dist/_members/nle-export/server/index.js +2 -0
  422. package/dist/_members/nle-export/server/index.js.map +1 -0
  423. package/dist/_members/nle-export/server/pack-zip.d.ts +6 -0
  424. package/dist/_members/nle-export/server/pack-zip.js +38 -0
  425. package/dist/_members/nle-export/server/pack-zip.js.map +1 -0
  426. package/dist/_members/nle-export/srt.d.ts +2 -0
  427. package/dist/_members/nle-export/srt.js +50 -0
  428. package/dist/_members/nle-export/srt.js.map +1 -0
  429. package/dist/_members/nle-export/types.d.ts +183 -0
  430. package/dist/_members/nle-export/types.js +9 -0
  431. package/dist/_members/nle-export/types.js.map +1 -0
  432. package/dist/_members/nle-export/xml/index.d.ts +10 -0
  433. package/dist/_members/nle-export/xml/index.js +11 -0
  434. package/dist/_members/nle-export/xml/index.js.map +1 -0
  435. package/dist/_members/nle-export/xml-utils.d.ts +21 -0
  436. package/dist/_members/nle-export/xml-utils.js +48 -0
  437. package/dist/_members/nle-export/xml-utils.js.map +1 -0
  438. package/dist/_members/perception/activeSpeaker.d.ts +108 -0
  439. package/dist/_members/perception/activeSpeaker.js +103 -0
  440. package/dist/_members/perception/audioQuality.d.ts +78 -0
  441. package/dist/_members/perception/audioQuality.js +76 -0
  442. package/dist/_members/perception/energyBeat.d.ts +95 -0
  443. package/dist/_members/perception/energyBeat.js +99 -0
  444. package/dist/_members/perception/identityMatch.d.ts +80 -0
  445. package/dist/_members/perception/identityMatch.js +91 -0
  446. package/dist/_members/perception/index.d.ts +90 -0
  447. package/dist/_members/perception/index.js +48 -0
  448. package/dist/_members/perception/visualQuality.d.ts +86 -0
  449. package/dist/_members/perception/visualQuality.js +95 -0
  450. package/dist/_members/plane/conformance.d.ts +75 -0
  451. package/dist/_members/plane/conformance.js +90 -0
  452. package/dist/_members/plane/contract.d.ts +55 -0
  453. package/dist/_members/plane/contract.js +49 -0
  454. package/dist/_members/plane/index.d.ts +16 -0
  455. package/dist/_members/plane/index.js +16 -0
  456. package/dist/_members/primitives/backgrounds/animated-bar-chart/config.d.ts +42 -0
  457. package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +28 -0
  458. package/dist/_members/primitives/backgrounds/animated-line-chart/config.d.ts +42 -0
  459. package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +29 -0
  460. package/dist/_members/primitives/backgrounds/dither-gradient-bg/config.d.ts +30 -0
  461. package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +25 -0
  462. package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +24 -0
  463. package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +17 -0
  464. package/dist/_members/primitives/backgrounds/ecosystem-constellation/config.d.ts +21 -0
  465. package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +16 -0
  466. package/dist/_members/primitives/backgrounds/index.d.ts +13 -0
  467. package/dist/_members/primitives/backgrounds/index.js +32 -0
  468. package/dist/_members/primitives/backgrounds/index.js.map +1 -0
  469. package/dist/_members/primitives/backgrounds/infinite-marquee/config.d.ts +36 -0
  470. package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +21 -0
  471. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/config.d.ts +21 -0
  472. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +16 -0
  473. package/dist/_members/primitives/backgrounds/perspective-marquee/config.d.ts +42 -0
  474. package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +23 -0
  475. package/dist/_members/primitives/backgrounds/silk-flow-bg/config.d.ts +36 -0
  476. package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +30 -0
  477. package/dist/_members/primitives/backgrounds/vector-field/config.d.ts +30 -0
  478. package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +25 -0
  479. package/dist/_members/primitives/backgrounds/volumetric-rays/config.d.ts +33 -0
  480. package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +30 -0
  481. package/dist/_members/primitives/captions/Captions.d.ts +33 -0
  482. package/dist/_members/primitives/captions/index.d.ts +17 -0
  483. package/dist/_members/primitives/captions/index.js +398 -0
  484. package/dist/_members/primitives/captions/index.js.map +1 -0
  485. package/dist/_members/primitives/captions/paginate.d.ts +31 -0
  486. package/dist/_members/primitives/captions/placement.d.ts +35 -0
  487. package/dist/_members/primitives/chunk-2LVE4UIT.js +139 -0
  488. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +1 -0
  489. package/dist/_members/primitives/chunk-3IQUH6KK.js +20 -0
  490. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +1 -0
  491. package/dist/_members/primitives/chunk-3OMURV6Q.js +112 -0
  492. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +1 -0
  493. package/dist/_members/primitives/chunk-4IS6TMEG.js +21 -0
  494. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +1 -0
  495. package/dist/_members/primitives/chunk-5MWGAEGQ.js +1644 -0
  496. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +1 -0
  497. package/dist/_members/primitives/chunk-7RRPFPQK.js +15 -0
  498. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +1 -0
  499. package/dist/_members/primitives/chunk-DH5TRZK2.js +125 -0
  500. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +1 -0
  501. package/dist/_members/primitives/chunk-E3KNUSFG.js +2337 -0
  502. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +1 -0
  503. package/dist/_members/primitives/chunk-G2B3G4HK.js +47 -0
  504. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +1 -0
  505. package/dist/_members/primitives/chunk-HFPFGZXT.js +1494 -0
  506. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +1 -0
  507. package/dist/_members/primitives/chunk-HIWVFZVH.js +19 -0
  508. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +1 -0
  509. package/dist/_members/primitives/chunk-IDAL6G3Y.js +134 -0
  510. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +1 -0
  511. package/dist/_members/primitives/chunk-KNC6JP5F.js +34 -0
  512. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +1 -0
  513. package/dist/_members/primitives/chunk-KYRDVZST.js +459 -0
  514. package/dist/_members/primitives/chunk-KYRDVZST.js.map +1 -0
  515. package/dist/_members/primitives/chunk-LWLHS2NS.js +3410 -0
  516. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +1 -0
  517. package/dist/_members/primitives/chunk-QAQ3P7DR.js +8855 -0
  518. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +1 -0
  519. package/dist/_members/primitives/chunk-ROV2ODWC.js +81 -0
  520. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +1 -0
  521. package/dist/_members/primitives/chunk-TCRC2FH3.js +183 -0
  522. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +1 -0
  523. package/dist/_members/primitives/chunk-US4YEDAA.js +96 -0
  524. package/dist/_members/primitives/chunk-US4YEDAA.js.map +1 -0
  525. package/dist/_members/primitives/chunk-UVKRO5ER.js +13 -0
  526. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +1 -0
  527. package/dist/_members/primitives/chunk-W4EIIF2I.js +10 -0
  528. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +1 -0
  529. package/dist/_members/primitives/chunk-WPGKIPCO.js +3563 -0
  530. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +1 -0
  531. package/dist/_members/primitives/chunk-WZFLEGMD.js +1435 -0
  532. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +1 -0
  533. package/dist/_members/primitives/chunk-XHU3WBEI.js +33 -0
  534. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +1 -0
  535. package/dist/_members/primitives/chunk-YN7WTZZ7.js +46 -0
  536. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +1 -0
  537. package/dist/_members/primitives/effects/blur/config.d.ts +24 -0
  538. package/dist/_members/primitives/effects/blur/index.d.ts +29 -0
  539. package/dist/_members/primitives/effects/color-grade/config.d.ts +30 -0
  540. package/dist/_members/primitives/effects/color-grade/index.d.ts +35 -0
  541. package/dist/_members/primitives/effects/grain/config.d.ts +21 -0
  542. package/dist/_members/primitives/effects/grain/index.d.ts +21 -0
  543. package/dist/_members/primitives/effects/index.d.ts +12 -0
  544. package/dist/_members/primitives/effects/index.js +30 -0
  545. package/dist/_members/primitives/effects/index.js.map +1 -0
  546. package/dist/_members/primitives/effects/parallax/config.d.ts +21 -0
  547. package/dist/_members/primitives/effects/parallax/index.d.ts +25 -0
  548. package/dist/_members/primitives/effects/particles/config.d.ts +33 -0
  549. package/dist/_members/primitives/effects/particles/index.d.ts +31 -0
  550. package/dist/_members/primitives/effects/pulsing-indicator/config.d.ts +24 -0
  551. package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +19 -0
  552. package/dist/_members/primitives/effects/spotlight-card/config.d.ts +42 -0
  553. package/dist/_members/primitives/effects/spotlight-card/index.d.ts +25 -0
  554. package/dist/_members/primitives/effects/spring-pop-in/config.d.ts +27 -0
  555. package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +22 -0
  556. package/dist/_members/primitives/effects/success-confetti/config.d.ts +42 -0
  557. package/dist/_members/primitives/effects/success-confetti/index.d.ts +23 -0
  558. package/dist/_members/primitives/effects/vignette/config.d.ts +21 -0
  559. package/dist/_members/primitives/effects/vignette/index.d.ts +23 -0
  560. package/dist/_members/primitives/hero-text/HeroText.d.ts +29 -0
  561. package/dist/_members/primitives/hero-text/config.d.ts +46 -0
  562. package/dist/_members/primitives/hero-text/index.d.ts +18 -0
  563. package/dist/_members/primitives/hero-text/index.js +14 -0
  564. package/dist/_members/primitives/hero-text/index.js.map +1 -0
  565. package/dist/_members/primitives/index.d.ts +21 -0
  566. package/dist/_members/primitives/index.js +64 -0
  567. package/dist/_members/primitives/index.js.map +1 -0
  568. package/dist/_members/primitives/layouts/chat-to-preview-layout/config.d.ts +21 -0
  569. package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +19 -0
  570. package/dist/_members/primitives/layouts/index.d.ts +9 -0
  571. package/dist/_members/primitives/layouts/index.js +24 -0
  572. package/dist/_members/primitives/layouts/index.js.map +1 -0
  573. package/dist/_members/primitives/layouts/infinite-bento-pan/config.d.ts +18 -0
  574. package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +15 -0
  575. package/dist/_members/primitives/layouts/letterbox/config.d.ts +18 -0
  576. package/dist/_members/primitives/layouts/letterbox/index.d.ts +23 -0
  577. package/dist/_members/primitives/layouts/photo-grid/config.d.ts +21 -0
  578. package/dist/_members/primitives/layouts/photo-grid/index.d.ts +25 -0
  579. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +21 -0
  580. package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +32 -0
  581. package/dist/_members/primitives/layouts/split-screen/config.d.ts +15 -0
  582. package/dist/_members/primitives/layouts/split-screen/index.d.ts +22 -0
  583. package/dist/_members/primitives/layouts/staggered-bento-grid/config.d.ts +66 -0
  584. package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +24 -0
  585. package/dist/_members/primitives/lib/easings.d.ts +47 -0
  586. package/dist/_members/primitives/lib/easings.js +26 -0
  587. package/dist/_members/primitives/lib/easings.js.map +1 -0
  588. package/dist/_members/primitives/lib/index.d.ts +8 -0
  589. package/dist/_members/primitives/lib/index.js +74 -0
  590. package/dist/_members/primitives/lib/index.js.map +1 -0
  591. package/dist/_members/primitives/lib/palette.d.ts +55 -0
  592. package/dist/_members/primitives/lib/palette.js +72 -0
  593. package/dist/_members/primitives/lib/palette.js.map +1 -0
  594. package/dist/_members/primitives/lib/preview.d.ts +36 -0
  595. package/dist/_members/primitives/lib/preview.js +8 -0
  596. package/dist/_members/primitives/lib/preview.js.map +1 -0
  597. package/dist/_members/primitives/lib/schema.d.ts +53 -0
  598. package/dist/_members/primitives/lib/schema.js +12 -0
  599. package/dist/_members/primitives/lib/schema.js.map +1 -0
  600. package/dist/_members/primitives/lib/seeded-random.d.ts +33 -0
  601. package/dist/_members/primitives/lib/seeded-random.js +14 -0
  602. package/dist/_members/primitives/lib/seeded-random.js.map +1 -0
  603. package/dist/_members/primitives/lib/text/contrast.d.ts +27 -0
  604. package/dist/_members/primitives/lib/text/contrast.js +12 -0
  605. package/dist/_members/primitives/lib/text/contrast.js.map +1 -0
  606. package/dist/_members/primitives/lib/text/fill.d.ts +8 -0
  607. package/dist/_members/primitives/lib/text/fill.js +8 -0
  608. package/dist/_members/primitives/lib/text/fill.js.map +1 -0
  609. package/dist/_members/primitives/lib/text/fitText.d.ts +62 -0
  610. package/dist/_members/primitives/lib/text/fitText.js +10 -0
  611. package/dist/_members/primitives/lib/text/fitText.js.map +1 -0
  612. package/dist/_members/primitives/lib/text/marker.d.ts +15 -0
  613. package/dist/_members/primitives/lib/text/marker.js +8 -0
  614. package/dist/_members/primitives/lib/text/marker.js.map +1 -0
  615. package/dist/_members/primitives/lib/text/motion.d.ts +57 -0
  616. package/dist/_members/primitives/lib/text/motion.js +16 -0
  617. package/dist/_members/primitives/lib/text/motion.js.map +1 -0
  618. package/dist/_members/primitives/lib/text/recolor.d.ts +12 -0
  619. package/dist/_members/primitives/lib/text/recolor.js +8 -0
  620. package/dist/_members/primitives/lib/text/recolor.js.map +1 -0
  621. package/dist/_members/primitives/lib/text/spec.d.ts +82 -0
  622. package/dist/_members/primitives/lib/text/spec.js +1 -0
  623. package/dist/_members/primitives/lib/text/spec.js.map +1 -0
  624. package/dist/_members/primitives/lib/text/stage.d.ts +23 -0
  625. package/dist/_members/primitives/lib/text/stage.js +8 -0
  626. package/dist/_members/primitives/lib/text/stage.js.map +1 -0
  627. package/dist/_members/primitives/lib/text/typeface.d.ts +16 -0
  628. package/dist/_members/primitives/lib/text/typeface.js +8 -0
  629. package/dist/_members/primitives/lib/text/typeface.js.map +1 -0
  630. package/dist/_members/primitives/lib/tokens.d.ts +109 -0
  631. package/dist/_members/primitives/lib/tokens.js +24 -0
  632. package/dist/_members/primitives/lib/tokens.js.map +1 -0
  633. package/dist/_members/primitives/lib/types.d.ts +200 -0
  634. package/dist/_members/primitives/lib/types.js +1 -0
  635. package/dist/_members/primitives/lib/types.js.map +1 -0
  636. package/dist/_members/primitives/params-required.json +153 -0
  637. package/dist/_members/primitives/scenes/changelog-bite/config.d.ts +36 -0
  638. package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +28 -0
  639. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +24 -0
  640. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +16 -0
  641. package/dist/_members/primitives/scenes/index.d.ts +9 -0
  642. package/dist/_members/primitives/scenes/index.js +25 -0
  643. package/dist/_members/primitives/scenes/index.js.map +1 -0
  644. package/dist/_members/primitives/scenes/landing-code-showcase/config.d.ts +15 -0
  645. package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +15 -0
  646. package/dist/_members/primitives/scenes/landing-code-showcase/timeline.d.ts +15 -0
  647. package/dist/_members/primitives/scenes/live-code-compilation/config.d.ts +15 -0
  648. package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +14 -0
  649. package/dist/_members/primitives/scenes/pricing-tier-focus/config.d.ts +21 -0
  650. package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +15 -0
  651. package/dist/_members/primitives/scenes/product-launch-trailer/config.d.ts +33 -0
  652. package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +20 -0
  653. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/config.d.ts +21 -0
  654. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +15 -0
  655. package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +43 -0
  656. package/dist/_members/primitives/subject-foreground/index.d.ts +23 -0
  657. package/dist/_members/primitives/subject-foreground/index.js +30 -0
  658. package/dist/_members/primitives/subject-foreground/index.js.map +1 -0
  659. package/dist/_members/primitives/text/blur-reveal/config.d.ts +30 -0
  660. package/dist/_members/primitives/text/blur-reveal/index.d.ts +20 -0
  661. package/dist/_members/primitives/text/cinematic-title/config.d.ts +87 -0
  662. package/dist/_members/primitives/text/cinematic-title/index.d.ts +31 -0
  663. package/dist/_members/primitives/text/index.d.ts +23 -0
  664. package/dist/_members/primitives/text/index.js +57 -0
  665. package/dist/_members/primitives/text/index.js.map +1 -0
  666. package/dist/_members/primitives/text/inline-highlight/config.d.ts +36 -0
  667. package/dist/_members/primitives/text/inline-highlight/index.d.ts +24 -0
  668. package/dist/_members/primitives/text/karaoke/config.d.ts +108 -0
  669. package/dist/_members/primitives/text/karaoke/index.d.ts +32 -0
  670. package/dist/_members/primitives/text/kinetic-type/config.d.ts +60 -0
  671. package/dist/_members/primitives/text/kinetic-type/index.d.ts +29 -0
  672. package/dist/_members/primitives/text/lower-third/config.d.ts +84 -0
  673. package/dist/_members/primitives/text/lower-third/index.d.ts +30 -0
  674. package/dist/_members/primitives/text/marker-highlight/config.d.ts +39 -0
  675. package/dist/_members/primitives/text/marker-highlight/index.d.ts +24 -0
  676. package/dist/_members/primitives/text/masked-slide-reveal/config.d.ts +30 -0
  677. package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +19 -0
  678. package/dist/_members/primitives/text/matrix-decode/config.d.ts +33 -0
  679. package/dist/_members/primitives/text/matrix-decode/index.d.ts +21 -0
  680. package/dist/_members/primitives/text/quote-card/config.d.ts +21 -0
  681. package/dist/_members/primitives/text/quote-card/index.d.ts +23 -0
  682. package/dist/_members/primitives/text/rgb-glitch-text/config.d.ts +39 -0
  683. package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +27 -0
  684. package/dist/_members/primitives/text/shimmer-sweep/config.d.ts +30 -0
  685. package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +21 -0
  686. package/dist/_members/primitives/text/slot-machine-roll/config.d.ts +30 -0
  687. package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +19 -0
  688. package/dist/_members/primitives/text/staggered-fade-up/config.d.ts +39 -0
  689. package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +26 -0
  690. package/dist/_members/primitives/text/stat-counter/config.d.ts +33 -0
  691. package/dist/_members/primitives/text/stat-counter/index.d.ts +31 -0
  692. package/dist/_members/primitives/text/strikethrough-replace/config.d.ts +33 -0
  693. package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +21 -0
  694. package/dist/_members/primitives/text/text-effect/config.d.ts +24 -0
  695. package/dist/_members/primitives/text/text-effect/index.d.ts +29 -0
  696. package/dist/_members/primitives/text/text-fade-replace/config.d.ts +30 -0
  697. package/dist/_members/primitives/text/text-fade-replace/index.d.ts +19 -0
  698. package/dist/_members/primitives/text/token-stream/config.d.ts +21 -0
  699. package/dist/_members/primitives/text/token-stream/index.d.ts +25 -0
  700. package/dist/_members/primitives/text/tracking-in/config.d.ts +33 -0
  701. package/dist/_members/primitives/text/tracking-in/index.d.ts +21 -0
  702. package/dist/_members/primitives/text/typewriter/config.d.ts +36 -0
  703. package/dist/_members/primitives/text/typewriter/index.d.ts +26 -0
  704. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/config.d.ts +15 -0
  705. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +19 -0
  706. package/dist/_members/primitives/transitions/code-diff-wipe/config.d.ts +36 -0
  707. package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +21 -0
  708. package/dist/_members/primitives/transitions/directional-wipe/config.d.ts +12 -0
  709. package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +17 -0
  710. package/dist/_members/primitives/transitions/frosted-glass-wipe/config.d.ts +12 -0
  711. package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +17 -0
  712. package/dist/_members/primitives/transitions/glitch-cut/config.d.ts +15 -0
  713. package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +11 -0
  714. package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +21 -0
  715. package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +24 -0
  716. package/dist/_members/primitives/transitions/index.d.ts +17 -0
  717. package/dist/_members/primitives/transitions/index.js +67 -0
  718. package/dist/_members/primitives/transitions/index.js.map +1 -0
  719. package/dist/_members/primitives/transitions/ink-wipe/config.d.ts +15 -0
  720. package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +13 -0
  721. package/dist/_members/primitives/transitions/kinetic-type-mask/config.d.ts +15 -0
  722. package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +20 -0
  723. package/dist/_members/primitives/transitions/light-leak/config.d.ts +15 -0
  724. package/dist/_members/primitives/transitions/light-leak/index.d.ts +11 -0
  725. package/dist/_members/primitives/transitions/luma-matte/config.d.ts +12 -0
  726. package/dist/_members/primitives/transitions/luma-matte/index.d.ts +11 -0
  727. package/dist/_members/primitives/transitions/morph/config.d.ts +12 -0
  728. package/dist/_members/primitives/transitions/morph/index.d.ts +11 -0
  729. package/dist/_members/primitives/transitions/spatial-push/config.d.ts +12 -0
  730. package/dist/_members/primitives/transitions/spatial-push/index.d.ts +17 -0
  731. package/dist/_members/primitives/transitions/swipe-transition-wipe/config.d.ts +18 -0
  732. package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +22 -0
  733. package/dist/_members/primitives/transitions/zoom-through/config.d.ts +39 -0
  734. package/dist/_members/primitives/transitions/zoom-through/index.d.ts +12 -0
  735. package/dist/_members/primitives/transitions/zoom-through-transition/config.d.ts +24 -0
  736. package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +20 -0
  737. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/config.d.ts +48 -0
  738. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +25 -0
  739. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/config.d.ts +21 -0
  740. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +16 -0
  741. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +27 -0
  742. package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +21 -0
  743. package/dist/_members/primitives/ui-blocks/before-after-slider/config.d.ts +21 -0
  744. package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +20 -0
  745. package/dist/_members/primitives/ui-blocks/benchmark-bars/config.d.ts +86 -0
  746. package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +25 -0
  747. package/dist/_members/primitives/ui-blocks/bounding-box-selector/config.d.ts +27 -0
  748. package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +20 -0
  749. package/dist/_members/primitives/ui-blocks/browser-flow/config.d.ts +15 -0
  750. package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +15 -0
  751. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/config.d.ts +36 -0
  752. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +32 -0
  753. package/dist/_members/primitives/ui-blocks/chat-exchange/config.d.ts +27 -0
  754. package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +20 -0
  755. package/dist/_members/primitives/ui-blocks/code-accordion/config.d.ts +42 -0
  756. package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +23 -0
  757. package/dist/_members/primitives/ui-blocks/context-meter/config.d.ts +24 -0
  758. package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +20 -0
  759. package/dist/_members/primitives/ui-blocks/cursor-flow/config.d.ts +84 -0
  760. package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +29 -0
  761. package/dist/_members/primitives/ui-blocks/dashboard-populate/config.d.ts +18 -0
  762. package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +15 -0
  763. package/dist/_members/primitives/ui-blocks/data-flow-pipes/config.d.ts +120 -0
  764. package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +34 -0
  765. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +24 -0
  766. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +19 -0
  767. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/config.d.ts +24 -0
  768. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +17 -0
  769. package/dist/_members/primitives/ui-blocks/eval-scorecard/config.d.ts +48 -0
  770. package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +23 -0
  771. package/dist/_members/primitives/ui-blocks/glass-code-block/config.d.ts +39 -0
  772. package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +22 -0
  773. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/config.d.ts +141 -0
  774. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +32 -0
  775. package/dist/_members/primitives/ui-blocks/index.d.ts +33 -0
  776. package/dist/_members/primitives/ui-blocks/index.js +76 -0
  777. package/dist/_members/primitives/ui-blocks/index.js.map +1 -0
  778. package/dist/_members/primitives/ui-blocks/metric-gauge/config.d.ts +46 -0
  779. package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +23 -0
  780. package/dist/_members/primitives/ui-blocks/morphing-modal/config.d.ts +141 -0
  781. package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +35 -0
  782. package/dist/_members/primitives/ui-blocks/pipeline-journey/config.d.ts +18 -0
  783. package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +15 -0
  784. package/dist/_members/primitives/ui-blocks/progress-steps/config.d.ts +51 -0
  785. package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +22 -0
  786. package/dist/_members/primitives/ui-blocks/reasoning-trace/config.d.ts +21 -0
  787. package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +18 -0
  788. package/dist/_members/primitives/ui-blocks/simulated-cursor/config.d.ts +69 -0
  789. package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +23 -0
  790. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +63 -0
  791. package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +39 -0
  792. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +33 -0
  793. package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +21 -0
  794. package/dist/_members/primitives/ui-blocks/tool-call-stack/config.d.ts +54 -0
  795. package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +20 -0
  796. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/config.d.ts +33 -0
  797. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +20 -0
  798. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/config.d.ts +90 -0
  799. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +27 -0
  800. package/dist/_members/primitives/ui-blocks/voice-waveform/config.d.ts +24 -0
  801. package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +20 -0
  802. package/dist/_members/primitives/version-map.json +105 -0
  803. package/dist/_members/primitives/workspace.d.ts +51 -0
  804. package/dist/_members/primitives/workspace.js +60 -0
  805. package/dist/_members/primitives/workspace.js.map +1 -0
  806. package/dist/_members/render-harness/cardRender.d.ts +64 -0
  807. package/dist/_members/render-harness/cardRender.d.ts.map +1 -0
  808. package/dist/_members/render-harness/contractRender.d.ts +43 -0
  809. package/dist/_members/render-harness/contractRender.d.ts.map +1 -0
  810. package/dist/_members/render-harness/extractSegments.d.ts +53 -0
  811. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -0
  812. package/dist/_members/render-harness/index.d.ts +30 -0
  813. package/dist/_members/render-harness/index.d.ts.map +1 -0
  814. package/dist/_members/render-harness/localRender.d.ts +167 -0
  815. package/dist/_members/render-harness/localRender.d.ts.map +1 -0
  816. package/dist/_members/render-harness/materializeSources.d.ts +29 -0
  817. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -0
  818. package/dist/_members/render-harness/mediaServer.d.ts +22 -0
  819. package/dist/_members/render-harness/mediaServer.d.ts.map +1 -0
  820. package/dist/_members/render-harness/renderInputAssets.d.ts +63 -0
  821. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -0
  822. package/dist/_members/render-harness/resolveAssets.d.ts +33 -0
  823. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -0
  824. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +23 -0
  825. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -0
  826. package/dist/account-model/testing.d.ts +1 -0
  827. package/dist/account-model/testing.js +145 -0
  828. package/dist/account-model/types.d.ts +1 -0
  829. package/dist/account-model/types.js +0 -0
  830. package/dist/account-model/validators.d.ts +1 -0
  831. package/dist/account-model/validators.js +26 -0
  832. package/dist/account-model.d.ts +1 -0
  833. package/dist/account-model.js +26 -0
  834. package/dist/animate.d.ts +1 -0
  835. package/dist/animate.js +79412 -0
  836. package/dist/authoring/build-tools.d.ts +1 -0
  837. package/dist/authoring/build-tools.js +29 -0
  838. package/dist/authoring/capabilities.d.ts +1 -0
  839. package/dist/authoring/capabilities.js +11 -0
  840. package/dist/authoring/composer.d.ts +1 -0
  841. package/dist/authoring/composer.js +53 -0
  842. package/dist/authoring/context.d.ts +1 -0
  843. package/dist/authoring/context.js +14 -0
  844. package/dist/authoring/models.d.ts +1 -0
  845. package/dist/authoring/models.js +14 -0
  846. package/dist/authoring/pipelineTrace.d.ts +1 -0
  847. package/dist/authoring/pipelineTrace.js +7 -0
  848. package/dist/authoring/prompts.d.ts +1 -0
  849. package/dist/authoring/prompts.js +29 -0
  850. package/dist/authoring/providers.d.ts +1 -0
  851. package/dist/authoring/providers.js +99 -0
  852. package/dist/authoring/resource-routing.d.ts +1 -0
  853. package/dist/authoring/resource-routing.js +206 -0
  854. package/dist/authoring/resources.d.ts +1 -0
  855. package/dist/authoring/resources.js +35 -0
  856. package/dist/authoring/tools.d.ts +1 -0
  857. package/dist/authoring/tools.js +29 -0
  858. package/dist/authoring/transpileComponent.d.ts +1 -0
  859. package/dist/authoring/transpileComponent.js +2248 -0
  860. package/dist/authoring/transpileHelper.d.ts +1 -0
  861. package/dist/authoring/transpileHelper.js +9 -0
  862. package/dist/authoring/types.d.ts +1 -0
  863. package/dist/authoring/types.js +0 -0
  864. package/dist/authoring.d.ts +1 -0
  865. package/dist/authoring.js +1295 -0
  866. package/dist/brand-derivation/constants.d.ts +1 -0
  867. package/dist/brand-derivation/constants.js +11 -0
  868. package/dist/brand-derivation.d.ts +1 -0
  869. package/dist/brand-derivation.js +23 -0
  870. package/dist/chunk-2ESYSVXG.js +48 -0
  871. package/dist/chunk-37NJ27UU.js +501 -0
  872. package/dist/chunk-52AHXNKM.js +435 -0
  873. package/dist/chunk-5I7VDCAC.js +15647 -0
  874. package/dist/chunk-6CMVBTTP.js +1933 -0
  875. package/dist/chunk-6EQXLEP6.js +194 -0
  876. package/dist/chunk-6QJ3V3VS.js +1444 -0
  877. package/dist/chunk-7DHP4ESU.js +138 -0
  878. package/dist/chunk-7GISRVON.js +14176 -0
  879. package/dist/chunk-7PA7FGLD.js +609 -0
  880. package/dist/chunk-ATAF24QG.js +735 -0
  881. package/dist/chunk-AWT3P5ZN.js +1609 -0
  882. package/dist/chunk-B4VMU2IJ.js +211 -0
  883. package/dist/chunk-BDMTUEEZ.js +19 -0
  884. package/dist/chunk-BRKJKB33.js +683 -0
  885. package/dist/chunk-CX2IIQ4R.js +111 -0
  886. package/dist/chunk-D2EG7J7X.js +31 -0
  887. package/dist/chunk-DENF4TPI.js +249 -0
  888. package/dist/chunk-DIBOJJMU.js +16838 -0
  889. package/dist/chunk-DLF4WVSE.js +9 -0
  890. package/dist/chunk-DSNG6WLU.js +82 -0
  891. package/dist/chunk-EA6MYCYW.js +135 -0
  892. package/dist/chunk-EAUSEGB7.js +420 -0
  893. package/dist/chunk-ELLSET2N.js +195 -0
  894. package/dist/chunk-EMGFZ3PR.js +14 -0
  895. package/dist/chunk-FUWJOVVK.js +3633 -0
  896. package/dist/chunk-G3PBH53P.js +85 -0
  897. package/dist/chunk-G75E7YA4.js +11883 -0
  898. package/dist/chunk-GBRNYH7W.js +72 -0
  899. package/dist/chunk-GH27OS5S.js +104 -0
  900. package/dist/chunk-GULDS3VE.js +41 -0
  901. package/dist/chunk-H5LMJKZU.js +0 -0
  902. package/dist/chunk-HI4UTTPS.js +954 -0
  903. package/dist/chunk-JCZQT7K3.js +3266 -0
  904. package/dist/chunk-JD77Y2WM.js +3423 -0
  905. package/dist/chunk-JF4JJAFP.js +10 -0
  906. package/dist/chunk-JMURQODM.js +438 -0
  907. package/dist/chunk-JOURGVOR.js +27 -0
  908. package/dist/chunk-JRQVPFLF.js +459 -0
  909. package/dist/chunk-KF5ETMKB.js +544 -0
  910. package/dist/chunk-KYRDKK2D.js +47 -0
  911. package/dist/chunk-LD5ZOUFT.js +55 -0
  912. package/dist/chunk-M3I5LMAB.js +426 -0
  913. package/dist/chunk-MC5DLSEV.js +202 -0
  914. package/dist/chunk-MCBUX5XV.js +70 -0
  915. package/dist/chunk-MFHXCHRI.js +33 -0
  916. package/dist/chunk-MMEJ3Y7E.js +327 -0
  917. package/dist/chunk-MVEE6HEC.js +8512 -0
  918. package/dist/chunk-N67PDTKQ.js +1419 -0
  919. package/dist/chunk-NDKERSXY.js +1296 -0
  920. package/dist/chunk-NV4I6GJV.js +1091 -0
  921. package/dist/chunk-OIRUO5P7.js +397 -0
  922. package/dist/chunk-P43IE4WB.js +181 -0
  923. package/dist/chunk-QGAWDLYX.js +92 -0
  924. package/dist/chunk-QH3YI3ND.js +100 -0
  925. package/dist/chunk-QLAQHR3L.js +254 -0
  926. package/dist/chunk-RHVLQNYF.js +20 -0
  927. package/dist/chunk-S3P5BFFL.js +2265 -0
  928. package/dist/chunk-SIGGQRY2.js +8483 -0
  929. package/dist/chunk-TULRCY6U.js +729 -0
  930. package/dist/chunk-TWQOKKAF.js +859 -0
  931. package/dist/chunk-U3JPILZS.js +15 -0
  932. package/dist/chunk-U4V4FZGE.js +20 -0
  933. package/dist/chunk-UEI3NLNK.js +127 -0
  934. package/dist/chunk-V43Y7IE4.js +3621 -0
  935. package/dist/chunk-VIVQHIGZ.js +4319 -0
  936. package/dist/chunk-W35ZMOXB.js +23 -0
  937. package/dist/chunk-WB2VFDQZ.js +58 -0
  938. package/dist/chunk-WREYUH2E.js +104 -0
  939. package/dist/chunk-WZTTZHNR.js +3339 -0
  940. package/dist/chunk-XELS2BGA.js +13 -0
  941. package/dist/chunk-XLIPPLG3.js +18 -0
  942. package/dist/chunk-YA3OR2KK.js +249 -0
  943. package/dist/chunk-ZE76SSRT.js +358 -0
  944. package/dist/chunk-ZFEXATWN.js +46 -0
  945. package/dist/chunk-ZSZABOE5.js +425 -0
  946. package/dist/compose/renderer.d.ts +1 -0
  947. package/dist/compose/renderer.js +173 -0
  948. package/dist/compose.d.ts +1 -0
  949. package/dist/compose.js +76 -0
  950. package/dist/composition/audio.d.ts +1 -0
  951. package/dist/composition/audio.js +63 -0
  952. package/dist/composition/autozoom.d.ts +1 -0
  953. package/dist/composition/autozoom.js +76 -0
  954. package/dist/composition/brand-kit.d.ts +1 -0
  955. package/dist/composition/brand-kit.js +34 -0
  956. package/dist/composition/brief.d.ts +1 -0
  957. package/dist/composition/brief.js +112 -0
  958. package/dist/composition/depth.d.ts +1 -0
  959. package/dist/composition/depth.js +12 -0
  960. package/dist/composition/fixtures.d.ts +1 -0
  961. package/dist/composition/fixtures.js +154 -0
  962. package/dist/composition/fonts.d.ts +1 -0
  963. package/dist/composition/fonts.js +74 -0
  964. package/dist/composition/graphics-plan.d.ts +1 -0
  965. package/dist/composition/graphics-plan.js +400 -0
  966. package/dist/composition/invariants.d.ts +1 -0
  967. package/dist/composition/invariants.js +49 -0
  968. package/dist/composition/ops.d.ts +1 -0
  969. package/dist/composition/ops.js +53 -0
  970. package/dist/composition/primitive-catalog.d.ts +1 -0
  971. package/dist/composition/primitive-catalog.js +60 -0
  972. package/dist/composition/projection.d.ts +1 -0
  973. package/dist/composition/projection.js +119 -0
  974. package/dist/composition/reframe/coverage.d.ts +1 -0
  975. package/dist/composition/reframe/coverage.js +20 -0
  976. package/dist/composition/reframe/kenBurns.d.ts +1 -0
  977. package/dist/composition/reframe/kenBurns.js +53 -0
  978. package/dist/composition/reframe/shotScale.d.ts +1 -0
  979. package/dist/composition/reframe/shotScale.js +25 -0
  980. package/dist/composition/reframe/trajectory.d.ts +1 -0
  981. package/dist/composition/reframe/trajectory.js +17 -0
  982. package/dist/composition/reframe.d.ts +1 -0
  983. package/dist/composition/reframe.js +39 -0
  984. package/dist/composition/timeline.d.ts +1 -0
  985. package/dist/composition/timeline.js +70 -0
  986. package/dist/composition/types.d.ts +1 -0
  987. package/dist/composition/types.js +0 -0
  988. package/dist/composition/validators/graphic-kinds.d.ts +1 -0
  989. package/dist/composition/validators/graphic-kinds.js +9 -0
  990. package/dist/composition/validators.d.ts +1 -0
  991. package/dist/composition/validators.js +180 -0
  992. package/dist/composition-ops.d.ts +1 -0
  993. package/dist/composition-ops.js +882 -0
  994. package/dist/composition.d.ts +1 -0
  995. package/dist/composition.js +433 -0
  996. package/dist/context-CEAKQ5T7.js +14 -0
  997. package/dist/core/render.d.ts +1 -0
  998. package/dist/core/render.js +105 -0
  999. package/dist/core/select.d.ts +1 -0
  1000. package/dist/core/select.js +42 -0
  1001. package/dist/core/types.d.ts +1 -0
  1002. package/dist/core/types.js +0 -0
  1003. package/dist/core.d.ts +1 -0
  1004. package/dist/core.js +38 -0
  1005. package/dist/dist-LAJ2363K.js +545 -0
  1006. package/dist/errors.d.ts +1 -0
  1007. package/dist/errors.js +17 -0
  1008. package/dist/foundation/codes.d.ts +1 -0
  1009. package/dist/foundation/codes.js +7 -0
  1010. package/dist/foundation/primitives.d.ts +1 -0
  1011. package/dist/foundation/primitives.js +13 -0
  1012. package/dist/foundation.d.ts +1 -0
  1013. package/dist/foundation.js +17 -0
  1014. package/dist/hls-HD4C5G6W.js +33000 -0
  1015. package/dist/magic-string.es-SDTMJBWP.js +1308 -0
  1016. package/dist/mcp/adapter.d.ts +1 -0
  1017. package/dist/mcp/adapter.js +670 -0
  1018. package/dist/mcp/core.d.ts +1 -0
  1019. package/dist/mcp/core.js +41 -0
  1020. package/dist/mcp/curation.d.ts +1 -0
  1021. package/dist/mcp/curation.js +23 -0
  1022. package/dist/mcp/executor.d.ts +1 -0
  1023. package/dist/mcp/executor.js +13 -0
  1024. package/dist/mcp/server.d.ts +1 -0
  1025. package/dist/mcp/server.js +27 -0
  1026. package/dist/mcp.d.ts +1 -0
  1027. package/dist/mcp.js +138 -0
  1028. package/dist/media-model/media-kind.d.ts +1 -0
  1029. package/dist/media-model/media-kind.js +108 -0
  1030. package/dist/media-model/testing.d.ts +1 -0
  1031. package/dist/media-model/testing.js +16029 -0
  1032. package/dist/media-model/transcriptSearch.d.ts +1 -0
  1033. package/dist/media-model/transcriptSearch.js +32 -0
  1034. package/dist/media-model.d.ts +1 -0
  1035. package/dist/media-model.js +154 -0
  1036. package/dist/nle-export/server.d.ts +1 -0
  1037. package/dist/nle-export/server.js +25658 -0
  1038. package/dist/nle-export/xml.d.ts +1 -0
  1039. package/dist/nle-export/xml.js +23102 -0
  1040. package/dist/nle-export.d.ts +1 -0
  1041. package/dist/nle-export.js +313 -0
  1042. package/dist/perception.d.ts +1 -0
  1043. package/dist/perception.js +145 -0
  1044. package/dist/plane/conformance.d.ts +1 -0
  1045. package/dist/plane/conformance.js +13 -0
  1046. package/dist/plane/contract.d.ts +1 -0
  1047. package/dist/plane/contract.js +31 -0
  1048. package/dist/plane.d.ts +1 -0
  1049. package/dist/plane.js +13 -0
  1050. package/dist/primitives/backgrounds.d.ts +1 -0
  1051. package/dist/primitives/backgrounds.js +32 -0
  1052. package/dist/primitives/captions.d.ts +1 -0
  1053. package/dist/primitives/captions.js +629 -0
  1054. package/dist/primitives/effects.d.ts +1 -0
  1055. package/dist/primitives/effects.js +30 -0
  1056. package/dist/primitives/hero-text.d.ts +1 -0
  1057. package/dist/primitives/hero-text.js +14 -0
  1058. package/dist/primitives/layouts.d.ts +1 -0
  1059. package/dist/primitives/layouts.js +24 -0
  1060. package/dist/primitives/lib/easings.d.ts +1 -0
  1061. package/dist/primitives/lib/easings.js +25 -0
  1062. package/dist/primitives/lib/index.d.ts +1 -0
  1063. package/dist/primitives/lib/index.js +78 -0
  1064. package/dist/primitives/lib/palette.d.ts +1 -0
  1065. package/dist/primitives/lib/palette.js +71 -0
  1066. package/dist/primitives/lib/preview.d.ts +1 -0
  1067. package/dist/primitives/lib/preview.js +8 -0
  1068. package/dist/primitives/lib/schema.d.ts +1 -0
  1069. package/dist/primitives/lib/schema.js +12 -0
  1070. package/dist/primitives/lib/seeded-random.d.ts +1 -0
  1071. package/dist/primitives/lib/seeded-random.js +13 -0
  1072. package/dist/primitives/lib/text/contrast.d.ts +1 -0
  1073. package/dist/primitives/lib/text/contrast.js +11 -0
  1074. package/dist/primitives/lib/text/fill.d.ts +1 -0
  1075. package/dist/primitives/lib/text/fill.js +7 -0
  1076. package/dist/primitives/lib/text/fitText.d.ts +1 -0
  1077. package/dist/primitives/lib/text/fitText.js +10 -0
  1078. package/dist/primitives/lib/text/marker.d.ts +1 -0
  1079. package/dist/primitives/lib/text/marker.js +7 -0
  1080. package/dist/primitives/lib/text/motion.d.ts +1 -0
  1081. package/dist/primitives/lib/text/motion.js +15 -0
  1082. package/dist/primitives/lib/text/recolor.d.ts +1 -0
  1083. package/dist/primitives/lib/text/recolor.js +7 -0
  1084. package/dist/primitives/lib/text/spec.d.ts +1 -0
  1085. package/dist/primitives/lib/text/spec.js +0 -0
  1086. package/dist/primitives/lib/text/stage.d.ts +1 -0
  1087. package/dist/primitives/lib/text/stage.js +7 -0
  1088. package/dist/primitives/lib/text/typeface.d.ts +1 -0
  1089. package/dist/primitives/lib/text/typeface.js +7 -0
  1090. package/dist/primitives/lib/tokens.d.ts +1 -0
  1091. package/dist/primitives/lib/tokens.js +24 -0
  1092. package/dist/primitives/lib/types.d.ts +1 -0
  1093. package/dist/primitives/lib/types.js +0 -0
  1094. package/dist/primitives/lib.d.ts +1 -0
  1095. package/dist/primitives/lib.js +78 -0
  1096. package/dist/primitives/params-required.json +153 -0
  1097. package/dist/primitives/scenes.d.ts +1 -0
  1098. package/dist/primitives/scenes.js +25 -0
  1099. package/dist/primitives/subject-foreground.d.ts +1 -0
  1100. package/dist/primitives/subject-foreground.js +28 -0
  1101. package/dist/primitives/text.d.ts +1 -0
  1102. package/dist/primitives/text.js +57 -0
  1103. package/dist/primitives/transitions.d.ts +1 -0
  1104. package/dist/primitives/transitions.js +66 -0
  1105. package/dist/primitives/ui-blocks.d.ts +1 -0
  1106. package/dist/primitives/ui-blocks.js +76 -0
  1107. package/dist/primitives/version-map.json +105 -0
  1108. package/dist/primitives/workspace.d.ts +1 -0
  1109. package/dist/primitives/workspace.js +25 -0
  1110. package/dist/primitives.d.ts +1 -0
  1111. package/dist/primitives.js +65 -0
  1112. package/dist/render-harness/sandboxGlobalSpecs.d.ts +1 -0
  1113. package/dist/render-harness/sandboxGlobalSpecs.js +13 -0
  1114. package/dist/render-harness.d.ts +1 -0
  1115. package/dist/render-harness.js +1019 -0
  1116. package/dist/token-RGFIT24D.js +69 -0
  1117. package/dist/token-util-GPLSGYVO.js +5 -0
  1118. package/dist/vision_bundle-5Y376MAR.js +4084 -0
  1119. package/package.json +493 -0
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import type { PrimitiveMeta } from '../../lib/types.js';
3
+ declare const paramsSchema: z.ZodObject<{
4
+ text: z.ZodDefault<z.ZodString>;
5
+ fontSize: z.ZodDefault<z.ZodNumber>;
6
+ fontWeight: z.ZodDefault<z.ZodNumber>;
7
+ rayColor: z.ZodDefault<z.ZodString>;
8
+ background: z.ZodDefault<z.ZodString>;
9
+ textColor: z.ZodDefault<z.ZodString>;
10
+ intensity: z.ZodDefault<z.ZodNumber>;
11
+ speed: z.ZodDefault<z.ZodNumber>;
12
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
13
+ text: z.ZodDefault<z.ZodString>;
14
+ fontSize: z.ZodDefault<z.ZodNumber>;
15
+ fontWeight: z.ZodDefault<z.ZodNumber>;
16
+ rayColor: z.ZodDefault<z.ZodString>;
17
+ background: z.ZodDefault<z.ZodString>;
18
+ textColor: z.ZodDefault<z.ZodString>;
19
+ intensity: z.ZodDefault<z.ZodNumber>;
20
+ speed: z.ZodDefault<z.ZodNumber>;
21
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
22
+ text: z.ZodDefault<z.ZodString>;
23
+ fontSize: z.ZodDefault<z.ZodNumber>;
24
+ fontWeight: z.ZodDefault<z.ZodNumber>;
25
+ rayColor: z.ZodDefault<z.ZodString>;
26
+ background: z.ZodDefault<z.ZodString>;
27
+ textColor: z.ZodDefault<z.ZodString>;
28
+ intensity: z.ZodDefault<z.ZodNumber>;
29
+ speed: z.ZodDefault<z.ZodNumber>;
30
+ }, z.ZodTypeAny, "passthrough">>;
31
+ type Params = z.infer<typeof paramsSchema>;
32
+ export declare const config: PrimitiveMeta<Params>;
33
+ export {};
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT
3
+ * Copyright (c) 2026 KapishDima
4
+ *
5
+ * Modifications:
6
+ * - hermetic-ize fontFamily (use inherit / monospace, not Geist CSS vars)
7
+ * - strip "use client" directive (re-added at shadcn-registry export time)
8
+ */
9
+ export interface VolumetricRaysProps {
10
+ text?: string;
11
+ fontSize?: number;
12
+ fontWeight?: number;
13
+ rayColor?: string;
14
+ background?: string;
15
+ textColor?: string;
16
+ intensity?: number;
17
+ speed?: number;
18
+ className?: string;
19
+ }
20
+ /**
21
+ * Layered "god rays" effect built entirely from CSS / SVG masks. The trick:
22
+ *
23
+ * 1. Render the same text twice. Back layer is scaled wider than tall and
24
+ * heavily blurred — that's the "halo" the rays bloom out of.
25
+ * 2. Sweep an SVG conic-gradient mask above the text to look like rotating
26
+ * light shafts pushing through the lettering.
27
+ * 3. The front layer is solid (silhouette) so the contrast reads as light
28
+ * pushing AROUND the letters rather than ON them.
29
+ */
30
+ export declare function VolumetricRays({ text, fontSize, fontWeight, rayColor, background, textColor, intensity, speed, className, }: VolumetricRaysProps): import("react").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import type { CaptionWord, CaptionStyle } from '../../core/render/index.js';
2
+ /**
3
+ * TikTok/Hormozi-style word-level captions layer.
4
+ *
5
+ * Drives `@remotion/captions`'s `createTikTokStyleCaptions` with a
6
+ * pre-timed word stream, paginates ~1.5s at a time, highlights the
7
+ * active token, and applies per-token emphasis (separate font/scale/
8
+ * color/weight) when `CaptionWord.emphasis` is set.
9
+ *
10
+ * Fonts are NOT loaded by this component — the caller (editor's
11
+ * `Root.tsx` or the worker render bundle's bootstrap) is responsible
12
+ * for ensuring `style.fontFamily` is loaded before the bundle renders.
13
+ */
14
+ export declare function Captions({ segments, style: userStyle, region, }: {
15
+ /**
16
+ * Authored caption SEGMENTS. Each segment is a hard caption-page boundary:
17
+ * pagination runs within a segment and never pools words across two, so
18
+ * sentence-bounded segments cut captions at sentence ends.
19
+ */
20
+ segments: CaptionWord[][];
21
+ style?: Partial<CaptionStyle>;
22
+ /**
23
+ * Floor-resolved caption band (output fractions). When set, the caption sits
24
+ * with its BOTTOM edge at `region.y + region.h` — i.e. clear of the platform's
25
+ * bottom-UI strip — instead of the fixed `style.position` offset. Horizontal
26
+ * stays centred (the short-form convention); only the vertical clearance is
27
+ * taken from the floor. See composition-model `resolveCaptionRegion`.
28
+ */
29
+ region?: {
30
+ y: number;
31
+ h: number;
32
+ };
33
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @cueframe/primitives/captions — TikTok/Hormozi-style word-level
3
+ * caption layer. Exposed as a top-level layer (sibling of overlays /
4
+ * effects), not an overlay primitive in the registry, because it spans
5
+ * the whole composition with consistent style rather than being placed
6
+ * per-clip.
7
+ *
8
+ * Consumed by:
9
+ * - cueframe editor's `MainComposition` (preview)
10
+ * - the worker render bundle (export)
11
+ *
12
+ * Wire shape: a Composition with `captions: { words, style? }` lights
13
+ * up this layer. Words are millisecond-timed and aligned to the
14
+ * composition's timeline (NOT source-relative).
15
+ */
16
+ export { Captions } from './Captions.js';
17
+ export type { CaptionWord, CaptionStyle, EmphasisWord } from '../../core/render/index.js';
@@ -0,0 +1,398 @@
1
+ import {
2
+ fillStyle
3
+ } from "../chunk-HIWVFZVH.js";
4
+ import {
5
+ Marker
6
+ } from "../chunk-XHU3WBEI.js";
7
+ import {
8
+ wordPop
9
+ } from "../chunk-G2B3G4HK.js";
10
+ import {
11
+ TEXT_HI,
12
+ VIOLET
13
+ } from "../chunk-3OMURV6Q.js";
14
+ import "../chunk-UVKRO5ER.js";
15
+
16
+ // src/captions/Captions.tsx
17
+ import { useMemo } from "react";
18
+ import { AbsoluteFill, useCurrentFrame, useVideoConfig, interpolate, Easing } from "remotion";
19
+ import { fillTextBox } from "@remotion/layout-utils";
20
+
21
+ // src/captions/paginate.ts
22
+ import { createTikTokStyleCaptions } from "@remotion/captions";
23
+ function paginateCaptionSegments(segments, opts) {
24
+ const raw = [];
25
+ for (const words of segments) {
26
+ if (words.length === 0) continue;
27
+ const rc = words.map((word, i) => ({
28
+ text: i === 0 ? word.text : ` ${word.text}`,
29
+ startMs: word.startMs,
30
+ endMs: word.endMs,
31
+ timestampMs: null,
32
+ confidence: null
33
+ }));
34
+ const { pages } = createTikTokStyleCaptions({
35
+ captions: rc,
36
+ combineTokensWithinMilliseconds: opts.combineMs
37
+ });
38
+ for (const page of pages) raw.push(...splitPageToFit(page, opts.makeBox));
39
+ }
40
+ return assignTimeline(raw, opts.lingerMs);
41
+ }
42
+ function splitPageToFit(page, makeBox) {
43
+ const probe = makeBox();
44
+ if (page.tokens.every((t) => probe.add(t))) {
45
+ return [{ startMs: page.startMs, tokens: page.tokens }];
46
+ }
47
+ const groups = [];
48
+ let box = makeBox();
49
+ let cur = [];
50
+ for (const token of page.tokens) {
51
+ if (cur.length === 0) {
52
+ cur.push(token);
53
+ box.add(token);
54
+ } else if (box.add(token)) {
55
+ cur.push(token);
56
+ } else {
57
+ groups.push(cur);
58
+ box = makeBox();
59
+ cur = [token];
60
+ box.add(token);
61
+ }
62
+ }
63
+ if (cur.length > 0) groups.push(cur);
64
+ return groups.map((tokens, i) => ({
65
+ startMs: i === 0 ? page.startMs : tokens[0].fromMs,
66
+ tokens
67
+ }));
68
+ }
69
+ function assignTimeline(raw, lingerMs) {
70
+ const merged = [];
71
+ for (const p of raw) {
72
+ const prev = merged[merged.length - 1];
73
+ if (prev && p.startMs <= prev.startMs) {
74
+ prev.tokens.push(...p.tokens);
75
+ } else {
76
+ merged.push({ startMs: p.startMs, tokens: [...p.tokens] });
77
+ }
78
+ }
79
+ return merged.map((p, i) => {
80
+ const lastWordEnd = Math.max(...p.tokens.map((t) => t.toMs));
81
+ const cleared = lastWordEnd + lingerMs;
82
+ const endMs = i < merged.length - 1 ? Math.min(merged[i + 1].startMs, cleared) : cleared;
83
+ return {
84
+ text: p.tokens.map((t) => t.text).join(""),
85
+ startMs: p.startMs,
86
+ durationMs: Math.max(1, endMs - p.startMs),
87
+ tokens: p.tokens
88
+ };
89
+ });
90
+ }
91
+
92
+ // src/captions/placement.ts
93
+ function resolveCaptionPlacement(position, region) {
94
+ const vertical = region ? { bottom: `${Math.max(0, (1 - (region.y + region.h)) * 100)}%` } : position === "top" ? { top: "8%" } : position === "center" ? { top: "50%", transform: "translateY(-50%)" } : { bottom: "10%" };
95
+ return {
96
+ position: "absolute",
97
+ left: 0,
98
+ right: 0,
99
+ display: "flex",
100
+ justifyContent: "center",
101
+ ...vertical
102
+ };
103
+ }
104
+
105
+ // src/captions/Captions.tsx
106
+ import { jsx, jsxs } from "react/jsx-runtime";
107
+ var DEFAULT_HIGHLIGHT_COLOR = TEXT_HI;
108
+ var DEFAULT_STYLE = {
109
+ // Fallback STACK, not a bare family: when the vendored Inter face fails to
110
+ // register (the loader swallows failures by design), the browser default is
111
+ // a SERIF — captions must never degrade past a system grotesk.
112
+ fontFamily: "Inter, 'Helvetica Neue', Helvetica, Arial, sans-serif",
113
+ fontSize: 5,
114
+ fontWeight: 600,
115
+ color: TEXT_HI,
116
+ highlightColor: DEFAULT_HIGHLIGHT_COLOR,
117
+ backgroundColor: "transparent",
118
+ position: "bottom",
119
+ textTransform: "none",
120
+ plate: "none",
121
+ entrance: "fade",
122
+ entranceMs: 220,
123
+ exitMs: 180
124
+ };
125
+ function plateStyleFor(kind, backgroundColor) {
126
+ if (kind === "glass") {
127
+ const glass = "blur(28px) saturate(135%)";
128
+ return {
129
+ backgroundColor: "rgba(20,23,31,0.13)",
130
+ backdropFilter: glass,
131
+ WebkitBackdropFilter: glass,
132
+ border: "1px solid rgba(255,255,255,0.32)"
133
+ };
134
+ }
135
+ if (kind === "solid") {
136
+ return {
137
+ // warm espresso scrim (palette.BG = #14100c → rgb 20,16,12) at plate alpha,
138
+ // not a cold pure-black — keeps the legibility opacity, drops the cold cast.
139
+ backgroundColor: backgroundColor && backgroundColor !== "transparent" ? backgroundColor : "rgba(20,16,12,0.62)"
140
+ };
141
+ }
142
+ return { backgroundColor: backgroundColor ?? "transparent" };
143
+ }
144
+ var COMBINE_TOKENS_MS = 1500;
145
+ var CAPTION_LINGER_MS = 600;
146
+ function addTokenToBox(box, token, fontFamily, fontSize, fontWeight, emphasis) {
147
+ const isEmp = emphasis?.emphasisSet.has(token.fromMs) ?? false;
148
+ const tokenSize = isEmp ? Math.round(fontSize * (emphasis?.emphasisScale ?? 1.2)) : fontSize;
149
+ const tokenWeight = isEmp ? emphasis?.emphasisFontWeight ?? 900 : fontWeight;
150
+ const tokenFamily = isEmp ? emphasis?.emphasisFontFamily ?? fontFamily : fontFamily;
151
+ return box.add({
152
+ text: token.text,
153
+ fontFamily: tokenFamily,
154
+ fontSize: tokenSize,
155
+ fontWeight: String(tokenWeight)
156
+ });
157
+ }
158
+ function makeBoxFactory(maxWidth, fontFamily, fontSize, fontWeight, emphasis) {
159
+ return () => {
160
+ const box = fillTextBox({ maxBoxWidth: maxWidth, maxLines: 3 });
161
+ return {
162
+ add: (token) => !addTokenToBox(box, token, fontFamily, fontSize, fontWeight, emphasis).exceedsBox
163
+ };
164
+ };
165
+ }
166
+ function layoutTokensIntoLines(tokens, maxWidth, fontFamily, fontSize, fontWeight, emphasis) {
167
+ const box = fillTextBox({ maxBoxWidth: maxWidth, maxLines: 3 });
168
+ const lines = [[]];
169
+ for (const token of tokens) {
170
+ const result = addTokenToBox(box, token, fontFamily, fontSize, fontWeight, emphasis);
171
+ if (result.newLine) {
172
+ lines.push([token]);
173
+ } else {
174
+ lines[lines.length - 1].push(token);
175
+ }
176
+ }
177
+ return lines.filter((line) => line.length > 0);
178
+ }
179
+ function Captions({
180
+ segments,
181
+ style: userStyle,
182
+ region
183
+ }) {
184
+ const frame = useCurrentFrame();
185
+ const { fps, width, height } = useVideoConfig();
186
+ const style = { ...DEFAULT_STYLE, ...userStyle };
187
+ const emphasisScale = style.emphasisScale ?? 1.08;
188
+ const emphasisColor = style.emphasisColor ?? style.highlightColor;
189
+ const emphasisFontFamily = style.emphasisFontFamily;
190
+ const emphasisFontWeight = style.emphasisFontWeight ?? 800;
191
+ const emphasisTextTransform = style.emphasisTextTransform ?? style.textTransform;
192
+ const emphasisLetterSpacing = style.emphasisLetterSpacing ?? 0;
193
+ const emphasisFontStyle = style.emphasisFontStyle ?? "normal";
194
+ const entrance = style.entrance ?? "none";
195
+ const entranceFrames = Math.max(1, Math.round((style.entranceMs ?? 160) / 1e3 * fps));
196
+ const staggerFrames = Math.max(0, Math.round((style.entranceStaggerMs ?? 90) / 1e3 * fps));
197
+ const exitMs = style.exitMs ?? 0;
198
+ const emphasisPlate = style.emphasisPlate ?? false;
199
+ const plateColor = style.emphasisPlateColor ?? emphasisColor;
200
+ const plateTextColor = style.emphasisPlateTextColor ?? TEXT_HI;
201
+ const plateAltColor = style.emphasisPlateAltColor ?? plateColor;
202
+ const plateAltTextColor = style.emphasisPlateAltTextColor ?? plateTextColor;
203
+ const plateRadius = style.emphasisPlateRadius ?? 6;
204
+ const platePadX = style.emphasisPlatePadX ?? 0.16;
205
+ const platePadY = style.emphasisPlatePadY ?? 0.04;
206
+ const annotationColor = style.annotationColor ?? VIOLET;
207
+ const maxWidthPercent = style.maxWidthPercent ?? 80;
208
+ const plateStyle = plateStyleFor(style.plate ?? "glass", style.backgroundColor);
209
+ const fontSize = Math.round(height * (style.fontSize / 100));
210
+ const maxTextWidth = width * (maxWidthPercent / 100);
211
+ const { emphasisStartMs, annotateKind } = useMemo(() => {
212
+ const emph = /* @__PURE__ */ new Set();
213
+ const ann = /* @__PURE__ */ new Map();
214
+ for (const w of segments.flat()) {
215
+ if (w.emphasis) emph.add(w.startMs);
216
+ if (w.annotate) ann.set(w.startMs, w.annotate);
217
+ }
218
+ return { emphasisStartMs: emph, annotateKind: ann };
219
+ }, [segments]);
220
+ const emphasisLayout = useMemo(
221
+ () => emphasisStartMs.size > 0 ? { emphasisSet: emphasisStartMs, emphasisScale, emphasisFontFamily, emphasisFontWeight } : void 0,
222
+ [emphasisStartMs, emphasisScale, emphasisFontFamily, emphasisFontWeight]
223
+ );
224
+ const pages = useMemo(
225
+ () => paginateCaptionSegments(segments, {
226
+ combineMs: COMBINE_TOKENS_MS,
227
+ makeBox: makeBoxFactory(maxTextWidth, style.fontFamily, fontSize, style.fontWeight, emphasisLayout),
228
+ lingerMs: CAPTION_LINGER_MS
229
+ }),
230
+ [segments, maxTextWidth, fontSize, style.fontFamily, style.fontWeight, emphasisLayout]
231
+ );
232
+ if (pages.length === 0) return null;
233
+ const currentTimeMs = frame / fps * 1e3;
234
+ const currentPage = pages.find(
235
+ (p) => currentTimeMs >= p.startMs && currentTimeMs < p.startMs + p.durationMs
236
+ );
237
+ if (!currentPage) return null;
238
+ const activeToken = currentPage.tokens.find(
239
+ (t) => currentTimeMs >= t.fromMs && currentTimeMs < t.toMs
240
+ );
241
+ const tokenStartFrame = /* @__PURE__ */ new Map();
242
+ if (entrance !== "none") {
243
+ let minNext = -Infinity;
244
+ for (const t of currentPage.tokens) {
245
+ const s = Math.max(Math.round(t.fromMs / 1e3 * fps), minNext);
246
+ tokenStartFrame.set(t, s);
247
+ minNext = s + staggerFrames;
248
+ }
249
+ }
250
+ const pageEnd = currentPage.startMs + currentPage.durationMs;
251
+ const groupOpacity = exitMs > 0 ? interpolate(currentTimeMs, [pageEnd - exitMs, pageEnd], [1, 0], {
252
+ extrapolateLeft: "clamp",
253
+ extrapolateRight: "clamp"
254
+ }) : 1;
255
+ const lines = layoutTokensIntoLines(
256
+ currentPage.tokens,
257
+ maxTextWidth,
258
+ style.fontFamily,
259
+ fontSize,
260
+ style.fontWeight,
261
+ emphasisLayout
262
+ );
263
+ const wrapperStyle = resolveCaptionPlacement(style.position, region);
264
+ return /* @__PURE__ */ jsx(AbsoluteFill, { style: { pointerEvents: "none" }, children: /* @__PURE__ */ jsx("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx(
265
+ "div",
266
+ {
267
+ style: {
268
+ opacity: groupOpacity,
269
+ display: "flex",
270
+ flexDirection: "column",
271
+ alignItems: "center",
272
+ gap: `${fontSize * 0.25}px`,
273
+ padding: `${fontSize * 0.4}px ${fontSize * 0.8}px`,
274
+ borderRadius: fontSize * 0.5,
275
+ ...plateStyle,
276
+ maxWidth: `${maxWidthPercent}%`,
277
+ boxSizing: "border-box"
278
+ },
279
+ children: (() => {
280
+ let plateIdx = 0;
281
+ const RISE_PX = fontSize * 0.4;
282
+ const easeOpacity = (start) => interpolate(frame, [start, start + entranceFrames], [0, 1], {
283
+ extrapolateLeft: "clamp",
284
+ extrapolateRight: "clamp",
285
+ easing: Easing.out(Easing.cubic)
286
+ });
287
+ const entranceOf = (first, isEmph) => {
288
+ if (entrance === "none") return { opacity: 1, scale: 1, y: 0 };
289
+ const start = tokenStartFrame.get(first) ?? 0;
290
+ if (entrance === "word-pop") {
291
+ const { opacity, scale } = wordPop(frame, fps, start, entranceFrames, isEmph ? 0.86 : 0.92);
292
+ return { opacity, scale, y: 0 };
293
+ }
294
+ if (entrance === "stagger-up") {
295
+ const y = interpolate(frame, [start, start + entranceFrames], [RISE_PX, 0], {
296
+ extrapolateLeft: "clamp",
297
+ extrapolateRight: "clamp",
298
+ easing: Easing.out(Easing.cubic)
299
+ });
300
+ return { opacity: easeOpacity(start), scale: 1, y };
301
+ }
302
+ if (entrance === "fade") {
303
+ return { opacity: easeOpacity(start), scale: 1, y: 0 };
304
+ }
305
+ return { opacity: 1, scale: 1, y: 0 };
306
+ };
307
+ return lines.map((line, lineIdx) => {
308
+ const segs = [];
309
+ for (const t of line) {
310
+ const e = emphasisStartMs.has(t.fromMs);
311
+ const last = segs[segs.length - 1];
312
+ if (emphasisPlate && e && last && last.emph) last.tokens.push(t);
313
+ else segs.push({ tokens: [t], emph: e });
314
+ }
315
+ return /* @__PURE__ */ jsx("div", { style: { display: "flex", justifyContent: "center", alignItems: "baseline", gap: `${fontSize * 0.35}px` }, children: segs.map((seg, si) => {
316
+ const first = seg.tokens[0];
317
+ const { opacity, scale, y } = entranceOf(first, seg.emph);
318
+ const entranceTransform = `translateY(${y}px) scale(${scale})`;
319
+ const annKind = seg.tokens.map((t) => annotateKind.get(t.fromMs)).find(Boolean);
320
+ let markerP = 1;
321
+ if (annKind && entrance !== "none") {
322
+ const ms = (tokenStartFrame.get(first) ?? 0) + Math.round(fps * 0.14);
323
+ markerP = interpolate(frame, [ms, ms + Math.round(fps * 0.32)], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
324
+ }
325
+ if (seg.emph && emphasisPlate) {
326
+ const idx = plateIdx++;
327
+ const bg = idx % 2 === 0 ? plateColor : plateAltColor;
328
+ const fg = idx % 2 === 0 ? plateTextColor : plateAltTextColor;
329
+ const efs = Math.round(fontSize * emphasisScale);
330
+ return /* @__PURE__ */ jsxs("span", { style: { position: "relative", display: "inline-block", opacity, transform: entranceTransform, transformOrigin: "center" }, children: [
331
+ /* @__PURE__ */ jsx(
332
+ "span",
333
+ {
334
+ style: {
335
+ display: "inline-block",
336
+ background: bg,
337
+ color: fg,
338
+ borderRadius: plateRadius,
339
+ padding: `${Math.round(efs * platePadY)}px ${Math.round(efs * platePadX)}px`,
340
+ fontFamily: emphasisFontFamily ?? style.fontFamily,
341
+ fontSize: efs,
342
+ fontWeight: emphasisFontWeight,
343
+ fontStyle: emphasisFontStyle,
344
+ textTransform: emphasisTextTransform,
345
+ letterSpacing: emphasisLetterSpacing ? `${emphasisLetterSpacing}px` : void 0,
346
+ lineHeight: 1,
347
+ whiteSpace: "nowrap"
348
+ },
349
+ children: seg.tokens.map((t) => t.text.trim()).join(" ")
350
+ }
351
+ ),
352
+ annKind ? /* @__PURE__ */ jsx(Marker, { spec: { kind: annKind, color: annotationColor }, progress: markerP }) : null
353
+ ] }, si);
354
+ }
355
+ const token = first;
356
+ const isActive = token === activeToken;
357
+ const isEmphasis = seg.emph;
358
+ const tokenFontSize = isEmphasis ? Math.round(fontSize * emphasisScale) : fontSize;
359
+ const tokenWeight = isEmphasis ? emphasisFontWeight : style.fontWeight;
360
+ const tokenFamily = isEmphasis ? emphasisFontFamily ?? style.fontFamily : style.fontFamily;
361
+ const tokenTransform = isEmphasis ? emphasisTextTransform : style.textTransform;
362
+ const tokenLetterSpacing = isEmphasis && emphasisLetterSpacing ? `${emphasisLetterSpacing}px` : void 0;
363
+ const tokenFontStyle = isEmphasis ? emphasisFontStyle : "normal";
364
+ let tokenColor = style.color;
365
+ if (isActive && !emphasisPlate) tokenColor = style.highlightColor;
366
+ else if (isEmphasis) tokenColor = emphasisColor;
367
+ const gradientFill = isEmphasis && style.emphasisGradient ? fillStyle({ kind: "gradient", value: style.emphasisGradient }) : {};
368
+ const inner = /* @__PURE__ */ jsx(
369
+ "span",
370
+ {
371
+ style: {
372
+ fontFamily: tokenFamily,
373
+ fontSize: tokenFontSize,
374
+ fontWeight: tokenWeight,
375
+ fontStyle: tokenFontStyle,
376
+ color: tokenColor,
377
+ textTransform: tokenTransform,
378
+ letterSpacing: tokenLetterSpacing,
379
+ display: "inline-block",
380
+ ...gradientFill
381
+ },
382
+ children: emphasisPlate ? token.text.trim() : token.text
383
+ }
384
+ );
385
+ return /* @__PURE__ */ jsxs("span", { style: { position: "relative", display: "inline-block", opacity, transform: entranceTransform, transformOrigin: "center" }, children: [
386
+ inner,
387
+ annKind ? /* @__PURE__ */ jsx(Marker, { spec: { kind: annKind, color: annotationColor }, progress: markerP }) : null
388
+ ] }, si);
389
+ }) }, lineIdx);
390
+ });
391
+ })()
392
+ }
393
+ ) }) });
394
+ }
395
+ export {
396
+ Captions
397
+ };
398
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/captions/Captions.tsx","../../src/captions/paginate.ts","../../src/captions/placement.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { AbsoluteFill, useCurrentFrame, useVideoConfig, interpolate, Easing } from 'remotion';\nimport { fillTextBox } from '@remotion/layout-utils';\nimport type { TikTokToken } from '@remotion/captions';\nimport type { CaptionWord, CaptionStyle } from '@cueframe/core/render';\nimport { paginateCaptionSegments, type FitBox } from './paginate';\nimport { resolveCaptionPlacement } from './placement';\nimport { Marker } from '../lib/text/marker';\nimport { fillStyle } from '../lib/text/fill';\nimport { wordPop } from '../lib/text/motion';\nimport * as palette from '../lib/palette';\n\n/**\n * Default highlight color for the active word. A warm off-white — the default\n * look does not karaoke-color the spoken word; the word-fade entrance already\n * carries the sync signal. A brand kit's `captionStyle.highlightColor` overrides\n * it (the gold `#E6B450` treatment is now a kit choice, not the floor).\n */\nconst DEFAULT_HIGHLIGHT_COLOR = palette.TEXT_HI;\n\n// Default-look change 2026-07-15: the launch-film clean default replaced the\n// TikTok/Hormozi glass+gold default — plateless white, word-fade entrance,\n// NO text shadow. Captions carry legibility through size and weight;\n// the ONE opt-in legibility device is `plate: 'glass' | 'solid'` (a style /\n// brand-captionProfile choice), never a baked-in shadow. Brand captionProfiles\n// override everything here.\nconst DEFAULT_STYLE: CaptionStyle = {\n // Fallback STACK, not a bare family: when the vendored Inter face fails to\n // register (the loader swallows failures by design), the browser default is\n // a SERIF — captions must never degrade past a system grotesk.\n fontFamily: \"Inter, 'Helvetica Neue', Helvetica, Arial, sans-serif\",\n fontSize: 5,\n fontWeight: 600,\n color: palette.TEXT_HI,\n highlightColor: DEFAULT_HIGHLIGHT_COLOR,\n backgroundColor: 'transparent',\n position: 'bottom',\n textTransform: 'none',\n plate: 'none',\n entrance: 'fade',\n entranceMs: 220,\n exitMs: 180,\n};\n\n/** Caption backdrop-plate treatments. The plate is the caption block's OWN\n * background, so it renders ONLY while a caption is on-screen — it cannot paint\n * during caption-less moments (a title-card open, an inter-sentence pause). This\n * replaces the retired per-frame legibility scrim.\n * - glass: a frosted backdrop-blur pill; footage reads through (tint 0.13 +\n * 28px blur + a hairline light edge). The blur + the text shadow\n * do the legibility work, so the tint stays light.\n * - solid: an opaque dark plate (uses a custom backgroundColor if set).\n * - none: transparent; captions rely on the text shadow (a deliberate opt-out —\n * legible only on controlled/dark backdrops). */\nfunction plateStyleFor(kind: 'glass' | 'solid' | 'none', backgroundColor: string): React.CSSProperties {\n if (kind === 'glass') {\n const glass = 'blur(28px) saturate(135%)';\n return {\n backgroundColor: 'rgba(20,23,31,0.13)',\n backdropFilter: glass,\n WebkitBackdropFilter: glass,\n border: '1px solid rgba(255,255,255,0.32)',\n };\n }\n if (kind === 'solid') {\n return {\n // warm espresso scrim (palette.BG = #14100c → rgb 20,16,12) at plate alpha,\n // not a cold pure-black — keeps the legibility opacity, drops the cold cast.\n backgroundColor: backgroundColor && backgroundColor !== 'transparent' ? backgroundColor : 'rgba(20,16,12,0.62)',\n };\n }\n // 'none' — honor an explicit custom backgroundColor, else fully transparent.\n return { backgroundColor: backgroundColor ?? 'transparent' };\n}\n\n// Group words into pages of ~1.5s each — long enough to read comfortably,\n// short enough to stay in sync with speech.\nconst COMBINE_TOKENS_MS = 1500;\n\n// How long a caption lingers past its last spoken word before clearing. Bridges\n// the sub-second gaps between pages WITHIN speech (no blink) while still clearing\n// during the multi-second silences between sentences (no frozen fragment).\nconst CAPTION_LINGER_MS = 600;\n\n/** Per-token emphasis info for accurate layout measurement. */\ninterface EmphasisLayout {\n emphasisSet: Set<number>;\n emphasisScale: number;\n emphasisFontFamily?: string;\n emphasisFontWeight: number;\n}\n\n/** Add one token to a fillTextBox with emphasis-aware sizing — the single\n * measurement both line-wrapping (`layoutTokensIntoLines`) and page-fit\n * testing (`makeBoxFactory`) share, so pagination and layout never disagree. */\nfunction addTokenToBox(\n box: ReturnType<typeof fillTextBox>,\n token: TikTokToken,\n fontFamily: string,\n fontSize: number,\n fontWeight: number,\n emphasis?: EmphasisLayout,\n): ReturnType<ReturnType<typeof fillTextBox>['add']> {\n const isEmp = emphasis?.emphasisSet.has(token.fromMs) ?? false;\n const tokenSize = isEmp ? Math.round(fontSize * (emphasis?.emphasisScale ?? 1.2)) : fontSize;\n const tokenWeight = isEmp ? (emphasis?.emphasisFontWeight ?? 900) : fontWeight;\n const tokenFamily = isEmp ? (emphasis?.emphasisFontFamily ?? fontFamily) : fontFamily;\n return box.add({\n text: token.text,\n fontFamily: tokenFamily,\n fontSize: tokenSize,\n fontWeight: String(tokenWeight),\n });\n}\n\n/** A `FitBox` factory for `paginateCaptionSegments`: each call returns a fresh\n * incremental 3-line box whose `add(token)` reports whether the box still fits\n * with that token appended. Sharing `addTokenToBox` keeps pagination's fit\n * decision identical to `layoutTokensIntoLines`' wrapping. */\nfunction makeBoxFactory(\n maxWidth: number,\n fontFamily: string,\n fontSize: number,\n fontWeight: number,\n emphasis?: EmphasisLayout,\n): () => FitBox {\n return () => {\n const box = fillTextBox({ maxBoxWidth: maxWidth, maxLines: 3 });\n return {\n add: (token: TikTokToken) =>\n !addTokenToBox(box, token, fontFamily, fontSize, fontWeight, emphasis).exceedsBox,\n };\n };\n}\n\n/** Split tokens into measured lines using fillTextBox for proper word wrapping.\n * Pagination guarantees the page fits 3 lines, so no token is dropped here. */\nfunction layoutTokensIntoLines(\n tokens: TikTokToken[],\n maxWidth: number,\n fontFamily: string,\n fontSize: number,\n fontWeight: number,\n emphasis?: EmphasisLayout,\n): TikTokToken[][] {\n const box = fillTextBox({ maxBoxWidth: maxWidth, maxLines: 3 });\n const lines: TikTokToken[][] = [[]];\n\n for (const token of tokens) {\n const result = addTokenToBox(box, token, fontFamily, fontSize, fontWeight, emphasis);\n\n if (result.newLine) {\n lines.push([token]);\n } else {\n lines[lines.length - 1].push(token);\n }\n }\n\n return lines.filter((line) => line.length > 0);\n}\n\n/**\n * TikTok/Hormozi-style word-level captions layer.\n *\n * Drives `@remotion/captions`'s `createTikTokStyleCaptions` with a\n * pre-timed word stream, paginates ~1.5s at a time, highlights the\n * active token, and applies per-token emphasis (separate font/scale/\n * color/weight) when `CaptionWord.emphasis` is set.\n *\n * Fonts are NOT loaded by this component — the caller (editor's\n * `Root.tsx` or the worker render bundle's bootstrap) is responsible\n * for ensuring `style.fontFamily` is loaded before the bundle renders.\n */\nexport function Captions({\n segments,\n style: userStyle,\n region,\n}: {\n /**\n * Authored caption SEGMENTS. Each segment is a hard caption-page boundary:\n * pagination runs within a segment and never pools words across two, so\n * sentence-bounded segments cut captions at sentence ends.\n */\n segments: CaptionWord[][];\n style?: Partial<CaptionStyle>;\n /**\n * Floor-resolved caption band (output fractions). When set, the caption sits\n * with its BOTTOM edge at `region.y + region.h` — i.e. clear of the platform's\n * bottom-UI strip — instead of the fixed `style.position` offset. Horizontal\n * stays centred (the short-form convention); only the vertical clearance is\n * taken from the floor. See composition-model `resolveCaptionRegion`.\n */\n region?: { y: number; h: number };\n}) {\n const frame = useCurrentFrame();\n const { fps, width, height } = useVideoConfig();\n const style = { ...DEFAULT_STYLE, ...userStyle };\n // Emphasis defaults punch by WEIGHT, barely by size (launch-film default —\n // the 900/1.2 pop is a kit choice via captionProfile, not the floor).\n const emphasisScale = style.emphasisScale ?? 1.08;\n const emphasisColor = style.emphasisColor ?? style.highlightColor;\n const emphasisFontFamily = style.emphasisFontFamily;\n const emphasisFontWeight = style.emphasisFontWeight ?? 800;\n const emphasisTextTransform = style.emphasisTextTransform ?? style.textTransform;\n const emphasisLetterSpacing = style.emphasisLetterSpacing ?? 0;\n const emphasisFontStyle = style.emphasisFontStyle ?? 'normal';\n const entrance = style.entrance ?? 'none';\n const entranceFrames = Math.max(1, Math.round(((style.entranceMs ?? 160) / 1000) * fps));\n const staggerFrames = Math.max(0, Math.round(((style.entranceStaggerMs ?? 90) / 1000) * fps));\n const exitMs = style.exitMs ?? 0;\n const emphasisPlate = style.emphasisPlate ?? false;\n const plateColor = style.emphasisPlateColor ?? emphasisColor;\n const plateTextColor = style.emphasisPlateTextColor ?? palette.TEXT_HI;\n const plateAltColor = style.emphasisPlateAltColor ?? plateColor;\n const plateAltTextColor = style.emphasisPlateAltTextColor ?? plateTextColor;\n const plateRadius = style.emphasisPlateRadius ?? 6;\n const platePadX = style.emphasisPlatePadX ?? 0.16;\n const platePadY = style.emphasisPlatePadY ?? 0.04;\n const annotationColor = style.annotationColor ?? palette.VIOLET;\n const maxWidthPercent = style.maxWidthPercent ?? 80;\n const plateStyle = plateStyleFor(style.plate ?? 'glass', style.backgroundColor);\n\n const fontSize = Math.round(height * (style.fontSize / 100));\n const maxTextWidth = width * (maxWidthPercent / 100);\n\n // Emphasis / annotation lookup maps (keyed by startMs === token.fromMs).\n // Frame-independent → memoized on `segments` so it runs once per render.\n const { emphasisStartMs, annotateKind } = useMemo(() => {\n const emph = new Set<number>();\n const ann = new Map<number, 'circle' | 'underline'>();\n for (const w of segments.flat()) {\n if (w.emphasis) emph.add(w.startMs);\n if (w.annotate) ann.set(w.startMs, w.annotate);\n }\n return { emphasisStartMs: emph, annotateKind: ann };\n }, [segments]);\n\n const emphasisLayout: EmphasisLayout | undefined = useMemo(\n () =>\n emphasisStartMs.size > 0\n ? { emphasisSet: emphasisStartMs, emphasisScale, emphasisFontFamily, emphasisFontWeight }\n : undefined,\n [emphasisStartMs, emphasisScale, emphasisFontFamily, emphasisFontWeight],\n );\n\n // Paginate PER SEGMENT (segment = hard page break) into TikTok-style pages,\n // splitting an over-dense page into sub-pages (never dropping words) and\n // stitching the track contiguous so captions linger through inter-sentence\n // pauses. Memoized on the frame-independent inputs so the fillTextBox\n // measurement runs ONCE per render instead of on every frame.\n const pages = useMemo(\n () =>\n paginateCaptionSegments(segments, {\n combineMs: COMBINE_TOKENS_MS,\n makeBox: makeBoxFactory(maxTextWidth, style.fontFamily, fontSize, style.fontWeight, emphasisLayout),\n lingerMs: CAPTION_LINGER_MS,\n }),\n [segments, maxTextWidth, fontSize, style.fontFamily, style.fontWeight, emphasisLayout],\n );\n\n if (pages.length === 0) return null;\n\n // Find the current page based on frame time\n const currentTimeMs = (frame / fps) * 1000;\n const currentPage = pages.find(\n (p) => currentTimeMs >= p.startMs && currentTimeMs < p.startMs + p.durationMs\n );\n if (!currentPage) return null;\n\n // Find active token\n const activeToken = currentPage.tokens.find(\n (t) => currentTimeMs >= t.fromMs && currentTimeMs < t.toMs\n );\n\n // Per-word entrance: each token enters on its own spoken beat, with a minimum\n // stagger so two words never pop together. Map token → global start frame.\n const tokenStartFrame = new Map<TikTokToken, number>();\n if (entrance !== 'none') {\n let minNext = -Infinity;\n for (const t of currentPage.tokens) {\n const s = Math.max(Math.round((t.fromMs / 1000) * fps), minNext);\n tokenStartFrame.set(t, s);\n minNext = s + staggerFrames;\n }\n }\n\n // Phrase exit: fade the whole group over the page's last `exitMs` before the\n // next page builds fresh (a clean cut when exitMs is 0).\n const pageEnd = currentPage.startMs + currentPage.durationMs;\n const groupOpacity =\n exitMs > 0\n ? interpolate(currentTimeMs, [pageEnd - exitMs, pageEnd], [1, 0], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n })\n : 1;\n\n // Wrap tokens into measured lines (emphasis-aware sizing). Pagination already\n // guaranteed this page fits 3 lines, so no token is dropped.\n const lines = layoutTokensIntoLines(\n currentPage.tokens,\n maxTextWidth,\n style.fontFamily,\n fontSize,\n style.fontWeight,\n emphasisLayout,\n );\n\n // Placement. A full-width, structurally-centred band anchored vertically by the\n // floor-resolved `region` (else the style.position preset) — see\n // resolveCaptionPlacement. Horizontal centring lives on the WRAPPER\n // (justifyContent), NOT on the content box, so it can never depend on the\n // content's shrink-to-fit width and the content box's `maxWidth` binds against\n // the FULL frame (matching the pagination measurement, `maxTextWidth`).\n const wrapperStyle = resolveCaptionPlacement(style.position, region);\n\n return (\n <AbsoluteFill style={{ pointerEvents: 'none' }}>\n <div style={wrapperStyle}>\n <div\n style={{\n opacity: groupOpacity,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: `${fontSize * 0.25}px`,\n padding: `${fontSize * 0.4}px ${fontSize * 0.8}px`,\n borderRadius: fontSize * 0.5,\n ...plateStyle,\n maxWidth: `${maxWidthPercent}%`,\n boxSizing: 'border-box',\n }}\n >\n {(() => {\n // plate colour alternates per emphasis run across the whole caption\n let plateIdx = 0;\n // Per-run entrance on the run's first spoken beat. The brand's motion\n // identity selects the treatment; all three share the per-word stagger\n // scaffold above (tokenStartFrame), differing only in the transform:\n // 'word-pop' — cubic-fade opacity + spring scale-settle.\n // 'fade' — cubic-fade opacity only.\n // 'stagger-up' — cubic-fade opacity + upward translate.\n // 'none' — static (handled by the `entrance === 'none'` guard).\n // SOFT: an unknown entrance falls through to the calibrated default\n // (static), never throws.\n const RISE_PX = fontSize * 0.4;\n const easeOpacity = (start: number) =>\n interpolate(frame, [start, start + entranceFrames], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n easing: Easing.out(Easing.cubic),\n });\n const entranceOf = (\n first: TikTokToken,\n isEmph: boolean,\n ): { opacity: number; scale: number; y: number } => {\n if (entrance === 'none') return { opacity: 1, scale: 1, y: 0 };\n const start = tokenStartFrame.get(first) ?? 0;\n if (entrance === 'word-pop') {\n const { opacity, scale } = wordPop(frame, fps, start, entranceFrames, isEmph ? 0.86 : 0.92);\n return { opacity, scale, y: 0 };\n }\n if (entrance === 'stagger-up') {\n const y = interpolate(frame, [start, start + entranceFrames], [RISE_PX, 0], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n easing: Easing.out(Easing.cubic),\n });\n return { opacity: easeOpacity(start), scale: 1, y };\n }\n if (entrance === 'fade') {\n return { opacity: easeOpacity(start), scale: 1, y: 0 };\n }\n // Unknown entrance → calibrated default (no animation).\n return { opacity: 1, scale: 1, y: 0 };\n };\n return lines.map((line, lineIdx) => {\n // group contiguous emphasis tokens into one plated run (so e.g.\n // \"One Zuck\" shares a single plate); everything else is its own run.\n const segs: { tokens: TikTokToken[]; emph: boolean }[] = [];\n for (const t of line) {\n const e = emphasisStartMs.has(t.fromMs);\n const last = segs[segs.length - 1];\n if (emphasisPlate && e && last && last.emph) last.tokens.push(t);\n else segs.push({ tokens: [t], emph: e });\n }\n return (\n <div key={lineIdx} style={{ display: 'flex', justifyContent: 'center', alignItems: 'baseline', gap: `${fontSize * 0.35}px` }}>\n {segs.map((seg, si) => {\n const first = seg.tokens[0];\n const { opacity, scale, y } = entranceOf(first, seg.emph);\n const entranceTransform = `translateY(${y}px) scale(${scale})`;\n const annKind = seg.tokens.map((t) => annotateKind.get(t.fromMs)).find(Boolean);\n let markerP = 1;\n if (annKind && entrance !== 'none') {\n const ms = (tokenStartFrame.get(first) ?? 0) + Math.round(fps * 0.14);\n markerP = interpolate(frame, [ms, ms + Math.round(fps * 0.32)], [0, 1], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });\n }\n\n // emphasis run on a highlighter plate\n if (seg.emph && emphasisPlate) {\n const idx = plateIdx++;\n const bg = idx % 2 === 0 ? plateColor : plateAltColor;\n const fg = idx % 2 === 0 ? plateTextColor : plateAltTextColor;\n const efs = Math.round(fontSize * emphasisScale);\n return (\n <span key={si} style={{ position: 'relative', display: 'inline-block', opacity, transform: entranceTransform, transformOrigin: 'center' }}>\n <span\n style={{\n display: 'inline-block',\n background: bg,\n color: fg,\n borderRadius: plateRadius,\n padding: `${Math.round(efs * platePadY)}px ${Math.round(efs * platePadX)}px`,\n fontFamily: emphasisFontFamily ?? style.fontFamily,\n fontSize: efs,\n fontWeight: emphasisFontWeight,\n fontStyle: emphasisFontStyle,\n textTransform: emphasisTextTransform,\n letterSpacing: emphasisLetterSpacing ? `${emphasisLetterSpacing}px` : undefined,\n lineHeight: 1.0,\n whiteSpace: 'nowrap',\n }}\n >\n {seg.tokens.map((t) => t.text.trim()).join(' ')}\n </span>\n {annKind ? <Marker spec={{ kind: annKind, color: annotationColor }} progress={markerP} /> : null}\n </span>\n );\n }\n\n // plain token (connective, or emphasis when plates are off)\n const token = first;\n const isActive = token === activeToken;\n const isEmphasis = seg.emph;\n const tokenFontSize = isEmphasis ? Math.round(fontSize * emphasisScale) : fontSize;\n const tokenWeight = isEmphasis ? emphasisFontWeight : style.fontWeight;\n const tokenFamily = isEmphasis ? (emphasisFontFamily ?? style.fontFamily) : style.fontFamily;\n const tokenTransform = isEmphasis ? emphasisTextTransform : style.textTransform;\n const tokenLetterSpacing = isEmphasis && emphasisLetterSpacing ? `${emphasisLetterSpacing}px` : undefined;\n const tokenFontStyle = isEmphasis ? emphasisFontStyle : 'normal';\n let tokenColor = style.color;\n if (isActive && !emphasisPlate) tokenColor = style.highlightColor;\n else if (isEmphasis) tokenColor = emphasisColor;\n // 'gradient' fill axis: emphasis text painted with a CSS gradient (bg-clip-text)\n const gradientFill: React.CSSProperties =\n isEmphasis && style.emphasisGradient\n ? fillStyle({ kind: 'gradient', value: style.emphasisGradient })\n : {};\n const inner = (\n <span\n style={{\n fontFamily: tokenFamily,\n fontSize: tokenFontSize,\n fontWeight: tokenWeight,\n fontStyle: tokenFontStyle,\n color: tokenColor,\n textTransform: tokenTransform,\n letterSpacing: tokenLetterSpacing,\n display: 'inline-block',\n ...gradientFill,\n }}\n >\n {emphasisPlate ? token.text.trim() : token.text}\n </span>\n );\n return (\n <span key={si} style={{ position: 'relative', display: 'inline-block', opacity, transform: entranceTransform, transformOrigin: 'center' }}>\n {inner}\n {annKind ? <Marker spec={{ kind: annKind, color: annotationColor }} progress={markerP} /> : null}\n </span>\n );\n })}\n </div>\n );\n });\n })()}\n </div>\n </div>\n </AbsoluteFill>\n );\n}\n","import { createTikTokStyleCaptions } from '@remotion/captions';\nimport type { Caption, TikTokPage, TikTokToken } from '@remotion/captions';\nimport type { CaptionWord } from '@cueframe/core/render';\n\n/** An incremental, stateful fit measurer: `add(token)` returns whether the\n * caption box still fits with that token appended. A fresh box starts empty.\n * Injected so the component measures with real `fillTextBox` font metrics while\n * tests stay deterministic — and so splitting measures each token ONCE\n * (O(n)) instead of re-measuring the whole prefix per token (O(n²)). */\nexport interface FitBox {\n add: (token: TikTokToken) => boolean;\n}\n\n/**\n * Turn authored caption SEGMENTS into renderable pages.\n *\n * Guarantees the old flat-paginate didn't make:\n * 1. **Segment boundaries are hard page breaks.** `createTikTokStyleCaptions`\n * runs PER SEGMENT, so a page never pools words across two segments.\n * Author sentence-bounded segments (`splitIntoSentences`) → captions cut at\n * sentence ends.\n * 2. **No word is dropped, no blank gaps.** A page too dense for the box is\n * split into sub-pages (not truncated), and the whole track is stitched\n * contiguous — each page lingers until the next begins, so captions don't\n * blink off during the pause between sentences (per-segment paging would\n * otherwise end each sentence at its last word). The final page ends at its\n * last word. Pages that would share a start time fold together rather than\n * producing a zero-duration (invisible) page.\n */\nexport function paginateCaptionSegments(\n segments: CaptionWord[][],\n opts: { combineMs: number; makeBox: () => FitBox; lingerMs: number },\n): TikTokPage[] {\n const raw: Array<{ startMs: number; tokens: TikTokToken[] }> = [];\n for (const words of segments) {\n if (words.length === 0) continue;\n // Prepend a space to every word but the segment's first so\n // createTikTokStyleCaptions detects word boundaries (it keys on\n // text.startsWith(' ')).\n const rc: Caption[] = words.map((word, i) => ({\n text: i === 0 ? word.text : ` ${word.text}`,\n startMs: word.startMs,\n endMs: word.endMs,\n timestampMs: null,\n confidence: null,\n }));\n const { pages } = createTikTokStyleCaptions({\n captions: rc,\n combineTokensWithinMilliseconds: opts.combineMs,\n });\n for (const page of pages) raw.push(...splitPageToFit(page, opts.makeBox));\n }\n return assignTimeline(raw, opts.lingerMs);\n}\n\n/**\n * Split one page into groups each satisfying the box, greedily and in O(n): one\n * incremental box is fed token-by-token; when a token would overflow, the group\n * closes and a fresh box starts with it. A single token that cannot fit on its\n * own is still emitted (a word is indivisible). Returns groups with only their\n * start time; durations are assigned globally in `assignTimeline`.\n */\nfunction splitPageToFit(\n page: TikTokPage,\n makeBox: () => FitBox,\n): Array<{ startMs: number; tokens: TikTokToken[] }> {\n // Fast path: the whole page fits.\n const probe = makeBox();\n if (page.tokens.every((t) => probe.add(t))) {\n return [{ startMs: page.startMs, tokens: page.tokens }];\n }\n\n const groups: TikTokToken[][] = [];\n let box = makeBox();\n let cur: TikTokToken[] = [];\n for (const token of page.tokens) {\n if (cur.length === 0) {\n cur.push(token);\n box.add(token); // place at least one token — a word is indivisible\n } else if (box.add(token)) {\n cur.push(token);\n } else {\n groups.push(cur);\n box = makeBox();\n cur = [token];\n box.add(token);\n }\n }\n if (cur.length > 0) groups.push(cur);\n\n return groups.map((tokens, i) => ({\n startMs: i === 0 ? page.startMs : tokens[0].fromMs,\n tokens,\n }));\n}\n\n/**\n * Lay raw pages onto a strictly-increasing timeline. Each page shows until\n * `lingerMs` after its last spoken word, capped at the next page's start:\n * - within speech (next page sooner than lastWord+lingerMs) → contiguous, no\n * blink between consecutive pages;\n * - across a long silent gap (next page later than lastWord+lingerMs) → the\n * caption CLEARS lingerMs after the last word instead of freezing the\n * fragment on screen for the whole multi-second pause;\n * - the final caption lingers lingerMs past its last word (no instant snap).\n * Pages that would share a start time fold together (two words at the same time\n * can't be shown sequentially) so no page is ever zero-duration.\n */\nfunction assignTimeline(\n raw: Array<{ startMs: number; tokens: TikTokToken[] }>,\n lingerMs: number,\n): TikTokPage[] {\n const merged: Array<{ startMs: number; tokens: TikTokToken[] }> = [];\n for (const p of raw) {\n const prev = merged[merged.length - 1];\n if (prev && p.startMs <= prev.startMs) {\n prev.tokens.push(...p.tokens);\n } else {\n merged.push({ startMs: p.startMs, tokens: [...p.tokens] });\n }\n }\n\n return merged.map((p, i) => {\n const lastWordEnd = Math.max(...p.tokens.map((t) => t.toMs));\n const cleared = lastWordEnd + lingerMs;\n const endMs = i < merged.length - 1 ? Math.min(merged[i + 1].startMs, cleared) : cleared;\n return {\n text: p.tokens.map((t) => t.text).join(''),\n startMs: p.startMs,\n durationMs: Math.max(1, endMs - p.startMs),\n tokens: p.tokens,\n };\n });\n}\n","/**\n * Caption container PLACEMENT — pure, render-harness-free CSS math.\n *\n * The caption block is centred horizontally and anchored vertically (a floor-\n * resolved `region`'s bottom edge, else the `style.position` preset). Kept in its\n * own module (no React/Remotion imports beyond the CSSProperties type) so the\n * placement is unit-testable without a render harness — mirrors the cardMotion.ts\n * / CropFromTrajectory pure-helper precedent.\n *\n * WHY A FULL-WIDTH WRAPPER (not `left:50% + translateX(-50%)` on the content box):\n * the old approach positioned the CONTENT box itself with `left:50%` and no\n * `width`/`right`, so its shrink-to-fit *available* width was capped at `100% −\n * left = 50%` of the frame. An authored `maxWidthPercent` above 50 was therefore\n * silently clamped to 50% — the box (and its plate) came out NARROWER than\n * authored while pagination still MEASURED text at the full `maxWidthPercent`\n * (`maxTextWidth = width * maxWidthPercent/100`), so wide phrases overflowed the\n * plate and the centring depended on the content's own width. This wrapper makes\n * horizontal centring STRUCTURAL (`left:0; right:0; justifyContent:center`), so it\n * is independent of the content width, and the content box's `maxWidth` now binds\n * against the FULL frame — matching the pagination measurement exactly.\n */\n\nimport type { CSSProperties } from 'react';\n\n/**\n * The absolutely-positioned, full-width, horizontally-centred band the caption\n * content box sits inside. Vertical anchor:\n * - `region` (floor-resolved) WINS: the band's BOTTOM edge sits at\n * `region.y + region.h` (clear of the platform bottom-UI strip).\n * - else the `position` preset: 'top' → 8% from top, 'center' → vertical\n * centre (translateY only — horizontal is structural), 'bottom'/default →\n * 10% from bottom.\n */\nexport function resolveCaptionPlacement(\n position: 'top' | 'center' | 'bottom' | undefined,\n region: { y: number; h: number } | undefined,\n): CSSProperties {\n const vertical: CSSProperties = region\n ? { bottom: `${Math.max(0, (1 - (region.y + region.h)) * 100)}%` }\n : position === 'top'\n ? { top: '8%' }\n : position === 'center'\n ? { top: '50%', transform: 'translateY(-50%)' }\n : { bottom: '10%' };\n return {\n position: 'absolute',\n left: 0,\n right: 0,\n display: 'flex',\n justifyContent: 'center',\n ...vertical,\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,31 @@
1
+ import type { TikTokPage, TikTokToken } from '@remotion/captions';
2
+ import type { CaptionWord } from '../../core/render/index.js';
3
+ /** An incremental, stateful fit measurer: `add(token)` returns whether the
4
+ * caption box still fits with that token appended. A fresh box starts empty.
5
+ * Injected so the component measures with real `fillTextBox` font metrics while
6
+ * tests stay deterministic — and so splitting measures each token ONCE
7
+ * (O(n)) instead of re-measuring the whole prefix per token (O(n²)). */
8
+ export interface FitBox {
9
+ add: (token: TikTokToken) => boolean;
10
+ }
11
+ /**
12
+ * Turn authored caption SEGMENTS into renderable pages.
13
+ *
14
+ * Guarantees the old flat-paginate didn't make:
15
+ * 1. **Segment boundaries are hard page breaks.** `createTikTokStyleCaptions`
16
+ * runs PER SEGMENT, so a page never pools words across two segments.
17
+ * Author sentence-bounded segments (`splitIntoSentences`) → captions cut at
18
+ * sentence ends.
19
+ * 2. **No word is dropped, no blank gaps.** A page too dense for the box is
20
+ * split into sub-pages (not truncated), and the whole track is stitched
21
+ * contiguous — each page lingers until the next begins, so captions don't
22
+ * blink off during the pause between sentences (per-segment paging would
23
+ * otherwise end each sentence at its last word). The final page ends at its
24
+ * last word. Pages that would share a start time fold together rather than
25
+ * producing a zero-duration (invisible) page.
26
+ */
27
+ export declare function paginateCaptionSegments(segments: CaptionWord[][], opts: {
28
+ combineMs: number;
29
+ makeBox: () => FitBox;
30
+ lingerMs: number;
31
+ }): TikTokPage[];