@cueframe/kernel 0.1.0 → 0.1.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 (355) hide show
  1. package/LICENSE +661 -0
  2. package/dist/_members/composition/ops/compositionOps.d.ts +1 -0
  3. package/dist/_members/composition/projection/behind-readiness.d.ts +127 -0
  4. package/dist/_members/composition/projection/index.d.ts +2 -0
  5. package/dist/_members/composition/projection/reframe-readiness.d.ts +156 -0
  6. package/dist/_members/composition/validators/composition.d.ts +42 -25
  7. package/dist/_members/composition/validators/render.d.ts +32 -0
  8. package/dist/_members/core/render/compositionRender.d.ts +17 -1
  9. package/dist/_members/core/render/types.d.ts +31 -0
  10. package/dist/authoring/build-tools.js +6 -6
  11. package/dist/authoring/context.js +4 -4
  12. package/dist/authoring/tools.js +5 -5
  13. package/dist/authoring.js +11 -9
  14. package/dist/{chunk-ZB3C3HM7.js → chunk-7FO3ZJ43.js} +3 -0
  15. package/dist/{chunk-ODL7GQJG.js → chunk-AP6ZIVAV.js} +2 -2
  16. package/dist/{chunk-IBYQG46O.js → chunk-AQBREB5O.js} +1 -1
  17. package/dist/{chunk-YIOY2XEO.js → chunk-DK2ODBNT.js} +15 -5
  18. package/dist/{chunk-JRQVPFLF.js → chunk-HY3RIEZW.js} +1 -1
  19. package/dist/{chunk-GEA7E2FL.js → chunk-JJ6XD7NG.js} +151 -1
  20. package/dist/{chunk-COYMZ76S.js → chunk-MBCXCJOE.js} +1 -1
  21. package/dist/{chunk-37NJ27UU.js → chunk-OCFDUCF4.js} +3 -0
  22. package/dist/{chunk-VOO5FQSS.js → chunk-PDYO3DOJ.js} +5 -5
  23. package/dist/{chunk-MXFAADCQ.js → chunk-PODIYN2K.js} +9 -2
  24. package/dist/{chunk-NFEGPWGS.js → chunk-TOJEXFXL.js} +1 -1
  25. package/dist/{chunk-LM4WDUQJ.js → chunk-UHGSZZDI.js} +1 -1
  26. package/dist/{chunk-XWKZB5U5.js → chunk-ZWMV6DD2.js} +24 -1
  27. package/dist/compose/renderer.js +3 -3
  28. package/dist/compose.js +6 -6
  29. package/dist/composition/graphics-plan.js +1 -1
  30. package/dist/composition/ops.js +3 -3
  31. package/dist/composition/primitive-catalog.js +1 -1
  32. package/dist/composition/projection.js +19 -3
  33. package/dist/composition/validators.js +6 -4
  34. package/dist/composition-ops.js +8 -6
  35. package/dist/composition.js +24 -6
  36. package/dist/{context-OKX3HHFS.js → context-YWUZDG5X.js} +4 -4
  37. package/dist/core/render.js +3 -3
  38. package/dist/core/select.js +2 -2
  39. package/dist/core.js +3 -3
  40. package/dist/errors.js +1 -1
  41. package/dist/mcp/adapter.js +1 -0
  42. package/dist/media-model/testing.js +1071 -718
  43. package/dist/nle-export/server.js +328 -130
  44. package/dist/nle-export.js +7 -6
  45. package/package.json +13 -14
  46. package/dist/_members/account-model/index.js +0 -4
  47. package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
  48. package/dist/_members/account-model/testing/index.js +0 -7
  49. package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
  50. package/dist/_members/account-model/types/index.js +0 -1
  51. package/dist/_members/account-model/validators/contextFile.js +0 -18
  52. package/dist/_members/account-model/validators/conversation.js +0 -95
  53. package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
  54. package/dist/_members/account-model/validators/index.js +0 -7
  55. package/dist/_members/account-model/validators/sessionToken.js +0 -49
  56. package/dist/_members/account-model/validators/uploadToken.js +0 -16
  57. package/dist/_members/account-model/validators/userSettings.js +0 -12
  58. package/dist/_members/account-model/validators/workingComposition.js +0 -20
  59. package/dist/_members/brand-derivation/constants.js +0 -20
  60. package/dist/_members/brand-derivation/contrastSafe.js +0 -114
  61. package/dist/_members/brand-derivation/index.js +0 -1
  62. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js +0 -162
  63. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js.map +0 -1
  64. package/dist/_members/cloud-import/index.js +0 -241
  65. package/dist/_members/cloud-import/index.js.map +0 -1
  66. package/dist/_members/cloud-import/multipartUpload.js +0 -7
  67. package/dist/_members/cloud-import/multipartUpload.js.map +0 -1
  68. package/dist/_members/composition/audio/audioMix.js +0 -61
  69. package/dist/_members/composition/audio/index.js +0 -5
  70. package/dist/_members/composition/audio/mixStaging.js +0 -195
  71. package/dist/_members/composition/audio/musicPack.generated.js +0 -136
  72. package/dist/_members/composition/audio/musicPack.js +0 -36
  73. package/dist/_members/composition/audio/pack.generated.js +0 -603
  74. package/dist/_members/composition/audio/pack.js +0 -48
  75. package/dist/_members/composition/audio/palette.js +0 -134
  76. package/dist/_members/composition/autozoom/index.js +0 -83
  77. package/dist/_members/composition/brand-kit.js +0 -45
  78. package/dist/_members/composition/brief/contract.js +0 -209
  79. package/dist/_members/composition/color-grade.js +0 -80
  80. package/dist/_members/composition/depth.js +0 -8
  81. package/dist/_members/composition/fixtures/index.js +0 -143
  82. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
  83. package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
  84. package/dist/_members/composition/fonts.js +0 -162
  85. package/dist/_members/composition/graphics-plan/compile.js +0 -221
  86. package/dist/_members/composition/graphics-plan/index.js +0 -10
  87. package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
  88. package/dist/_members/composition/graphics-plan/motion.js +0 -66
  89. package/dist/_members/composition/graphics-plan/schemas.js +0 -261
  90. package/dist/_members/composition/graphics-plan/solve.js +0 -145
  91. package/dist/_members/composition/index.js +0 -5
  92. package/dist/_members/composition/invariants/clipPlacement.js +0 -69
  93. package/dist/_members/composition/invariants/composition.js +0 -28
  94. package/dist/_members/composition/invariants/errors.js +0 -10
  95. package/dist/_members/composition/invariants/etag.js +0 -38
  96. package/dist/_members/composition/invariants/ids.js +0 -33
  97. package/dist/_members/composition/invariants/index.js +0 -9
  98. package/dist/_members/composition/invariants/keyframes.js +0 -45
  99. package/dist/_members/composition/invariants/markers.js +0 -29
  100. package/dist/_members/composition/invariants/time.js +0 -20
  101. package/dist/_members/composition/invariants/tracks.js +0 -304
  102. package/dist/_members/composition/ops/compositionOps.js +0 -1056
  103. package/dist/_members/composition/ops/headlessStore.js +0 -94
  104. package/dist/_members/composition/ops/index.js +0 -4
  105. package/dist/_members/composition/ops/selectors.js +0 -118
  106. package/dist/_members/composition/ops/timeline-word.js +0 -1
  107. package/dist/_members/composition/ops/transcript.js +0 -77
  108. package/dist/_members/composition/ops/types.js +0 -16
  109. package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
  110. package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
  111. package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
  112. package/dist/_members/composition/primitive-catalog/index.js +0 -46
  113. package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
  114. package/dist/_members/composition/primitive-catalog/projection.js +0 -164
  115. package/dist/_members/composition/primitive-catalog/types.js +0 -14
  116. package/dist/_members/composition/projection/behind-placement.js +0 -62
  117. package/dist/_members/composition/projection/brandKit.js +0 -482
  118. package/dist/_members/composition/projection/cardTokens.js +0 -209
  119. package/dist/_members/composition/projection/composition-floor.js +0 -582
  120. package/dist/_members/composition/projection/cropProjection.js +0 -257
  121. package/dist/_members/composition/projection/index.js +0 -7
  122. package/dist/_members/composition/projection/occlusion-budget.js +0 -104
  123. package/dist/_members/composition/projection/safe-zones.js +0 -99
  124. package/dist/_members/composition/reframe/aspectLoss.js +0 -115
  125. package/dist/_members/composition/reframe/coverage.js +0 -62
  126. package/dist/_members/composition/reframe/derive.js +0 -73
  127. package/dist/_members/composition/reframe/index.js +0 -109
  128. package/dist/_members/composition/reframe/kenBurns.js +0 -64
  129. package/dist/_members/composition/reframe/shotScale.js +0 -176
  130. package/dist/_members/composition/reframe/trajectory.js +0 -124
  131. package/dist/_members/composition/timeline/compound.js +0 -134
  132. package/dist/_members/composition/timeline/index.js +0 -9
  133. package/dist/_members/composition/timeline/intent.js +0 -228
  134. package/dist/_members/composition/timeline/keyframes.js +0 -121
  135. package/dist/_members/composition/timeline/link.js +0 -59
  136. package/dist/_members/composition/timeline/occupancy.js +0 -36
  137. package/dist/_members/composition/timeline/placement.js +0 -74
  138. package/dist/_members/composition/timeline/plan.js +0 -31
  139. package/dist/_members/composition/timeline/resolve.js +0 -170
  140. package/dist/_members/composition/timeline/trims.js +0 -278
  141. package/dist/_members/composition/types/index.js +0 -1
  142. package/dist/_members/composition/validators/brandKit.js +0 -295
  143. package/dist/_members/composition/validators/composePlan.js +0 -113
  144. package/dist/_members/composition/validators/composition.js +0 -703
  145. package/dist/_members/composition/validators/font.js +0 -34
  146. package/dist/_members/composition/validators/graphicKinds.js +0 -30
  147. package/dist/_members/composition/validators/index.js +0 -9
  148. package/dist/_members/composition/validators/project.js +0 -29
  149. package/dist/_members/composition/validators/registry.js +0 -41
  150. package/dist/_members/composition/validators/render.js +0 -139
  151. package/dist/_members/composition/validators/session.js +0 -37
  152. package/dist/_members/composition/validators/webhook.js +0 -72
  153. package/dist/_members/composition-ops/alphaLayers.js +0 -141
  154. package/dist/_members/composition-ops/index.js +0 -637
  155. package/dist/_members/composition-ops/materializeGrid.js +0 -99
  156. package/dist/_members/composition-ops/opRecorder.js +0 -196
  157. package/dist/_members/composition-ops/recordingStore.js +0 -14
  158. package/dist/_members/composition-ops/replaceRegion.js +0 -102
  159. package/dist/_members/composition-ops/testFixtures.js +0 -19
  160. package/dist/_members/core/index.js +0 -5
  161. package/dist/_members/core/render/bookends.js +0 -53
  162. package/dist/_members/core/render/captions.js +0 -127
  163. package/dist/_members/core/render/compositionRender.js +0 -1249
  164. package/dist/_members/core/render/deriveTrajectory.js +0 -889
  165. package/dist/_members/core/render/emphasis.js +0 -16
  166. package/dist/_members/core/render/eval/cropBox.js +0 -139
  167. package/dist/_members/core/render/eval/inclusion.js +0 -96
  168. package/dist/_members/core/render/eval/index.js +0 -146
  169. package/dist/_members/core/render/eval/metrics.js +0 -94
  170. package/dist/_members/core/render/exportSettings.js +0 -65
  171. package/dist/_members/core/render/index.js +0 -20
  172. package/dist/_members/core/render/mapFaceToPerson.js +0 -73
  173. package/dist/_members/core/render/types.js +0 -8
  174. package/dist/_members/core/render/vcam/cameraPath.js +0 -248
  175. package/dist/_members/core/render/vcam/constants.js +0 -115
  176. package/dist/_members/core/render/vcam/errorCodes.js +0 -39
  177. package/dist/_members/core/render/vcam/framing.js +0 -136
  178. package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
  179. package/dist/_members/core/render/vcam/shots.js +0 -53
  180. package/dist/_members/core/render/vcam/subjectSet.js +0 -388
  181. package/dist/_members/core/select/errorCodes.js +0 -38
  182. package/dist/_members/core/select/index.js +0 -26
  183. package/dist/_members/core/select/model.js +0 -18
  184. package/dist/_members/core/select/select.js +0 -244
  185. package/dist/_members/core/select/stabilize.js +0 -242
  186. package/dist/_members/core/types.js +0 -7
  187. package/dist/_members/errors/index.js +0 -1
  188. package/dist/_members/errors/registry.js +0 -560
  189. package/dist/_members/foundation/codes/index.js +0 -31
  190. package/dist/_members/foundation/index.js +0 -2
  191. package/dist/_members/foundation/primitives/index.js +0 -5
  192. package/dist/_members/mcp/adapter.js +0 -771
  193. package/dist/_members/mcp/burnedNames.js +0 -73
  194. package/dist/_members/mcp/core.js +0 -390
  195. package/dist/_members/mcp/curation.js +0 -792
  196. package/dist/_members/mcp/executor.js +0 -142
  197. package/dist/_members/mcp/format.js +0 -9
  198. package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
  199. package/dist/_members/mcp/generated/harness.js +0 -81
  200. package/dist/_members/mcp/generated/operations.js +0 -131
  201. package/dist/_members/mcp/index.js +0 -50
  202. package/dist/_members/mcp/internalLoopTools.js +0 -109
  203. package/dist/_members/mcp/prompts.js +0 -45
  204. package/dist/_members/mcp/resources.js +0 -166
  205. package/dist/_members/mcp/server.js +0 -340
  206. package/dist/_members/mcp/wait.js +0 -378
  207. package/dist/_members/mcp/x402Meta.js +0 -66
  208. package/dist/_members/media-model/api.js +0 -175
  209. package/dist/_members/media-model/index.js +0 -1
  210. package/dist/_members/media-model/media-kind.js +0 -116
  211. package/dist/_members/media-model/testing/index.js +0 -1
  212. package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
  213. package/dist/_members/media-model/transcriptSearch.js +0 -70
  214. package/dist/_members/media-model/transcriptSearchCases.json +0 -79
  215. package/dist/_members/nle-export/compact-timeline.js +0 -73
  216. package/dist/_members/nle-export/compact-timeline.js.map +0 -1
  217. package/dist/_members/nle-export/composition-to-input.js +0 -147
  218. package/dist/_members/nle-export/composition-to-input.js.map +0 -1
  219. package/dist/_members/nle-export/fcpxml.js +0 -159
  220. package/dist/_members/nle-export/fcpxml.js.map +0 -1
  221. package/dist/_members/nle-export/index.js +0 -12
  222. package/dist/_members/nle-export/index.js.map +0 -1
  223. package/dist/_members/nle-export/premiere.js +0 -161
  224. package/dist/_members/nle-export/premiere.js.map +0 -1
  225. package/dist/_members/nle-export/server/index.js +0 -2
  226. package/dist/_members/nle-export/server/index.js.map +0 -1
  227. package/dist/_members/nle-export/server/pack-zip.js +0 -38
  228. package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
  229. package/dist/_members/nle-export/srt.js +0 -50
  230. package/dist/_members/nle-export/srt.js.map +0 -1
  231. package/dist/_members/nle-export/types.js +0 -9
  232. package/dist/_members/nle-export/types.js.map +0 -1
  233. package/dist/_members/nle-export/xml/index.js +0 -11
  234. package/dist/_members/nle-export/xml/index.js.map +0 -1
  235. package/dist/_members/nle-export/xml-utils.js +0 -48
  236. package/dist/_members/nle-export/xml-utils.js.map +0 -1
  237. package/dist/_members/perception/activeSpeaker.js +0 -103
  238. package/dist/_members/perception/audioQuality.js +0 -76
  239. package/dist/_members/perception/energyBeat.js +0 -99
  240. package/dist/_members/perception/identityMatch.js +0 -91
  241. package/dist/_members/perception/index.js +0 -48
  242. package/dist/_members/perception/visualQuality.js +0 -95
  243. package/dist/_members/plane/conformance.js +0 -90
  244. package/dist/_members/plane/contract.js +0 -49
  245. package/dist/_members/plane/index.js +0 -16
  246. package/dist/_members/primitives/backgrounds/index.js +0 -32
  247. package/dist/_members/primitives/backgrounds/index.js.map +0 -1
  248. package/dist/_members/primitives/captions/index.js +0 -398
  249. package/dist/_members/primitives/captions/index.js.map +0 -1
  250. package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
  251. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
  252. package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
  253. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
  254. package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
  255. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
  256. package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
  257. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
  258. package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
  259. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
  260. package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
  261. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
  262. package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
  263. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
  264. package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
  265. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
  266. package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
  267. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
  268. package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
  269. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
  270. package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
  271. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
  272. package/dist/_members/primitives/chunk-IDAL6G3Y.js +0 -134
  273. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
  274. package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
  275. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
  276. package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
  277. package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
  278. package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
  279. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
  280. package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
  281. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
  282. package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
  283. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
  284. package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
  285. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
  286. package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
  287. package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
  288. package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
  289. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
  290. package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
  291. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
  292. package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
  293. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
  294. package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
  295. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
  296. package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
  297. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
  298. package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
  299. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
  300. package/dist/_members/primitives/effects/index.js +0 -30
  301. package/dist/_members/primitives/effects/index.js.map +0 -1
  302. package/dist/_members/primitives/hero-text/index.js +0 -14
  303. package/dist/_members/primitives/hero-text/index.js.map +0 -1
  304. package/dist/_members/primitives/index.js +0 -64
  305. package/dist/_members/primitives/index.js.map +0 -1
  306. package/dist/_members/primitives/layouts/index.js +0 -24
  307. package/dist/_members/primitives/layouts/index.js.map +0 -1
  308. package/dist/_members/primitives/lib/easings.js +0 -26
  309. package/dist/_members/primitives/lib/easings.js.map +0 -1
  310. package/dist/_members/primitives/lib/index.js +0 -74
  311. package/dist/_members/primitives/lib/index.js.map +0 -1
  312. package/dist/_members/primitives/lib/palette.js +0 -72
  313. package/dist/_members/primitives/lib/palette.js.map +0 -1
  314. package/dist/_members/primitives/lib/preview.js +0 -8
  315. package/dist/_members/primitives/lib/preview.js.map +0 -1
  316. package/dist/_members/primitives/lib/schema.js +0 -12
  317. package/dist/_members/primitives/lib/schema.js.map +0 -1
  318. package/dist/_members/primitives/lib/seeded-random.js +0 -14
  319. package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
  320. package/dist/_members/primitives/lib/text/contrast.js +0 -12
  321. package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
  322. package/dist/_members/primitives/lib/text/fill.js +0 -8
  323. package/dist/_members/primitives/lib/text/fill.js.map +0 -1
  324. package/dist/_members/primitives/lib/text/fitText.js +0 -10
  325. package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
  326. package/dist/_members/primitives/lib/text/marker.js +0 -8
  327. package/dist/_members/primitives/lib/text/marker.js.map +0 -1
  328. package/dist/_members/primitives/lib/text/motion.js +0 -16
  329. package/dist/_members/primitives/lib/text/motion.js.map +0 -1
  330. package/dist/_members/primitives/lib/text/recolor.js +0 -8
  331. package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
  332. package/dist/_members/primitives/lib/text/spec.js +0 -1
  333. package/dist/_members/primitives/lib/text/spec.js.map +0 -1
  334. package/dist/_members/primitives/lib/text/stage.js +0 -8
  335. package/dist/_members/primitives/lib/text/stage.js.map +0 -1
  336. package/dist/_members/primitives/lib/text/typeface.js +0 -8
  337. package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
  338. package/dist/_members/primitives/lib/tokens.js +0 -24
  339. package/dist/_members/primitives/lib/tokens.js.map +0 -1
  340. package/dist/_members/primitives/lib/types.js +0 -1
  341. package/dist/_members/primitives/lib/types.js.map +0 -1
  342. package/dist/_members/primitives/params-required.json +0 -153
  343. package/dist/_members/primitives/scenes/index.js +0 -25
  344. package/dist/_members/primitives/scenes/index.js.map +0 -1
  345. package/dist/_members/primitives/subject-foreground/index.js +0 -30
  346. package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
  347. package/dist/_members/primitives/text/index.js +0 -57
  348. package/dist/_members/primitives/text/index.js.map +0 -1
  349. package/dist/_members/primitives/transitions/index.js +0 -67
  350. package/dist/_members/primitives/transitions/index.js.map +0 -1
  351. package/dist/_members/primitives/ui-blocks/index.js +0 -76
  352. package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
  353. package/dist/_members/primitives/version-map.json +0 -105
  354. package/dist/_members/primitives/workspace.js +0 -60
  355. package/dist/_members/primitives/workspace.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/layouts/chat-to-preview-layout/index.tsx","../src/layouts/infinite-bento-pan/index.tsx","../src/layouts/letterbox/index.tsx","../src/layouts/photo-grid/index.tsx","../src/layouts/picture-in-picture/index.tsx","../src/layouts/split-screen/index.tsx","../src/layouts/staggered-bento-grid/index.tsx","../src/layouts/chat-to-preview-layout/config.ts","../src/layouts/infinite-bento-pan/config.ts","../src/layouts/letterbox/config.ts","../src/layouts/photo-grid/config.ts","../src/layouts/picture-in-picture/config.ts","../src/layouts/split-screen/config.ts","../src/layouts/staggered-bento-grid/config.ts","../src/layouts/index.ts"],"sourcesContent":["/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - hermetic-ize fontFamily (use inherit / monospace, not Geist CSS vars)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport type { ReactNode } from \"react\";\nimport { Easing, interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport * as palette from \"../../lib/palette\";\n\nexport interface ChatToPreviewLayoutProps {\n chat?: ReactNode;\n preview?: ReactNode;\n startChatRatio?: number;\n endChatRatio?: number;\n background?: string;\n speed?: number;\n className?: string;\n}\n\nconst FONT_FAMILY =\n \"inherit\";\n\nfunction DefaultChat() {\n const messages = [\n { from: \"user\", text: \"Build me a landing page\" },\n { from: \"ai\", text: \"Sure — what should it feature?\" },\n { from: \"user\", text: \"Hero, pricing, footer.\" },\n { from: \"ai\", text: \"On it. Generating now...\" },\n ];\n return (\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n padding: 24,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n fontFamily: FONT_FAMILY,\n background: palette.BG,\n }}\n >\n <div\n style={{\n color: palette.TEXT_MUTED,\n fontSize: 12,\n fontWeight: 600,\n letterSpacing: \"0.08em\",\n textTransform: \"uppercase\",\n marginBottom: 8,\n }}\n >\n Chat\n </div>\n {messages.map((m, i) => (\n <div\n key={i}\n style={{\n alignSelf: m.from === \"user\" ? \"flex-end\" : \"flex-start\",\n background: m.from === \"user\" ? palette.ACCENT : palette.SURFACE_HI,\n color: palette.TEXT_HI,\n padding: \"10px 14px\",\n borderRadius: 14,\n fontSize: 14,\n maxWidth: \"85%\",\n }}\n >\n {m.text}\n </div>\n ))}\n </div>\n );\n}\n\nfunction DefaultPreview() {\n return (\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n background: palette.TEXT_HI,\n display: \"flex\",\n flexDirection: \"column\",\n fontFamily: FONT_FAMILY,\n }}\n >\n <div\n style={{\n height: 36,\n background: palette.TEXT,\n borderBottom: `1px solid ${palette.BORDER_SOFT}`,\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n padding: \"0 12px\",\n }}\n >\n <div\n style={{\n width: 10,\n height: 10,\n borderRadius: 999,\n background: palette.MAC_RED,\n }}\n />\n <div\n style={{\n width: 10,\n height: 10,\n borderRadius: 999,\n background: palette.MAC_YELLOW,\n }}\n />\n <div\n style={{\n width: 10,\n height: 10,\n borderRadius: 999,\n background: palette.MAC_GREEN,\n }}\n />\n </div>\n <div\n style={{\n flex: 1,\n padding: 32,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 16,\n }}\n >\n <div\n style={{\n fontSize: 36,\n fontWeight: 700,\n letterSpacing: \"-0.03em\",\n color: palette.BG,\n }}\n >\n Ship faster.\n </div>\n <div style={{ fontSize: 16, color: palette.TEXT_MUTED, maxWidth: 360 }}>\n The fastest way to launch your idea. Built with Remotion.\n </div>\n <div\n style={{\n marginTop: 12,\n display: \"inline-flex\",\n background: palette.BG,\n color: palette.TEXT_HI,\n padding: \"10px 18px\",\n borderRadius: 10,\n alignSelf: \"flex-start\",\n fontSize: 14,\n fontWeight: 600,\n }}\n >\n Get started\n </div>\n </div>\n </div>\n );\n}\n\nexport function ChatToPreviewLayout({\n chat,\n preview,\n startChatRatio = 0.5,\n endChatRatio = 0.25,\n background = palette.BG,\n speed = 1,\n className,\n}: ChatToPreviewLayoutProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n // Apple's signature ease — slow start, dramatic settle. Replaces the older\n // symmetric bezier so the morph feels deliberate instead of mechanical.\n const APPLE_EASE = Easing.bezier(0.16, 1, 0.3, 1);\n\n const morphStart = durationInFrames * 0.1;\n const morphEnd = durationInFrames * 0.7;\n\n const ratio = interpolate(\n frame,\n [morphStart, morphEnd],\n [startChatRatio, endChatRatio],\n {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n easing: APPLE_EASE,\n },\n );\n\n // Right (preview) panel reveal: fade in + slide left into its growing slot.\n // Anchored to the same morph window so it feels like the chat is physically\n // dragging the preview into existence.\n const previewOpacity = interpolate(frame, [morphStart, morphEnd], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n easing: APPLE_EASE,\n });\n const previewTx = interpolate(frame, [morphStart, morphEnd], [40, 0], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n easing: APPLE_EASE,\n });\n\n const chatBasis = `${ratio * 100}%`;\n const previewBasis = `${(1 - ratio) * 100}%`;\n\n // Inner content min-widths. These are the lever that prevents text from\n // re-flowing inside the columns as the parent flex-basis morphs — content\n // is rendered at a fixed virtual width, then clipped by `overflow: hidden`\n // on the outer column. No reflow → no jumping characters.\n const CHAT_INNER_MIN = 520;\n const PREVIEW_INNER_MIN = 720;\n\n return (\n <div\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n background,\n padding: 32,\n display: \"flex\",\n gap: 16,\n }}\n >\n <div\n style={{\n flexBasis: chatBasis,\n flexGrow: 0,\n flexShrink: 0,\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: 16,\n border: `1px solid ${palette.BORDER_SOFT}`,\n }}\n >\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n minWidth: CHAT_INNER_MIN,\n }}\n >\n {chat ?? <DefaultChat />}\n </div>\n </div>\n <div\n style={{\n flexBasis: previewBasis,\n flexGrow: 0,\n flexShrink: 0,\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: 16,\n border: `1px solid ${palette.BORDER_SOFT}`,\n opacity: previewOpacity,\n transform: `translateX(${previewTx}px)`,\n }}\n >\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n minWidth: PREVIEW_INNER_MIN,\n }}\n >\n {preview ?? <DefaultPreview />}\n </div>\n </div>\n </div>\n );\n}\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - hermetic-ize fontFamily (use inherit / monospace, not Geist CSS vars)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport * as palette from \"../../lib/palette\";\n\nexport interface InfiniteBentoPanProps {\n panSpeed?: number;\n accentColor?: string;\n speed?: number;\n className?: string;\n}\n\nconst FONT_FAMILY =\n \"inherit\";\n\nconst SUPER_W = 3500;\nconst SUPER_H = 2500;\n\ntype CardKind =\n | \"chart\"\n | \"counter\"\n | \"gradient\"\n | \"code\"\n | \"logo\"\n | \"stat\"\n | \"bars\";\n\ninterface CardDef {\n x: number;\n y: number;\n w: number;\n h: number;\n kind: CardKind;\n hue: number;\n label?: string;\n}\n\nconst CARDS: CardDef[] = [\n { x: 80, y: 80, w: 480, h: 280, kind: \"chart\", hue: 220, label: \"Revenue\" },\n { x: 600, y: 80, w: 280, h: 280, kind: \"counter\", hue: 280, label: \"MRR\" },\n { x: 920, y: 80, w: 360, h: 180, kind: \"gradient\", hue: 200 },\n { x: 1320, y: 80, w: 480, h: 280, kind: \"code\", hue: 0, label: \"deploy.ts\" },\n { x: 1840, y: 80, w: 280, h: 280, kind: \"logo\", hue: 320 },\n { x: 2160, y: 80, w: 380, h: 180, kind: \"stat\", hue: 160, label: \"Uptime\" },\n { x: 2580, y: 80, w: 360, h: 280, kind: \"bars\", hue: 40, label: \"Visits\" },\n { x: 920, y: 300, w: 360, h: 200, kind: \"counter\", hue: 180, label: \"Users\" },\n {\n x: 2160,\n y: 300,\n w: 380,\n h: 200,\n kind: \"chart\",\n hue: 100,\n label: \"Latency\",\n },\n { x: 80, y: 400, w: 280, h: 280, kind: \"gradient\", hue: 340 },\n { x: 400, y: 400, w: 480, h: 280, kind: \"code\", hue: 0, label: \"api.ts\" },\n { x: 1320, y: 420, w: 280, h: 280, kind: \"stat\", hue: 60, label: \"P95\" },\n { x: 1640, y: 420, w: 380, h: 280, kind: \"bars\", hue: 260, label: \"Builds\" },\n { x: 2580, y: 420, w: 360, h: 280, kind: \"logo\", hue: 200 },\n { x: 80, y: 720, w: 480, h: 240, kind: \"chart\", hue: 290, label: \"Errors\" },\n { x: 600, y: 720, w: 280, h: 240, kind: \"stat\", hue: 20, label: \"RPS\" },\n { x: 920, y: 740, w: 380, h: 220, kind: \"gradient\", hue: 240 },\n {\n x: 1320,\n y: 740,\n w: 360,\n h: 220,\n kind: \"counter\",\n hue: 140,\n label: \"Active\",\n },\n { x: 1720, y: 740, w: 480, h: 240, kind: \"code\", hue: 0, label: \"worker.ts\" },\n { x: 2240, y: 740, w: 360, h: 240, kind: \"bars\", hue: 320, label: \"Queue\" },\n { x: 80, y: 1000, w: 360, h: 220, kind: \"logo\", hue: 180 },\n { x: 460, y: 1000, w: 380, h: 220, kind: \"stat\", hue: 80, label: \"Cache\" },\n { x: 880, y: 1000, w: 480, h: 220, kind: \"chart\", hue: 200, label: \"CPU\" },\n {\n x: 1400,\n y: 1000,\n w: 280,\n h: 220,\n kind: \"counter\",\n hue: 360,\n label: \"Jobs\",\n },\n { x: 1720, y: 1020, w: 360, h: 220, kind: \"gradient\", hue: 120 },\n { x: 2120, y: 1020, w: 380, h: 220, kind: \"code\", hue: 0, label: \"db.sql\" },\n { x: 2540, y: 1020, w: 400, h: 220, kind: \"bars\", hue: 280, label: \"Tasks\" },\n { x: 80, y: 1280, w: 480, h: 260, kind: \"code\", hue: 0, label: \"edge.ts\" },\n { x: 600, y: 1280, w: 360, h: 260, kind: \"chart\", hue: 240, label: \"TTFB\" },\n { x: 1000, y: 1280, w: 280, h: 260, kind: \"logo\", hue: 60 },\n { x: 1320, y: 1280, w: 380, h: 260, kind: \"stat\", hue: 200, label: \"Hits\" },\n {\n x: 1740,\n y: 1280,\n w: 360,\n h: 260,\n kind: \"counter\",\n hue: 300,\n label: \"Bytes\",\n },\n { x: 2140, y: 1280, w: 380, h: 260, kind: \"gradient\", hue: 160 },\n { x: 2560, y: 1280, w: 380, h: 260, kind: \"bars\", hue: 0, label: \"Errors\" },\n { x: 80, y: 1600, w: 380, h: 220, kind: \"stat\", hue: 280, label: \"Saved\" },\n { x: 500, y: 1600, w: 480, h: 220, kind: \"chart\", hue: 40, label: \"Net Out\" },\n { x: 1020, y: 1600, w: 360, h: 220, kind: \"code\", hue: 0, label: \"auth.ts\" },\n { x: 1420, y: 1600, w: 280, h: 220, kind: \"logo\", hue: 220 },\n {\n x: 1740,\n y: 1620,\n w: 380,\n h: 220,\n kind: \"counter\",\n hue: 100,\n label: \"Hooks\",\n },\n { x: 2160, y: 1620, w: 360, h: 220, kind: \"bars\", hue: 340, label: \"Runs\" },\n { x: 2560, y: 1620, w: 380, h: 220, kind: \"gradient\", hue: 200 },\n { x: 80, y: 1880, w: 480, h: 240, kind: \"bars\", hue: 180, label: \"Edges\" },\n { x: 600, y: 1880, w: 380, h: 240, kind: \"gradient\", hue: 320 },\n { x: 1020, y: 1880, w: 360, h: 240, kind: \"logo\", hue: 80 },\n {\n x: 1420,\n y: 1880,\n w: 480,\n h: 240,\n kind: \"chart\",\n hue: 260,\n label: \"Tokens\",\n },\n {\n x: 1940,\n y: 1880,\n w: 280,\n h: 240,\n kind: \"counter\",\n hue: 20,\n label: \"Calls\",\n },\n { x: 2260, y: 1880, w: 380, h: 240, kind: \"stat\", hue: 140, label: \"Score\" },\n { x: 2680, y: 1880, w: 260, h: 240, kind: \"code\", hue: 0, label: \"ws.ts\" },\n];\n\nfunction noise(i: number, frame: number) {\n return Math.sin(frame / 30 + i) * 0.5 + 0.5;\n}\n\nfunction ChartCard({ accent, t }: { accent: string; t: number }) {\n const points: string[] = [];\n for (let i = 0; i < 12; i++) {\n const x = (i / 11) * 100;\n const y =\n 50 - (Math.sin(i * 0.7 + t) * 18 + Math.cos(i * 0.4 + t * 0.6) * 8);\n points.push(`${x},${y}`);\n }\n return (\n <svg\n viewBox=\"0 0 100 60\"\n preserveAspectRatio=\"none\"\n style={{ width: \"100%\", height: \"100%\" }}\n >\n <polyline\n points={points.join(\" \")}\n fill=\"none\"\n stroke={accent}\n strokeWidth={1.4}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <polyline\n points={`${points.join(\" \")} 100,60 0,60`}\n fill={`${accent}22`}\n stroke=\"none\"\n />\n </svg>\n );\n}\n\nfunction BarsCard({ accent, t }: { accent: string; t: number }) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-end\",\n gap: 6,\n height: \"100%\",\n width: \"100%\",\n }}\n >\n {Array.from({ length: 10 }).map((_, i) => {\n const h = 25 + (Math.sin(i * 0.8 + t) * 0.5 + 0.5) * 70;\n return (\n <div\n key={i}\n style={{\n flex: 1,\n height: `${h}%`,\n background: `linear-gradient(180deg, ${accent} 0%, ${accent}55 100%)`,\n borderRadius: 4,\n }}\n />\n );\n })}\n </div>\n );\n}\n\nfunction CodeCard() {\n const lines = [\n { indent: 0, w: 60, c: palette.SYN_PROP },\n { indent: 1, w: 80, c: `${palette.SYN_TEXT}cc` },\n { indent: 1, w: 50, c: palette.SYN_KEYWORD },\n { indent: 2, w: 70, c: `${palette.SYN_TEXT}cc` },\n { indent: 2, w: 40, c: palette.SYN_NUMBER },\n { indent: 1, w: 30, c: `${palette.SYN_TEXT}99` },\n { indent: 0, w: 20, c: `${palette.SYN_TEXT}99` },\n ];\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n fontFamily: \"ui-monospace, SFMono-Regular, Menlo, monospace\",\n }}\n >\n {lines.map((l, i) => (\n <div\n key={i}\n style={{\n marginLeft: l.indent * 14,\n width: `${l.w}%`,\n height: 8,\n borderRadius: 3,\n background: l.c,\n opacity: 0.7,\n }}\n />\n ))}\n </div>\n );\n}\n\nfunction LogoCard({ accent, hue }: { accent: string; hue: number }) {\n return (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <div\n style={{\n width: 80,\n height: 80,\n borderRadius: 20,\n background: `linear-gradient(135deg, ${accent} 0%, hsl(${hue},70%,55%) 100%)`,\n }}\n />\n </div>\n );\n}\n\nfunction GradientCard({ hue }: { hue: number }) {\n return (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n background: `radial-gradient(circle at 30% 30%, hsl(${hue},80%,60%) 0%, hsl(${(hue + 60) % 360},70%,40%) 50%, ${palette.BG} 100%)`,\n }}\n />\n );\n}\n\nfunction Card({\n card,\n accent,\n index,\n frame,\n}: {\n card: CardDef;\n accent: string;\n index: number;\n frame: number;\n}) {\n const t = noise(index, frame) * 6.28;\n const baseStyle: React.CSSProperties = {\n position: \"absolute\",\n left: card.x,\n top: card.y,\n width: card.w,\n height: card.h,\n borderRadius: 18,\n background: `linear-gradient(180deg, ${palette.SURFACE} 0%, ${palette.BG} 100%)`,\n border: `1px solid ${palette.BORDER_SOFT}`,\n overflow: \"hidden\",\n padding: 18,\n color: palette.TEXT_HI,\n display: \"flex\",\n flexDirection: \"column\",\n };\n\n const labelEl = card.label ? (\n <div\n style={{\n fontSize: 12,\n fontWeight: 600,\n color: palette.TEXT_MUTED,\n letterSpacing: \"0.04em\",\n textTransform: \"uppercase\",\n marginBottom: 8,\n }}\n >\n {card.label}\n </div>\n ) : null;\n\n if (card.kind === \"chart\") {\n return (\n <div style={baseStyle}>\n {labelEl}\n <div style={{ flex: 1 }}>\n <ChartCard accent={accent} t={t} />\n </div>\n </div>\n );\n }\n if (card.kind === \"bars\") {\n return (\n <div style={baseStyle}>\n {labelEl}\n <div style={{ flex: 1 }}>\n <BarsCard accent={accent} t={t} />\n </div>\n </div>\n );\n }\n if (card.kind === \"counter\") {\n const v = Math.floor(1200 + noise(index, frame) * 800);\n return (\n <div style={baseStyle}>\n {labelEl}\n <div\n style={{\n flex: 1,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n fontSize: 56,\n fontWeight: 700,\n letterSpacing: \"-0.04em\",\n color: palette.TEXT_HI,\n }}\n >\n {v.toLocaleString()}\n </div>\n <div style={{ fontSize: 12, color: accent, fontWeight: 600 }}>\n +{(noise(index + 1, frame) * 12).toFixed(1)}%\n </div>\n </div>\n );\n }\n if (card.kind === \"stat\") {\n const v = (95 + noise(index, frame) * 5).toFixed(2);\n return (\n <div style={baseStyle}>\n {labelEl}\n <div\n style={{\n flex: 1,\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 48,\n fontWeight: 700,\n letterSpacing: \"-0.03em\",\n }}\n >\n {v}\n <span\n style={{\n fontSize: 20,\n color: palette.TEXT_MUTED,\n marginLeft: 4,\n }}\n >\n %\n </span>\n </div>\n </div>\n );\n }\n if (card.kind === \"code\") {\n return (\n <div style={baseStyle}>\n {labelEl}\n <div style={{ flex: 1, display: \"flex\", alignItems: \"center\" }}>\n <div style={{ width: \"100%\" }}>\n <CodeCard />\n </div>\n </div>\n </div>\n );\n }\n if (card.kind === \"logo\") {\n return (\n <div style={{ ...baseStyle, padding: 0 }}>\n <LogoCard accent={accent} hue={card.hue} />\n </div>\n );\n }\n // gradient\n return (\n <div style={{ ...baseStyle, padding: 0 }}>\n <GradientCard hue={card.hue} />\n </div>\n );\n}\n\nexport function InfiniteBentoPan({\n panSpeed = 1,\n accentColor = palette.VIOLET,\n speed = 1,\n className,\n}: InfiniteBentoPanProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames, width, height } = useVideoConfig();\n\n const maxX = SUPER_W - width;\n const maxY = SUPER_H - height;\n\n // diagonal pan: from top-left toward bottom-right\n const t = interpolate(frame, [0, durationInFrames], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n const px = t * maxX * Math.min(1, panSpeed);\n const py = t * maxY * Math.min(1, panSpeed);\n\n return (\n <div\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n background: palette.BG_DEEP,\n overflow: \"hidden\",\n fontFamily: FONT_FAMILY,\n }}\n >\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n width: SUPER_W,\n height: SUPER_H,\n transform: `translate(${-px}px, ${-py}px)`,\n willChange: \"transform\",\n }}\n >\n {CARDS.map((c, i) => (\n <Card key={i} card={c} accent={accentColor} index={i} frame={frame} />\n ))}\n </div>\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n background:\n \"radial-gradient(circle at center, transparent 30%, rgba(0,0,0,0.85) 80%, #000 100%)\",\n pointerEvents: \"none\",\n }}\n />\n </div>\n );\n}\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\n\nexport interface LetterboxProps {\n /** Target aspect ratio for the cinematic bars (e.g. 2.35 for cinemascope) */\n ratio?: number;\n /** Bar color (default '#000000') */\n color?: string;\n /** Animate bars opening with spring physics (default true) */\n animated?: boolean;\n /** Content rendered behind the bars */\n children: React.ReactNode;\n}\n\n/**\n * Cinematic letterbox bars overlay.\n *\n * Calculates bar height from the current video dimensions vs target aspect ratio.\n * Bars spring-animate into view when `animated` is true.\n *\n * Usage:\n * <Letterbox ratio={2.35}>\n * <Img src=\"wide-shot.jpg\" />\n * </Letterbox>\n */\nexport const Letterbox: React.FC<LetterboxProps> = ({\n ratio = 2.35,\n color = '#000000',\n animated = true,\n children,\n}) => {\n const frame = useCurrentFrame();\n const { fps, width, height } = useVideoConfig();\n\n // Calculate bar height: difference between current and target aspect ratio\n const currentRatio = width / height;\n const targetHeight = width / ratio;\n // If video is already wider than target, no bars needed\n const rawBarHeight = Math.max(0, (height - targetHeight) / 2);\n\n let barHeight: number;\n\n if (animated) {\n const spr = spring({\n fps,\n frame,\n config: { damping: 18, stiffness: 80 },\n });\n barHeight = interpolate(spr, [0, 1], [0, rawBarHeight]);\n } else {\n barHeight = rawBarHeight;\n }\n\n // If ratio is wider than or equal to current, bars would be 0\n if (currentRatio >= ratio && rawBarHeight <= 0) {\n return <AbsoluteFill>{children}</AbsoluteFill>;\n }\n\n return (\n <AbsoluteFill>\n {children}\n {/* Top bar */}\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: barHeight,\n backgroundColor: color,\n }}\n />\n {/* Bottom bar */}\n <div\n style={{\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%',\n height: barHeight,\n backgroundColor: color,\n }}\n />\n </AbsoluteFill>\n );\n};\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill, Img } from 'remotion';\n\nexport interface PhotoGridProps {\n /** Array of image URLs to display */\n images: string[];\n /** Number of grid columns (default 2) */\n columns?: number;\n /** Gap between grid cells in pixels (default 8) */\n gap?: number;\n /** Seconds between each image reveal (default 0.15) */\n stagger?: number;\n}\n\n/**\n * Animated photo grid reveal.\n *\n * Displays images in a CSS grid with spring-animated staggered entry.\n * Each cell fades in, scales up, and lifts from a slight offset.\n *\n * Usage:\n * <PhotoGrid\n * images={['a.jpg', 'b.jpg', 'c.jpg', 'd.jpg']}\n * columns={2}\n * stagger={0.15}\n * />\n */\nexport const PhotoGrid: React.FC<PhotoGridProps> = ({\n images,\n columns = 2,\n gap = 8,\n stagger = 0.15,\n}) => {\n const frame = useCurrentFrame();\n const { fps } = useVideoConfig();\n\n const staggerFrames = Math.round(stagger * fps);\n\n return (\n <AbsoluteFill\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap,\n padding: gap,\n }}\n >\n {images.map((src, i) => {\n const delay = i * staggerFrames;\n const spr = spring({\n fps,\n frame: Math.max(0, frame - delay),\n config: { damping: 14, stiffness: 100 },\n });\n\n const opacity = interpolate(spr, [0, 1], [0, 1]);\n const scale = interpolate(spr, [0, 1], [0.85, 1]);\n const translateY = interpolate(spr, [0, 1], [20, 0]);\n\n return (\n <div\n key={i}\n style={{\n overflow: 'hidden',\n borderRadius: 4,\n opacity,\n transform: `scale(${scale}) translateY(${translateY}px)`,\n }}\n >\n <Img\n src={src}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }}\n />\n </div>\n );\n })}\n </AbsoluteFill>\n );\n};\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\nimport * as palette from '../../lib/palette';\n\nexport type PipPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\nexport interface PictureInPictureProps {\n /** Corner for the PiP overlay (default 'bottom-right') */\n position?: PipPosition;\n /** PiP size as fraction of video width (0-1, default 0.3) */\n size?: number;\n /** Border radius in pixels (default 12) */\n borderRadius?: number;\n /** Box shadow CSS value (default 'none' — a hairline border provides separation) */\n shadow?: string;\n /** PiP overlay content */\n children: React.ReactNode;\n /** Main background content */\n main: React.ReactNode;\n}\n\n/**\n * Picture-in-picture floating overlay layout.\n *\n * Renders `main` content full-screen with a spring-animated PiP window\n * containing `children` in the specified corner.\n *\n * Usage:\n * <PictureInPicture\n * position=\"bottom-right\"\n * size={0.25}\n * main={<Video src=\"presentation.mp4\" />}\n * >\n * <Video src=\"speaker.mp4\" />\n * </PictureInPicture>\n */\nexport const PictureInPicture: React.FC<PictureInPictureProps> = ({\n position = 'bottom-right',\n size = 0.3,\n borderRadius = 12,\n shadow = 'none',\n children,\n main,\n}) => {\n const frame = useCurrentFrame();\n const { fps, width, height } = useVideoConfig();\n\n // Spring scale-in for PiP window\n const spr = spring({\n fps,\n frame,\n config: { damping: 16, stiffness: 120 },\n });\n const scale = interpolate(spr, [0, 1], [0, 1]);\n\n const pipWidth = width * size;\n const pipHeight = height * size;\n const margin = 20;\n\n // Position the PiP window\n const positionStyle: React.CSSProperties = {};\n if (position.includes('top')) {\n positionStyle.top = margin;\n } else {\n positionStyle.bottom = margin;\n }\n if (position.includes('left')) {\n positionStyle.left = margin;\n } else {\n positionStyle.right = margin;\n }\n\n // Transform origin matches the corner\n const originX = position.includes('left') ? '0%' : '100%';\n const originY = position.includes('top') ? '0%' : '100%';\n\n return (\n <AbsoluteFill>\n {main}\n <div\n style={{\n position: 'absolute',\n ...positionStyle,\n width: pipWidth,\n height: pipHeight,\n borderRadius,\n overflow: 'hidden',\n border: `1px solid ${palette.BORDER}`,\n boxShadow: shadow,\n transform: `scale(${scale})`,\n transformOrigin: `${originX} ${originY}`,\n }}\n >\n {children}\n </div>\n </AbsoluteFill>\n );\n};\n","import React from 'react';\nimport { useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill } from 'remotion';\n\nexport interface SplitScreenProps {\n /** Number of columns (default 2) */\n columns?: number;\n /** Gap between panels in pixels (default 4) */\n gap?: number;\n /** Panel contents — each child becomes one panel */\n children: React.ReactNode;\n}\n\n/**\n * Multi-panel split screen layout.\n *\n * Arranges children into equal-width columns with spring-animated\n * opacity + scale per panel with stagger.\n *\n * Usage:\n * <SplitScreen columns={2} gap={4}>\n * <Video src=\"interview-a.mp4\" />\n * <Video src=\"interview-b.mp4\" />\n * </SplitScreen>\n */\nexport const SplitScreen: React.FC<SplitScreenProps> = ({\n columns = 2,\n gap = 4,\n children,\n}) => {\n const frame = useCurrentFrame();\n const { fps } = useVideoConfig();\n\n const childArray = React.Children.toArray(children);\n const staggerFrames = 4; // frames between each panel reveal\n\n return (\n <AbsoluteFill\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap,\n }}\n >\n {childArray.map((child, i) => {\n const delay = i * staggerFrames;\n const spr = spring({\n fps,\n frame: Math.max(0, frame - delay),\n config: { damping: 14, stiffness: 100 },\n });\n\n const opacity = interpolate(spr, [0, 1], [0, 1]);\n const scale = interpolate(spr, [0, 1], [0.92, 1]);\n\n return (\n <div\n key={i}\n style={{\n flex: `1 1 ${100 / columns}%`,\n overflow: 'hidden',\n opacity,\n transform: `scale(${scale})`,\n }}\n >\n {child}\n </div>\n );\n })}\n </AbsoluteFill>\n );\n};\n","/**\n * Adapted from remocn (https://github.com/kapishdima/remocn) — MIT\n * Copyright (c) 2026 KapishDima\n *\n * Modifications:\n * - hermetic-ize fontFamily (use inherit / monospace, not Geist CSS vars)\n * - strip \"use client\" directive (re-added at shadcn-registry export time)\n */\n\nimport { Sequence, spring, useCurrentFrame, useVideoConfig } from \"remotion\";\nimport { FitText } from \"../../lib/text/fitText\";\nimport * as palette from \"../../lib/palette\";\n\nexport interface BentoItem {\n title: string;\n body?: string;\n span?: 1 | 2;\n}\n\nexport interface StaggeredBentoGridProps {\n items?: BentoItem[];\n staggerDelay?: number;\n columns?: number;\n background?: string;\n cardColor?: string;\n textColor?: string;\n speed?: number;\n className?: string;\n}\n\nconst FONT_FAMILY =\n \"inherit\";\n\nconst DEFAULT_ITEMS: BentoItem[] = [\n { title: \"Fast\", body: \"Built on Remotion\", span: 2 },\n { title: \"Animated\", body: \"Spring physics\" },\n { title: \"Composable\", body: \"Drop-in blocks\" },\n { title: \"Themed\", body: \"Tailwind ready\" },\n { title: \"Typed\", body: \"First-class TS\" },\n { title: \"Open\", body: \"MIT licensed\", span: 2 },\n { title: \"Tiny\", body: \"Zero runtime cost\" },\n];\n\n// Grid layout constants (mirror the grid container styles below) — used to derive\n// each card's content width so FitText knows how much room a cell's text has.\nconst GRID_MAX_WIDTH = 1100;\nconst GRID_GAP = 20;\nconst CARD_PADDING = 24;\n\nfunction Card({\n item,\n cardColor,\n textColor,\n speed,\n columns,\n}: {\n item: BentoItem;\n cardColor: string;\n textColor: string;\n speed: number;\n columns: number;\n}) {\n const frame = useCurrentFrame() * speed;\n const { fps } = useVideoConfig();\n\n // Content width available to this card's text: its column span (1 or 2) minus the\n // card's own horizontal padding. Long titles/bodies shrink-then-wrap into this box\n // rather than overflowing the card — which is what lets the caps be raised.\n const span = item.span ?? 1;\n const cellWidth = (GRID_MAX_WIDTH - GRID_GAP * (columns - 1)) / columns;\n const contentWidth = Math.max(\n 80,\n cellWidth * span + GRID_GAP * (span - 1) - CARD_PADDING * 2,\n );\n\n const progress = spring({\n frame,\n fps,\n durationInFrames: Math.round(0.6 * fps),\n config: { damping: 12 },\n });\n\n return (\n <div\n style={{\n gridColumn: `span ${item.span ?? 1}`,\n background: cardColor,\n borderRadius: 16,\n padding: 24,\n opacity: progress,\n transform: `scale(${0.85 + progress * 0.15})`,\n transformOrigin: \"center center\",\n willChange: \"transform, opacity\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-end\",\n minHeight: 140,\n border: `1px solid ${palette.BORDER_SOFT}`,\n }}\n >\n <FitText\n maxFontSize={28}\n maxWidth={contentWidth}\n maxLines={2}\n fontFamily={FONT_FAMILY}\n fontWeight={700}\n letterSpacing=\"-0.03em\"\n style={{ color: textColor, marginBottom: 4 }}\n >\n {item.title}\n </FitText>\n {item.body ? (\n <FitText\n maxFontSize={16}\n maxWidth={contentWidth}\n maxLines={3}\n fontFamily={FONT_FAMILY}\n fontWeight={400}\n style={{ color: textColor, opacity: 0.6 }}\n >\n {item.body}\n </FitText>\n ) : null}\n </div>\n );\n}\n\nexport function StaggeredBentoGrid({\n items = DEFAULT_ITEMS,\n staggerDelay = 8,\n columns = 3,\n background = palette.BG,\n cardColor = palette.SURFACE,\n textColor = palette.TEXT_HI,\n speed = 1,\n className,\n}: StaggeredBentoGridProps) {\n return (\n <div\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n background,\n padding: 64,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: 20,\n width: \"100%\",\n maxWidth: 1100,\n }}\n >\n {items.map((item, index) => (\n <Sequence\n key={index}\n from={Math.round((index * staggerDelay) / speed)}\n layout=\"none\"\n >\n <Card\n item={item}\n cardColor={cardColor}\n textColor={textColor}\n speed={speed}\n columns={columns}\n />\n </Sequence>\n ))}\n </div>\n </div>\n );\n}\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport * as palette from '../../lib/palette';\nimport { ChatToPreviewLayout } from './index';\n\nconst paramsSchema = z.object({\n startChatRatio: z.number().min(0).max(1).default(0.55).describe('Initial width ratio of the chat pane (0–1).'),\n endChatRatio: z.number().min(0).max(1).default(0.35).describe('Final width ratio of the chat pane.'),\n background: z.string().default(palette.BG).describe('Frame background.'),\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: 'chat-to-preview-layout',\n component: ChatToPreviewLayout,\n name: 'Chat to Preview Layout',\n category: 'layouts',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'split-screen',\n description:\n 'Two-pane layout with a chat panel on the left and a preview canvas on the right. The chat pane animates from a wider start ratio to a narrower end ratio, simulating the \"chat conversation produces a result\" pattern.',\n useWhen:\n 'AI/agent demo videos, \"chat → output\" walkthroughs, cueframe self-promo. Pass actual chat + preview ReactNodes for content. Avoid for non-AI workflows — the framing is specific.',\n pairsWith: ['typewriter', 'glass-code-block', 'success-confetti'],\n avoidWith: ['split-screen'],\n tier: 'standard',\n useCase: ['full-scene'],\n tags: ['layout', 'split', 'chat', 'preview', 'ai-demo'],\n mood: ['tech-demo', 'corporate'],\n\n paramsSchema,\n propDefaults: { startChatRatio: 0.55, endChatRatio: 0.35, background: palette.BG, speed: 1 },\n\n examples: [\n { name: 'agent-demo', mood: ['tech-demo'], params: { startChatRatio: 0.55, endChatRatio: 0.35, background: palette.BG, speed: 1 } },\n ],\n\n textParam: null,\n subtextParam: null,\n tokens: [\n { propPath: 'background', cssVar: '--cf-bg', fallback: palette.BG, brandKitPath: 'colors.background' },\n ],\n\n durationInFrames: 180,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 90, mode: 'oneshot', defaultExample: 'agent-demo' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport * as palette from '../../lib/palette';\nimport { InfiniteBentoPan } from './index';\n\nconst paramsSchema = z.object({\n panSpeed: z.number().min(0.25).max(2).default(1).describe(\n 'How aggressively the camera pans across the supergrid. 0.5 feels languid; 1 reads as \"tour\"; >1.5 starts blurring cards.',\n ),\n accentColor: z.string().default(palette.VIOLET).describe(\n 'Highlight color for chart lines, bars, and counter deltas. Dial to brand accent.',\n ),\n speed: z.number().min(0.25).max(4).default(1).describe('Global playback speed multiplier (compounds with panSpeed).'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'infinite-bento-pan',\n component: InfiniteBentoPan,\n name: 'Infinite Bento Pan',\n category: 'layouts',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'pan-grid',\n description:\n 'A 3500×2500 supergrid of pre-baked bento cards (charts, counters, code snippets, gradients, logos, stats, bars) with a slow diagonal camera pan and a vignette mask. The \"platform overview\" hero shot — gives the impression of a vast, dense product surface without needing real data.',\n useWhen:\n 'Top-of-funnel marketing intros, \"look how much this platform does\" beats, opening titles for product demos, B-roll under VO. Avoid when you need the audience to read specific cards (the pan is constant — use staggered-bento-grid instead) or when the brand is minimalist (this primitive is intentionally maximal).',\n pairsWith: ['cinematic-title', 'kinetic-type', 'grain', 'volumetric-rays'],\n avoidWith: ['staggered-bento-grid', 'split-screen', 'picture-in-picture'],\n tier: 'niche',\n useCase: ['background'],\n tags: ['layout', 'bento', 'pan', 'infinite', 'supergrid', 'b-roll', 'platform-overview'],\n mood: ['tech-demo', 'cinematic', 'corporate'],\n\n paramsSchema,\n propDefaults: { panSpeed: 1, accentColor: palette.VIOLET, speed: 1 },\n\n examples: [\n {\n name: 'platform-overview',\n mood: ['tech-demo', 'cinematic'],\n params: { panSpeed: 1, accentColor: palette.VIOLET },\n description: 'Default purple-accent pan for hero intros.',\n },\n {\n name: 'slow-tour',\n mood: ['cinematic', 'corporate'],\n params: { panSpeed: 0.5, accentColor: palette.BLUE },\n description: 'Half-speed pan, blue accent — calmer, more corporate.',\n },\n ],\n\n textParam: null,\n subtextParam: null,\n\n tokens: [\n { propPath: 'accentColor', cssVar: '--cf-accent', fallback: palette.VIOLET, brandKitPath: 'colors.accent' },\n ],\n\n durationInFrames: 300,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 150, mode: 'loop', defaultExample: 'platform-overview' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { Letterbox } from './index';\n\nconst paramsSchema = z.object({\n ratio: z.number().min(1).max(3.5).default(2.35).describe('Target aspect ratio for the bars. 2.35 = cinemascope; 1.85 = academy widescreen.'),\n color: z.string().default('#000000').describe('Bar color.'),\n animated: z.boolean().default(true).describe('Spring-animate the bars opening.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'letterbox',\n component: Letterbox,\n name: 'Letterbox',\n category: 'layouts',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'letterbox',\n description:\n 'Cinematic letterbox bars overlay. Calculates bar height from current vs target aspect ratio and optionally spring-animates the bars in.',\n useWhen:\n 'Establishing shots, dramatic moments, signaling \"this is a film\". Pair with cinematic-title for the full intro feel. Avoid for already-cropped content (no bars to add).',\n pairsWith: ['cinematic-title', 'parallax', 'color-grade', 'grain'],\n avoidWith: [],\n tier: 'standard',\n useCase: ['title-over-footage'],\n tags: ['layout', 'letterbox', 'cinemascope', 'bars', 'cinematic'],\n mood: ['cinematic'],\n\n paramsSchema,\n propDefaults: { ratio: 2.35, color: '#000000', animated: true },\n\n examples: [\n { name: 'cinemascope', mood: ['cinematic'], params: { ratio: 2.35, color: '#000000', animated: true } },\n { name: 'widescreen', mood: ['cinematic'], params: { ratio: 1.85, color: '#000000', animated: true } },\n ],\n\n textParam: null,\n subtextParam: null,\n tokens: [],\n\n durationInFrames: 90,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 60, mode: 'oneshot', defaultExample: 'cinemascope' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { PhotoGrid } from './index';\n\nconst paramsSchema = z.object({\n images: z.array(z.string().url()).min(1).describe('Array of image URLs to display.'),\n columns: z.number().int().min(1).max(6).default(2).describe('Grid columns.'),\n gap: z.number().min(0).max(40).default(8).describe('Gap between cells in pixels.'),\n stagger: z.number().min(0).max(2).default(0.15).describe('Seconds between each cell\\'s reveal. 0.1–0.25 reads natural.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'photo-grid',\n component: PhotoGrid,\n name: 'Photo Grid',\n category: 'layouts',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'split-screen',\n description:\n 'CSS-grid photo gallery with spring-animated staggered entry. Each cell fades in, scales up from 0.85, and translates from slight Y offset.',\n useWhen:\n 'Photo collages, image-driven montages, \"look at all these\" reels. 4–8 images at 2 columns is the sweet spot. Avoid for non-photo content — the cell framing is photo-shaped.',\n pairsWith: ['parallax', 'cinematic-title', 'mesh-gradient-bg'],\n avoidWith: [],\n tier: 'standard',\n useCase: ['full-scene'],\n tags: ['layout', 'grid', 'photos', 'gallery', 'staggered'],\n mood: ['editorial', 'cinematic', 'soft'],\n\n paramsSchema,\n propDefaults: { columns: 2, gap: 8, stagger: 0.15 },\n\n examples: [\n {\n name: 'four-up',\n mood: ['editorial'],\n params: {\n images: ['https://images.unsplash.com/photo-1506744038136-46273834b3fb?w=800', 'https://images.unsplash.com/photo-1469474968028-56623f02e42e?w=800', 'https://images.unsplash.com/photo-1465146344425-f00d5f5c8f07?w=800', 'https://images.unsplash.com/photo-1501785888041-af3ef285b470?w=800'],\n columns: 2, gap: 8, stagger: 0.15,\n },\n },\n ],\n\n textParam: null,\n subtextParam: null,\n tokens: [],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 90, mode: 'oneshot', defaultExample: 'four-up' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { PictureInPicture } from './index';\n\nconst paramsSchema = z.object({\n position: z.enum(['top-left', 'top-right', 'bottom-left', 'bottom-right']).default('bottom-right').describe('Corner for the PiP overlay.'),\n size: z.number().min(0.1).max(0.6).default(0.3).describe('PiP size as fraction of video width (0–1).'),\n borderRadius: z.number().min(0).max(60).default(12).describe('Border radius in pixels.'),\n shadow: z.string().default('none').describe('CSS box-shadow. Defaults to none; a hairline border provides separation.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'picture-in-picture',\n component: PictureInPicture,\n name: 'Picture-in-Picture',\n category: 'layouts',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'picture-in-picture',\n description:\n 'Floating PiP overlay layout. Renders main content full-screen with a spring-animated PiP window in a chosen corner. Pass `main` and `children` ReactNodes.',\n useWhen:\n 'Speaker overlay on top of presentation/screen-share, reaction inset on top of video, dual-feed podcasts. Avoid stacking multiple PiPs.',\n pairsWith: ['lower-third', 'parallax', 'pulsing-indicator'],\n avoidWith: ['split-screen'],\n tier: 'standard',\n useCase: ['title-over-footage'],\n tags: ['layout', 'pip', 'picture-in-picture', 'overlay', 'corner'],\n mood: ['tech-demo', 'editorial', 'breaking-news'],\n\n paramsSchema,\n propDefaults: { position: 'bottom-right', size: 0.3, borderRadius: 12, shadow: 'none' },\n\n examples: [\n { name: 'speaker-overlay', mood: ['tech-demo'], params: { position: 'bottom-right', size: 0.25, borderRadius: 12, shadow: 'none' } },\n { name: 'reaction-inset', mood: ['editorial'], params: { position: 'top-right', size: 0.2, borderRadius: 8, shadow: 'none' } },\n ],\n\n textParam: null,\n subtextParam: null,\n tokens: [],\n\n durationInFrames: 60,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 30, mode: 'loop', defaultExample: 'speaker-overlay' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport { SplitScreen } from './index';\n\nconst paramsSchema = z.object({\n columns: z.number().int().min(1).max(6).default(2).describe('Number of equal columns. 2 is the canonical split.'),\n gap: z.number().min(0).max(40).default(4).describe('Gap between panels in pixels.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'split-screen',\n component: SplitScreen,\n name: 'Split Screen',\n category: 'layouts',\n kind: 'component',\n version: '0.1.0',\n\n intent: 'split-screen',\n description:\n 'Multi-panel split-screen layout. Arranges children into equal-width columns with spring-animated stagger. Each panel scales-and-fades in with a 4-frame delay between them.',\n useWhen:\n 'Side-by-side comparisons, multi-feed podcasts (interviewer + interviewee), photo grids. Avoid for >4 columns at 1920×1080 — content gets cramped.',\n pairsWith: ['lower-third', 'photo-grid'],\n avoidWith: ['picture-in-picture'],\n tier: 'standard',\n useCase: ['full-scene'],\n tags: ['layout', 'split', 'columns', 'comparison', 'multi-feed'],\n mood: ['editorial', 'corporate', 'tech-demo'],\n\n paramsSchema,\n propDefaults: { columns: 2, gap: 4 },\n\n examples: [\n { name: 'two-up', mood: ['editorial'], params: { columns: 2, gap: 4 } },\n { name: 'three-grid', mood: ['corporate'], params: { columns: 3, gap: 6 } },\n ],\n\n textParam: null,\n subtextParam: null,\n tokens: [],\n\n durationInFrames: 60,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 30, mode: 'oneshot', defaultExample: 'two-up' },\n};\n","import { z } from 'zod';\nimport type { PrimitiveMeta } from '../../lib/types';\nimport * as palette from '../../lib/palette';\nimport { StaggeredBentoGrid } from './index';\n\nconst itemSchema = z.object({\n title: z.string().min(1).max(80).describe('Bento card title. 1–3 words. The visual hero. Auto-fits (shrinks + wraps to 2 lines) to the cell.'),\n body: z.string().max(160).optional().describe('Optional subtitle beneath the title. Auto-fits (shrinks + wraps to 3 lines) to the cell.'),\n span: z.union([z.literal(1), z.literal(2)]).optional().describe('Column span. 2 doubles the card width — use for 1–2 anchor cards in the grid.'),\n});\n\nconst paramsSchema = z.object({\n items: z.array(itemSchema).min(1).max(16).default([\n { title: 'Fast', body: 'Built on Remotion', span: 2 },\n { title: 'Animated', body: 'Spring physics' },\n { title: 'Composable', body: 'Drop-in blocks' },\n { title: 'Themed', body: 'Tailwind ready' },\n { title: 'Typed', body: 'First-class TS' },\n { title: 'Open', body: 'MIT licensed', span: 2 },\n { title: 'Tiny', body: 'Zero runtime cost' },\n ]).describe(\n 'Cards to render. Order = stagger order (top-left first). Mix span:1 / span:2 for a varied bento rhythm; 6–9 cards reads best.',\n ),\n staggerDelay: z.number().int().min(2).max(20).default(8).describe(\n 'Frames between each card\\'s entrance. 6–10 feels intentional; <4 is chaotic; >12 makes the audience wait.',\n ),\n columns: z.number().int().min(2).max(5).default(3).describe(\n 'Grid column count. 3 is the canonical bento.',\n ),\n background: z.string().default(palette.BG).describe('Frame background behind the grid.'),\n cardColor: z.string().default(palette.SURFACE).describe('Bento card fill. Should be one step lighter than background.'),\n textColor: z.string().default(palette.TEXT_HI).describe('Title and body text color.'),\n speed: z.number().min(0.25).max(4).default(1).describe('Playback speed multiplier across all card entrances.'),\n}).passthrough();\n\ntype Params = z.infer<typeof paramsSchema>;\n\nexport const config: PrimitiveMeta<Params> = {\n id: 'staggered-bento-grid',\n component: StaggeredBentoGrid,\n name: 'Staggered Bento Grid',\n category: 'layouts',\n kind: 'component',\n version: '0.1.1',\n\n intent: 'arrange-grid',\n description:\n 'Bento-style feature grid where each card pops in on a spring with a staggered delay. Mixed-span cards (1× / 2× columns) create the asymmetric \"Apple keynote\" rhythm that\\'s become the default for feature recaps and product capability tours.',\n useWhen:\n 'Feature lists, \"what\\'s new\", capability summaries, anything that needs to communicate 5–9 discrete points without overwhelming the viewer. Avoid for 1–3 items (use a single hero card) or >12 items (text becomes unreadable; consider infinite-bento-pan instead).',\n pairsWith: ['mesh-gradient-bg', 'kinetic-type', 'cinematic-title', 'spring-pop-in'],\n avoidWith: ['split-screen', 'picture-in-picture'],\n tier: 'standard',\n useCase: ['full-scene'],\n tags: ['layout', 'bento', 'grid', 'features', 'stagger', 'spring', 'apple', 'keynote'],\n mood: ['tech-demo', 'minimal', 'corporate', 'editorial'],\n\n paramsSchema,\n propDefaults: {\n items: [\n { title: 'Fast', body: 'Built on Remotion', span: 2 },\n { title: 'Animated', body: 'Spring physics' },\n { title: 'Composable', body: 'Drop-in blocks' },\n { title: 'Themed', body: 'Tailwind ready' },\n { title: 'Typed', body: 'First-class TS' },\n { title: 'Open', body: 'MIT licensed', span: 2 },\n { title: 'Tiny', body: 'Zero runtime cost' },\n ],\n staggerDelay: 8,\n columns: 3,\n background: palette.BG,\n cardColor: palette.SURFACE,\n textColor: palette.TEXT_HI,\n speed: 1,\n },\n\n examples: [\n {\n name: 'feature-recap',\n mood: ['tech-demo'],\n params: {\n items: [\n { title: 'Streaming', body: 'Sub-100ms first token', span: 2 },\n { title: 'Caching', body: '90% prompt reuse' },\n { title: 'Tools', body: 'Native function calls' },\n { title: 'Eval', body: 'Built-in scoring' },\n { title: 'OSS', body: 'MIT licensed', span: 2 },\n ],\n columns: 3,\n },\n description: 'Five-card mixed-span recap.',\n },\n {\n name: 'capability-tour',\n mood: ['corporate', 'minimal'],\n params: {\n items: [\n { title: 'SOC 2' },\n { title: 'GDPR' },\n { title: 'HIPAA' },\n { title: 'ISO 27001' },\n ],\n columns: 4,\n staggerDelay: 6,\n cardColor: palette.SURFACE,\n },\n description: 'Compact compliance grid.',\n },\n ],\n\n textParam: null,\n subtextParam: null,\n\n tokens: [\n { propPath: 'background', cssVar: '--cf-bg', fallback: palette.BG, brandKitPath: 'colors.background' },\n { propPath: 'cardColor', cssVar: '--cf-surface', fallback: palette.SURFACE, brandKitPath: 'colors.surface' },\n { propPath: 'textColor', cssVar: '--cf-fg', fallback: palette.TEXT_HI, brandKitPath: 'colors.textOnSurface' },\n ],\n\n durationInFrames: 120,\n fps: 30,\n width: 1920,\n height: 1080,\n\n preview: { thumbnailFrame: 90, mode: 'oneshot', defaultExample: 'feature-recap' },\n};\n","// @cueframe/primitives/layouts — compositional containers\n\nimport type { Catalog } from '../lib/types';\n\nexport { ChatToPreviewLayout } from './chat-to-preview-layout';\nexport { InfiniteBentoPan } from './infinite-bento-pan';\nexport { Letterbox } from './letterbox';\nexport { PhotoGrid } from './photo-grid';\nexport { PictureInPicture } from './picture-in-picture';\nexport { SplitScreen } from './split-screen';\nexport { StaggeredBentoGrid } from './staggered-bento-grid';\n\nimport { config as chatToPreviewLayout } from './chat-to-preview-layout/config';\nimport { config as infiniteBentoPan } from './infinite-bento-pan/config';\nimport { config as letterbox } from './letterbox/config';\nimport { config as photoGrid } from './photo-grid/config';\nimport { config as pictureInPicture } from './picture-in-picture/config';\nimport { config as splitScreen } from './split-screen/config';\nimport { config as staggeredBentoGrid } from './staggered-bento-grid/config';\n\nexport const catalog: Catalog = [\n chatToPreviewLayout, infiniteBentoPan, letterbox, photoGrid,\n pictureInPicture, splitScreen, staggeredBentoGrid,\n];\n"],"mappings":"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","names":["interpolate","useCurrentFrame","useVideoConfig","jsx","jsxs","FONT_FAMILY","useCurrentFrame","useVideoConfig","interpolate","useCurrentFrame","useVideoConfig","interpolate","jsx","jsxs","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","jsx","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","jsx","jsxs","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","useCurrentFrame","useVideoConfig","spring","interpolate","AbsoluteFill","jsx","spring","useCurrentFrame","useVideoConfig","jsx","jsxs","FONT_FAMILY","Card","useCurrentFrame","useVideoConfig","spring","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","paramsSchema","z","config","z","z","paramsSchema","config","config"]}
