@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 @@
1
+ {"version":3,"sources":["../src/text/blur-reveal/index.tsx","../src/text/cinematic-title/index.tsx","../src/text/inline-highlight/index.tsx","../src/text/karaoke/index.tsx","../src/text/kinetic-type/index.tsx","../src/text/lower-third/index.tsx","../src/text/marker-highlight/index.tsx","../src/text/shimmer-sweep/index.tsx","../src/text/staggered-fade-up/index.tsx","../src/text/text-effect/index.tsx","../src/text/text-fade-replace/index.tsx","../src/text/tracking-in/index.tsx","../src/text/typewriter/index.tsx","../src/text/matrix-decode/index.tsx","../src/text/rgb-glitch-text/index.tsx","../src/text/quote-card/index.tsx","../src/text/slot-machine-roll/index.tsx","../src/text/stat-counter/index.tsx","../src/text/token-stream/index.tsx","../src/text/strikethrough-replace/index.tsx","../src/text/masked-slide-reveal/index.tsx","../src/text/blur-reveal/config.ts","../src/text/cinematic-title/config.ts","../src/text/inline-highlight/config.ts","../src/text/karaoke/config.ts","../src/text/kinetic-type/config.ts","../src/text/lower-third/config.ts","../src/text/marker-highlight/config.ts","../src/text/shimmer-sweep/config.ts","../src/text/staggered-fade-up/config.ts","../src/text/text-fade-replace/config.ts","../src/text/tracking-in/config.ts","../src/text/typewriter/config.ts","../src/text/matrix-decode/config.ts","../src/text/rgb-glitch-text/config.ts","../src/text/quote-card/config.ts","../src/text/slot-machine-roll/config.ts","../src/text/stat-counter/config.ts","../src/text/token-stream/config.ts","../src/text/strikethrough-replace/config.ts","../src/text/masked-slide-reveal/config.ts","../src/text/text-effect/config.ts","../src/text/index.ts"],"sourcesContent":["/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - bake the shared contrast shadow so text survives over any footage\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { FitText } from \"../../lib/text/fitText\";\n\n// Single-line reveal — give it a generous box so long copy shrinks (then wraps) instead\n// of overflowing, replacing the old hard maxLength.\nconst BLUR_REVEAL_TEXT_WIDTH = 1500;\n\nexport interface BlurRevealProps {\n text: string;\n className?: string;\n blur?: number;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n}\n\nexport function BlurReveal({\n text,\n blur = 10,\n fontSize = 48,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 600,\n speed = 1,\n}: BlurRevealProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n const opacity = interpolate(frame, [0, durationInFrames * 0.6], [0, 1], {\n extrapolateRight: \"clamp\",\n });\n\n const blurAmount = interpolate(\n frame,\n [0, durationInFrames * 0.6],\n [blur, 0],\n { extrapolateRight: \"clamp\" },\n );\n\n return (\n <TextStage>\n <FitText\n maxFontSize={fontSize}\n maxWidth={BLUR_REVEAL_TEXT_WIDTH}\n maxLines={2}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n letterSpacing=\"-0.05em\"\n style={{\n opacity,\n filter: `blur(${blurAmount}px)`,\n color,\n textShadow: resolveContrast().textShadow,\n textAlign: \"center\",\n }}\n >\n {text}\n </FitText>\n </TextStage>\n );\n}\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\nimport { resolveContrast, FLOOR_TEXT } from '../../lib/text/contrast';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport * as palette from '../../lib/palette';\nimport { FitText } from '../../lib/text/fitText';\n\n// Full-frame centered title — give the text a generous box so long copy shrinks\n// (then wraps/ellipsizes) instead of overflowing, replacing the old hard maxLength.\nconst TITLE_TEXT_WIDTH = 1600;\n\nexport interface CinematicTitleTokens {\n fontFamily?: string;\n fontSize?: number;\n subtextFontSize?: number;\n textColor?: string;\n accentColor?: string;\n letterSpacing?: number;\n}\n\nexport interface CinematicTitleProps {\n /** Primary text */\n text: string;\n /** Optional subtitle / secondary text */\n subtitle?: string;\n /** Visual variant */\n variant?: 'default' | 'bold' | 'zoom';\n /** Vertical position */\n position?: 'center' | 'bottom' | 'top';\n /** Design tokens */\n tokens?: CinematicTitleTokens;\n}\n\n/**\n * Dramatic title reveal with cinematic letterbox bars.\n *\n * - default: letterbox bars slide in, text fades up with letter-spacing tightening\n * - bold: larger scale, heavier weight, stronger entrance\n * - zoom: scale-from-blur entrance with zoom overshoot\n *\n * Migrated from cinematic-title template. Preserves spring physics and easing curves.\n */\nexport const CinematicTitle: React.FC<CinematicTitleProps> = ({\n text,\n subtitle,\n variant = 'default',\n position = 'center',\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps, height, durationInFrames } = useVideoConfig();\n\n const {\n fontFamily = resolveTypeface('display'),\n fontSize: baseFontSize = 72,\n subtextFontSize = 18,\n textColor = FLOOR_TEXT,\n accentColor = palette.WARNING,\n letterSpacing: baseLetterSpacing = 6,\n } = tokens;\n\n const barHeight = height * 0.13;\n\n // --- Bar entrance animation ---\n const barSlide = interpolate(frame, [0, 20], [barHeight, 0], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n\n // --- Exit animation ---\n const exitStart = durationInFrames - 20;\n const exitOpacity = interpolate(\n frame,\n [exitStart, durationInFrames],\n [1, 0],\n { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' },\n );\n\n // --- Variant-specific entrance ---\n let textOpacity: number;\n let textScale: number;\n let textBlur: number;\n let fontSize: number;\n let fontWeight: number;\n let currentLetterSpacing: number;\n\n if (variant === 'zoom') {\n // Scale-from-blur with overshoot via spring\n const enterSpring = spring({ fps, frame, config: { damping: 12, stiffness: 80 } });\n textOpacity = interpolate(frame, [10, 30], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n textScale = interpolate(enterSpring, [0, 1], [2.5, 1]);\n textBlur = interpolate(frame, [10, 35], [12, 0], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n fontSize = baseFontSize;\n fontWeight = 700;\n currentLetterSpacing = baseLetterSpacing;\n } else if (variant === 'bold') {\n // Larger, heavier, snappier\n const enterSpring = spring({ fps, frame: Math.max(0, frame - 5), config: { damping: 14, stiffness: 100 } });\n textOpacity = interpolate(enterSpring, [0, 1], [0, 1]);\n textScale = interpolate(enterSpring, [0, 1], [1.4, 1]);\n textBlur = 0;\n fontSize = Math.round(baseFontSize * 1.3);\n fontWeight = 900;\n currentLetterSpacing = baseLetterSpacing;\n } else {\n // Default: fade + letter-spacing tighten (matching original template)\n textOpacity = interpolate(frame, [18, 40], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n currentLetterSpacing = interpolate(frame, [18, 45], [20, baseLetterSpacing], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n textScale = 1;\n textBlur = 0;\n fontSize = baseFontSize;\n fontWeight = 700;\n }\n\n // --- Subtitle fade ---\n const subtextOpacity = interpolate(frame, [35, 55], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n\n // --- Position mapping ---\n const justifyContent =\n position === 'top' ? 'flex-start' : position === 'bottom' ? 'flex-end' : 'center';\n // top/bottom padding must CLEAR the letterbox bar (barHeight, zIndex 2, in\n // for the clip's whole open phase) — a flat 80px put the title's top edge\n // UNDER the 140px bar at 1080p, slicing the glyphs from the moment the bars\n // finished sliding in (2026-07-12 verify-rerun-7 ship render, position:top).\n const padding = position === 'center' ? 0 : barHeight + 48;\n\n // Bake the legibility shadow onto the open-frame title/subtitle text (zIndex 1)\n // — never the letterbox bars (separate black divs at zIndex 2).\n const textShadow = resolveContrast().textShadow;\n\n const barStyle: React.CSSProperties = {\n position: 'absolute',\n left: 0,\n right: 0,\n height: barHeight,\n backgroundColor: palette.BG,\n zIndex: 2,\n };\n\n return (\n <AbsoluteFill style={{ backgroundColor: 'transparent', opacity: exitOpacity }}>\n {/* Letterbox bars */}\n <div style={{ ...barStyle, top: 0, transform: `translateY(-${barSlide}px)` }} />\n <div style={{ ...barStyle, bottom: 0, transform: `translateY(${barSlide}px)` }} />\n\n <AbsoluteFill\n style={{\n justifyContent,\n alignItems: 'center',\n zIndex: 1,\n paddingTop: padding,\n paddingBottom: padding,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n opacity: textOpacity,\n transform: `scale(${textScale})`,\n filter: textBlur > 0 ? `blur(${textBlur}px)` : 'none',\n }}\n >\n <FitText\n maxFontSize={fontSize}\n maxWidth={TITLE_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n // Measure the fit at the STATIC design letter-spacing so the font size stays\n // constant; the visual letter-spacing still animates via the style override\n // below. Passing the per-frame `currentLetterSpacing` here would re-fit every\n // frame (frames 18–45) and pulse the size.\n letterSpacing={`${baseLetterSpacing}px`}\n textTransform=\"uppercase\"\n style={{\n color: textColor,\n textShadow,\n textAlign: 'center',\n letterSpacing: `${currentLetterSpacing}px`,\n }}\n >\n {text}\n </FitText>\n {subtitle ? (\n <FitText\n maxFontSize={subtextFontSize}\n maxWidth={TITLE_TEXT_WIDTH}\n maxLines={2}\n fontFamily={fontFamily}\n fontWeight={300}\n letterSpacing=\"3px\"\n textTransform=\"uppercase\"\n style={{\n marginTop: 16,\n color: accentColor,\n textShadow,\n opacity: subtextOpacity,\n textAlign: 'center',\n }}\n >\n {subtitle}\n </FitText>\n ) : null}\n </div>\n </AbsoluteFill>\n </AbsoluteFill>\n );\n};\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - bake the shared contrast shadow so text survives over any footage\n * - single-source the color defaults from config (was #171717 base /\n * #ff5e3a highlight here, disagreeing with the config token fallbacks)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { recolor } from \"../../lib/text/recolor\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport * as palette from \"../../lib/palette\";\n\nexport interface InlineHighlightProps {\n before: string;\n highlight: string;\n after?: string;\n baseColor?: string;\n highlightColor?: string;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function InlineHighlight({\n before,\n highlight,\n after = \"\",\n baseColor = FLOOR_TEXT,\n highlightColor = palette.ACCENT_STRONG,\n fontFamily = resolveTypeface(\"display\"),\n fontSize = 48,\n fontWeight = 600,\n speed = 1,\n className,\n}: InlineHighlightProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n const progress = interpolate(\n frame,\n [durationInFrames * 0.2, durationInFrames * 0.7],\n [0, 1],\n { extrapolateLeft: \"clamp\", extrapolateRight: \"clamp\" },\n );\n\n const color = recolor(progress, baseColor, highlightColor);\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize,\n fontWeight,\n color: baseColor,\n letterSpacing: \"-0.03em\",\n fontFamily,\n textShadow: resolveContrast().textShadow,\n }}\n >\n {before}\n <span style={{ color }}>{highlight}</span>\n {after}\n </span>\n </TextStage>\n );\n}\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT, FLOOR_SHADOW } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\n\nexport interface KaraokeWord {\n /** Word text */\n text: string;\n /** Start time in milliseconds */\n startMs: number;\n /** End time in milliseconds */\n endMs: number;\n}\n\nexport interface KaraokeTokens {\n fontFamily?: string;\n fontSize?: number;\n textColor?: string;\n activeColor?: string;\n activeScale?: number;\n}\n\nexport interface KaraokeProps {\n /** Array of timed words */\n words: KaraokeWord[];\n /** Text position */\n position?: 'center' | 'left' | 'right' | 'bottom';\n /** Design tokens */\n tokens?: KaraokeTokens;\n}\n\n/**\n * Word-by-word highlight synced to timing.\n *\n * Each word has a start/end time in milliseconds. The active word gets\n * accent color and a subtle scale boost via spring physics.\n * Inactive past words stay full opacity; future words are dimmed.\n */\nexport const Karaoke: React.FC<KaraokeProps> = ({\n words,\n position = 'center',\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps, durationInFrames } = useVideoConfig();\n\n const {\n fontFamily = resolveTypeface('caption'),\n fontSize = 56,\n textColor = FLOOR_TEXT,\n activeColor = palette.ACCENT,\n activeScale = 1.15,\n } = tokens;\n\n const currentTimeMs = (frame / fps) * 1000;\n\n // Exit fade\n const fadeOut = interpolate(\n frame,\n [durationInFrames - 15, durationInFrames],\n [1, 0],\n { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' },\n );\n\n // Position mapping\n const justifyContent =\n position === 'center' ? 'center' : position === 'right' ? 'flex-end' : 'flex-start';\n const alignItems =\n position === 'bottom' ? 'flex-end'\n : position === 'center' ? 'center'\n : position === 'right' ? 'flex-end'\n : 'flex-start';\n\n return (\n <AbsoluteFill\n style={{\n justifyContent: position === 'bottom' ? 'flex-end' : 'center',\n alignItems,\n padding: 60,\n paddingBottom: position === 'bottom' ? 120 : 60,\n }}\n >\n <div style={{ opacity: fadeOut }}>\n <div\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent,\n gap: '4px 12px',\n }}\n >\n {words.map((word, i) => {\n const isActive =\n currentTimeMs >= word.startMs && currentTimeMs < word.endMs;\n const isPast = currentTimeMs >= word.endMs;\n const isFuture = currentTimeMs < word.startMs;\n\n // Scale spring for active word\n const activeFrame = isActive\n ? Math.round(((currentTimeMs - word.startMs) / 1000) * fps)\n : 0;\n const scaleSpr = isActive\n ? spring({\n fps,\n frame: activeFrame,\n config: { damping: 14, stiffness: 200 },\n })\n : isPast\n ? 1\n : 0;\n\n const scale = isActive\n ? interpolate(scaleSpr, [0, 1], [1, activeScale])\n : 1;\n\n const opacity = isFuture ? 0.4 : 1;\n const color = isActive ? activeColor : textColor;\n\n return (\n <span\n key={i}\n style={{\n fontSize,\n fontWeight: isActive ? 800 : 600,\n fontFamily,\n color,\n opacity,\n transform: `scale(${scale})`,\n display: 'inline-block',\n transition: 'color 0.1s',\n textShadow: FLOOR_SHADOW,\n }}\n >\n {word.text}\n </span>\n );\n })}\n </div>\n </div>\n </AbsoluteFill>\n );\n};\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\nimport { fitTextOnNLines } from '@remotion/layout-utils';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT, FLOOR_SHADOW } from '../../lib/text/contrast';\nimport { resolveFitFontSize } from '../../lib/text/fitText';\nimport * as palette from '../../lib/palette';\n\n// Per-word primitive: each word is its own animated span, so we can't hand the whole\n// phrase to a single <FitText> without killing the stagger. Instead derive one shrink-\n// to-fit size for the full phrase (same measurement FitText uses) and apply it to every\n// word span — long phrases shrink then wrap instead of overflowing, replacing the old\n// hard maxLength cap.\nconst PHRASE_TEXT_WIDTH = 1600;\n\nexport interface KineticTypeTokens {\n fontFamily?: string;\n fontSize?: number;\n textColor?: string;\n}\n\nexport interface KineticTypeProps {\n /** Text content */\n text: string;\n /** Animation style */\n animation?: 'fly-in' | 'rotate' | 'scale-bounce' | 'cascade';\n /** Text position */\n position?: 'center' | 'left' | 'right';\n /** Accent color for the payoff (last) word. Empty string disables. */\n accentColor?: string;\n /** Design tokens */\n tokens?: KineticTypeTokens;\n}\n\n/**\n * Motion typography with per-word choreography.\n *\n * Each word animates in with spring physics and staggered timing.\n * Four animation styles for different moods:\n * - fly-in: words slide up from below\n * - rotate: words rotate in from tilted angle\n * - scale-bounce: words pop in with scale overshoot\n * - cascade: words drop in from above with gravity feel\n */\nexport const KineticType: React.FC<KineticTypeProps> = ({\n text,\n animation = 'fly-in',\n position = 'center',\n accentColor = palette.ACCENT,\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps, durationInFrames } = useVideoConfig();\n\n const {\n fontFamily = resolveTypeface('display'),\n fontSize = 110,\n textColor = FLOOR_TEXT,\n } = tokens;\n\n const words = text.split(' ').filter(Boolean);\n const staggerFrames = 4;\n\n // Shrink-to-fit font size for the whole phrase (keyed off content, not frame, so the\n // measurement runs once — not every animation frame). Applied uniformly to each word.\n const fittedFontSize = React.useMemo(() => {\n if (text.trim().length === 0) return fontSize;\n try {\n const { fontSize: fit } = fitTextOnNLines({\n text,\n maxLines: 2,\n maxBoxWidth: PHRASE_TEXT_WIDTH,\n fontFamily,\n fontWeight: 700,\n maxFontSize: fontSize,\n validateFontIsLoaded: false,\n });\n return resolveFitFontSize({\n singleLineFitFontSize: fit,\n minFontSize: Math.round(fontSize * 0.55),\n maxFontSize: fontSize,\n }).fontSize;\n } catch {\n return fontSize;\n }\n }, [text, fontFamily, fontSize]);\n\n // Exit fade\n const fadeOut = interpolate(\n frame,\n [durationInFrames - 15, durationInFrames],\n [1, 0],\n { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' },\n );\n\n // Position mapping\n const justifyContent =\n position === 'center' ? 'center' : position === 'right' ? 'flex-end' : 'flex-start';\n\n const getWordStyle = (index: number): React.CSSProperties => {\n const delay = index * staggerFrames;\n const spr = spring({\n fps,\n frame: Math.max(0, frame - delay),\n config:\n animation === 'scale-bounce'\n ? { damping: 9, stiffness: 130, mass: 0.7 }\n : { damping: 12, stiffness: 110, mass: 0.8 },\n });\n\n const opacity = interpolate(spr, [0, 0.3], [0, 1], {\n extrapolateRight: 'clamp',\n });\n\n switch (animation) {\n case 'fly-in': {\n const translateY = interpolate(spr, [0, 1], [130, 0]);\n const blur = interpolate(spr, [0, 0.7], [7, 0], { extrapolateRight: 'clamp' });\n const scale = interpolate(spr, [0, 1], [0.92, 1]);\n return { opacity, filter: `blur(${blur}px)`, transform: `translateY(${translateY}px) scale(${scale})` };\n }\n case 'rotate': {\n const rotate = interpolate(spr, [0, 1], [-24, 0]);\n const translateY = interpolate(spr, [0, 1], [70, 0]);\n return {\n opacity,\n transform: `translateY(${translateY}px) rotate(${rotate}deg)`,\n transformOrigin: 'bottom left',\n };\n }\n case 'scale-bounce': {\n const scale = interpolate(spr, [0, 1], [0.2, 1]);\n return { opacity, transform: `scale(${scale})` };\n }\n case 'cascade': {\n const translateY = interpolate(spr, [0, 1], [-150, 0]);\n const blur = interpolate(spr, [0, 0.7], [7, 0], { extrapolateRight: 'clamp' });\n return { opacity, filter: `blur(${blur}px)`, transform: `translateY(${translateY}px)` };\n }\n default:\n return { opacity };\n }\n };\n\n return (\n <AbsoluteFill\n style={{\n justifyContent: 'center',\n alignItems: position === 'center' ? 'center' : position === 'right' ? 'flex-end' : 'flex-start',\n padding: 60,\n }}\n >\n <div\n style={{\n opacity: fadeOut,\n // Idle life: the settled phrase breathes imperceptibly.\n transform: `scale(${1 + Math.sin((2 * Math.PI * 0.06 * frame) / fps) * 0.008})`,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent,\n gap: '0 14px',\n }}\n >\n {words.map((word, i) => (\n <span\n key={i}\n style={{\n fontSize: fittedFontSize,\n fontWeight: 800,\n fontFamily,\n color:\n accentColor && i === words.length - 1 ? accentColor : textColor,\n display: 'inline-block',\n textShadow: FLOOR_SHADOW,\n ...getWordStyle(i),\n }}\n >\n {word}\n </span>\n ))}\n </div>\n </div>\n </AbsoluteFill>\n );\n};\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { FitText } from '../../lib/text/fitText';\nimport * as palette from '../../lib/palette';\n\n// Cap the bar's text width so long names/roles shrink (then wrap/ellipsize) instead of\n// spilling the bar off the left-anchored frame edge — replaces the old hard maxLength.\nconst BAR_TEXT_WIDTH = 820;\n\nexport interface LowerThirdTokens {\n fontFamily?: string;\n fontSize?: number;\n subtitleFontSize?: number;\n textColor?: string;\n accentColor?: string;\n backgroundColor?: string;\n}\n\nexport interface LowerThirdProps {\n /** Primary text (speaker name, topic) */\n text: string;\n /** Secondary text (title, role) */\n subtitle?: string;\n /** Visual variant */\n variant?: 'classic' | 'modern' | 'cinematic';\n /** Design tokens */\n tokens?: LowerThirdTokens;\n}\n\n/**\n * Speaker/topic identification bar at the bottom of the screen.\n *\n * Migrated from lower-third template. Spring-driven slide entrance/exit.\n *\n * Variants:\n * - classic: accent color bar on primary text, dark background on subtitle\n * - modern: full accent background with rounded corners\n * - cinematic: thin accent border-left with translucent dark background\n */\nexport const LowerThird: React.FC<LowerThirdProps> = ({\n text,\n subtitle,\n variant = 'classic',\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps, durationInFrames } = useVideoConfig();\n\n const {\n fontFamily = resolveTypeface('caption'),\n fontSize = 28,\n subtitleFontSize = 20,\n textColor = FLOOR_TEXT,\n accentColor = palette.ACCENT_STRONG,\n backgroundColor = 'rgba(0, 0, 0, 0.7)',\n } = tokens;\n\n // Spring-driven entrance\n const enterSpring = spring({\n fps,\n frame,\n config: { damping: 15, stiffness: 100 },\n });\n\n // Spring-driven exit\n const exitFrame = Math.max(0, frame - (durationInFrames - 15));\n const exitSpring = durationInFrames - frame <= 15\n ? spring({\n fps,\n frame: exitFrame,\n config: { damping: 15, stiffness: 120 },\n })\n : 0;\n\n const slideIn = interpolate(enterSpring, [0, 1], [-100, 0]);\n const slideOut = interpolate(exitSpring, [0, 1], [0, 100]);\n const translateX = slideIn + slideOut;\n\n const opacity = interpolate(enterSpring, [0, 0.3], [0, 1], {\n extrapolateRight: 'clamp',\n }) * (1 - exitSpring);\n\n // --- Variant styles ---\n const renderContent = () => {\n switch (variant) {\n case 'modern':\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n background: accentColor,\n padding: '10px 24px',\n borderRadius: 8,\n }}\n >\n <FitText\n maxFontSize={fontSize}\n maxWidth={BAR_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={700}\n style={{ color: textColor }}\n >\n {text}\n </FitText>\n {subtitle && (\n <FitText\n maxFontSize={subtitleFontSize}\n maxWidth={BAR_TEXT_WIDTH}\n maxLines={2}\n fontFamily={fontFamily}\n fontWeight={400}\n style={{ color: `${textColor}CC` }}\n >\n {subtitle}\n </FitText>\n )}\n </div>\n );\n\n case 'cinematic':\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n background: backgroundColor,\n padding: '12px 24px',\n borderLeft: `3px solid ${accentColor}`,\n }}\n >\n <FitText\n maxFontSize={fontSize}\n maxWidth={BAR_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={600}\n letterSpacing=\"1px\"\n textTransform=\"uppercase\"\n style={{ color: textColor }}\n >\n {text}\n </FitText>\n {subtitle && (\n <FitText\n maxFontSize={subtitleFontSize}\n maxWidth={BAR_TEXT_WIDTH}\n maxLines={2}\n fontFamily={fontFamily}\n fontWeight={300}\n letterSpacing=\"0.5px\"\n style={{ color: `${textColor}99` }}\n >\n {subtitle}\n </FitText>\n )}\n </div>\n );\n\n case 'classic':\n default:\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 4 }}>\n <FitText\n maxFontSize={fontSize}\n maxWidth={BAR_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={700}\n style={{ background: accentColor, padding: '8px 20px', borderRadius: 4, color: textColor }}\n >\n {text}\n </FitText>\n {subtitle && (\n <FitText\n maxFontSize={subtitleFontSize}\n maxWidth={BAR_TEXT_WIDTH}\n maxLines={2}\n fontFamily={fontFamily}\n fontWeight={400}\n style={{ background: backgroundColor, padding: '6px 20px', borderRadius: 4, color: `${textColor}E6` }}\n >\n {subtitle}\n </FitText>\n )}\n </div>\n );\n }\n };\n\n return (\n <AbsoluteFill>\n <div\n style={{\n position: 'absolute',\n bottom: 80,\n left: 40,\n transform: `translateX(${translateX}%)`,\n opacity,\n }}\n >\n {renderContent()}\n </div>\n </AbsoluteFill>\n );\n};\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - single-source markerColor from config (was #facc15 here, disagreeing\n * with the config token fallback #fde047)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { interpolate, spring, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { recolor } from \"../../lib/text/recolor\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport * as palette from \"../../lib/palette\";\n\nexport interface MarkerHighlightProps {\n before?: string;\n highlight: string;\n after?: string;\n markerColor?: string;\n baseColor?: string;\n highlightedTextColor?: string;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function MarkerHighlight({\n before = \"\",\n highlight,\n after = \"\",\n markerColor = palette.WARNING,\n baseColor = FLOOR_TEXT,\n highlightedTextColor = palette.SURFACE,\n fontFamily = resolveTypeface(\"display\"),\n fontSize = 72,\n fontWeight = 600,\n speed = 1,\n className,\n}: MarkerHighlightProps) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n\n const markerScale = spring({\n frame: frame - 15,\n fps,\n config: { damping: 14 },\n });\n\n const textColor = recolor(\n interpolate(markerScale, [0.5, 0.8], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n }),\n baseColor,\n highlightedTextColor,\n );\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize,\n fontWeight,\n color: baseColor,\n letterSpacing: \"-0.03em\",\n fontFamily,\n }}\n >\n {before}\n <span style={{ position: \"relative\", display: \"inline-block\" }}>\n <span\n aria-hidden\n style={{\n position: \"absolute\",\n inset: \"0 -0.1em\",\n background: markerColor,\n transformOrigin: \"left center\",\n transform: `scaleX(${markerScale})`,\n zIndex: 0,\n }}\n />\n <span style={{ position: \"relative\", zIndex: 1, color: textColor }}>\n {highlight}\n </span>\n </span>\n {after}\n </span>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - single-source baseColor/shineColor from config (were #3f3f46 / #fafafa\n * here, disagreeing with the config token fallbacks #a1a1aa / #ffffff)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { useMemo } from \"react\";\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { fitTextOnNLines } from \"@remotion/layout-utils\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { resolveFitFontSize } from \"../../lib/text/fitText\";\n\nexport interface ShimmerSweepProps {\n text: string;\n baseColor?: string;\n shineColor?: string;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function ShimmerSweep({\n text,\n baseColor = \"#a1a1aa\",\n shineColor = \"#ffffff\",\n fontFamily = resolveTypeface(\"display\"),\n fontSize = 96,\n fontWeight = 700,\n speed = 1,\n className,\n}: ShimmerSweepProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n const position = interpolate(\n frame,\n [0, durationInFrames * 0.8],\n [200, -100],\n { extrapolateLeft: \"clamp\", extrapolateRight: \"clamp\" },\n );\n\n // Auto-fit: shrink the display size once (memoized on content, not frame) so the\n // shimmer base + gradient overlay stay aligned and long text fits the stage instead\n // of overflowing. Both layers use the same fitted size.\n const fittedFontSize = useMemo(() => {\n const t = (text ?? \"\").trim();\n if (!t) return fontSize;\n try {\n const { fontSize: fs } = fitTextOnNLines({\n text: t,\n maxLines: 1,\n maxBoxWidth: 1500,\n fontFamily,\n fontWeight,\n letterSpacing: \"-0.03em\",\n maxFontSize: fontSize,\n validateFontIsLoaded: false,\n });\n return resolveFitFontSize({\n singleLineFitFontSize: fs,\n minFontSize: Math.round(fontSize * 0.5),\n maxFontSize: fontSize,\n }).fontSize;\n } catch {\n return fontSize;\n }\n }, [text, fontFamily, fontSize, fontWeight]);\n\n const textStyle: React.CSSProperties = {\n fontSize: fittedFontSize,\n fontWeight,\n letterSpacing: \"-0.03em\",\n fontFamily,\n margin: 0,\n lineHeight: 1,\n };\n\n return (\n <TextStage>\n <div style={{ position: \"relative\", display: \"inline-block\" }}>\n <span style={{ ...textStyle, color: baseColor }}>{text}</span>\n <span\n className={className}\n style={{\n ...textStyle,\n position: \"absolute\",\n inset: 0,\n color: \"transparent\",\n backgroundClip: \"text\",\n WebkitBackgroundClip: \"text\",\n backgroundImage: `linear-gradient(110deg, transparent 30%, ${shineColor} 50%, transparent 70%)`,\n backgroundSize: \"200% 100%\",\n backgroundPosition: `${position}% 50%`,\n }}\n >\n {text}\n </span>\n </div>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind real display typeface + bake contrast shadow (was `inherit`, no shadow)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { staggerUp, staggerRise, resolveEasing } from \"../../lib/text/motion\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\n\nexport interface StaggeredFadeUpProps {\n text: string;\n staggerDelay?: number;\n /** Per-word stagger gap in ms (converted to frames at the comp fps). Overrides\n * `staggerDelay` when set. Brand-bindable via `$brand:motion.staggerMs`. */\n staggerMs?: number;\n /** Easing keyword applied to each word's fade + rise. Brand-bindable via\n * `$brand:motion.easing`. Absent → linear (the original cascade). */\n easing?: string;\n distance?: number;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function StaggeredFadeUp({\n text,\n staggerDelay = 4,\n staggerMs,\n easing,\n distance = 20,\n fontSize = 72,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 600,\n speed = 1,\n className,\n}: StaggeredFadeUpProps) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n // Brand stagger is authored in ms; convert to the frame gap staggerUp expects.\n const staggerFrames = staggerMs != null ? Math.round((staggerMs / 1000) * fps) : staggerDelay;\n // Brand easing shapes the (otherwise linear) fade/rise. Absent → identity, so\n // the original cascade renders unchanged.\n const ease = resolveEasing(easing);\n\n const words = text.split(\" \");\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize,\n fontWeight,\n color,\n letterSpacing: \"-0.03em\",\n fontFamily,\n textShadow: resolveContrast().textShadow,\n }}\n >\n {words.map((word, i) => {\n const { opacity: linearO } = staggerUp(frame, i, staggerFrames, 12, distance);\n // Ease the linear fade + rise via the shared 0→1 progress so the brand's\n // easing identity reaches the curve; `ease` is identity when unset.\n // staggerRise is division-free, so distance:0 yields 0 (not NaN).\n const opacity = ease(linearO);\n const y = staggerRise(distance, linearO, ease);\n return (\n <span\n key={i}\n style={{\n display: \"inline-block\",\n marginRight: \"0.25em\",\n opacity,\n transform: `translateY(${y}px)`,\n }}\n >\n {word}\n </span>\n );\n })}\n </span>\n </TextStage>\n );\n}\n","import React from 'react';\nimport * as palette from '../../lib/palette';\n\ntype TextEffectType = 'gradient' | 'neon' | 'glow' | 'wave' | 'outline' | 'shadow';\n\nexport interface TextEffectProps {\n /** Effect type to apply */\n type: TextEffectType;\n /** Colors for gradient effects (array of CSS color strings) */\n colors?: string[];\n /** Primary color for single-color effects (neon, glow, outline, shadow) */\n color?: string;\n /** Effect intensity 0-1 (default 0.8) */\n intensity?: number;\n /** Content to apply the effect to */\n children?: React.ReactNode;\n /** Text to style when no children are passed — makes the effect usable\n * via params (agents can't pass children). */\n text?: string;\n}\n\n/**\n * Composable wrapper that applies CSS text effects to any child text primitive.\n *\n * Usage:\n * <TextEffect type=\"neon\" color=\"#f2913c\">\n * <CinematicTitle content=\"NEON TITLE\" />\n * </TextEffect>\n *\n * Not included in the catalog since it's a composable wrapper, not a standalone primitive.\n */\nexport const TextEffect: React.FC<TextEffectProps> = ({\n type,\n colors = [palette.DANGER, palette.TEAL, palette.BLUE],\n color = palette.ACCENT,\n intensity = 0.8,\n children,\n text,\n}) => {\n const getEffectStyle = (): React.CSSProperties => {\n const spread = Math.round(intensity * 30);\n const blur = Math.round(intensity * 20);\n\n switch (type) {\n case 'gradient': {\n const gradient = `linear-gradient(90deg, ${colors.join(', ')})`;\n return {\n background: gradient,\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundClip: 'text',\n };\n }\n case 'neon':\n return {\n textShadow: [\n `0 0 ${Math.round(blur * 0.3)}px ${color}`,\n `0 0 ${Math.round(blur * 0.6)}px ${color}`,\n `0 0 ${blur}px ${color}`,\n `0 0 ${spread}px ${color}80`,\n ].join(', '),\n };\n case 'glow':\n return {\n textShadow: `0 0 ${blur}px ${color}, 0 0 ${spread}px ${color}60`,\n };\n case 'wave': {\n // Wave uses gradient shimmer\n const gradient = `linear-gradient(90deg, ${colors[0]}, ${colors[1] ?? colors[0]}, ${colors[2] ?? colors[0]}, ${colors[0]})`;\n return {\n background: gradient,\n backgroundSize: '200% 100%',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundClip: 'text',\n };\n }\n case 'outline':\n return {\n WebkitTextStroke: `${Math.max(1, Math.round(intensity * 3))}px ${color}`,\n color: 'transparent',\n };\n case 'shadow':\n return {\n textShadow: `${Math.round(intensity * 4)}px ${Math.round(intensity * 4)}px ${Math.round(intensity * 8)}px ${color}`,\n };\n default:\n return {};\n }\n };\n\n // Bare-text use (params-only, no children): give the text a real display\n // stage — centered display type. A bare 16px span was invisible at 1080p.\n const bareStage: React.CSSProperties = children\n ? {}\n : {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n padding: '0 6%',\n fontSize: 140,\n fontWeight: 800,\n letterSpacing: '-0.02em',\n color: palette.TEXT_HI,\n fontFamily: 'inherit',\n };\n return (\n <div style={{ ...bareStage, ...getEffectStyle() }}>\n {children ?? text}\n </div>\n );\n};\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind real display typeface + bake contrast shadow (was `inherit`, no shadow)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\n\nexport interface TextFadeReplaceProps {\n from: string;\n to: string;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function TextFadeReplace({\n from,\n to,\n fontSize = 48,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 600,\n speed = 1,\n className,\n}: TextFadeReplaceProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n const stops = [\n 0,\n durationInFrames * 0.4,\n durationInFrames * 0.6,\n durationInFrames,\n ];\n\n const fromOpacity = interpolate(frame, stops, [1, 1, 0, 0], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n const fromY = interpolate(frame, stops, [0, 0, -12, -12], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n const toOpacity = interpolate(frame, stops, [0, 0, 1, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n const toY = interpolate(frame, stops, [12, 12, 0, 0], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n const baseSpanStyle: React.CSSProperties = {\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n fontSize,\n fontWeight,\n color,\n letterSpacing: \"-0.03em\",\n fontFamily,\n textShadow: resolveContrast().textShadow,\n whiteSpace: \"nowrap\",\n };\n\n return (\n <TextStage>\n <div style={{ position: \"relative\", width: 0, height: 0 }}>\n <span\n className={className}\n style={{\n ...baseSpanStyle,\n opacity: fromOpacity,\n transform: `translate(-50%, calc(-50% + ${fromY}px))`,\n }}\n >\n {from}\n </span>\n <span\n className={className}\n style={{\n ...baseSpanStyle,\n opacity: toOpacity,\n transform: `translate(-50%, calc(-50% + ${toY}px))`,\n }}\n >\n {to}\n </span>\n </div>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind real display typeface + bake contrast shadow (was `inherit`, no shadow)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport React from \"react\";\nimport { interpolate, spring, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { fitTextOnNLines } from \"@remotion/layout-utils\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { resolveFitFontSize } from \"../../lib/text/fitText\";\n\n// The letter-spacing here ANIMATES (spread → condense) — it IS the effect — so we can't\n// hand it to a plain <FitText> (that would re-measure every frame and fight the\n// animation). Instead we size once against the SETTLED spacing so the resting phrase\n// fits the frame, then keep the animated spacing on render. Replaces the old maxLength.\nconst TRACKING_IN_TEXT_WIDTH = 1500;\nconst TRACKING_IN_SETTLED_SPACING = \"-0.03em\";\n\nexport interface TrackingInProps {\n text: string;\n startTracking?: number;\n startBlur?: number;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function TrackingIn({\n text,\n startTracking = 0.5,\n startBlur = 12,\n fontSize = 96,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 700,\n speed = 1,\n className,\n}: TrackingInProps) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n\n const t = spring({\n frame,\n fps,\n config: { damping: 18, stiffness: 90 },\n });\n\n const letterSpacing = interpolate(t, [0, 1], [startTracking, -0.03]) + \"em\";\n const blurAmount = interpolate(t, [0, 1], [startBlur, 0]);\n const opacity = interpolate(frame, [0, 15], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n // Shrink-to-fit the resting phrase (settled spacing, single line). Keyed off content,\n // not frame, so it measures once.\n const fittedFontSize = React.useMemo(() => {\n if (text.trim().length === 0) return fontSize;\n try {\n const { fontSize: fit } = fitTextOnNLines({\n text,\n maxLines: 1,\n maxBoxWidth: TRACKING_IN_TEXT_WIDTH,\n fontFamily,\n fontWeight,\n letterSpacing: TRACKING_IN_SETTLED_SPACING,\n maxFontSize: fontSize,\n validateFontIsLoaded: false,\n });\n return resolveFitFontSize({\n singleLineFitFontSize: fit,\n minFontSize: Math.round(fontSize * 0.55),\n maxFontSize: fontSize,\n }).fontSize;\n } catch {\n return fontSize;\n }\n }, [text, fontFamily, fontWeight, fontSize]);\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize: fittedFontSize,\n fontWeight,\n color,\n letterSpacing,\n opacity,\n filter: `blur(${blurAmount}px)`,\n fontFamily,\n textShadow: resolveContrast().textShadow,\n maxWidth: TRACKING_IN_TEXT_WIDTH,\n whiteSpace: \"nowrap\",\n }}\n >\n {text}\n </span>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - bake the shared contrast shadow so text survives over any footage\n * - default to a video-safe off-white instead of `#171717` page-dark\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport React from \"react\";\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { fitTextOnNLines } from \"@remotion/layout-utils\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { resolveFitFontSize } from \"../../lib/text/fitText\";\n\n// Progressive reveal + inline cursor: we can't hand the growing `visibleText` to a plain\n// <FitText> (it would resize per character) — so we size once against the FULL text (same\n// measurement FitText uses) and let the revealed span wrap within this box. Replaces the\n// old hard maxLength.\nconst TYPEWRITER_TEXT_WIDTH = 1500;\nconst TYPEWRITER_MAX_LINES = 3;\nconst TYPEWRITER_LETTER_SPACING = \"-0.03em\";\n\nexport interface TypewriterProps {\n text: string;\n cursor?: boolean;\n /** Typing speed in characters per second. */\n charsPerSecond?: number;\n /** Playback speed multiplier (1 = normal, 2 = twice as fast). */\n speed?: number;\n fontSize?: number;\n color?: string;\n cursorColor?: string;\n fontFamily?: string;\n fontWeight?: number;\n className?: string;\n}\n\nexport function Typewriter({\n text,\n cursor = true,\n charsPerSecond = 20,\n speed = 1,\n fontSize = 48,\n color = FLOOR_TEXT,\n cursorColor = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 600,\n className,\n}: TypewriterProps) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n\n const charsToRevealOver = (text.length / charsPerSecond) * fps;\n\n const revealed = Math.floor(\n interpolate(frame, [0, charsToRevealOver], [0, text.length], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n }),\n );\n\n const visibleText = text.substring(0, revealed);\n const isCursorVisible = Math.floor((frame / fps) * 2) % 2 === 0;\n\n // Fit against the full text (not the growing reveal) so the size stays constant while\n // it types. Keyed off content, not frame, so it measures once.\n const fittedFontSize = React.useMemo(() => {\n if (text.trim().length === 0) return fontSize;\n try {\n const { fontSize: fit } = fitTextOnNLines({\n text,\n maxLines: TYPEWRITER_MAX_LINES,\n maxBoxWidth: TYPEWRITER_TEXT_WIDTH,\n fontFamily,\n fontWeight,\n letterSpacing: TYPEWRITER_LETTER_SPACING,\n maxFontSize: fontSize,\n validateFontIsLoaded: false,\n });\n return resolveFitFontSize({\n singleLineFitFontSize: fit,\n minFontSize: Math.round(fontSize * 0.55),\n maxFontSize: fontSize,\n }).fontSize;\n } catch {\n return fontSize;\n }\n }, [text, fontFamily, fontWeight, fontSize]);\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize: fittedFontSize,\n fontWeight,\n color,\n letterSpacing: TYPEWRITER_LETTER_SPACING,\n fontFamily,\n textShadow: resolveContrast().textShadow,\n maxWidth: TYPEWRITER_TEXT_WIDTH,\n whiteSpace: \"pre-wrap\",\n overflowWrap: \"break-word\",\n textAlign: \"center\",\n }}\n >\n {visibleText}\n {cursor && (\n <span\n style={{\n display: \"inline-block\",\n width: \"0.08em\",\n height: \"1em\",\n marginLeft: \"0.04em\",\n verticalAlign: \"text-bottom\",\n background: cursorColor,\n opacity: isCursorVisible ? 1 : 0,\n }}\n />\n )}\n </span>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind the real bundled mono typeface (Space Mono floor) instead of the\n * generic `monospace` system face\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { random, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { FitText } from \"../../lib/text/fitText\";\nimport * as palette from \"../../lib/palette\";\n\n// Full-frame centered mono decode; cap the text box so long strings shrink-to-fit\n// (then ellipsize) instead of overflowing the frame — replaces the old hard maxLength.\nconst DECODE_TEXT_WIDTH = 1500;\n\nexport interface MatrixDecodeProps {\n text: string;\n charset?: string;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n revealDuration?: number;\n speed?: number;\n className?: string;\n}\n\nexport function MatrixDecode({\n text,\n charset = \"!@#$%^&*()_+-=<>?/\\\\|\",\n fontSize = 72,\n color = palette.SUCCESS,\n fontFamily = resolveTypeface(\"mono\"),\n fontWeight = 600,\n revealDuration = 60,\n speed = 1,\n}: MatrixDecodeProps) {\n const frame = useCurrentFrame() * speed;\n // useVideoConfig kept for consistency with sibling primitives\n useVideoConfig();\n\n let output = \"\";\n for (let i = 0; i < text.length; i++) {\n const revealFrame = (i / Math.max(text.length, 1)) * revealDuration;\n if (text[i] === \" \") {\n output += \" \";\n } else if (frame >= revealFrame) {\n output += text[i];\n } else {\n const r = random(`${i}-${Math.floor(frame / 2)}`);\n const ch = charset[Math.floor(r * charset.length)];\n output += ch;\n }\n }\n\n return (\n <TextStage>\n <FitText\n maxFontSize={fontSize}\n maxWidth={DECODE_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n letterSpacing=\"0.05em\"\n style={{ color, whiteSpace: \"pre\" }}\n >\n {output}\n </FitText>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - drop the opaque `#fafafa` full-frame card and wrap in the transparent\n * TextStage so the glitch overlays footage instead of painting over it\n * - switch the R/G/B copies from `multiply` (needed the white card) to\n * `screen` additive blend + a video-safe off-white base, so the chromatic\n * split reads as a neon glow over real footage; bake the contrast shadow\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { random, useCurrentFrame } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { FitText } from \"../../lib/text/fitText\";\n\n// Full-frame centered glitch title; cap the text box so long copy shrinks-to-fit\n// instead of overflowing. The base + the 3 chromatic-split copies all pass the SAME\n// font params, so FitText resolves the SAME size for each and they stay aligned.\nconst GLITCH_TEXT_WIDTH = 1500;\n\nexport interface RGBGlitchTextProps {\n text: string;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n glitchAt?: number;\n glitchDuration?: number;\n intensity?: number;\n seed?: string;\n speed?: number;\n className?: string;\n}\n\nexport function RGBGlitchText({\n text,\n fontSize = 96,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 700,\n glitchAt = 20,\n glitchDuration = 8,\n intensity = 6,\n seed = \"glitch\",\n speed = 1,\n className,\n}: RGBGlitchTextProps) {\n const frame = useCurrentFrame() * speed;\n\n const isGlitching = frame >= glitchAt && frame < glitchAt + glitchDuration;\n\n const offset = (axisSeed: string, scale: number) =>\n (random(`${seed}-${axisSeed}-${frame}`) * 2 - 1) * scale;\n\n const rX = isGlitching ? offset(\"r-x\", intensity) : 0;\n const rY = isGlitching ? offset(\"r-y\", intensity * 0.4) : 0;\n const gX = isGlitching ? offset(\"g-x\", intensity) : 0;\n const gY = isGlitching ? offset(\"g-y\", intensity * 0.4) : 0;\n const bX = isGlitching ? offset(\"b-x\", intensity) : 0;\n const bY = isGlitching ? offset(\"b-y\", intensity * 0.4) : 0;\n\n const copyOpacity = isGlitching ? 1 : 0;\n\n const copyBaseStyle: React.CSSProperties = {\n position: \"absolute\",\n top: 0,\n left: 0,\n whiteSpace: \"pre\",\n mixBlendMode: \"screen\",\n };\n\n return (\n <TextStage>\n <div\n className={className}\n style={{ position: \"relative\", display: \"inline-block\" }}\n >\n <FitText\n maxFontSize={fontSize}\n maxWidth={GLITCH_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n letterSpacing=\"-0.03em\"\n style={{\n position: \"relative\",\n color,\n whiteSpace: \"pre\",\n textShadow: resolveContrast().textShadow,\n }}\n >\n {text}\n </FitText>\n <FitText\n maxFontSize={fontSize}\n maxWidth={GLITCH_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n letterSpacing=\"-0.03em\"\n style={{\n ...copyBaseStyle,\n color: \"#ff0040\",\n opacity: copyOpacity,\n transform: `translateX(${rX}px) translateY(${rY}px)`,\n }}\n >\n {text}\n </FitText>\n <FitText\n maxFontSize={fontSize}\n maxWidth={GLITCH_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n letterSpacing=\"-0.03em\"\n style={{\n ...copyBaseStyle,\n color: \"#00ff80\",\n opacity: copyOpacity,\n transform: `translateX(${gX}px) translateY(${gY}px)`,\n }}\n >\n {text}\n </FitText>\n <FitText\n maxFontSize={fontSize}\n maxWidth={GLITCH_TEXT_WIDTH}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n letterSpacing=\"-0.03em\"\n style={{\n ...copyBaseStyle,\n color: \"#0080ff\",\n opacity: copyOpacity,\n transform: `translateX(${bX}px) translateY(${bY}px)`,\n }}\n >\n {text}\n </FitText>\n </div>\n </TextStage>\n );\n}\n","import React from 'react';\nimport { AbsoluteFill, interpolate, spring, useCurrentFrame, useVideoConfig } from 'remotion';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT, FLOOR_SHADOW } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\n\nexport interface QuoteCardTokens {\n fontFamily?: string;\n fontSize?: number;\n textColor?: string;\n}\n\nexport interface QuoteCardProps {\n /** The quote (no surrounding quote marks — the card draws its own). */\n quote: string;\n /** Attribution name. */\n author?: string;\n /** Attribution role/company line. */\n role?: string;\n /** Accent for the quote mark + attribution rule. */\n accentColor?: string;\n tokens?: QuoteCardTokens;\n}\n\n/**\n * Attributed testimonial: an oversized quote mark drops in with weight, the\n * quote reveals word-by-word (masked rise), then an accent rule draws and the\n * attribution fades up. Ends on a quiet hold with a breathing quote mark.\n */\nexport const QuoteCard: React.FC<QuoteCardProps> = ({\n quote,\n author = '',\n role = '',\n accentColor = palette.ACCENT,\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps } = useVideoConfig();\n const t = frame / fps;\n\n const {\n fontFamily = resolveTypeface('display'),\n fontSize = 62,\n textColor = FLOOR_TEXT,\n } = tokens;\n\n // Quote mark: drops in with spring weight, then breathes at idle.\n const markIn = spring({ frame, fps, config: { damping: 13, stiffness: 140, mass: 1.1 } });\n const markSettled = markIn > 0.98;\n const markScale =\n interpolate(markIn, [0, 1], [1.6, 1]) *\n (markSettled ? 1 + Math.sin(2 * Math.PI * 0.07 * t) * 0.012 : 1);\n\n // Words rise in staggered behind a mask.\n const words = quote.split(' ').filter(Boolean);\n const wordStyle = (i: number): React.CSSProperties => {\n const s = spring({\n frame: frame - 6 - i * 2,\n fps,\n config: { damping: 15, stiffness: 130, mass: 0.7 },\n });\n return {\n display: 'inline-block',\n opacity: interpolate(s, [0, 0.4], [0, 1], { extrapolateRight: 'clamp' }),\n transform: `translateY(${interpolate(s, [0, 1], [26, 0])}px)`,\n };\n };\n\n const attribStart = 6 + words.length * 2 + 8;\n const ruleP = interpolate(frame, [attribStart, attribStart + 16], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n const attribIn = spring({\n frame: frame - attribStart - 6,\n fps,\n config: { damping: 15, stiffness: 110, mass: 0.8 },\n });\n\n return (\n <AbsoluteFill style={{ justifyContent: 'center', alignItems: 'center' }}>\n <div style={{ maxWidth: '72%', textAlign: 'left' }}>\n <div\n style={{\n fontFamily,\n fontSize: fontSize * 2.6,\n fontWeight: 800,\n lineHeight: 0.6,\n color: accentColor,\n opacity: interpolate(markIn, [0, 0.3], [0, 1], { extrapolateRight: 'clamp' }),\n transform: `scale(${markScale})`,\n transformOrigin: 'left bottom',\n marginBottom: fontSize * 0.2,\n textShadow: FLOOR_SHADOW,\n }}\n >\n “\n </div>\n <div\n style={{\n fontFamily,\n fontSize,\n fontWeight: 600,\n lineHeight: 1.32,\n letterSpacing: '-0.01em',\n color: textColor,\n textShadow: FLOOR_SHADOW,\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0 0.28em',\n }}\n >\n {words.map((w, i) => (\n <span key={i} style={wordStyle(i)}>\n {w}\n </span>\n ))}\n </div>\n {(author || role) && (\n <div style={{ marginTop: fontSize * 0.7 }}>\n <div\n style={{\n height: 3,\n width: `${ruleP * 12}%`,\n background: accentColor,\n borderRadius: 2,\n marginBottom: fontSize * 0.3,\n }}\n />\n <div\n style={{\n fontFamily,\n opacity: interpolate(attribIn, [0, 1], [0, 1]),\n transform: `translateY(${interpolate(attribIn, [0, 1], [14, 0])}px)`,\n textShadow: FLOOR_SHADOW,\n }}\n >\n {author && (\n <span style={{ fontSize: fontSize * 0.42, fontWeight: 700, color: textColor }}>\n {author}\n </span>\n )}\n {role && (\n <span\n style={{\n fontSize: fontSize * 0.38,\n fontWeight: 400,\n color: textColor,\n opacity: 0.6,\n marginLeft: author ? '0.8em' : 0,\n }}\n >\n {role}\n </span>\n )}\n </div>\n </div>\n )}\n </div>\n </AbsoluteFill>\n );\n};\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind real display typeface + bake contrast shadow (was `inherit`, no shadow)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { spring, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\n\nexport interface SlotMachineRollProps {\n from?: string;\n to?: string;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function SlotMachineRoll({\n from = \"$99\",\n to = \"$199\",\n fontSize = 120,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 700,\n speed = 1,\n className,\n}: SlotMachineRollProps) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n\n const len = Math.max(from.length, to.length);\n const paddedFrom = from.padStart(len, \" \");\n const paddedTo = to.padStart(len, \" \");\n\n const columns = [];\n for (let i = 0; i < len; i++) {\n const raw = spring({\n frame: frame - i * 4,\n fps,\n config: { damping: 14 },\n });\n const t = Math.max(0, Math.min(1, raw));\n columns.push(\n <span\n key={i}\n style={{\n display: \"inline-block\",\n overflow: \"hidden\",\n height: \"1.1em\",\n lineHeight: \"1.1em\",\n verticalAlign: \"top\",\n width: \"0.7em\",\n textAlign: \"center\",\n }}\n >\n <span\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n transform: `translateY(${-t * fontSize * 1.1}px)`,\n }}\n >\n <span>{paddedFrom[i]}</span>\n <span>{paddedTo[i]}</span>\n </span>\n </span>,\n );\n }\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize,\n fontWeight,\n color,\n letterSpacing: \"-0.03em\",\n fontFamily,\n textShadow: resolveContrast().textShadow,\n lineHeight: 1.1,\n }}\n >\n {columns}\n </span>\n </TextStage>\n );\n}\n","import React from 'react';\nimport { AbsoluteFill, Easing, interpolate, spring, useCurrentFrame, useVideoConfig } from 'remotion';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT, FLOOR_SHADOW } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\n\nexport interface StatCounterTokens {\n fontFamily?: string;\n fontSize?: number;\n textColor?: string;\n}\n\nexport interface StatCounterProps {\n /** The number that lands. Counts up from 0. */\n value: number;\n /** Prefix glyphs rendered before the number ('$', '€', '~'). */\n prefix?: string;\n /** Suffix glyphs rendered after the number ('+', '%', 'k', 'M'). */\n suffix?: string;\n /** Caption under the number ('Active users', 'ARR'). */\n label?: string;\n /** Accent for the underline + suffix. */\n accentColor?: string;\n /** Decimal places shown while counting and at rest. */\n decimals?: number;\n /** Frames the count-up takes (default 45). */\n countFrames?: number;\n position?: 'center' | 'left' | 'right';\n tokens?: StatCounterTokens;\n}\n\n/**\n * The launch-video staple: a big number counts up and LANDS — expo-eased so the\n * last digits settle slowly, with a scale settle, an accent underline that draws\n * as the count completes, and a label that rises in after. Tabular numerals keep\n * the digits from jittering horizontally. Idle: the underline glows gently.\n */\nexport const StatCounter: React.FC<StatCounterProps> = ({\n value,\n prefix = '',\n suffix = '',\n label = '',\n accentColor = palette.ACCENT,\n decimals = 0,\n countFrames = 45,\n position = 'center',\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps } = useVideoConfig();\n const t = frame / fps;\n\n const {\n fontFamily = resolveTypeface('display'),\n fontSize = 190,\n textColor = FLOOR_TEXT,\n } = tokens;\n\n // Count with expo ease-out: the number sprints then settles into place.\n const countP = interpolate(frame, [0, countFrames], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n easing: Easing.out(Easing.exp),\n });\n const shown = (value * countP).toLocaleString('en-US', {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n });\n\n // Scale settle on entry.\n const enter = spring({ frame, fps, config: { damping: 16, stiffness: 120, mass: 0.9 } });\n const scale = interpolate(enter, [0, 1], [0.94, 1]);\n const opacity = interpolate(enter, [0, 0.4], [0, 1], { extrapolateRight: 'clamp' });\n\n // Underline draws as the count completes; idle glow after.\n const lineP = interpolate(frame, [countFrames * 0.6, countFrames * 1.2], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n easing: Easing.bezier(0.65, 0, 0.35, 1),\n });\n const idleGlow = 0.55 + Math.sin(2 * Math.PI * 0.4 * t) * 0.2;\n\n // Label rises after the number lands.\n const labelIn = spring({\n frame: frame - countFrames * 0.7,\n fps,\n config: { damping: 15, stiffness: 110, mass: 0.8 },\n });\n\n const align =\n position === 'center' ? 'center' : position === 'right' ? 'flex-end' : 'flex-start';\n const textAlign = position === 'center' ? 'center' : position === 'right' ? 'right' : 'left';\n\n return (\n <AbsoluteFill style={{ justifyContent: 'center', alignItems: align, padding: 80 }}>\n <div style={{ opacity, transform: `scale(${scale})`, textAlign: textAlign as never }}>\n <div\n style={{\n fontFamily,\n fontSize,\n fontWeight: 800,\n letterSpacing: '-0.03em',\n color: textColor,\n textShadow: FLOOR_SHADOW,\n fontVariantNumeric: 'tabular-nums',\n lineHeight: 1.05,\n whiteSpace: 'nowrap',\n }}\n >\n {prefix}\n {shown}\n <span style={{ color: accentColor }}>{suffix}</span>\n </div>\n <div\n style={{\n height: Math.max(4, fontSize * 0.035),\n width: `${lineP * 100}%`,\n marginTop: fontSize * 0.08,\n marginLeft: position === 'right' ? 'auto' : position === 'center' ? 'auto' : 0,\n marginRight: position === 'left' ? 'auto' : position === 'center' ? 'auto' : 0,\n background: accentColor,\n borderRadius: 4,\n opacity: lineP >= 1 ? idleGlow : 0.9,\n }}\n />\n {label && (\n <div\n style={{\n fontFamily,\n fontSize: Math.round(fontSize * 0.19),\n fontWeight: 500,\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n color: textColor,\n opacity: interpolate(labelIn, [0, 1], [0, 0.75]),\n transform: `translateY(${interpolate(labelIn, [0, 1], [18, 0])}px)`,\n marginTop: fontSize * 0.12,\n textShadow: FLOOR_SHADOW,\n }}\n >\n {label}\n </div>\n )}\n </div>\n </AbsoluteFill>\n );\n};\n","import React from 'react';\nimport { AbsoluteFill, interpolate, useCurrentFrame, useVideoConfig } from 'remotion';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT, FLOOR_SHADOW } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\n\nexport interface TokenStreamTokens {\n fontFamily?: string;\n fontSize?: number;\n textColor?: string;\n}\n\nexport interface TokenStreamProps {\n /** The response text that streams in. */\n text: string;\n /** Average tokens (word-chunks) per second (default 9). */\n tokensPerSecond?: number;\n /** Cursor + shimmer accent. */\n accentColor?: string;\n /** Frames to hold before streaming starts (default 8). */\n startAt?: number;\n tokens?: TokenStreamTokens;\n}\n\n/** Deterministic per-index jitter, 0..1. */\nfunction jitter(i: number, seed: number): number {\n let h = Math.imul(i + 1, 374761393) + Math.imul(seed, 668265263);\n h = Math.imul(h ^ (h >>> 13), 1274126177);\n return ((h ^ (h >>> 16)) >>> 0) / 4294967295;\n}\n\n/**\n * THE AI visual: a response streams in token-by-token — chunks arrive on an\n * irregular, human-feeling cadence (deterministic jitter, occasional micro-\n * pauses like a model catching its breath), each token fades up in ~4 frames,\n * and a block cursor pulses at the head. When the stream completes the cursor\n * blinks twice and fades. Left-aligned running text, not a typewriter gimmick.\n */\nexport const TokenStream: React.FC<TokenStreamProps> = ({\n text,\n tokensPerSecond = 9,\n accentColor = palette.ACCENT,\n startAt = 8,\n tokens = {},\n}) => {\n const frame = useCurrentFrame();\n const { fps } = useVideoConfig();\n\n const {\n fontFamily = resolveTypeface('display'),\n fontSize = 54,\n textColor = FLOOR_TEXT,\n } = tokens;\n\n const words = text.split(' ').filter(Boolean);\n\n // Arrival frame per token: base cadence + jitter; every ~7th token pauses\n // a beat longer (the model \"thinking\"), deterministically.\n const base = fps / tokensPerSecond;\n const arrivals: number[] = [];\n let tAcc = startAt;\n for (let i = 0; i < words.length; i++) {\n const j = jitter(i, 7);\n tAcc += base * (0.55 + j * 0.9) + (j > 0.86 ? base * 2.2 : 0);\n arrivals.push(tAcc);\n }\n const done = arrivals.length ? arrivals[arrivals.length - 1] + 6 : startAt;\n\n // Cursor: pulses while streaming; after done, blinks twice then fades.\n const streaming = frame < done;\n const cursorOpacity = streaming\n ? 0.55 + Math.sin((2 * Math.PI * 2.2 * frame) / fps) * 0.45\n : frame < done + 24\n ? Math.round(((frame - done) / 8) % 2) === 0\n ? 1\n : 0.1\n : interpolate(frame, [done + 24, done + 36], [1, 0], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n\n // All words render from frame 0 (invisible until arrival) so the block\n // keeps its final layout — no half-line jump when the text wraps. The\n // cursor is absolutely positioned inside the last-arrived word so it\n // rides the stream without disturbing the flow.\n const arrivedCount = arrivals.filter((a) => frame >= a).length;\n const cursorAt = Math.max(0, arrivedCount - 1);\n\n return (\n <AbsoluteFill style={{ justifyContent: 'center', alignItems: 'center' }}>\n <div\n style={{\n maxWidth: '68%',\n fontFamily,\n fontSize,\n fontWeight: 500,\n lineHeight: 1.42,\n letterSpacing: '-0.005em',\n color: textColor,\n textShadow: FLOOR_SHADOW,\n }}\n >\n {words.map((w, i) => {\n const a = arrivals[i];\n const o = interpolate(frame, [a, a + 4], [0, 1], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n const rise = interpolate(frame, [a, a + 5], [6, 0], {\n extrapolateLeft: 'clamp',\n extrapolateRight: 'clamp',\n });\n return (\n <span\n key={i}\n style={{\n display: 'inline-block',\n position: 'relative',\n transform: `translateY(${rise}px)`,\n marginRight: '0.26em',\n }}\n >\n <span style={{ opacity: o }}>{w}</span>\n {i === cursorAt && (\n <span\n style={{\n position: 'absolute',\n left: arrivedCount === 0 ? 0 : '100%',\n marginLeft: arrivedCount === 0 ? 0 : '0.13em',\n bottom: fontSize * -0.08,\n width: fontSize * 0.5,\n height: fontSize * 1.02,\n background: accentColor,\n borderRadius: 3,\n opacity: cursorOpacity,\n }}\n />\n )}\n </span>\n );\n })}\n </div>\n </AbsoluteFill>\n );\n};\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind a real display typeface (typeface floor) instead of `inherit`\n * - bake the shared contrast shadow + video-safe off-white text\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { useMemo } from \"react\";\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { fitTextOnNLines } from \"@remotion/layout-utils\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { resolveFitFontSize } from \"../../lib/text/fitText\";\n\nexport interface StrikethroughReplaceProps {\n from: string;\n to: string;\n lineColor?: string;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function StrikethroughReplace({\n from,\n to,\n lineColor = \"#ff5e3a\",\n fontSize = 48,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 600,\n speed = 1,\n className,\n}: StrikethroughReplaceProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n // Phases:\n // 0 .. 40% -> draw strikethrough across `from`\n // 40% .. 60% -> fade out `from`, fade in `to`\n // 60% .. 100% -> hold\n const strikeEnd = durationInFrames * 0.4;\n const fadeStart = durationInFrames * 0.4;\n const fadeEnd = durationInFrames * 0.6;\n\n const linePct = interpolate(frame, [0, strikeEnd], [0, 100], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n const fromOpacity = interpolate(frame, [fadeStart, fadeEnd], [1, 0], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n const toOpacity = interpolate(frame, [fadeStart, fadeEnd], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n const toY = interpolate(frame, [fadeStart, fadeEnd], [8, 0], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n // Auto-fit: size both words to the LONGER of from/to (so the swap stays aligned and\n // centered), shrinking once instead of overflowing at the fixed size. Memoized on\n // content, not frame.\n const fittedFontSize = useMemo(() => {\n const longest = [from, to]\n .map((s) => (s ?? \"\").trim())\n .sort((a, b) => b.length - a.length)[0] || \"\";\n if (!longest) return fontSize;\n try {\n const { fontSize: fs } = fitTextOnNLines({\n text: longest,\n maxLines: 1,\n maxBoxWidth: 1400,\n fontFamily,\n fontWeight,\n letterSpacing: \"-0.03em\",\n maxFontSize: fontSize,\n validateFontIsLoaded: false,\n });\n return resolveFitFontSize({\n singleLineFitFontSize: fs,\n minFontSize: Math.round(fontSize * 0.5),\n maxFontSize: fontSize,\n }).fontSize;\n } catch {\n return fontSize;\n }\n }, [from, to, fontFamily, fontSize, fontWeight]);\n\n const textStyle: React.CSSProperties = {\n fontSize: fittedFontSize,\n fontWeight,\n color,\n letterSpacing: \"-0.03em\",\n fontFamily,\n whiteSpace: \"nowrap\",\n textShadow: resolveContrast().textShadow,\n };\n\n return (\n <TextStage>\n <div\n style={{\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* from text with strikethrough line */}\n <span\n className={className}\n style={{\n ...textStyle,\n position: \"absolute\",\n opacity: fromOpacity,\n }}\n >\n {from}\n <span\n aria-hidden\n style={{\n position: \"absolute\",\n left: 0,\n top: \"50%\",\n height: Math.max(2, Math.round(fittedFontSize * 0.08)),\n width: `${linePct}%`,\n background: lineColor,\n transform: \"translateY(-50%)\",\n borderRadius: 2,\n }}\n />\n </span>\n\n {/* to text */}\n <span\n className={className}\n style={{\n ...textStyle,\n opacity: toOpacity,\n transform: `translateY(${toY}px)`,\n }}\n >\n {to}\n </span>\n </div>\n </TextStage>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - bind real display typeface + bake contrast shadow (was `inherit`, no shadow)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { useMemo } from \"react\";\nimport { spring, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { fitTextOnNLines } from \"@remotion/layout-utils\";\nimport { TextStage } from \"../../lib/text/stage\";\nimport { resolveContrast, FLOOR_TEXT } from \"../../lib/text/contrast\";\nimport { resolveTypeface } from \"../../lib/text/typeface\";\nimport { resolveFitFontSize } from \"../../lib/text/fitText\";\n\nexport interface MaskedSlideRevealProps {\n text: string;\n staggerDelay?: number;\n fontSize?: number;\n color?: string;\n fontFamily?: string;\n fontWeight?: number;\n speed?: number;\n className?: string;\n}\n\nexport function MaskedSlideReveal({\n text,\n staggerDelay = 3,\n fontSize = 72,\n color = FLOOR_TEXT,\n fontFamily = resolveTypeface(\"display\"),\n fontWeight = 700,\n speed = 1,\n className,\n}: MaskedSlideRevealProps) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n\n const words = text.split(\" \");\n\n // Auto-fit: size the whole phrase to the stage (up to 2 lines), shrinking once\n // (memoized on content, not frame) so the per-word reveal survives and long text\n // wraps/shrinks instead of overflowing.\n const fittedFontSize = useMemo(() => {\n const t = (text ?? \"\").trim();\n if (!t) return fontSize;\n try {\n const { fontSize: fs } = fitTextOnNLines({\n text: t,\n maxLines: 2,\n maxBoxWidth: 1500,\n fontFamily,\n fontWeight,\n letterSpacing: \"-0.03em\",\n maxFontSize: fontSize,\n validateFontIsLoaded: false,\n });\n return resolveFitFontSize({\n singleLineFitFontSize: fs,\n minFontSize: Math.round(fontSize * 0.5),\n maxFontSize: fontSize,\n }).fontSize;\n } catch {\n return fontSize;\n }\n }, [text, fontFamily, fontSize, fontWeight]);\n\n return (\n <TextStage>\n <span\n className={className}\n style={{\n fontSize: fittedFontSize,\n fontWeight,\n color,\n letterSpacing: \"-0.03em\",\n fontFamily,\n textShadow: resolveContrast().textShadow,\n }}\n >\n {words.map((word, i) => {\n const t = spring({\n frame: frame - i * staggerDelay,\n fps,\n config: { damping: 14 },\n });\n return (\n <span\n key={i}\n style={{\n display: \"inline-block\",\n overflow: \"hidden\",\n verticalAlign: \"bottom\",\n lineHeight: 1,\n marginRight: \"0.25em\",\n }}\n >\n <span\n style={{\n display: \"inline-block\",\n transform: `translateY(${(1 - t) * 100}%)`,\n }}\n >\n {word}\n </span>\n </span>\n );\n })}\n </span>\n </TextStage>\n );\n}\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { BlurReveal } from './index';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(160).describe(\n 'The text to reveal. Shorter reads best — longer strings make the focus-pull feel slow. Auto-fits: long copy shrinks to fit the frame (then wraps), so it no longer overflows.',\n ),\n blur: z.number().min(0).max(40).default(10).describe(\n 'Initial blur radius in pixels. Higher = more dramatic focus-pull. 6–14 is the sweet spot.',\n ),\n fontSize: z.number().min(16).max(240).default(96).describe(\n 'Font size in pixels at the canonical 1920×1080 frame.',\n ),\n fontWeight: z.number().min(100).max(900).default(600).describe(\n 'CSS font weight. 600 reads as confident; 800+ feels like a headline.',\n ),\n color: z.string().default(FLOOR_TEXT).describe(\n 'Text color. Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.',\n ),\n fontFamily: z.string().default(resolveTypeface('display')).describe(\n 'Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme it.',\n ),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier. 1 = normal; 2 = twice as fast.',\n ),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'blur-reveal',\n component: BlurReveal,\n name: 'Blur Reveal',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'reveal-text',\n description:\n 'Single line of text fades in from a heavy gaussian blur into sharp focus. The \"focus pull\" feel makes it ideal for cinematic title cards, brand reveals, and product taglines where the audience should land on one phrase.',\n useWhen:\n 'Hero opens, brand statements, single-line callouts. Avoid for >40-character strings (the blur duration scales with content and starts feeling sluggish), and avoid combining with another text primitive that also fades — pick one focal element per beat.',\n pairsWith: ['mesh-gradient-bg', 'dynamic-grid', 'success-confetti'],\n avoidWith: ['typewriter', 'staggered-fade-up'],\n tier: 'standard',\n useCase: ['title-over-footage', 'full-scene'],\n tags: ['text', 'reveal', 'blur', 'cinematic', 'title', 'hero'],\n mood: ['cinematic', 'editorial', 'minimal', 'soft'],\n\n paramsSchema,\n propDefaults: { blur: 10, fontSize: 96, fontWeight: 600, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), speed: 1 },\n\n examples: [\n {\n name: 'editorial',\n mood: ['editorial', 'minimal'],\n params: { text: 'A film by someone', blur: 8, fontSize: 96, fontWeight: 600, color: FLOOR_TEXT, speed: 1 },\n description: 'Calm, magazine-style reveal over footage. Default values; safest pick.',\n },\n {\n name: 'cinematic-bold',\n mood: ['cinematic', 'aggressive'],\n params: { text: 'CINEMATIC', blur: 14, fontSize: 144, fontWeight: 800, color: palette.TEXT_HI, speed: 0.85 },\n description: 'Heavier blur + bigger weight + slower speed — feels like a film opening.',\n },\n {\n name: 'product-tagline',\n mood: ['corporate', 'minimal'],\n params: { text: 'Built for builders.', blur: 6, fontSize: 72, fontWeight: 500, color: FLOOR_TEXT, speed: 1.2 },\n description: 'Subtle product-page tagline. Lower blur, lighter weight, slightly faster.',\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'editorial' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { CinematicTitle } from './index';\n\nconst tokensSchema = z.object({\n fontFamily: z.string().default(resolveTypeface('display')),\n fontSize: z.number().optional(),\n subtextFontSize: z.number().optional(),\n textColor: z.string().default(FLOOR_TEXT),\n accentColor: z.string().optional(),\n letterSpacing: z.number().optional(),\n}).passthrough();\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(80).describe('Primary title text. Auto-fits: long copy shrinks to fit the frame (then wraps/ellipsizes), so you are not capped at a cramped line.'),\n subtitle: z.string().max(140).optional().describe('Optional subtitle line. Used for byline / film-credit style (\"a film by ...\"). Auto-fits and wraps to 2 lines.'),\n variant: z.enum(['default', 'bold', 'zoom']).default('default').describe(\n 'Visual variant. default: letterboxed fade with letter-spacing tighten. bold: heavier weight + spring entrance. zoom: scale-from-blur with overshoot.',\n ),\n position: z.enum(['center', 'top', 'bottom']).default('center').describe('Vertical position of the title block.'),\n tokens: tokensSchema.default({}).describe('Visual tokens. fontFamily, fontSize, textColor, accentColor, letterSpacing.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'cinematic-title',\n component: CinematicTitle,\n name: 'Cinematic Title',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'name-card',\n description:\n 'Full-screen title card with cinematic letterbox bars sliding in, primary text fading up, and optional subtitle. Three variants tune the entrance physics: default (subtle), bold (heavy spring), zoom (scale-from-blur with overshoot).',\n useWhen:\n 'Film opens, brand intros, dramatic chapter cards. Avoid for in-story callouts or quick beats — the letterbox bars and exit animation eat 40+ frames.',\n pairsWith: ['light-leak', 'mesh-gradient-bg', 'parallax', 'vignette'],\n avoidWith: ['lower-third', 'kinetic-type'],\n tier: 'standard',\n useCase: ['intro', 'full-scene'],\n tags: ['text', 'title', 'cinematic', 'letterbox', 'hero', 'card'],\n mood: ['cinematic', 'editorial'],\n\n paramsSchema,\n propDefaults: { variant: 'default', position: 'center' },\n\n examples: [\n {\n name: 'classic',\n mood: ['cinematic'],\n params: { text: 'CINEMATIC', subtitle: 'A film by someone', variant: 'default', position: 'center' },\n },\n {\n name: 'bold-impact',\n mood: ['cinematic', 'aggressive'],\n params: { text: 'CHAPTER ONE', variant: 'bold', position: 'center' },\n },\n {\n name: 'zoom-reveal',\n mood: ['cinematic'],\n params: { text: 'NEXT', variant: 'zoom', position: 'center' },\n },\n ],\n\n textParam: 'text',\n subtextParam: 'subtitle',\n\n tokens: [\n { propPath: 'tokens.textColor', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'tokens.accentColor', cssVar: '--cf-accent', fallback: palette.WARNING, brandKitPath: 'colors.accent' },\n { propPath: 'tokens.fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'classic' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { InlineHighlight } from './index';\n\nconst paramsSchema = z.object({\n // `before` was required; relaxed to optional with empty default so a\n // degenerate \"single highlighted word, no preceding context\" pick is\n // valid. The renderer treats empty `before` as no-op text. Agent\n // picks where the highlighted word is the entire phrase (a common\n // editorial choice on short hooks) no longer crash the render with\n // `inline-highlight: invalid params — before: Required`. See Block 2\n // (editorial intelligence) for the upstream fix: validate agent tool\n // calls against the registry's paramsSchema before accepting them,\n // so the agent self-corrects instead of relying on schema relaxation.\n before: z.string().default('').describe('Text leading up to the highlighted word, including trailing space if any. Empty string is valid for \"single word\" picks.'),\n highlight: z.string().min(1).describe('The single word or phrase to emphasize.'),\n after: z.string().default('').describe('Text after the highlight, including leading space if any.'),\n baseColor: z.string().default(FLOOR_TEXT).describe('Color of the surrounding (non-highlighted) text. Defaults to a video-safe off-white so it survives over footage; pass $brand:colors.textOnMedia to theme it.'),\n highlightColor: z.string().default(palette.ACCENT_STRONG).describe('Color of the emphasized word. A warm accent by default; use a brand-kit accent for cascade.'),\n fontSize: z.number().min(16).max(180).default(72).describe('Font size in pixels at 1920×1080.'),\n fontWeight: z.number().min(100).max(900).default(600).describe('CSS font weight applied uniformly.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme it.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'inline-highlight',\n component: InlineHighlight,\n name: 'Inline Highlight',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'emphasize-word',\n description:\n 'Single sentence with one word color-shifting from a muted base color to a brand accent. The eye lands on the highlighted word naturally because the surrounding text fades to background.',\n useWhen:\n 'Caption callouts (e.g., \"the user said {important_word}\"), pull-quotes from a transcript, when you want to draw the eye to one specific word in a longer phrase. Avoid for short text where the highlight has nothing to contrast against.',\n pairsWith: ['marker-highlight', 'shimmer-sweep', 'mesh-gradient-bg'],\n avoidWith: ['marker-highlight'],\n tier: 'standard',\n useCase: ['emphasis'],\n tags: ['text', 'highlight', 'emphasis', 'word', 'caption', 'callout'],\n mood: ['editorial', 'minimal', 'corporate'],\n\n paramsSchema,\n propDefaults: { before: '', after: '', baseColor: FLOOR_TEXT, highlightColor: palette.ACCENT_STRONG, fontSize: 72, fontWeight: 600, speed: 1, fontFamily: resolveTypeface('display') },\n\n examples: [\n {\n name: 'product-emphasis',\n mood: ['corporate'],\n params: { before: 'Built for ', highlight: 'builders', after: '.', baseColor: FLOOR_TEXT, highlightColor: palette.ACCENT_STRONG, fontSize: 80, fontWeight: 700, speed: 1 },\n },\n {\n name: 'quote-pull',\n mood: ['editorial'],\n params: { before: 'It just ', highlight: 'works', after: '.', baseColor: palette.TEXT_MUTED, highlightColor: palette.TEAL, fontSize: 96, fontWeight: 500, speed: 0.9 },\n },\n ],\n\n textParam: 'highlight',\n subtextParam: null,\n\n tokens: [\n { propPath: 'baseColor', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'highlightColor', cssVar: '--cf-accent', fallback: palette.ACCENT_STRONG, brandKitPath: 'colors.accent' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'product-emphasis' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { Karaoke } from './index';\n\nconst wordSchema = z.object({\n text: z.string().min(1),\n startMs: z.number().min(0),\n endMs: z.number().min(0),\n});\n\nconst tokensSchema = z.object({\n fontFamily: z.string().default(resolveTypeface('caption')),\n fontSize: z.number().optional(),\n textColor: z.string().default(FLOOR_TEXT),\n activeColor: z.string().optional(),\n activeScale: z.number().optional(),\n}).passthrough();\n\nconst paramsSchema = z.object({\n words: z.array(wordSchema).min(1).describe(\n 'Array of timed words. Each word has text + startMs/endMs in milliseconds relative to the clip start. Source from the transcript.',\n ),\n position: z.enum(['center', 'left', 'right', 'bottom']).default('center').describe('Block position. \"bottom\" is canonical for caption-style overlays.'),\n tokens: tokensSchema.default({}).describe('Visual tokens. fontFamily, fontSize, textColor, activeColor, activeScale.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'karaoke',\n component: Karaoke,\n name: 'Karaoke',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'caption-sync',\n description:\n 'Word-by-word highlighted captions synced to speech timing. Each word gets a spring scale boost and accent color when its timestamp is active. Past words stay full-opacity; future words dim to 0.4. Reads as confident, transcript-backed captioning.',\n useWhen:\n 'Podcast clips, interview reels, any video where the audio is the source and the captions need to land word-perfect. Requires structured `words[]` from a transcript pipeline (Groq Whisper, AssemblyAI, etc.) — do NOT use plain text. For non-synced text, use typewriter or staggered-fade-up.',\n pairsWith: ['lower-third', 'mesh-gradient-bg', 'pulsing-indicator'],\n avoidWith: ['typewriter', 'staggered-fade-up', 'kinetic-type'],\n tier: 'niche',\n useCase: ['title-over-footage'],\n tags: ['text', 'captions', 'karaoke', 'synced', 'transcript', 'word-level', 'podcast'],\n mood: ['editorial', 'breaking-news', 'minimal'],\n\n paramsSchema,\n propDefaults: { position: 'center' },\n\n examples: [\n {\n name: 'podcast-bottom',\n mood: ['editorial'],\n params: {\n words: [\n { text: 'The', startMs: 0, endMs: 200 },\n { text: 'whole', startMs: 200, endMs: 500 },\n { text: 'point', startMs: 500, endMs: 800 },\n { text: 'is', startMs: 800, endMs: 1000 },\n { text: 'distribution.', startMs: 1000, endMs: 1600 },\n ],\n position: 'bottom',\n },\n description: 'Standard podcast-clip caption position with 5 words sample.',\n },\n ],\n\n textParam: null,\n subtextParam: null,\n\n tokens: [\n { propPath: 'tokens.textColor', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'tokens.activeColor', cssVar: '--cf-accent', fallback: palette.ACCENT, brandKitPath: 'colors.accent' },\n { propPath: 'tokens.fontFamily', cssVar: '--cf-font-caption', fallback: resolveTypeface('caption'), brandKitPath: 'fonts.caption' },\n ],\n\n durationInFrames: 60,\n fps: 30,\n width: 1080,\n height: 1920,\n\n preview: { thumbnailFrame: 30, mode: 'loop', defaultExample: 'podcast-bottom' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { KineticType } from './index';\n\nconst tokensSchema = z.object({\n fontFamily: z.string().default(resolveTypeface('display')),\n fontSize: z.number().optional(),\n textColor: z.string().default(FLOOR_TEXT),\n}).passthrough();\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(200).describe('Multi-word phrase. Each word animates independently with stagger. Auto-fits: the phrase shrinks to fit the frame (then wraps) so you are not capped at a short line.'),\n animation: z.enum(['fly-in', 'rotate', 'scale-bounce', 'cascade']).default('fly-in').describe(\n 'Per-word animation style. fly-in: slide up. rotate: rotate from tilt. scale-bounce: spring scale pop. cascade: drop from above.',\n ),\n position: z.enum(['center', 'left', 'right']).default('center').describe('Horizontal alignment of the word block.'),\n accentColor: z.string().default(palette.ACCENT).describe('Accent for the payoff (last) word. Empty string disables.'),\n tokens: tokensSchema.default({}).describe('Visual tokens. fontFamily, fontSize, textColor.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'kinetic-type',\n component: KineticType,\n name: 'Kinetic Type',\n category: 'text',\n kind: 'component',\n version: '0.2.1',\n\n intent: 'reveal-text',\n description:\n 'Per-word motion typography with four animation styles. Each word springs in with stagger, bringing energy and pace to multi-word phrases. Different from staggered-fade-up: words have actual rotation/scale dynamics, not just position+fade.',\n useWhen:\n 'Hype reels, kinetic intros, brand statements that need movement. 3–10 words is the sweet spot. Avoid for read-along captions (use karaoke) or single words (use blur-reveal/tracking-in). The cascade and rotate variants feel playful — pick fly-in for editorial work.',\n pairsWith: ['mesh-gradient-bg', 'success-confetti', 'spring-pop-in'],\n avoidWith: ['karaoke', 'cinematic-title', 'staggered-fade-up'],\n tier: 'niche',\n useCase: ['emphasis', 'intro'],\n tags: ['text', 'kinetic', 'typography', 'motion', 'words', 'energetic'],\n mood: ['playful', 'aggressive', 'breaking-news'],\n\n paramsSchema,\n propDefaults: { animation: 'fly-in', position: 'center', accentColor: palette.ACCENT },\n\n examples: [\n {\n name: 'fly-in-statement',\n mood: ['editorial'],\n params: { text: 'Built for builders', animation: 'fly-in', position: 'center' },\n },\n {\n name: 'cascade-drama',\n mood: ['cinematic', 'aggressive'],\n params: { text: 'EVERYTHING CHANGES NOW', animation: 'cascade', position: 'center' },\n },\n {\n name: 'playful-bounce',\n mood: ['playful'],\n params: { text: 'It just works!', animation: 'scale-bounce', position: 'center' },\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'tokens.textColor', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'tokens.fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 45, mode: 'oneshot', defaultExample: 'fly-in-statement' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { LowerThird } from './index';\n\nconst tokensSchema = z.object({\n fontFamily: z.string().default(resolveTypeface('caption')),\n fontSize: z.number().optional(),\n subtitleFontSize: z.number().optional(),\n textColor: z.string().default(FLOOR_TEXT),\n accentColor: z.string().optional(),\n backgroundColor: z.string().optional(),\n}).passthrough();\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(80).describe('Primary line — speaker name or topic. Auto-fits (shrinks) to the bar.'),\n subtitle: z.string().max(120).optional().describe('Secondary line — title, role, or affiliation. Auto-fits (shrinks + wraps to 2 lines).'),\n variant: z.enum(['classic', 'modern', 'cinematic']).default('classic').describe(\n 'Visual variant. classic: split accent + dark sub bar. modern: full accent rounded bg. cinematic: borderLeft accent + translucent dark.',\n ),\n tokens: tokensSchema.default({}).describe('Visual tokens. fontFamily, fontSize, subtitleFontSize, textColor, accentColor, backgroundColor.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'lower-third',\n component: LowerThird,\n name: 'Lower Third',\n category: 'text',\n kind: 'component',\n version: '0.1.2',\n\n intent: 'name-card',\n description:\n 'Broadcast-style speaker identification bar at the lower-left. Spring slide-in from the left, spring slide-out at end. Three variants for different aesthetics: classic (TV news split-bar), modern (rounded accent block), cinematic (translucent with accent stripe).',\n useWhen:\n 'Identify the on-screen speaker, attribute a quote, name a location. Persistent throughout a 4–8 second beat. Avoid for content that needs full attention to the imagery — lower-thirds anchor the eye to the bottom-left.',\n pairsWith: ['karaoke', 'parallax', 'vignette', 'color-grade'],\n avoidWith: ['cinematic-title', 'changelog-bite'],\n tier: 'standard',\n useCase: ['title-over-footage'],\n tags: ['text', 'lower-third', 'broadcast', 'speaker', 'name', 'attribution'],\n mood: ['editorial', 'corporate', 'breaking-news'],\n\n paramsSchema,\n propDefaults: { variant: 'classic' },\n\n examples: [\n {\n name: 'classic-broadcast',\n mood: ['breaking-news'],\n params: { text: 'Maya Alvarez', subtitle: 'Head of Product', variant: 'classic' },\n },\n {\n name: 'modern-rounded',\n mood: ['corporate'],\n params: { text: 'Karan', subtitle: 'MindPump Podcast', variant: 'modern' },\n },\n {\n name: 'cinematic-stripe',\n mood: ['cinematic'],\n params: { text: 'The Speaker', subtitle: 'Topic of the moment', variant: 'cinematic' },\n },\n ],\n\n textParam: 'text',\n subtextParam: 'subtitle',\n\n tokens: [\n { propPath: 'tokens.textColor', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'tokens.accentColor', cssVar: '--cf-accent', fallback: palette.ACCENT_STRONG, brandKitPath: 'colors.accent' },\n { propPath: 'tokens.backgroundColor', cssVar: '--cf-overlay', fallback: 'rgba(0, 0, 0, 0.7)', brandKitPath: 'colors.overlay' },\n { propPath: 'tokens.fontFamily', cssVar: '--cf-font-sans', fallback: resolveTypeface('caption'), brandKitPath: 'fonts.body' },\n ],\n\n durationInFrames: 150,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'loop', defaultExample: 'classic-broadcast' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { MarkerHighlight } from './index';\n\nconst paramsSchema = z.object({\n before: z.string().default('').describe('Text leading up to the highlighted phrase.'),\n highlight: z.string().min(1).describe('The phrase to highlight with a swept marker.'),\n after: z.string().default('').describe('Text after the highlight.'),\n markerColor: z.string().default(palette.WARNING).describe('Marker/highlighter background color. Yellow is the canonical choice.'),\n baseColor: z.string().default(FLOOR_TEXT).describe('Color of unhighlighted text (sits over footage before the marker sweeps — video-safe off-white). The marker then recolors it to highlightedTextColor.'),\n highlightedTextColor: z.string().default(palette.SURFACE).describe('Color of text inside the marker (often same as base for contrast).'),\n fontSize: z.number().min(16).max(180).default(72).describe('Font size in pixels at 1920×1080.'),\n fontWeight: z.number().min(100).max(900).default(600).describe('CSS font weight applied uniformly.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme it.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'marker-highlight',\n component: MarkerHighlight,\n name: 'Marker Highlight',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'emphasize-word',\n description:\n 'A highlighter-style colored bar sweeps across a phrase, leaving a marker background behind it. Feels like physically marking up a transcript or note.',\n useWhen:\n 'Transcript callouts, quote highlighting, study/educational content. Pairs naturally with podcast clips where you want to flag a specific phrase the speaker said. Avoid combining with inline-highlight (both emphasize words; pick one).',\n pairsWith: ['typewriter', 'mesh-gradient-bg', 'pulsing-indicator'],\n avoidWith: ['inline-highlight'],\n tier: 'standard',\n useCase: ['emphasis'],\n tags: ['text', 'highlight', 'marker', 'emphasis', 'caption', 'transcript'],\n mood: ['editorial', 'playful'],\n\n paramsSchema,\n propDefaults: { before: '', after: '', markerColor: palette.WARNING, baseColor: FLOOR_TEXT, highlightedTextColor: palette.SURFACE, fontSize: 72, fontWeight: 600, speed: 1, fontFamily: resolveTypeface('display') },\n\n examples: [\n {\n name: 'classic-yellow',\n mood: ['editorial'],\n params: { before: 'The whole point is ', highlight: 'distribution', after: '.', markerColor: palette.WARNING, baseColor: FLOOR_TEXT, highlightedTextColor: palette.SURFACE, fontSize: 80, fontWeight: 600, speed: 1 },\n },\n {\n name: 'brand-accent',\n mood: ['corporate'],\n params: { before: 'It needs to be ', highlight: 'fast', after: ' and reliable.', markerColor: palette.TEAL, baseColor: FLOOR_TEXT, highlightedTextColor: palette.TEXT_HI, fontSize: 72, fontWeight: 700, speed: 0.9 },\n description: 'Brand-color marker with white text inside. Higher-contrast than the yellow default.',\n },\n ],\n\n textParam: 'highlight',\n subtextParam: null,\n\n tokens: [\n { propPath: 'markerColor', cssVar: '--cf-accent', fallback: palette.WARNING, brandKitPath: 'colors.accent' },\n { propPath: 'baseColor', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'classic-yellow' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { ShimmerSweep } from './index';\nimport * as palette from '../../lib/palette';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(160).describe('The text to shimmer across. Auto-fits (shrinks) to the stage.'),\n baseColor: z.string().default('#a1a1aa').describe('Resting color of the text. Muted/desaturated reads best.'),\n shineColor: z.string().default('#ffffff').describe('Color of the sweeping shine. White or near-white feels metallic.'),\n fontSize: z.number().min(16).max(240).default(96).describe('Font size in pixels at 1920×1080.'),\n fontWeight: z.number().min(100).max(900).default(700).describe('CSS font weight. Bold weights catch the shimmer better.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier — controls sweep tempo.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme it.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'shimmer-sweep',\n component: ShimmerSweep,\n name: 'Shimmer Sweep',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'emphasize-word',\n description:\n 'A bright shine sweeps left-to-right across the text, briefly catching like light on metal. Subtle motion that adds polish without competing with the content.',\n useWhen:\n 'Loop-friendly emphasis when the text needs to feel \"alive\" but not distract. Logo treatments, premium product names, awards-show vibes. Avoid for time-pressured content (the loop reads as slow).',\n pairsWith: ['mesh-gradient-bg', 'success-confetti', 'spring-pop-in'],\n avoidWith: [],\n tier: 'standard',\n useCase: ['background', 'emphasis'],\n tags: ['text', 'shimmer', 'sweep', 'shine', 'metallic', 'loop', 'polish'],\n mood: ['cinematic', 'corporate', 'minimal'],\n\n paramsSchema,\n propDefaults: { baseColor: '#a1a1aa', shineColor: '#ffffff', fontSize: 96, fontWeight: 700, speed: 1, fontFamily: resolveTypeface('display') },\n\n examples: [\n {\n name: 'silver-loop',\n mood: ['cinematic'],\n params: { text: 'PREMIUM', baseColor: '#a1a1aa', shineColor: '#ffffff', fontSize: 144, fontWeight: 800, speed: 1 },\n },\n {\n name: 'brand-shine',\n mood: ['corporate'],\n params: { text: 'cueframe', baseColor: palette.TEXT_MUTED, shineColor: palette.ACCENT, fontSize: 96, fontWeight: 700, speed: 0.9 },\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'baseColor', cssVar: '--cf-text-muted', fallback: '#a1a1aa', brandKitPath: 'colors.textMuted' },\n { propPath: 'shineColor', cssVar: '--cf-accent', fallback: '#ffffff', brandKitPath: 'colors.accent' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 45, mode: 'loop', defaultExample: 'silver-loop' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { StaggeredFadeUp } from './index';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).describe('Text to split into words and reveal one at a time.'),\n staggerDelay: z.number().min(0.5).max(20).default(3).describe('Frames between each word\\'s entrance. Lower = faster cascade.'),\n // coerce: a $brand:motion.staggerMs MISS (no kit) falls back to the string '90'; coercion keeps it a number.\n staggerMs: z.coerce.number().nonnegative().optional().describe('Per-word stagger gap in ms (overrides staggerDelay). Bind to $brand:motion.staggerMs.'),\n easing: z.string().optional().describe('Easing keyword for each word\\'s fade/rise (linear/ease/ease-in/ease-out/ease-in-out). Bind to $brand:motion.easing.'),\n distance: z.number().min(0).max(200).default(40).describe('Pixels each word travels upward as it fades in. 30–60 is the sweet spot.'),\n fontSize: z.number().min(16).max(240).default(96).describe('Font size in pixels at 1920×1080.'),\n fontWeight: z.number().min(100).max(900).default(600).describe('CSS font weight applied uniformly.'),\n color: z.string().default(FLOOR_TEXT).describe('Text color. Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface; pass $brand:fonts.heading to theme.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'staggered-fade-up',\n component: StaggeredFadeUp,\n name: 'Staggered Fade Up',\n category: 'text',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'reveal-text',\n description:\n 'Words rise into view one at a time, each fading in with an upward translation. Reads as deliberate, considered prose — every word lands.',\n useWhen:\n 'Multi-word headlines (3–8 words), poetry/quote reveals, cinematic title cards where each word should register. Avoid for single words (use blur-reveal) or runs longer than ~10 words (cascade gets tedious).',\n pairsWith: ['mesh-gradient-bg', 'dynamic-grid', 'success-confetti'],\n avoidWith: ['blur-reveal', 'tracking-in'],\n tier: 'standard',\n useCase: ['title-over-footage'],\n tags: ['text', 'stagger', 'reveal', 'fade', 'words', 'cascade', 'cinematic'],\n mood: ['cinematic', 'editorial', 'soft'],\n\n paramsSchema,\n propDefaults: { staggerDelay: 3, distance: 40, fontSize: 96, fontWeight: 600, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), speed: 1 },\n\n examples: [\n {\n name: 'cinematic-headline',\n mood: ['cinematic'],\n params: { text: 'Built for builders', staggerDelay: 4, distance: 50, fontSize: 120, fontWeight: 700, color: FLOOR_TEXT, speed: 1 },\n },\n {\n name: 'poetic',\n mood: ['editorial', 'soft'],\n params: { text: 'A film by someone, somewhere', staggerDelay: 6, distance: 30, fontSize: 80, fontWeight: 400, color: FLOOR_TEXT, speed: 0.85 },\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n { propPath: 'staggerMs', cssVar: '--cf-motion-stagger', fallback: '90', brandKitPath: 'motion.staggerMs' },\n { propPath: 'easing', cssVar: '--cf-motion-ease', fallback: 'ease-out', brandKitPath: 'motion.easing' },\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 90, mode: 'oneshot', defaultExample: 'cinematic-headline' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { TextFadeReplace } from './index';\n\nconst paramsSchema = z.object({\n from: z.string().min(1).describe('Initial text shown for the first half of the duration.'),\n to: z.string().min(1).describe('Replacement text shown for the second half.'),\n fontSize: z.number().min(16).max(240).default(96).describe('Font size in pixels at 1920×1080.'),\n color: z.string().default(FLOOR_TEXT).describe('Text color (applied to both from and to). Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface; pass $brand:fonts.heading to theme.'),\n fontWeight: z.number().min(100).max(900).default(700).describe('CSS font weight.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'text-fade-replace',\n component: TextFadeReplace,\n name: 'Text Fade Replace',\n category: 'text',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'cycle-text',\n description:\n 'Cross-fade between two strings on the same line without layout shift. The first text fades out exactly as the second fades in, both centered on the same baseline.',\n useWhen:\n 'Caption beat changes (\"Question:\" → \"Answer:\"), product feature cycles (\"for everyone\" → \"for engineers\"), before/after labels. Avoid for >2 strings (use multiple in sequence) and for strings with very different widths (the lack of layout shift makes the longer one feel cramped).',\n pairsWith: ['mesh-gradient-bg', 'pulsing-indicator', 'shimmer-sweep'],\n avoidWith: ['blur-reveal'],\n tier: 'standard',\n useCase: ['title-over-footage'],\n tags: ['text', 'cycle', 'fade', 'replace', 'caption', 'binary'],\n mood: ['editorial', 'minimal', 'corporate'],\n\n paramsSchema,\n propDefaults: { fontSize: 96, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), fontWeight: 700, speed: 1 },\n\n examples: [\n {\n name: 'q-to-a',\n mood: ['editorial'],\n params: { from: 'Question.', to: 'Answer.', fontSize: 120, color: FLOOR_TEXT, fontWeight: 800, speed: 1 },\n },\n {\n name: 'before-after',\n mood: ['corporate'],\n params: { from: 'Before', to: 'After', fontSize: 144, color: FLOOR_TEXT, fontWeight: 700, speed: 0.9 },\n },\n ],\n\n textParam: 'from',\n subtextParam: 'to',\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'loop', defaultExample: 'q-to-a' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { TrackingIn } from './index';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(90).describe('Text to reveal. 1–3 words works best — letter-tracking changes are most legible at short lengths. Auto-fits: longer copy shrinks to fit the frame so it no longer overflows.'),\n startTracking: z.number().min(-0.5).max(2).default(0.5).describe('Initial letter-spacing in em units. Higher = more spread at the start of the reveal.'),\n startBlur: z.number().min(0).max(20).default(8).describe('Initial blur radius in pixels. Cleared as letters condense into place.'),\n fontSize: z.number().min(16).max(240).default(120).describe('Font size in pixels at 1920×1080.'),\n fontWeight: z.number().min(100).max(900).default(700).describe('CSS font weight.'),\n color: z.string().default(FLOOR_TEXT).describe('Text color. Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface; pass $brand:fonts.heading to theme.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'tracking-in',\n component: TrackingIn,\n name: 'Tracking In',\n category: 'text',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'reveal-text',\n description:\n 'Letters start spread apart and slightly blurred, then condense into final position with sharp focus. The \"from-distance-into-place\" feel.',\n useWhen:\n 'Brand reveals, single-word titles, awards-style intros where the letters should feel like they\\'re assembling themselves. Best for 1–3 words; longer strings make tracking changes feel jittery.',\n pairsWith: ['mesh-gradient-bg', 'success-confetti', 'shimmer-sweep'],\n avoidWith: ['blur-reveal', 'staggered-fade-up'],\n tier: 'standard',\n useCase: ['intro'],\n tags: ['text', 'tracking', 'letter-spacing', 'reveal', 'condense', 'brand'],\n mood: ['cinematic', 'corporate', 'minimal'],\n\n paramsSchema,\n propDefaults: { startTracking: 0.5, startBlur: 8, fontSize: 120, fontWeight: 700, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), speed: 1 },\n\n examples: [\n {\n name: 'brand-reveal',\n mood: ['cinematic', 'corporate'],\n params: { text: 'CUEFRAME', startTracking: 0.6, startBlur: 10, fontSize: 144, fontWeight: 800, color: FLOOR_TEXT, speed: 0.9 },\n },\n {\n name: 'subtle-title',\n mood: ['minimal'],\n params: { text: 'Welcome', startTracking: 0.3, startBlur: 5, fontSize: 96, fontWeight: 500, color: FLOOR_TEXT, speed: 1 },\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'brand-reveal' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { Typewriter } from './index';\nimport * as palette from '../../lib/palette';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(400).describe(\n 'The text to type out. 20–80 characters reads best; longer strings risk losing attention before the cursor finishes. Auto-fits: the text shrinks to fit the frame and wraps to a few lines, so length no longer overflows.',\n ),\n cursor: z.boolean().default(true).describe(\n 'Show a blinking cursor at the end of the revealed text.',\n ),\n charsPerSecond: z.number().min(2).max(60).default(20).describe(\n 'Typing rate. 20 cps is conversational; 30+ feels urgent; <10 feels deliberate.',\n ),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier independent of charsPerSecond.',\n ),\n fontSize: z.number().min(16).max(240).default(72).describe(\n 'Font size in pixels at the canonical 1920×1080 frame.',\n ),\n fontWeight: z.number().min(100).max(900).default(500).describe(\n 'CSS font weight. 500 keeps a terminal/code feel; 700+ skews toward dramatic quote.',\n ),\n color: z.string().default(FLOOR_TEXT).describe(\n 'Text color. Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.',\n ),\n cursorColor: z.string().optional().describe('Cursor color. Falls back to text color if unset.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe(\n 'Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme it.',\n ),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'typewriter',\n component: Typewriter,\n name: 'Typewriter',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'reveal-text',\n description:\n 'Character-by-character text reveal with a deterministic blinking cursor. The classic terminal/typing aesthetic — feels like the audience is reading along as it types.',\n useWhen:\n 'Tech demos, code captions, \"the AI is generating something\" beats, dialogue/quote reveals. Avoid for hero titles longer than ~80 chars (typing time exceeds attention span) and avoid pairing with another character-by-character animation (matrix-decode, glitch text).',\n pairsWith: ['glass-code-block', 'terminal-simulator', 'cursor-flow', 'pulsing-indicator'],\n avoidWith: ['blur-reveal'],\n tier: 'standard',\n useCase: ['title-over-footage'],\n tags: ['text', 'typewriter', 'typing', 'terminal', 'monospace', 'reveal', 'progressive'],\n mood: ['tech-demo', 'editorial', 'minimal'],\n\n paramsSchema,\n propDefaults: { cursor: true, charsPerSecond: 20, speed: 1, fontSize: 72, fontWeight: 500, color: FLOOR_TEXT, fontFamily: resolveTypeface('display') },\n\n examples: [\n {\n name: 'terminal-prompt',\n mood: ['tech-demo'],\n params: { text: '$ npm install cueframe', cursor: true, charsPerSecond: 24, fontSize: 64, fontWeight: 500, color: palette.SUCCESS },\n description: 'Green-on-dark terminal prompt feel.',\n },\n {\n name: 'dialogue',\n mood: ['editorial', 'cinematic'],\n params: { text: 'Hello, world.', cursor: true, charsPerSecond: 12, fontSize: 96, fontWeight: 600, color: FLOOR_TEXT },\n description: 'Slower, larger, dialogue-paced reveal.',\n },\n {\n name: 'urgent-news',\n mood: ['breaking-news'],\n params: { text: 'BREAKING:', cursor: false, charsPerSecond: 40, fontSize: 120, fontWeight: 800, color: '#dc2626' },\n description: 'Fast type, no cursor, red. Breaking-news tickers.',\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'cursorColor', cssVar: '--cf-accent', fallback: palette.SUCCESS, brandKitPath: 'colors.accent' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 90, mode: 'loop', defaultExample: 'terminal-prompt' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { MatrixDecode } from './index';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(220).describe(\n 'The final text that decodes into place. Auto-fits (shrinks to the frame, then ellipsizes). 6–40 characters reads cleanly; longer strings spend too long in the scrambled state.',\n ),\n charset: z.string().min(1).max(80).default('!@#$%^&*()_+-=<>?/\\\\|').describe(\n 'Pool of characters to scramble through before each glyph resolves. Symbol-heavy charsets feel hacker; alphanumeric feels softer.',\n ),\n fontSize: z.number().min(16).max(240).default(72).describe(\n 'Font size in pixels at the canonical 1920×1080 frame. 64–96 reads as headline; 120+ as hero.',\n ),\n fontWeight: z.number().min(100).max(900).default(600).describe(\n 'CSS font weight. 600 keeps the monospace decode feel; 700+ leans dramatic; 400 feels terminal-quiet.',\n ),\n color: z.string().default(palette.SUCCESS).describe(\n 'Text color of the resolved glyphs. Green-on-white is the canonical Matrix vibe; high-contrast brand colors also work.',\n ),\n revealDuration: z.number().min(15).max(240).default(60).describe(\n 'Frames for all glyphs to finish resolving. Shorter (30–45) feels snappy; longer (90+) lets the audience savor the scramble.',\n ),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier independent of revealDuration.',\n ),\n fontFamily: z.string().default(resolveTypeface('mono')).describe('Monospace typeface. Fixed to the bundled mono face (Space Mono floor) — the decode column-shuffle depends on fixed-width glyphs, so brand fonts (serif/display) intentionally do NOT override it.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'matrix-decode',\n component: MatrixDecode,\n name: 'Matrix Decode',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'glitch-decode',\n description:\n 'Per-character scramble that resolves left-to-right into the final text. Each glyph cycles through a charset of symbols before snapping to its true character. Hacker/cypherpunk aesthetic — feels like the system is being decrypted in real time.',\n useWhen:\n 'Tech demos, \"AI is thinking\" beats, hacker/cypherpunk reveals, codename or version-string drops. Best with monospace-friendly content (commands, hashes, hostnames). Avoid for emotional/editorial copy (wrong tone) and avoid pairing with another character-by-character animation like typewriter or rgb-glitch-text on the same beat.',\n pairsWith: ['glass-code-block', 'terminal-simulator', 'pulsing-indicator', 'grain'],\n avoidWith: ['typewriter', 'rgb-glitch-text', 'blur-reveal'],\n tier: 'niche',\n useCase: ['emphasis'],\n tags: ['text', 'matrix', 'decode', 'scramble', 'hacker', 'cypherpunk', 'monospace', 'glitch'],\n mood: ['tech-demo', 'glitchy', 'aggressive'],\n\n paramsSchema,\n propDefaults: {\n charset: '!@#$%^&*()_+-=<>?/\\\\|',\n fontSize: 72,\n fontWeight: 600,\n color: palette.SUCCESS,\n revealDuration: 60,\n speed: 1,\n fontFamily: resolveTypeface('mono'),\n },\n\n examples: [\n {\n name: 'classic-matrix',\n mood: ['tech-demo', 'glitchy'],\n params: { text: 'ACCESS GRANTED', charset: '01!@#$%&*<>/\\\\|', fontSize: 88, fontWeight: 600, color: palette.SUCCESS, revealDuration: 60 },\n description: 'Green-on-white symbol-heavy decode — the canonical Matrix vibe.',\n },\n {\n name: 'hash-reveal',\n mood: ['tech-demo'],\n params: { text: '0xCAFEBABE', charset: '0123456789abcdef', fontSize: 96, fontWeight: 500, color: FLOOR_TEXT, revealDuration: 45 },\n description: 'Snappy hex decode for hash/address reveals.',\n },\n {\n name: 'aggressive-codename',\n mood: ['aggressive', 'breaking-news'],\n params: { text: 'PROJECT NEMESIS', charset: '!@#$%^&*()_+-=<>?/\\\\|', fontSize: 120, fontWeight: 800, color: palette.DANGER, revealDuration: 36 },\n description: 'Fast, large, red — codename or product reveal.',\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-accent', fallback: palette.SUCCESS, brandKitPath: 'colors.accent' },\n // No fontFamily brand binding: the decode effect requires fixed-width mono\n // (Space Mono floor). There is no fonts.mono brand path, and binding to\n // fonts.heading would let a serif/display brand face break the column shuffle.\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 45, mode: 'oneshot', defaultExample: 'classic-matrix' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport * as palette from '../../lib/palette';\nimport { RGBGlitchText } from './index';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(220).describe(\n 'Text to display. The base text holds steady; RGB-split copies offset on top during the glitch window. 4–30 chars reads punchiest.',\n ),\n fontSize: z.number().min(24).max(320).default(96).describe(\n 'Font size in pixels at the canonical 1920×1080 frame. Glitch reads best at hero scale (96–160).',\n ),\n fontWeight: z.number().min(100).max(900).default(700).describe(\n 'CSS font weight. 700+ gives the chunky chromatic-split look; lighter weights wash out under the offset copies.',\n ),\n color: z.string().default(FLOOR_TEXT).describe('Base text color (video-safe off-white). The R/G/B copies are fixed (#ff0040, #00ff80, #0080ff) and screen-blend (additive) so the chromatic split glows over footage.'),\n glitchAt: z.number().min(0).max(600).default(20).describe(\n 'Frame at which the glitch window begins. Set ~10–30 frames in so the audience reads the title before it cracks.',\n ),\n glitchDuration: z.number().min(2).max(60).default(8).describe(\n 'Length of the glitch window in frames. 6–12 frames is a sharp punch; 20+ feels like sustained corruption.',\n ),\n intensity: z.number().min(0).max(40).default(6).describe(\n 'Pixel offset magnitude for the R/G/B copies. 4–8 reads as crisp glitch; 12+ becomes near-illegible. Use sparingly.',\n ),\n seed: z.string().min(1).max(32).default('glitch').describe(\n 'Deterministic seed for the per-frame jitter. Change it to get a different glitch pattern with the same params.',\n ),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier. Note: glitchAt and glitchDuration are in source frames before the speed multiplier.',\n ),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme it.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'rgb-glitch-text',\n component: RGBGlitchText,\n name: 'RGB Glitch Text',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'glitch-text',\n description:\n 'Static text that fractures into red/green/blue chromatic-aberration copies during a configurable glitch window. The base text never moves; the offset color copies appear, jitter for `glitchDuration` frames, then disappear. Crisp cyberpunk/CRT-failure aesthetic.',\n useWhen:\n 'Hard cuts, beat-drops, \"system corrupted\" moments, breaking-news stings, hype-reel punctuation. Place the glitch on the audio hit. Avoid for sustained titles (the eye gets tired in <1 second of glitch) and avoid pairing with matrix-decode or another glitch primitive on the same beat — the effects fight for attention.',\n pairsWith: ['glitch-cut', 'chromatic-aberration-wipe', 'grain', 'mesh-gradient-bg'],\n avoidWith: ['matrix-decode', 'typewriter', 'blur-reveal'],\n tier: 'niche',\n useCase: ['emphasis'],\n tags: ['text', 'glitch', 'rgb', 'chromatic-aberration', 'cyberpunk', 'crt', 'corruption'],\n mood: ['glitchy', 'aggressive', 'breaking-news', 'tech-demo'],\n\n paramsSchema,\n propDefaults: {\n fontSize: 96,\n fontWeight: 700,\n color: FLOOR_TEXT,\n glitchAt: 20,\n glitchDuration: 8,\n intensity: 6,\n seed: 'glitch',\n speed: 1,\n fontFamily: resolveTypeface('display'),\n },\n\n examples: [\n {\n name: 'beat-drop',\n mood: ['aggressive', 'glitchy'],\n params: { text: 'SYSTEM ONLINE', fontSize: 128, fontWeight: 800, color: FLOOR_TEXT, glitchAt: 24, glitchDuration: 10, intensity: 8 },\n description: 'Hero text that cracks on the audio hit.',\n },\n {\n name: 'sustained-corruption',\n mood: ['glitchy'],\n params: { text: 'CORRUPTED', fontSize: 144, fontWeight: 800, color: palette.DANGER, glitchAt: 0, glitchDuration: 30, intensity: 5 },\n description: 'Long glitch window for \"system failure\" beats. Use carefully — eye fatigue.',\n },\n {\n name: 'breaking-news-sting',\n mood: ['breaking-news'],\n params: { text: 'LIVE', fontSize: 160, fontWeight: 900, color: palette.DANGER, glitchAt: 12, glitchDuration: 6, intensity: 7 },\n description: 'Short, hard glitch on a one-word breaking-news ID.',\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 28, mode: 'oneshot', defaultExample: 'beat-drop' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport * as palette from '../../lib/palette';\nimport { QuoteCard } from './index';\n\nconst paramsSchema = z.object({\n quote: z.string().min(1).max(220).describe('The quote text (no quote marks — the card draws its own oversized mark). 8–24 words reads best.'),\n author: z.string().max(60).default('').describe('Attribution name.'),\n role: z.string().max(80).default('').describe('Attribution role/company line.'),\n accentColor: z.string().default(palette.ACCENT).describe('Quote mark + attribution rule accent.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'quote-card',\n component: QuoteCard,\n name: 'Quote Card',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'name-card',\n description:\n 'Attributed testimonial: an oversized accent quote mark drops in with weight, the quote reveals word-by-word on a masked rise, an accent rule draws, and the attribution fades up. Idles on a quiet hold with a breathing mark.',\n useWhen:\n 'Customer testimonials, press quotes, founder statements — the social-proof beat of a launch video. Over footage of the speaker or a background primitive. For speaker NAME captions during footage use lower-third instead.',\n pairsWith: ['silk-flow-bg', 'dither-gradient-bg', 'vignette', 'color-grade'],\n avoidWith: ['lower-third', 'cinematic-title'],\n tier: 'recommended',\n useCase: ['full-scene', 'title-over-footage'],\n tags: ['text', 'quote', 'testimonial', 'attribution', 'social-proof'],\n mood: ['editorial', 'corporate', 'cinematic'],\n\n paramsSchema,\n propDefaults: {\n quote: 'It replaced our entire editing pipeline in a week.',\n author: 'Maya Alvarez',\n role: 'Head of Product',\n accentColor: palette.ACCENT,\n },\n\n examples: [\n { name: 'customer-proof', mood: ['corporate'], params: { quote: 'It replaced our entire editing pipeline in a week.', author: 'Maya Alvarez', role: 'Head of Product', accentColor: palette.ACCENT } },\n { name: 'press-pull', mood: ['editorial'], params: { quote: 'The most opinionated take on programmatic video yet.', author: 'The Weekly Build', role: '', accentColor: palette.SUCCESS } },\n ],\n\n textParam: 'quote',\n subtextParam: 'author',\n tokens: [\n { propPath: 'accentColor', cssVar: '--cf-accent', fallback: palette.ACCENT, brandKitPath: 'colors.accent' },\n ],\n\n durationInFrames: 150,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 80, mode: 'oneshot', defaultExample: 'customer-proof' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { SlotMachineRoll } from './index';\n\nconst paramsSchema = z.object({\n from: z.string().min(1).max(20).default('$99').describe(\n 'Starting value (top of the column). Numbers, prices, scores, or short codes work best — long strings break the slot-reel feel.',\n ),\n to: z.string().min(1).max(20).default('$199').describe(\n 'Ending value (bottom of the column, where the reel lands). Should be the same character class as `from` for visual coherence.',\n ),\n fontSize: z.number().min(24).max(320).default(120).describe(\n 'Font size in pixels at the canonical 1920×1080 frame. Slot-machine reads as a hero element — 96–160 is the sweet spot.',\n ),\n fontWeight: z.number().min(100).max(900).default(700).describe(\n 'CSS font weight. 700+ gives the chunky scoreboard look; 500 reads more editorial.',\n ),\n color: z.string().default(FLOOR_TEXT).describe('Text color. Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface; pass $brand:fonts.heading to theme.'),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier. Slower (0.5–0.75) emphasizes the roll; faster (1.5+) makes it incidental.',\n ),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'slot-machine-roll',\n component: SlotMachineRoll,\n name: 'Slot Machine Roll',\n category: 'text',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'roll-numbers',\n description:\n 'Per-column vertical roll from a starting value to an ending value, like a slot reel landing. Each column springs in with stagger, so the rightmost digits land last. Feels like a counter, scoreboard, or price update.',\n useWhen:\n 'Price changes, score updates, version bumps, follower-count flips, before/after stat reveals. Both `from` and `to` should be short and the same character class (numbers→numbers, prices→prices). Avoid for prose or multi-word phrases — use kinetic-type or staggered-fade-up instead. Avoid pairing with strikethrough-replace on the same beat (both communicate \"value changed\" and read as redundant).',\n pairsWith: ['lower-third', 'success-confetti', 'spring-pop-in', 'pulsing-indicator'],\n avoidWith: ['strikethrough-replace', 'text-fade-replace'],\n tier: 'standard',\n useCase: ['emphasis'],\n tags: ['text', 'slot-machine', 'roll', 'counter', 'numbers', 'price', 'scoreboard', 'stat'],\n mood: ['playful', 'corporate', 'editorial'],\n\n paramsSchema,\n propDefaults: { from: '$99', to: '$199', fontSize: 120, fontWeight: 700, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), speed: 1 },\n\n examples: [\n {\n name: 'price-bump',\n mood: ['corporate', 'editorial'],\n params: { from: '$99', to: '$199', fontSize: 160, fontWeight: 800, color: FLOOR_TEXT },\n description: 'Classic price-change reveal for promo or pricing-page video.',\n },\n {\n name: 'follower-count',\n mood: ['playful'],\n params: { from: '10K', to: '100K', fontSize: 140, fontWeight: 700, color: '#2563eb' },\n description: 'Milestone counter flip — followers, downloads, signups.',\n },\n {\n name: 'version-bump',\n mood: ['tech-demo'],\n params: { from: 'v2.0', to: 'v3.0', fontSize: 120, fontWeight: 600, color: FLOOR_TEXT },\n description: 'Version reveal for changelog/release video.',\n },\n ],\n\n textParam: 'to',\n subtextParam: 'from',\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 70, mode: 'oneshot', defaultExample: 'price-bump' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { StatCounter } from './index';\nimport * as palette from '../../lib/palette';\n\nconst paramsSchema = z.object({\n value: z.number().min(0).max(1e12).describe('The number that lands. Counts up from 0 with an expo settle.'),\n prefix: z.string().max(4).default('').describe(\"Glyphs before the number ('$', '€', '~').\"),\n suffix: z.string().max(6).default('').describe(\"Glyphs after the number ('+', '%', 'k', 'M') — rendered in the accent color.\"),\n label: z.string().max(60).default('').describe(\"Uppercase caption under the number ('ACTIVE USERS', 'ARR'). Rises in after the count lands.\"),\n accentColor: z.string().default(palette.ACCENT).describe('Underline + suffix accent.'),\n decimals: z.number().int().min(0).max(2).default(0).describe('Decimal places (99.99% → 2).'),\n countFrames: z.number().int().min(10).max(150).default(45).describe('Frames the count-up takes.'),\n position: z.enum(['center', 'left', 'right']).default('center').describe('Horizontal placement.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'stat-counter',\n component: StatCounter,\n name: 'Stat Counter',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'reveal-text',\n description:\n 'The launch-video staple: a big number counts up and LANDS — expo-eased so the final digits settle, tabular numerals (no jitter), an accent underline that draws in as the count completes and glows gently at idle, and an uppercase label that rises in after. \"$2M ARR\", \"10k+ users\", \"99.99% uptime\".',\n useWhen:\n 'Traction beats, metric reveals, pricing anchors — any moment the video needs a number to land with weight. Pair over footage or a background primitive. One stat per beat; for dashboards of many numbers use dashboard-populate instead.',\n pairsWith: ['silk-flow-bg', 'mesh-gradient-bg', 'dither-gradient-bg', 'vignette', 'staggered-fade-up'],\n avoidWith: ['slot-machine-roll', 'dashboard-populate'],\n tier: 'recommended',\n useCase: ['emphasis', 'title-over-footage'],\n tags: ['text', 'number', 'counter', 'stat', 'metric', 'count-up', 'launch'],\n mood: ['corporate', 'tech-demo', 'editorial'],\n\n paramsSchema,\n propDefaults: {\n value: 10000,\n prefix: '',\n suffix: '+',\n label: 'ACTIVE USERS',\n accentColor: palette.ACCENT,\n decimals: 0,\n countFrames: 45,\n position: 'center',\n },\n\n examples: [\n { name: 'users-landed', mood: ['corporate'], params: { value: 10000, suffix: '+', label: 'ACTIVE USERS', accentColor: palette.ACCENT, countFrames: 45, position: 'center' } },\n { name: 'arr', mood: ['corporate', 'editorial'], params: { value: 2, prefix: '$', suffix: 'M', label: 'ANNUAL RECURRING REVENUE', accentColor: palette.SUCCESS, countFrames: 40, position: 'center' } },\n { name: 'uptime', mood: ['tech-demo'], params: { value: 99.99, suffix: '%', label: 'UPTIME', accentColor: palette.ACCENT, decimals: 2, countFrames: 50, position: 'center' } },\n ],\n\n textParam: 'label',\n subtextParam: null,\n tokens: [\n { propPath: 'accentColor', cssVar: '--cf-accent', fallback: palette.ACCENT, brandKitPath: 'colors.accent' },\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 70, mode: 'oneshot', defaultExample: 'users-landed' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { TokenStream } from './index';\nimport * as palette from '../../lib/palette';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(400).describe('The response text that streams in token-by-token. 15–50 words reads best.'),\n tokensPerSecond: z.number().min(2).max(30).default(9).describe('Average streaming cadence. 8–12 feels like a fast model; 4–6 deliberate.'),\n accentColor: z.string().default(palette.ACCENT).describe('Cursor accent.'),\n startAt: z.number().int().min(0).max(90).default(8).describe('Frames of hold before the first token.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'token-stream',\n component: TokenStream,\n name: 'Token Stream',\n category: 'text',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'reveal-text',\n description:\n 'THE AI visual: a response streams in token-by-token on an irregular, human-feeling cadence — deterministic jitter with occasional micro-pauses, each token fading up, a block cursor pulsing at the head. On completion the cursor blinks twice and fades. Running text, not a terminal gimmick (that is typewriter).',\n useWhen:\n 'Model output reveals, copilot answer beats, \"watch it respond\" moments in AI product launches. Over footage or a background primitive. For monospace CLI streaming use typewriter; for a full conversation use chat-exchange.',\n pairsWith: ['dither-gradient-bg', 'vector-field', 'silk-flow-bg', 'vignette'],\n avoidWith: ['typewriter', 'chat-exchange'],\n tier: 'recommended',\n useCase: ['title-over-footage', 'full-scene', 'explainer'],\n tags: ['text', 'ai', 'llm', 'streaming', 'tokens', 'cursor', 'response'],\n mood: ['tech-demo', 'minimal'],\n\n paramsSchema,\n propDefaults: {\n text: 'Here is the summary you asked for — three risks, two of them already mitigated, and one decision that needs you today.',\n tokensPerSecond: 9,\n accentColor: palette.ACCENT,\n startAt: 8,\n },\n\n examples: [\n { name: 'assistant-answer', mood: ['tech-demo'], params: { text: 'Here is the summary you asked for — three risks, two of them already mitigated, and one decision that needs you today.', tokensPerSecond: 9, accentColor: palette.ACCENT } },\n { name: 'deliberate-reasoning', mood: ['minimal'], params: { text: 'Thinking through the tradeoffs: speed favors the cache, correctness favors the queue. Recommending the queue.', tokensPerSecond: 5, accentColor: palette.VIOLET } },\n ],\n\n textParam: 'text',\n subtextParam: null,\n tokens: [\n { propPath: 'accentColor', cssVar: '--cf-accent', fallback: palette.ACCENT, brandKitPath: 'colors.accent' },\n ],\n\n durationInFrames: 180,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'assistant-answer' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { StrikethroughReplace } from './index';\n\nconst paramsSchema = z.object({\n from: z.string().min(1).max(140).describe(\n 'Original phrase. A line draws across it during the first 40% of duration. Keep short — this is the \"wrong/old\" half of a comparison.',\n ),\n to: z.string().min(1).max(140).describe(\n 'Replacement phrase that fades up after the strikethrough completes. Often the \"new/correct/better\" half of the comparison.',\n ),\n lineColor: z.string().default('#ff5e3a').describe(\n 'Color of the strikethrough bar. Hot orange/red reads as \"rejected\"; brand color softens the verdict.',\n ),\n fontSize: z.number().min(16).max(240).default(48).describe(\n 'Font size in pixels at the canonical 1920×1080 frame. 48–72 is the lower-third / caption sweet spot for this effect.',\n ),\n fontWeight: z.number().min(100).max(900).default(600).describe(\n 'CSS font weight. 600 gives editorial weight without overpowering the line.',\n ),\n color: z.string().default(FLOOR_TEXT).describe('Text color for both `from` and `to` (video-safe off-white over footage); pass $brand:colors.textOnMedia to theme.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface. Defaults to the brand display face (Bricolage Grotesque floor); pass $brand:fonts.heading to theme.'),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier. The effect divides duration into strike (0–40%), fade (40–60%), hold (60–100%) regardless of speed.',\n ),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'strikethrough-replace',\n component: StrikethroughReplace,\n name: 'Strikethrough Replace',\n category: 'text',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'replace-text',\n description:\n 'Draws a strikethrough across the `from` text, then fades it to the `to` text in place. Three phases: line draws (0–40%), crossfade with slight rise (40–60%), hold (60–100%). Communicates \"this, not that\" — myth-busting, before/after, correction.',\n useWhen:\n 'Myth-vs-fact captions, \"no, actually\" reveals, before/after framing, debunking pull-quotes, marketing comparisons (their thing → our thing). Both phrases should be roughly the same length so the eye sees the same slot getting overwritten. Avoid for emotional reveals (use blur-reveal or cinematic-title) and avoid pairing with slot-machine-roll on the same beat — both say \"value changed\" and read as redundant.',\n pairsWith: ['lower-third', 'inline-highlight', 'marker-highlight', 'pulsing-indicator'],\n avoidWith: ['slot-machine-roll', 'text-fade-replace'],\n tier: 'standard',\n useCase: ['emphasis', 'title-over-footage'],\n tags: ['text', 'strikethrough', 'replace', 'before-after', 'comparison', 'myth-bust', 'correction'],\n mood: ['editorial', 'breaking-news', 'corporate'],\n\n paramsSchema,\n propDefaults: { lineColor: '#ff5e3a', fontSize: 48, fontWeight: 600, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), speed: 1 },\n\n examples: [\n {\n name: 'myth-vs-fact',\n mood: ['editorial'],\n params: { from: 'AI replaces engineers', to: 'AI augments engineers', lineColor: '#ff5e3a', fontSize: 56, fontWeight: 600, color: FLOOR_TEXT },\n description: 'Classic myth-busting caption.',\n },\n {\n name: 'before-after-pricing',\n mood: ['corporate'],\n params: { from: '$199/month', to: '$49/month', lineColor: '#dc2626', fontSize: 72, fontWeight: 700, color: FLOOR_TEXT },\n description: 'Pricing comparison with a hard red line.',\n },\n {\n name: 'soft-correction',\n mood: ['editorial', 'minimal'],\n params: { from: 'fast', to: 'instant', lineColor: '#94a3b8', fontSize: 96, fontWeight: 500, color: FLOOR_TEXT },\n description: 'Subtle gray strike for editorial copy upgrades.',\n },\n ],\n\n textParam: 'to',\n subtextParam: 'from',\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n { propPath: 'lineColor', cssVar: '--cf-accent', fallback: '#ff5e3a', brandKitPath: 'colors.accent' },\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 90, mode: 'oneshot', defaultExample: 'myth-vs-fact' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { resolveTypeface } from '../../lib/text/typeface';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { MaskedSlideReveal } from './index';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(280).describe(\n 'Phrase to reveal. Words are split on whitespace and each slides up from below its own clipping mask. 3–10 words reads cleanest.',\n ),\n staggerDelay: z.number().min(0).max(20).default(3).describe(\n 'Frames between successive word reveals. 2–4 feels brisk; 6+ feels deliberate, almost choreographed.',\n ),\n fontSize: z.number().min(24).max(320).default(72).describe(\n 'Font size in pixels at the canonical 1920×1080 frame. The masked-slide effect needs hero scale to read — 72–120 is the sweet spot.',\n ),\n fontWeight: z.number().min(100).max(900).default(700).describe(\n 'CSS font weight. 700+ gives the chunky editorial feel that the reveal pattern is built for.',\n ),\n color: z.string().default(FLOOR_TEXT).describe('Text color. Defaults to a video-safe off-white (text sits over footage); pass $brand:colors.textOnMedia to theme it.'),\n fontFamily: z.string().default(resolveTypeface('display')).describe('Display typeface; pass $brand:fonts.heading to theme.'),\n speed: z.number().min(0.25).max(4).default(1).describe(\n 'Playback speed multiplier independent of staggerDelay.',\n ),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'masked-slide-reveal',\n component: MaskedSlideReveal,\n name: 'Masked Slide Reveal',\n category: 'text',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'reveal-text',\n description:\n 'Per-word slide-up from a clipping mask, with spring damping and stagger. Each word emerges from beneath an invisible bottom edge, so glyphs appear to be cut by a hard line until they snap into place. Editorial/award-show typography feel.',\n useWhen:\n 'Hero titles, intro statements, manifesto-style declarations, lecture/conference card reveals. 3–10 words is the sweet spot. Avoid for read-along captions (use karaoke), for single words (use blur-reveal or tracking-in), and for content where the bottom edge of the canvas is busy with other elements (the mask becomes visible and looks broken). Don\\'t pair with kinetic-type — both are per-word reveals and read as competing.',\n pairsWith: ['mesh-gradient-bg', 'cinematic-title', 'lower-third', 'grain'],\n avoidWith: ['kinetic-type', 'staggered-fade-up', 'karaoke'],\n tier: 'recommended',\n useCase: ['title-over-footage', 'intro'],\n tags: ['text', 'masked', 'slide', 'reveal', 'per-word', 'editorial', 'spring', 'hero'],\n mood: ['editorial', 'cinematic', 'minimal'],\n\n paramsSchema,\n propDefaults: { staggerDelay: 3, fontSize: 72, fontWeight: 700, color: FLOOR_TEXT, fontFamily: resolveTypeface('display'), speed: 1 },\n\n examples: [\n {\n name: 'manifesto-statement',\n mood: ['editorial', 'cinematic'],\n params: { text: 'Built for the next decade', staggerDelay: 4, fontSize: 96, fontWeight: 700, color: FLOOR_TEXT },\n description: 'Hero title with deliberate per-word stagger.',\n },\n {\n name: 'snappy-intro',\n mood: ['minimal'],\n params: { text: 'A new way to ship', staggerDelay: 2, fontSize: 80, fontWeight: 600, color: FLOOR_TEXT },\n description: 'Quick stagger for intro/opener cards.',\n },\n {\n name: 'cinematic-pull-quote',\n mood: ['cinematic'],\n params: { text: 'The future is uneven', staggerDelay: 6, fontSize: 120, fontWeight: 800, color: FLOOR_TEXT },\n description: 'Slow, large, editorial pull-quote.',\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-text-onmedia', fallback: FLOOR_TEXT, brandKitPath: 'colors.textOnMedia' },\n { propPath: 'fontFamily', cssVar: '--cf-font-display', fallback: resolveTypeface('display'), brandKitPath: 'fonts.heading' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 50, mode: 'oneshot', defaultExample: 'manifesto-statement' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { FLOOR_TEXT } from '../../lib/text/contrast';\nimport { TextEffect } from './index';\nimport * as palette from '../../lib/palette';\n\nconst paramsSchema = z.object({\n text: z.string().min(1).max(80).optional().describe(\n 'Text to style. Required in practice — the component renders nothing without it (or children in code use).',\n ),\n type: z.enum(['gradient', 'neon', 'glow', 'wave', 'outline', 'shadow']).describe(\n 'CSS treatment to apply to the wrapped text. gradient/wave bake a color sweep into the glyphs; neon/glow add radial light bleed; outline strokes the glyphs; shadow drops a soft offset shadow.',\n ),\n colors: z.array(z.string()).min(2).max(6).default([palette.DANGER, palette.TEAL, palette.BLUE]).describe(\n 'Palette for gradient and wave effects. 2–4 colors read cleanly; more becomes a smear. Ignored by neon/glow/outline/shadow.',\n ),\n color: z.string().default(palette.ACCENT).describe(\n 'Single color for neon/glow/outline/shadow effects. Ignored by gradient/wave.',\n ),\n intensity: z.number().min(0).max(1).default(0.8).describe(\n 'Effect strength 0–1. 0.6–0.8 keeps text readable; 1.0 maxes the glow/stroke and starts losing edges.',\n ),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'text-effect',\n component: TextEffect,\n name: 'Text Effect',\n category: 'text',\n kind: 'component',\n version: '0.1.2',\n\n intent: 'style-text',\n description:\n 'Composable CSS-only treatment that wraps another text primitive (cinematic-title, kinetic-type, etc.) and applies a styled appearance — gradient fill, neon glow, color-cycle wave, stroke outline, or drop shadow. Static styling layer; carries no animation of its own. Pairs with any text primitive that renders glyphs.',\n useWhen:\n 'When a text primitive needs a vibe shift (neon arcade, gradient hype, outline-only minimalism) without rebuilding the underlying animation. Wrap, don\\'t embed. Avoid stacking multiple TextEffect wrappers on the same content (the inner one wins or both fight). Skip for content where readability matters more than vibe (lower-thirds, captions).',\n pairsWith: ['cinematic-title', 'kinetic-type', 'tracking-in', 'staggered-fade-up'],\n avoidWith: ['lower-third', 'karaoke', 'inline-highlight'],\n tier: 'niche',\n useCase: ['title-over-footage'],\n tags: ['text', 'effect', 'style', 'gradient', 'neon', 'glow', 'outline', 'shadow', 'wrapper'],\n mood: ['playful', 'aggressive', 'cinematic', 'tech-demo'],\n\n paramsSchema,\n propDefaults: {\n colors: [palette.DANGER, palette.TEAL, palette.BLUE],\n color: palette.ACCENT,\n intensity: 0.8,\n },\n\n examples: [\n {\n name: 'neon-arcade',\n mood: ['playful', 'aggressive'],\n params: { text: 'GAME ON', type: 'neon', color: palette.ACCENT, intensity: 0.9 },\n description: 'Mandarin neon glow — arcade/synthwave wrapper.',\n },\n {\n name: 'sunset-gradient',\n mood: ['cinematic', 'editorial'],\n params: { text: 'Golden hour', type: 'gradient', colors: [palette.DANGER, palette.ACCENT, palette.WARNING], intensity: 0.8 },\n description: 'Warm gradient fill across the glyphs.',\n },\n {\n name: 'minimal-outline',\n mood: ['minimal', 'editorial'],\n params: { text: 'MONOCHROME', type: 'outline', color: FLOOR_TEXT, intensity: 0.7 },\n description: 'Stroke-only text — gallery/editorial feel.',\n },\n ],\n\n textParam: 'text',\n subtextParam: null,\n\n tokens: [\n { propPath: 'color', cssVar: '--cf-accent', fallback: palette.ACCENT, brandKitPath: 'colors.accent' },\n ],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 45, mode: 'loop', defaultExample: 'neon-arcade' },\n};\n","// @cueframe/primitives/text — text-overlay primitives\n\nimport type { Catalog } from '../lib/types';\n\nexport { BlurReveal } from './blur-reveal';\nexport { CinematicTitle } from './cinematic-title';\nexport { InlineHighlight } from './inline-highlight';\nexport { Karaoke } from './karaoke';\nexport { KineticType } from './kinetic-type';\nexport { LowerThird } from './lower-third';\nexport { MarkerHighlight } from './marker-highlight';\nexport { ShimmerSweep } from './shimmer-sweep';\nexport { StaggeredFadeUp } from './staggered-fade-up';\nexport { TextEffect } from './text-effect';\nexport { TextFadeReplace } from './text-fade-replace';\nexport { TrackingIn } from './tracking-in';\nexport { Typewriter } from './typewriter';\nexport { MatrixDecode } from './matrix-decode';\nexport { RGBGlitchText } from './rgb-glitch-text';\nexport { QuoteCard } from './quote-card';\nexport { SlotMachineRoll } from './slot-machine-roll';\nexport { StatCounter } from './stat-counter';\nexport { TokenStream } from './token-stream';\nexport { StrikethroughReplace } from './strikethrough-replace';\nexport { MaskedSlideReveal } from './masked-slide-reveal';\n\nimport { config as blurReveal } from './blur-reveal/config';\nimport { config as cinematicTitle } from './cinematic-title/config';\nimport { config as inlineHighlight } from './inline-highlight/config';\nimport { config as karaoke } from './karaoke/config';\nimport { config as kineticType } from './kinetic-type/config';\nimport { config as lowerThird } from './lower-third/config';\nimport { config as markerHighlight } from './marker-highlight/config';\nimport { config as shimmerSweep } from './shimmer-sweep/config';\nimport { config as staggeredFadeUp } from './staggered-fade-up/config';\nimport { config as textFadeReplace } from './text-fade-replace/config';\nimport { config as trackingIn } from './tracking-in/config';\nimport { config as typewriter } from './typewriter/config';\nimport { config as matrixDecode } from './matrix-decode/config';\nimport { config as rgbGlitchText } from './rgb-glitch-text/config';\nimport { config as quoteCard } from './quote-card/config';\nimport { config as slotMachineRoll } from './slot-machine-roll/config';\nimport { config as statCounter } from './stat-counter/config';\nimport { config as tokenStream } from './token-stream/config';\nimport { config as strikethroughReplace } from './strikethrough-replace/config';\nimport { config as maskedSlideReveal } from './masked-slide-reveal/config';\nimport { config as textEffect } from './text-effect/config';\n\nexport const catalog: Catalog = [\n blurReveal, cinematicTitle, inlineHighlight, karaoke, kineticType, lowerThird,\n markerHighlight, shimmerSweep, staggeredFadeUp, textFadeReplace, trackingIn, typewriter,\n matrixDecode, rgbGlitchText, slotMachineRoll, strikethroughReplace, maskedSlideReveal, textEffect, quoteCard, statCounter, tokenStream,\n];\n"],"mappings":"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","names":["useCurrentFrame","useVideoConfig","interpolate","jsx","useCurrentFrame","useVideoConfig","interpolate","interpolate","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","jsx","useCurrentFrame","useVideoConfig","interpolate","AbsoluteFill","spring","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","jsx","useCurrentFrame","useVideoConfig","interpolate","spring","AbsoluteFill","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","jsx","jsxs","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","interpolate","spring","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","spring","interpolate","interpolate","useCurrentFrame","useVideoConfig","fitTextOnNLines","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","fitTextOnNLines","useCurrentFrame","useVideoConfig","jsx","useCurrentFrame","useVideoConfig","jsx","interpolate","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","React","interpolate","spring","useCurrentFrame","useVideoConfig","fitTextOnNLines","jsx","useCurrentFrame","useVideoConfig","spring","interpolate","React","fitTextOnNLines","React","interpolate","useCurrentFrame","useVideoConfig","fitTextOnNLines","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","React","fitTextOnNLines","useCurrentFrame","useVideoConfig","jsx","useCurrentFrame","useVideoConfig","random","useCurrentFrame","jsx","jsxs","useCurrentFrame","random","AbsoluteFill","interpolate","spring","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","spring","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","spring","AbsoluteFill","interpolate","spring","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","spring","AbsoluteFill","AbsoluteFill","interpolate","useCurrentFrame","useVideoConfig","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","AbsoluteFill","useMemo","interpolate","useCurrentFrame","useVideoConfig","fitTextOnNLines","jsx","jsxs","useCurrentFrame","useVideoConfig","interpolate","useMemo","fitTextOnNLines","useMemo","spring","useCurrentFrame","useVideoConfig","fitTextOnNLines","jsx","useCurrentFrame","useVideoConfig","useMemo","fitTextOnNLines","spring","z","z","paramsSchema","config","z","paramsSchema","z","config","z","z","tokensSchema","paramsSchema","config","z","tokensSchema","z","paramsSchema","config","z","tokensSchema","z","paramsSchema","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","config"]}