@@ -1,19 +0,0 @@
1
- // src/lib/text/fill.ts
2
- function fillStyle(fill) {
3
- if (fill.kind === "gradient") {
4
- return {
5
- backgroundImage: fill.value,
6
- WebkitBackgroundClip: "text",
7
- backgroundClip: "text",
8
- WebkitTextFillColor: "transparent",
9
- color: "transparent",
10
- textShadow: "none"
11
- };
12
- }
13
- return { color: fill.value };
14
- }
15
-
16
- export {
17
- fillStyle
18
- };
19
- //# sourceMappingURL=chunk-HIWVFZVH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/text/fill.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\nimport type { TextFill } from './spec';\n\n/**\n * CSS for a text fill. `solid` → a plain text color; `gradient` → a CSS gradient\n * painted INTO the glyphs via bg-clip-text (the emphasis-gradient axis, extracted\n * verbatim from Captions). Pure.\n */\nexport function fillStyle(fill: TextFill): CSSProperties {\n if (fill.kind === 'gradient') {\n return {\n backgroundImage: fill.value,\n WebkitBackgroundClip: 'text',\n backgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n color: 'transparent',\n textShadow: 'none',\n };\n }\n return { color: fill.value };\n}\n"],"mappings":";AAQO,SAAS,UAAU,MAA+B;AACvD,MAAI,KAAK,SAAS,YAAY;AAC5B,WAAO;AAAA,MACL,iBAAiB,KAAK;AAAA,MACtB,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,MAChB,qBAAqB;AAAA,MACrB,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,EACF;AACA,SAAO,EAAE,OAAO,KAAK,MAAM;AAC7B;","names":[]}
@@ -1,134 +0,0 @@
1
- // src/lib/preview.tsx
2
- import * as React from "react";
3
- import { AbsoluteFill } from "remotion";
4
- import { Player } from "@remotion/player";
5
- import { TransitionSeries, linearTiming } from "@remotion/transitions";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- var TransitionPanel = ({
8
- label,
9
- color
10
- }) => /* @__PURE__ */ jsx(
11
- AbsoluteFill,
12
- {
13
- style: {
14
- background: color,
15
- color: "#fff",
16
- display: "flex",
17
- alignItems: "center",
18
- justifyContent: "center",
19
- fontFamily: "inherit",
20
- fontSize: 96,
21
- fontWeight: 600
22
- },
23
- children: label
24
- }
25
- );
26
- var TransitionPreviewComposition = ({ presentation, durationInFrames }) => {
27
- const half = Math.max(1, Math.floor(durationInFrames / 2));
28
- return /* @__PURE__ */ jsxs(TransitionSeries, { children: [
29
- /* @__PURE__ */ jsx(TransitionSeries.Sequence, { durationInFrames: half, children: /* @__PURE__ */ jsx(TransitionPanel, { label: "A", color: "#0ea5e9" }) }),
30
- /* @__PURE__ */ jsx(
31
- TransitionSeries.Transition,
32
- {
33
- timing: linearTiming({ durationInFrames: half }),
34
- presentation
35
- }
36
- ),
37
- /* @__PURE__ */ jsx(TransitionSeries.Sequence, { durationInFrames: half, children: /* @__PURE__ */ jsx(TransitionPanel, { label: "B", color: "#9333ea" }) })
38
- ] });
39
- };
40
- var PrimitivePreview = ({
41
- primitive,
42
- exampleName,
43
- paramsOverride,
44
- width,
45
- height,
46
- autoPlay,
47
- controls = false,
48
- className,
49
- style
50
- }) => {
51
- const example = React.useMemo(() => {
52
- const targetName = exampleName ?? primitive.preview.defaultExample;
53
- if (targetName) {
54
- const found = primitive.examples.find((e) => e.name === targetName);
55
- if (found) return found;
56
- }
57
- return primitive.examples[0];
58
- }, [primitive, exampleName]);
59
- const inputProps = React.useMemo(
60
- () => ({ ...example?.params, ...paramsOverride }),
61
- [example, paramsOverride]
62
- );
63
- const compWidth = width ?? primitive.preview.width ?? primitive.width;
64
- const compHeight = height ?? primitive.preview.height ?? primitive.height;
65
- const loop = primitive.preview.mode === "loop";
66
- const shouldAutoPlay = autoPlay ?? loop;
67
- if (!example) {
68
- return /* @__PURE__ */ jsxs(
69
- "div",
70
- {
71
- className,
72
- style: {
73
- width: compWidth,
74
- height: compHeight,
75
- background: "#1a1a1a",
76
- color: "#999",
77
- display: "flex",
78
- alignItems: "center",
79
- justifyContent: "center",
80
- fontFamily: "monospace",
81
- fontSize: 12,
82
- ...style
83
- },
84
- children: [
85
- "no example for ",
86
- primitive.id
87
- ]
88
- }
89
- );
90
- }
91
- if (primitive.kind === "transition" && primitive.createPresentation) {
92
- const presentation = primitive.createPresentation(inputProps);
93
- return /* @__PURE__ */ jsx(
94
- Player,
95
- {
96
- component: TransitionPreviewComposition,
97
- inputProps: {
98
- presentation,
99
- durationInFrames: primitive.durationInFrames
100
- },
101
- durationInFrames: primitive.durationInFrames,
102
- fps: primitive.fps,
103
- compositionWidth: primitive.width,
104
- compositionHeight: primitive.height,
105
- style: { width: compWidth, height: compHeight, ...style },
106
- className,
107
- autoPlay: shouldAutoPlay,
108
- loop,
109
- controls
110
- }
111
- );
112
- }
113
- return /* @__PURE__ */ jsx(
114
- Player,
115
- {
116
- component: primitive.component,
117
- inputProps,
118
- durationInFrames: primitive.durationInFrames,
119
- fps: primitive.fps,
120
- compositionWidth: primitive.width,
121
- compositionHeight: primitive.height,
122
- style: { width: compWidth, height: compHeight, ...style },
123
- className,
124
- autoPlay: shouldAutoPlay,
125
- loop,
126
- controls
127
- }
128
- );
129
- };
130
-
131
- export {
132
- PrimitivePreview
133
- };
134
- //# sourceMappingURL=chunk-IDAL6G3Y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/preview.tsx"],"sourcesContent":["/**\n * <PrimitivePreview> — drawer-side wrapper around `@remotion/player`.\n *\n * Mounts any primitive in a Remotion Player using metadata from the\n * primitive's `config.ts`. The drawer doesn't reach into Remotion; it\n * passes a `PrimitiveMeta` and an optional `exampleName` and gets a\n * working preview.\n *\n * Transitions are special — they only make sense between two scenes,\n * so this component renders the underlying presentation component at\n * a fixed progress for static thumbnails. A future enhancement is a\n * mini `<TransitionSeries>` between two `DefaultPanel`-style placeholders.\n */\n\nimport * as React from 'react';\nimport { AbsoluteFill } from 'remotion';\nimport { Player } from '@remotion/player';\nimport { TransitionSeries, linearTiming } from '@remotion/transitions';\nimport type { PrimitiveMeta } from './types';\n\nconst TransitionPanel: React.FC<{ label: string; color: string }> = ({\n label,\n color,\n}) => (\n <AbsoluteFill\n style={{\n background: color,\n color: '#fff',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontFamily: 'inherit',\n fontSize: 96,\n fontWeight: 600,\n }}\n >\n {label}\n </AbsoluteFill>\n);\n\nconst TransitionPreviewComposition: React.FC<{\n presentation: ReturnType<NonNullable<PrimitiveMeta['createPresentation']>>;\n durationInFrames: number;\n}> = ({ presentation, durationInFrames }) => {\n const half = Math.max(1, Math.floor(durationInFrames / 2));\n return (\n <TransitionSeries>\n <TransitionSeries.Sequence durationInFrames={half}>\n <TransitionPanel label=\"A\" color=\"#0ea5e9\" />\n </TransitionSeries.Sequence>\n <TransitionSeries.Transition\n timing={linearTiming({ durationInFrames: half })}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n presentation={presentation as any}\n />\n <TransitionSeries.Sequence durationInFrames={half}>\n <TransitionPanel label=\"B\" color=\"#9333ea\" />\n </TransitionSeries.Sequence>\n </TransitionSeries>\n );\n};\n\nexport interface PrimitivePreviewProps {\n /** The primitive to render. */\n primitive: PrimitiveMeta;\n /** Example to use. Defaults to `preview.defaultExample` or `examples[0]`. */\n exampleName?: string;\n /** Override params (deep-merged onto the example's params). */\n paramsOverride?: Record<string, unknown>;\n /** Override Player width. Falls back to `primitive.preview.width ?? primitive.width`. */\n width?: number;\n /** Override Player height. Falls back to `primitive.preview.height ?? primitive.height`. */\n height?: number;\n /** Whether to autoplay. Defaults to `true` for `mode: 'loop'`. */\n autoPlay?: boolean;\n /** Show Remotion controls overlay. Defaults to `false`. */\n controls?: boolean;\n /** Additional className for the Player wrapper. */\n className?: string;\n /** Additional style for the Player wrapper. */\n style?: React.CSSProperties;\n}\n\nexport const PrimitivePreview: React.FC<PrimitivePreviewProps> = ({\n primitive,\n exampleName,\n paramsOverride,\n width,\n height,\n autoPlay,\n controls = false,\n className,\n style,\n}) => {\n const example = React.useMemo(() => {\n const targetName = exampleName ?? primitive.preview.defaultExample;\n if (targetName) {\n const found = primitive.examples.find((e) => e.name === targetName);\n if (found) return found;\n }\n return primitive.examples[0];\n }, [primitive, exampleName]);\n\n const inputProps = React.useMemo(\n () => ({ ...example?.params, ...paramsOverride }),\n [example, paramsOverride],\n );\n\n const compWidth = width ?? primitive.preview.width ?? primitive.width;\n const compHeight = height ?? primitive.preview.height ?? primitive.height;\n const loop = primitive.preview.mode === 'loop';\n const shouldAutoPlay = autoPlay ?? loop;\n\n if (!example) {\n return (\n <div\n className={className}\n style={{\n width: compWidth,\n height: compHeight,\n background: '#1a1a1a',\n color: '#999',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontFamily: 'monospace',\n fontSize: 12,\n ...style,\n }}\n >\n no example for {primitive.id}\n </div>\n );\n }\n\n if (primitive.kind === 'transition' && primitive.createPresentation) {\n const presentation = primitive.createPresentation(inputProps);\n return (\n <Player\n component={TransitionPreviewComposition}\n inputProps={{\n presentation,\n durationInFrames: primitive.durationInFrames,\n }}\n durationInFrames={primitive.durationInFrames}\n fps={primitive.fps}\n compositionWidth={primitive.width}\n compositionHeight={primitive.height}\n style={{ width: compWidth, height: compHeight, ...style }}\n className={className}\n autoPlay={shouldAutoPlay}\n loop={loop}\n controls={controls}\n />\n );\n }\n\n return (\n <Player\n component={primitive.component}\n inputProps={inputProps as Record<string, unknown>}\n durationInFrames={primitive.durationInFrames}\n fps={primitive.fps}\n compositionWidth={primitive.width}\n compositionHeight={primitive.height}\n style={{ width: compWidth, height: compHeight, ...style }}\n className={className}\n autoPlay={shouldAutoPlay}\n loop={loop}\n controls={controls}\n />\n );\n};\n"],"mappings":"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","names":[]}
@@ -1,34 +0,0 @@
1
- // src/lib/easings.ts
2
- import { Easing } from "remotion";
3
- var SOFT = Easing.bezier(0.16, 1, 0.3, 1);
4
- var OUT_EXPO = Easing.bezier(0.22, 1, 0.36, 1);
5
- var OUT_BACK = Easing.bezier(0.34, 1.56, 0.64, 1);
6
- var OUT_CUBIC = Easing.bezier(0.33, 1, 0.68, 1);
7
- var IN_OUT_CUBIC = Easing.bezier(0.65, 0, 0.35, 1);
8
- var IN_OUT_QUART = Easing.bezier(0.6, 0, 0.2, 1);
9
- var IN_QUART = Easing.bezier(0.7, 0, 0.84, 0);
10
- var LINEAR = Easing.linear;
11
- var STEP = Easing.step1;
12
- var EASING_BY_INTENT = {
13
- entrance: SOFT,
14
- emphasis: OUT_EXPO,
15
- playful: OUT_BACK,
16
- exit: IN_QUART,
17
- cross: IN_OUT_CUBIC,
18
- drama: IN_OUT_QUART,
19
- none: LINEAR
20
- };
21
-
22
- export {
23
- SOFT,
24
- OUT_EXPO,
25
- OUT_BACK,
26
- OUT_CUBIC,
27
- IN_OUT_CUBIC,
28
- IN_OUT_QUART,
29
- IN_QUART,
30
- LINEAR,
31
- STEP,
32
- EASING_BY_INTENT
33
- };
34
- //# sourceMappingURL=chunk-KNC6JP5F.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/easings.ts"],"sourcesContent":["/**\n * Shared easing curves.\n *\n * Centralized so primitives don't redeclare `Easing.bezier(...)` inline\n * (remocn's mistake — the SOFT curve is redeclared in 12+ files there).\n *\n * Curves use Remotion's `Easing.bezier(x1, y1, x2, y2)` so they integrate\n * with `interpolate(..., { easing })` directly.\n *\n * Usage:\n *\n * import { SOFT, OUT_EXPO } from '@cueframe/primitives/lib/easings';\n * const v = interpolate(frame, [0, 30], [0, 1], { easing: SOFT });\n */\n\nimport { Easing } from 'remotion';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Named curves\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Soft, expressive ease-out. The most useful all-purpose curve for entrances. */\nexport const SOFT = Easing.bezier(0.16, 1, 0.3, 1);\n\n/** Tight, exponential ease-out. Snappier than SOFT, good for emphasis. */\nexport const OUT_EXPO = Easing.bezier(0.22, 1, 0.36, 1);\n\n/** Spring-like ease-out with overshoot. Use sparingly — feels playful. */\nexport const OUT_BACK = Easing.bezier(0.34, 1.56, 0.64, 1);\n\n/** Clean cubic ease-out. The CSS default-ish curve for \"ease-out\". */\nexport const OUT_CUBIC = Easing.bezier(0.33, 1, 0.68, 1);\n\n/** Smooth in-and-out, cubic. Universal \"ease-in-out\" replacement. */\nexport const IN_OUT_CUBIC = Easing.bezier(0.65, 0, 0.35, 1);\n\n/** Stronger in-and-out, quartic. More dramatic than cubic. */\nexport const IN_OUT_QUART = Easing.bezier(0.6, 0, 0.2, 1);\n\n/** Aggressive ease-in. Use for exits where deceleration is wrong. */\nexport const IN_QUART = Easing.bezier(0.7, 0, 0.84, 0);\n\n/** Linear (identity). Mostly used as an explicit override. */\nexport const LINEAR = Easing.linear;\n\n/** Step-based easing — jumps at midpoint. Useful for staggered/ratcheted feels. */\nexport const STEP = Easing.step1;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Presets indexed by intent\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Intent → curve map. Use when picking a curve from agent metadata\n * rather than committing to a specific name.\n */\nexport const EASING_BY_INTENT = {\n entrance: SOFT,\n emphasis: OUT_EXPO,\n playful: OUT_BACK,\n exit: IN_QUART,\n cross: IN_OUT_CUBIC,\n drama: IN_OUT_QUART,\n none: LINEAR,\n} as const;\n\nexport type EasingIntent = keyof typeof EASING_BY_INTENT;\n"],"mappings":";AAeA,SAAS,cAAc;AAOhB,IAAM,OAAO,OAAO,OAAO,MAAM,GAAG,KAAK,CAAC;AAG1C,IAAM,WAAW,OAAO,OAAO,MAAM,GAAG,MAAM,CAAC;AAG/C,IAAM,WAAW,OAAO,OAAO,MAAM,MAAM,MAAM,CAAC;AAGlD,IAAM,YAAY,OAAO,OAAO,MAAM,GAAG,MAAM,CAAC;AAGhD,IAAM,eAAe,OAAO,OAAO,MAAM,GAAG,MAAM,CAAC;AAGnD,IAAM,eAAe,OAAO,OAAO,KAAK,GAAG,KAAK,CAAC;AAGjD,IAAM,WAAW,OAAO,OAAO,KAAK,GAAG,MAAM,CAAC;AAG9C,IAAM,SAAS,OAAO;AAGtB,IAAM,OAAO,OAAO;AAUpB,IAAM,mBAAmB;AAAA,EAC9B,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AACR;","names":[]}