framefields 2.0.9 → 2.0.11

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 (241) hide show
  1. package/README.md +17 -6
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-BxA0sL9z.d.mts → audio-BHanw8Jb.d.mts} +3 -3
  5. package/dist/{audio-BxA0sL9z.d.mts.map → audio-BHanw8Jb.d.mts.map} +1 -1
  6. package/dist/{audio-Dev4NGPa.mjs → audio-COOMNwL5.mjs} +4 -4
  7. package/dist/{audio-Dev4NGPa.mjs.map → audio-COOMNwL5.mjs.map} +1 -1
  8. package/dist/{dist-CoSg-CWr.mjs → dist-BAVZdFEJ.mjs} +3 -3
  9. package/dist/{dist-CoSg-CWr.mjs.map → dist-BAVZdFEJ.mjs.map} +1 -1
  10. package/dist/{dist-DzUJmIHt.mjs → dist-BYqNNwsl.mjs} +2 -2
  11. package/dist/{dist-DzUJmIHt.mjs.map → dist-BYqNNwsl.mjs.map} +1 -1
  12. package/dist/{dist-B9Afsv83.mjs → dist-CbG3QxDw.mjs} +651 -2
  13. package/dist/dist-CbG3QxDw.mjs.map +1 -0
  14. package/dist/{dist-DgfykO99.mjs → dist-Cxi68OuY.mjs} +5347 -3286
  15. package/dist/dist-Cxi68OuY.mjs.map +1 -0
  16. package/dist/effects/index.d.mts +4 -4
  17. package/dist/effects/index.mjs +25 -25
  18. package/dist/{effects-hxRwxjyC.mjs → effects-DzbjFhyA.mjs} +3 -3
  19. package/dist/{effects-hxRwxjyC.mjs.map → effects-DzbjFhyA.mjs.map} +1 -1
  20. package/dist/fonts/index.d.mts +2 -2
  21. package/dist/fonts/index.mjs +1 -1
  22. package/dist/{fonts-BznIea-I.mjs → fonts-C0W6TgJk.mjs} +52 -5
  23. package/dist/fonts-C0W6TgJk.mjs.map +1 -0
  24. package/dist/{index-J9CIK_nu.d.mts → index-9B8CJowc.d.mts} +2 -2
  25. package/dist/{index-J9CIK_nu.d.mts.map → index-9B8CJowc.d.mts.map} +1 -1
  26. package/dist/{index-CvDVpaKn.d.mts → index-CDoTrMs1.d.mts} +4 -4
  27. package/dist/{index-CvDVpaKn.d.mts.map → index-CDoTrMs1.d.mts.map} +1 -1
  28. package/dist/{index-BXNNJVs8.d.mts → index-CYGpSVsf.d.mts} +2 -2
  29. package/dist/{index-BXNNJVs8.d.mts.map → index-CYGpSVsf.d.mts.map} +1 -1
  30. package/dist/{index-D1zaOwEU.d.mts → index-DDEPvMww.d.mts} +520 -71
  31. package/dist/index-DDEPvMww.d.mts.map +1 -0
  32. package/dist/{index-oodg5k9K.d.mts → index-DGJp1d30.d.mts} +3 -3
  33. package/dist/{index-oodg5k9K.d.mts.map → index-DGJp1d30.d.mts.map} +1 -1
  34. package/dist/{index-fo4E7A6C.d.mts → index-DRZu3ezy.d.mts} +3 -3
  35. package/dist/{index-fo4E7A6C.d.mts.map → index-DRZu3ezy.d.mts.map} +1 -1
  36. package/dist/{index-CQcdKyxF.d.mts → index-DnWsbbuZ.d.mts} +54 -2
  37. package/dist/index-DnWsbbuZ.d.mts.map +1 -0
  38. package/dist/index.d.mts +398 -18
  39. package/dist/index.d.mts.map +1 -1
  40. package/dist/index.mjs +633 -57
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/preview/index.d.mts +2 -2
  43. package/dist/preview/index.mjs +10 -10
  44. package/dist/{preview-DZTbEON9.mjs → preview-BV2C4Fk6.mjs} +2 -2
  45. package/dist/{preview-DZTbEON9.mjs.map → preview-BV2C4Fk6.mjs.map} +1 -1
  46. package/dist/preview-engine/{chunk-VVLM6LZ3.mjs → chunk-6256GQFP.mjs} +1 -1
  47. package/dist/preview-engine/{chunk-VWLR2AZR.mjs → chunk-AEK5BO3J.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-YG35X5R5.mjs → chunk-AWTH2WZO.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-7DIAFPQP.mjs → chunk-ECPP3UG6.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-5JD65JSJ.mjs → chunk-FGHOHCFG.mjs} +1 -1
  51. package/dist/preview-engine/chunk-IMV5SBQV.mjs +1 -0
  52. package/dist/preview-engine/chunk-IQKIHFNZ.mjs +1 -0
  53. package/dist/preview-engine/chunk-L3IEJZ5S.mjs +474 -0
  54. package/dist/preview-engine/chunk-M7NMFDJ3.mjs +3 -0
  55. package/dist/preview-engine/chunk-MJM3NFEC.mjs +315 -0
  56. package/dist/preview-engine/chunk-NFAGEP43.mjs +1448 -0
  57. package/dist/preview-engine/{chunk-5PPSCISJ.mjs → chunk-Q66QQI6N.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-JAOXXYXG.mjs → chunk-QYRDQMNB.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-XCYFPA34.mjs → chunk-RJUAM52F.mjs} +1 -1
  60. package/dist/preview-engine/chunk-VRGREB3V.mjs +1 -0
  61. package/dist/preview-engine/{chunk-AW7HNZKR.mjs → chunk-Y6HWYPKX.mjs} +1 -1
  62. package/dist/preview-engine/effects.mjs +1 -1
  63. package/dist/preview-engine/fonts.mjs +1 -1
  64. package/dist/preview-engine/framefields.mjs +27 -27
  65. package/dist/preview-engine/player.mjs +1 -1
  66. package/dist/preview-engine/renderers-5BV6JGTU.mjs +248 -0
  67. package/dist/preview-engine/renderers-7X2W6QWX.mjs +1 -0
  68. package/dist/preview-engine/renderers-EOJMPPAQ.mjs +1 -0
  69. package/dist/preview-engine/renderers-G5KQISVL.mjs +1 -0
  70. package/dist/preview-engine/renderers-GMX2ZQDG.mjs +1 -0
  71. package/dist/preview-engine/renderers-TVTQ2R74.mjs +1 -0
  72. package/dist/preview-engine/renderers-ZIMBODX6.mjs +1 -0
  73. package/dist/{program-C797QMRL.mjs → program-BmNKgzja.mjs} +281 -23
  74. package/dist/program-BmNKgzja.mjs.map +1 -0
  75. package/dist/renderer/index.d.mts +2 -2
  76. package/dist/renderer/index.mjs +2 -2
  77. package/dist/{renderer-D-4Yh-RK.mjs → renderer-1VuQTY1Z.mjs} +2 -2
  78. package/dist/{renderer-D-4Yh-RK.mjs.map → renderer-1VuQTY1Z.mjs.map} +1 -1
  79. package/dist/renderer-6oMSare3.mjs +3 -0
  80. package/dist/renderer-B1ComPb2.mjs +3 -0
  81. package/dist/{renderer-DgSO5OO0.mjs → renderer-B1YMwl2B.mjs} +1 -1
  82. package/dist/{renderer-9QCHY8Kh.mjs → renderer-B2ieylQ3.mjs} +2 -2
  83. package/dist/{renderer-9QCHY8Kh.mjs.map → renderer-B2ieylQ3.mjs.map} +1 -1
  84. package/dist/{renderer-CuqhAB4i.mjs → renderer-B8-kzZdP.mjs} +2 -2
  85. package/dist/{renderer-CuqhAB4i.mjs.map → renderer-B8-kzZdP.mjs.map} +1 -1
  86. package/dist/{renderer-Dn8v2o9L.mjs → renderer-B8UaFNqb.mjs} +3 -3
  87. package/dist/{renderer-Dn8v2o9L.mjs.map → renderer-B8UaFNqb.mjs.map} +1 -1
  88. package/dist/{renderer-DPpgBTlK.mjs → renderer-BDbTWSpP.mjs} +3 -3
  89. package/dist/{renderer-DPpgBTlK.mjs.map → renderer-BDbTWSpP.mjs.map} +1 -1
  90. package/dist/{renderer-CrVAvP92.mjs → renderer-BIIWCg_J.mjs} +3 -3
  91. package/dist/{renderer-CrVAvP92.mjs.map → renderer-BIIWCg_J.mjs.map} +1 -1
  92. package/dist/{renderer-5jfDUKd4.mjs → renderer-BJ1aTkZf.mjs} +3 -3
  93. package/dist/{renderer-5jfDUKd4.mjs.map → renderer-BJ1aTkZf.mjs.map} +1 -1
  94. package/dist/renderer-BQ5Bz5D0.mjs +3 -0
  95. package/dist/{renderer-D6Gi_h4K.mjs → renderer-BSaYG8aw.mjs} +1 -1
  96. package/dist/{renderer-2NQWaZd7.d.mts → renderer-BTdOMMEx.d.mts} +2 -2
  97. package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-BTdOMMEx.d.mts.map} +1 -1
  98. package/dist/renderer-BZcn_iBl.mjs +3 -0
  99. package/dist/{renderer-DnF3aXPX.mjs → renderer-Bc04fivZ.mjs} +3 -3
  100. package/dist/{renderer-DnF3aXPX.mjs.map → renderer-Bc04fivZ.mjs.map} +1 -1
  101. package/dist/{renderer-B1UeU7lX.mjs → renderer-BfAWZziM.mjs} +193 -12
  102. package/dist/renderer-BfAWZziM.mjs.map +1 -0
  103. package/dist/{renderer-CKJb_Lky.mjs → renderer-Bfgd4N0O.mjs} +3 -3
  104. package/dist/{renderer-CKJb_Lky.mjs.map → renderer-Bfgd4N0O.mjs.map} +1 -1
  105. package/dist/{renderer-b6sZN90h.mjs → renderer-BhZZEyFX.mjs} +2 -2
  106. package/dist/{renderer-b6sZN90h.mjs.map → renderer-BhZZEyFX.mjs.map} +1 -1
  107. package/dist/{renderer-C-PfbkPu.mjs → renderer-Bhdf90Zq.mjs} +2 -2
  108. package/dist/{renderer-C-PfbkPu.mjs.map → renderer-Bhdf90Zq.mjs.map} +1 -1
  109. package/dist/renderer-Bp6sDMa6.mjs +3 -0
  110. package/dist/renderer-Bt7_sb_Y.mjs +3 -0
  111. package/dist/{renderer-CB8hMQgm.mjs → renderer-Bv21DbWy.mjs} +1 -1
  112. package/dist/{renderer-gT0ADXMW.mjs → renderer-Bv6q84TU.mjs} +2 -2
  113. package/dist/{renderer-gT0ADXMW.mjs.map → renderer-Bv6q84TU.mjs.map} +1 -1
  114. package/dist/renderer-C606ZPUn.mjs +3 -0
  115. package/dist/renderer-C9jyKn1i.mjs +3 -0
  116. package/dist/renderer-CERfcxgv.mjs +3 -0
  117. package/dist/renderer-CG5PzNkv.mjs +3 -0
  118. package/dist/{renderer-CpUbDJAV.mjs → renderer-CI7sG_cv.mjs} +2 -2
  119. package/dist/{renderer-CpUbDJAV.mjs.map → renderer-CI7sG_cv.mjs.map} +1 -1
  120. package/dist/renderer-CPoIMVdk.mjs +3 -0
  121. package/dist/{renderer-B4ecTNR7.mjs → renderer-CWTpc4ff.mjs} +2 -2
  122. package/dist/{renderer-B4ecTNR7.mjs.map → renderer-CWTpc4ff.mjs.map} +1 -1
  123. package/dist/{renderer-D3uNI10l.mjs → renderer-CXn5HAnK.mjs} +3 -3
  124. package/dist/{renderer-D3uNI10l.mjs.map → renderer-CXn5HAnK.mjs.map} +1 -1
  125. package/dist/{renderer-DCK73tcD.mjs → renderer-C_TPMHiH.mjs} +2 -2
  126. package/dist/{renderer-DCK73tcD.mjs.map → renderer-C_TPMHiH.mjs.map} +1 -1
  127. package/dist/renderer-Ca7L1EOp.mjs +3 -0
  128. package/dist/{renderer-6PqlYQjC.mjs → renderer-CaaOKMSd.mjs} +2 -2
  129. package/dist/{renderer-6PqlYQjC.mjs.map → renderer-CaaOKMSd.mjs.map} +1 -1
  130. package/dist/{renderer-DX38J6mK.mjs → renderer-CdciwwMI.mjs} +3 -3
  131. package/dist/{renderer-DX38J6mK.mjs.map → renderer-CdciwwMI.mjs.map} +1 -1
  132. package/dist/{renderer-DRpE3ZW4.mjs → renderer-CfC_aiew.mjs} +3 -3
  133. package/dist/{renderer-DRpE3ZW4.mjs.map → renderer-CfC_aiew.mjs.map} +1 -1
  134. package/dist/{renderer-BE4Ns0nw.mjs → renderer-ChdLYS-G.mjs} +3 -3
  135. package/dist/{renderer-BE4Ns0nw.mjs.map → renderer-ChdLYS-G.mjs.map} +1 -1
  136. package/dist/renderer-Cl6GkeHx.mjs +3 -0
  137. package/dist/renderer-ClcjrFyo.mjs +3 -0
  138. package/dist/{renderer-B8gTyU3w.mjs → renderer-CnXW28b9.mjs} +2 -2
  139. package/dist/{renderer-B8gTyU3w.mjs.map → renderer-CnXW28b9.mjs.map} +1 -1
  140. package/dist/{renderer-C2gnWTQZ.mjs → renderer-Ctk2zzfy.mjs} +3 -3
  141. package/dist/{renderer-C2gnWTQZ.mjs.map → renderer-Ctk2zzfy.mjs.map} +1 -1
  142. package/dist/{renderer-EmG34sT2.mjs → renderer-CtyD_Xju.mjs} +2 -2
  143. package/dist/{renderer-EmG34sT2.mjs.map → renderer-CtyD_Xju.mjs.map} +1 -1
  144. package/dist/renderer-CySUP_wk.mjs +3 -0
  145. package/dist/renderer-D2l_Odyg.mjs +3 -0
  146. package/dist/{renderer-CckJJHbM.mjs → renderer-D2nCGcjv.mjs} +2 -2
  147. package/dist/{renderer-CckJJHbM.mjs.map → renderer-D2nCGcjv.mjs.map} +1 -1
  148. package/dist/renderer-DCPCYySt.mjs +3 -0
  149. package/dist/{renderer-BgqjWI7K.mjs → renderer-DIgsilTw.mjs} +3 -3
  150. package/dist/{renderer-BgqjWI7K.mjs.map → renderer-DIgsilTw.mjs.map} +1 -1
  151. package/dist/renderer-DIkpJEOZ.mjs +3 -0
  152. package/dist/{renderer-CxQ5v4fJ.mjs → renderer-DML9qpmS.mjs} +2 -2
  153. package/dist/{renderer-CxQ5v4fJ.mjs.map → renderer-DML9qpmS.mjs.map} +1 -1
  154. package/dist/renderer-DNSXPkf_.mjs +3 -0
  155. package/dist/renderer-DP-CvZ_Z.mjs +3 -0
  156. package/dist/renderer-DeXb8R6h.mjs +3 -0
  157. package/dist/renderer-DezO-ZaP.mjs +4 -0
  158. package/dist/renderer-DhXe04fC.mjs +3 -0
  159. package/dist/{renderer-BwmZUkvd.mjs → renderer-DirxsOjq.mjs} +2 -2
  160. package/dist/{renderer-BwmZUkvd.mjs.map → renderer-DirxsOjq.mjs.map} +1 -1
  161. package/dist/{renderer-BcPpcKDI.mjs → renderer-Djlb4TLO.mjs} +3 -3
  162. package/dist/{renderer-BcPpcKDI.mjs.map → renderer-Djlb4TLO.mjs.map} +1 -1
  163. package/dist/renderer-DnH3SI7w.mjs +3 -0
  164. package/dist/{renderer-xp_J0ln7.mjs → renderer-DpGc-N3G.mjs} +3 -3
  165. package/dist/{renderer-xp_J0ln7.mjs.map → renderer-DpGc-N3G.mjs.map} +1 -1
  166. package/dist/renderer-Dpw4oi33.mjs +3 -0
  167. package/dist/{renderer-DAFyJ4dv.mjs → renderer-DxTs4Iyi.mjs} +2 -2
  168. package/dist/{renderer-DAFyJ4dv.mjs.map → renderer-DxTs4Iyi.mjs.map} +1 -1
  169. package/dist/{renderer-BXaK02qA.mjs → renderer-Dy0utCl7.mjs} +3 -3
  170. package/dist/{renderer-BXaK02qA.mjs.map → renderer-Dy0utCl7.mjs.map} +1 -1
  171. package/dist/renderer-Md-ytU0v.mjs +3 -0
  172. package/dist/{renderer-BTYncYDf.mjs → renderer-RKsXlF_0.mjs} +43 -43
  173. package/dist/{renderer-BTYncYDf.mjs.map → renderer-RKsXlF_0.mjs.map} +1 -1
  174. package/dist/renderer-U-bhWO9Q.mjs +3 -0
  175. package/dist/{renderer-CV8diddR.mjs → renderer-WSGuj_V6.mjs} +2 -2
  176. package/dist/{renderer-CV8diddR.mjs.map → renderer-WSGuj_V6.mjs.map} +1 -1
  177. package/dist/{renderer-_bygZSKk.mjs → renderer-bsWnRNpJ.mjs} +2 -2
  178. package/dist/{renderer-_bygZSKk.mjs.map → renderer-bsWnRNpJ.mjs.map} +1 -1
  179. package/dist/{renderer-lq4n1hSS.mjs → renderer-cgxO2xN6.mjs} +3 -3
  180. package/dist/{renderer-lq4n1hSS.mjs.map → renderer-cgxO2xN6.mjs.map} +1 -1
  181. package/dist/{renderer-zvtpCnqy.mjs → renderer-dncoIVdd.mjs} +1 -1
  182. package/dist/{renderer-BpJgfBQ8.mjs → renderer-kwmlLQOO.mjs} +3 -3
  183. package/dist/{renderer-BpJgfBQ8.mjs.map → renderer-kwmlLQOO.mjs.map} +1 -1
  184. package/dist/{renderer--vY6O19V.mjs → renderer-vqkKWqa5.mjs} +2 -2
  185. package/dist/{renderer--vY6O19V.mjs.map → renderer-vqkKWqa5.mjs.map} +1 -1
  186. package/dist/renderer-zA5okHds.mjs +3 -0
  187. package/dist/{renderers-CP8CFWDs-Ciap7y_j.mjs → renderers-CP8CFWDs-DwQTx8S7.mjs} +3 -3
  188. package/dist/{renderers-CP8CFWDs-Ciap7y_j.mjs.map → renderers-CP8CFWDs-DwQTx8S7.mjs.map} +1 -1
  189. package/dist/signals/index.d.mts +5 -5
  190. package/dist/signals/index.mjs +6 -6
  191. package/dist/{signals-CsxqD2AA.mjs → signals-Bv1OweKd.mjs} +3 -3
  192. package/dist/{signals-CsxqD2AA.mjs.map → signals-Bv1OweKd.mjs.map} +1 -1
  193. package/package.json +55 -55
  194. package/dist/dist-B9Afsv83.mjs.map +0 -1
  195. package/dist/dist-DgfykO99.mjs.map +0 -1
  196. package/dist/fonts-BznIea-I.mjs.map +0 -1
  197. package/dist/index-CQcdKyxF.d.mts.map +0 -1
  198. package/dist/index-D1zaOwEU.d.mts.map +0 -1
  199. package/dist/preview-engine/chunk-BUWK5RJ4.mjs +0 -997
  200. package/dist/preview-engine/chunk-CNSHAFEA.mjs +0 -1
  201. package/dist/preview-engine/chunk-OF75EHTX.mjs +0 -418
  202. package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
  203. package/dist/preview-engine/chunk-WQ7BFSKF.mjs +0 -3
  204. package/dist/preview-engine/chunk-ZJFAGIOM.mjs +0 -315
  205. package/dist/preview-engine/renderers-32PIFHPS.mjs +0 -1
  206. package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
  207. package/dist/preview-engine/renderers-CHJWUJVI.mjs +0 -1
  208. package/dist/preview-engine/renderers-CI2GXWLP.mjs +0 -1
  209. package/dist/preview-engine/renderers-EE2GFG7J.mjs +0 -1
  210. package/dist/preview-engine/renderers-LTNTQLWE.mjs +0 -248
  211. package/dist/preview-engine/renderers-UGZUPONY.mjs +0 -1
  212. package/dist/program-C797QMRL.mjs.map +0 -1
  213. package/dist/renderer-3uTfN95I.mjs +0 -3
  214. package/dist/renderer-B1UeU7lX.mjs.map +0 -1
  215. package/dist/renderer-B5GslTP-.mjs +0 -3
  216. package/dist/renderer-BUIWeIKQ.mjs +0 -3
  217. package/dist/renderer-B_LfC88A.mjs +0 -3
  218. package/dist/renderer-B_zmicsE.mjs +0 -3
  219. package/dist/renderer-BtNxtXkR.mjs +0 -3
  220. package/dist/renderer-C-sZSHtf.mjs +0 -3
  221. package/dist/renderer-C1zifktw.mjs +0 -3
  222. package/dist/renderer-CCt2XTSM.mjs +0 -3
  223. package/dist/renderer-CL3evUmF.mjs +0 -3
  224. package/dist/renderer-CMXcaArD.mjs +0 -3
  225. package/dist/renderer-CW9D5zCP.mjs +0 -3
  226. package/dist/renderer-CjY77sB_.mjs +0 -3
  227. package/dist/renderer-D1R7vBUl.mjs +0 -3
  228. package/dist/renderer-D5yawxtJ.mjs +0 -3
  229. package/dist/renderer-DC8jr1Ay.mjs +0 -3
  230. package/dist/renderer-DCv-Abvn.mjs +0 -4
  231. package/dist/renderer-DPLFhzaV.mjs +0 -3
  232. package/dist/renderer-DVsF2FDr.mjs +0 -3
  233. package/dist/renderer-DetDm3ep.mjs +0 -3
  234. package/dist/renderer-DhMhJh_G.mjs +0 -3
  235. package/dist/renderer-DhQld4Qt.mjs +0 -3
  236. package/dist/renderer-Dn3rc3ah.mjs +0 -3
  237. package/dist/renderer-Dw9LxE2f.mjs +0 -3
  238. package/dist/renderer-HvrQZw5E.mjs +0 -3
  239. package/dist/renderer-QdJE56ts.mjs +0 -3
  240. package/dist/renderer-euGyUN2O.mjs +0 -3
  241. package/dist/renderer-p3SmBFP9.mjs +0 -3
@@ -1,6 +1,6 @@
1
- import { bt as getActiveMediaMetadata, ft as createVirtualMedia } from "./dist-B9Afsv83.mjs";
2
- import { t as ColorSchema } from "./dist-DzUJmIHt.mjs";
3
- import { nt as signalRegistry } from "./dist-DgfykO99.mjs";
1
+ import { Bt as parseCssColor, Lt as mixColors, Vt as parseCssGradient, ht as createVirtualMedia, l as Color, wt as getActiveMediaMetadata } from "./dist-CbG3QxDw.mjs";
2
+ import { t as ColorSchema } from "./dist-BYqNNwsl.mjs";
3
+ import { rt as signalRegistry } from "./dist-Cxi68OuY.mjs";
4
4
  import { z } from "zod";
5
5
  import { loadYoga } from "yoga-layout/load";
6
6
 
@@ -385,6 +385,36 @@ function collectInlineSignals(nodes, out = {}) {
385
385
  }
386
386
  return out;
387
387
  }
388
+ const isKeyframeTrack = (t) => !t.source || t.source.type === "keyframe";
389
+ /**
390
+ * Merges keyframe tracks that animate the same prop into one sorted track,
391
+ * the later key winning on a shared frame. Procedural tracks (signal,
392
+ * wiggle, spring…) pass through untouched.
393
+ */
394
+ function mergeAnimationTracks(tracks) {
395
+ const out = [];
396
+ const byProp = /* @__PURE__ */ new Map();
397
+ for (const t of tracks) {
398
+ if (!isKeyframeTrack(t)) {
399
+ out.push(t);
400
+ continue;
401
+ }
402
+ const existing = byProp.get(t.prop);
403
+ if (!existing) {
404
+ const copy = {
405
+ ...t,
406
+ keyframes: [...t.keyframes ?? []]
407
+ };
408
+ byProp.set(t.prop, copy);
409
+ out.push(copy);
410
+ continue;
411
+ }
412
+ const frames = new Map(existing.keyframes.map((k) => [k.frame, k]));
413
+ for (const k of t.keyframes ?? []) frames.set(k.frame, k);
414
+ existing.keyframes = [...frames.values()].sort((a, b) => a.frame - b.frame);
415
+ }
416
+ return out;
417
+ }
388
418
  function evaluateEasingProgress(ease, t) {
389
419
  if (!ease) return t;
390
420
  const ref = parseEase(ease);
@@ -586,12 +616,15 @@ var LayerAnimation = class LayerAnimation$1 {
586
616
  this.tracks.push(track);
587
617
  }
588
618
  const parsedEase = parseEase(ease);
589
- track.keyframes.push({
619
+ const kf = {
590
620
  id: `k_${track.keyframes.length}_f${frame}`,
591
621
  frame,
592
622
  value,
593
623
  ...parsedEase && { ease: parsedEase }
594
- });
624
+ };
625
+ const at = track.keyframes.findIndex((k) => k.frame === frame);
626
+ if (at >= 0) track.keyframes[at] = kf;
627
+ else track.keyframes.push(kf);
595
628
  track.keyframes.sort((a, b) => a.frame - b.frame);
596
629
  return this;
597
630
  }
@@ -968,6 +1001,19 @@ var LayerAnimation = class LayerAnimation$1 {
968
1001
  return node;
969
1002
  }
970
1003
  /**
1004
+ * Folds other animations into this one. Keyframe tracks on the same prop
1005
+ * merge into one track (a later key wins on a shared frame), so separate
1006
+ * behaviours — an entrance, presses, a wave — can be authored apart:
1007
+ * `LayerAnimation.merge(rainIn, presses, wave)`.
1008
+ */
1009
+ merge(...others) {
1010
+ this.tracks = mergeAnimationTracks([...this.tracks, ...others.flatMap((o) => o.tracks)]);
1011
+ return this;
1012
+ }
1013
+ static merge(...anims) {
1014
+ return new LayerAnimation$1().merge(...anims);
1015
+ }
1016
+ /**
971
1017
  * Returns the validated LayerAnimation specification object.
972
1018
  */
973
1019
  toSpec() {
@@ -1467,17 +1513,9 @@ function parseHexColor(hex) {
1467
1513
  1
1468
1514
  ];
1469
1515
  }
1516
+ /** Color keyframes blend perceptually (OKLab) and accept any CSS color. */
1470
1517
  function lerpColor(c1, c2, t) {
1471
- if (!c1.startsWith("#") || !c2.startsWith("#")) return t < .5 ? c1 : c2;
1472
- const [r1, g1, b1, a1] = parseHexColor(c1);
1473
- const [r2, g2, b2, a2] = parseHexColor(c2);
1474
- const r = Math.round(lerp(r1, r2, t));
1475
- const g = Math.round(lerp(g1, g2, t));
1476
- const b = Math.round(lerp(b1, b2, t));
1477
- const a = lerp(a1, a2, t);
1478
- const toHex = (n) => n.toString(16).padStart(2, "0");
1479
- if (a >= .999) return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
1480
- return `rgba(${r}, ${g}, ${b}, ${Math.round(a * 100) / 100})`;
1518
+ return mixColors(c1, c2, t);
1481
1519
  }
1482
1520
  function hueToRgb(p, q, t) {
1483
1521
  let tt = t;
@@ -1529,7 +1567,7 @@ function rotateHue(hex, delta) {
1529
1567
  if (a >= .999) return `#${toHex(newR)}${toHex(newG)}${toHex(newB)}`;
1530
1568
  return `rgba(${Math.round(newR * 255)}, ${Math.round(newG * 255)}, ${Math.round(newB * 255)}, ${Math.round(a * 100) / 100})`;
1531
1569
  }
1532
- const COLOR_PROPS = new Set([
1570
+ const COLOR_PROPS$1 = new Set([
1533
1571
  "fill",
1534
1572
  "fillColor",
1535
1573
  "strokeColor",
@@ -1589,7 +1627,7 @@ function evaluateTrackAtFrame(track, frame, fps = 24, context = {}) {
1589
1627
  }
1590
1628
  case "signal": {
1591
1629
  const sigVal = evaluateSignal(source, frame, fps, context.signals);
1592
- if (COLOR_PROPS.has(track.prop)) {
1630
+ if (COLOR_PROPS$1.has(track.prop)) {
1593
1631
  const src = source;
1594
1632
  const colorA = src.colorA ?? "#ffffff";
1595
1633
  const colorB = src.colorB ?? "#ffffff";
@@ -1613,6 +1651,160 @@ function evaluateAnimationAtFrame(animation, frame, fps = 24, context = {}) {
1613
1651
  return result;
1614
1652
  }
1615
1653
  /**
1654
+ * Static checks for things that render "fine" but not as intended: a color
1655
+ * the parser can't read (drawn transparent), text that disappears into its
1656
+ * background, a layer parked off-canvas, a shadow on a light that can't cast
1657
+ * one. Pure and fast; `renderVideo({ qa })` folds the findings into its report.
1658
+ */
1659
+ const COLOR_PROPS = [
1660
+ "background",
1661
+ "fill",
1662
+ "fillColor",
1663
+ "strokeColor",
1664
+ "borderColor",
1665
+ "gradientEndColor",
1666
+ "emissive",
1667
+ "color"
1668
+ ];
1669
+ /** Contrast below this makes text hard to read (WCAG large-text minimum). */
1670
+ const MIN_TEXT_CONTRAST = 3;
1671
+ function tracksOf(node) {
1672
+ return node.animation?.tracks ?? [];
1673
+ }
1674
+ const animates = (node, props) => tracksOf(node).some((t) => props.includes(t.prop));
1675
+ const CONTAINERS = new Set([
1676
+ "box",
1677
+ "flex",
1678
+ "block",
1679
+ "group"
1680
+ ]);
1681
+ /** Whether a layer puts pixels behind whatever is drawn after it (text over text aside). */
1682
+ function paints(node) {
1683
+ if (node.kind === "text" || node.kind === "light" || node.kind === "camera") return false;
1684
+ if (!CONTAINERS.has(String(node.kind))) return true;
1685
+ const bg = node.background;
1686
+ if (typeof bg === "string" && bg !== "" && bg !== "transparent") return true;
1687
+ return (node.children ?? []).some(paints);
1688
+ }
1689
+ const byZ = (nodes) => [...nodes].sort((a, b) => (Number(a.zIndex) || 0) - (Number(b.zIndex) || 0));
1690
+ function solidColor(value) {
1691
+ if (typeof value !== "string" || value.includes("gradient(")) return null;
1692
+ const c = parseCssColor(value);
1693
+ return c && c[3] > .99 ? value : null;
1694
+ }
1695
+ function lintComposition(config) {
1696
+ const out = [];
1697
+ const push = (severity, code, message, layerId) => out.push({
1698
+ severity,
1699
+ code,
1700
+ message,
1701
+ ...layerId && { layerId }
1702
+ });
1703
+ const W = config.width;
1704
+ const H = config.height;
1705
+ let hasEnvironment = false;
1706
+ const ambientLights = [];
1707
+ let has3D = false;
1708
+ const pbrNodes = [];
1709
+ const shadowLights = [];
1710
+ const visit = (node, backdrop, atRoot) => {
1711
+ const id = String(node.id ?? "?");
1712
+ for (const prop of COLOR_PROPS) {
1713
+ const v = node[prop];
1714
+ if (typeof v !== "string" || v === "" || v === "transparent") continue;
1715
+ if (v.includes("gradient(")) {
1716
+ if (!parseCssGradient(v)) push("error", "invalid_gradient", `\`${prop}\` on '${id}' is not a gradient this renderer reads: ${v}. It draws nothing.`, id);
1717
+ } else if (!parseCssColor(v)) push("warning", "unknown_color", `\`${prop}: "${v}"\` on '${id}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`, id);
1718
+ }
1719
+ if (node.kind === "light") {
1720
+ const type = node.lightType ?? "directional";
1721
+ if (type === "environment") hasEnvironment = true;
1722
+ if (type === "ambient") ambientLights.push(id);
1723
+ if (node.castShadow) if (type === "directional" || type === "spot") shadowLights.push(id);
1724
+ else push("warning", "shadow_unsupported_light", `'${id}' is a ${String(type)} light: only directional and spot lights cast shadows.`, id);
1725
+ return;
1726
+ }
1727
+ if (node.kind === "camera") return;
1728
+ const is3D = Boolean(node.is3D) || typeof node.z === "number" && node.z !== 0;
1729
+ if (is3D || node.kind === "model3d") has3D = true;
1730
+ if (node.roughness !== void 0 || node.metallic !== void 0) pbrNodes.push(id);
1731
+ if (node.kind === "text" && backdrop && !animates(node, ["fill", "color"])) {
1732
+ const fg = solidColor(node.fill ?? node.color);
1733
+ const behind = solidColor(node.background) ?? backdrop;
1734
+ if (fg) {
1735
+ const ratio = Color.contrast(fg, behind);
1736
+ if (ratio < MIN_TEXT_CONTRAST) push("warning", "low_contrast_text", `Text '${id}' (${fg}) on ${behind} has contrast ${ratio.toFixed(2)}:1 (aim for ≥ ${MIN_TEXT_CONTRAST}; ${Color.readableOn(behind)} reads well).`, id);
1737
+ }
1738
+ }
1739
+ if (atRoot && !is3D && node.position === "absolute" && typeof node.x === "number" && typeof node.y === "number" && typeof node.width === "number" && typeof node.height === "number" && !animates(node, [
1740
+ "x",
1741
+ "y",
1742
+ "translateX",
1743
+ "translateY",
1744
+ "scale",
1745
+ "rotation"
1746
+ ])) {
1747
+ const { x, y, width, height } = node;
1748
+ if (x + width <= 0 || y + height <= 0 || x >= W || y >= H) push("warning", "offscreen_layer", `'${id}' sits entirely outside the ${W}×${H} canvas (x ${x}, y ${y}) and never moves in.`, id);
1749
+ }
1750
+ for (const t of tracksOf(node)) {
1751
+ const kfs = t.keyframes ?? [];
1752
+ if ((!t.source || t.source.type === "keyframe") && kfs.length >= 2 && kfs.every((k) => JSON.stringify(k.value) === JSON.stringify(kfs[0].value))) push("info", "static_track", `'${id}' animates \`${t.prop}\` but every keyframe holds ${JSON.stringify(kfs[0].value)}.`, id);
1753
+ }
1754
+ const ownBackdrop = solidColor(node.background) ?? backdrop;
1755
+ const children = node.children;
1756
+ const fullFrame = node.x === 0 && node.y === 0 && node.width === W && node.height === H;
1757
+ visitLevel(children ?? [], ownBackdrop, atRoot && fullFrame);
1758
+ };
1759
+ const visitLevel = (nodes, backdrop, atRoot) => {
1760
+ let known = backdrop;
1761
+ for (const n of byZ(nodes)) {
1762
+ visit(n, known, atRoot);
1763
+ if (paints(n)) known = null;
1764
+ }
1765
+ };
1766
+ const rootBackdrop = solidColor(config.backgroundColor) ?? null;
1767
+ visitLevel(config.layout, rootBackdrop, true);
1768
+ if (hasEnvironment && ambientLights.length > 0) push("info", "ambient_with_environment", `The environment already fills shadows with light; ambient light ${ambientLights.join(", ")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`);
1769
+ if (shadowLights.length > 1) push("info", "multiple_shadow_lights", `${shadowLights.length} lights cast shadows (${shadowLights.join(", ")}); only the first one does.`);
1770
+ if (has3D && pbrNodes.length > 0 && !hasEnvironment) push("info", "pbr_without_environment", `roughness / metallic are set (${pbrNodes.slice(0, 3).join(", ")}${pbrNodes.length > 3 ? ", …" : ""}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`);
1771
+ return out;
1772
+ }
1773
+ const GEOMETRY = [
1774
+ "x",
1775
+ "y",
1776
+ "width",
1777
+ "height"
1778
+ ];
1779
+ function hoistOne(owner) {
1780
+ const matte = owner.matte;
1781
+ const { matte: _drop, ...rest } = owner;
1782
+ const self = { ...rest };
1783
+ if (Array.isArray(self.children)) self.children = hoistMattes(self.children);
1784
+ if (!matte?.node) return [self];
1785
+ const src = matte.node;
1786
+ const id = src.id ?? `${String(owner.id)}__matte`;
1787
+ const node = {
1788
+ position: "absolute",
1789
+ ...src,
1790
+ id,
1791
+ matteOf: String(owner.id),
1792
+ matteMode: matte.mode ?? "alpha"
1793
+ };
1794
+ if (GEOMETRY.every((k) => src[k] === void 0)) {
1795
+ for (const k of GEOMETRY) if (typeof owner[k] === "number") node[k] = owner[k];
1796
+ }
1797
+ node.startFrame = (typeof owner.startFrame === "number" ? owner.startFrame : 0) + (typeof src.startFrame === "number" ? src.startFrame : 0);
1798
+ if (src.durationFrames === void 0 && owner.durationFrames !== void 0) node.durationFrames = owner.durationFrames;
1799
+ if (Array.isArray(node.children)) node.children = hoistMattes(node.children);
1800
+ self.matteId = id;
1801
+ return [self, node];
1802
+ }
1803
+ /** Returns the tree with every `matte` turned into a sibling matte layer. */
1804
+ function hoistMattes(nodes) {
1805
+ return nodes.flatMap((n) => hoistOne(n));
1806
+ }
1807
+ /**
1616
1808
  * Fluent Builder for Extended Text Animators.
1617
1809
  */
1618
1810
  var AdvancedTextAnimatorBuilder = class AdvancedTextAnimatorBuilder$1 {
@@ -3984,7 +4176,16 @@ const AnimatablePropSchema = z.enum([
3984
4176
  "animationSpeed",
3985
4177
  "wireframe",
3986
4178
  "scaleX",
3987
- "scaleY"
4179
+ "scaleY",
4180
+ "emissive",
4181
+ "emissiveIntensity",
4182
+ "exposure"
4183
+ ]);
4184
+ const MatteModeSchema = z.enum([
4185
+ "alpha",
4186
+ "alpha-inverted",
4187
+ "luma",
4188
+ "luma-inverted"
3988
4189
  ]);
3989
4190
  const MaterialTypeSchema = z.enum([
3990
4191
  "lit",
@@ -4283,6 +4484,16 @@ const BaseNodeFields = {
4283
4484
  dispersion: z.number().min(0).max(1).optional(),
4284
4485
  fresnelPower: z.number().min(1).max(10).optional(),
4285
4486
  envIntensity: z.number().min(0).max(10).optional(),
4487
+ emissive: ColorSchema.optional(),
4488
+ emissiveIntensity: z.number().min(0).optional(),
4489
+ castShadow: z.boolean().optional(),
4490
+ matte: z.object({
4491
+ node: z.custom((v) => typeof v === "object" && v !== null),
4492
+ mode: MatteModeSchema.optional()
4493
+ }).optional(),
4494
+ matteId: z.string().optional(),
4495
+ matteOf: z.string().optional(),
4496
+ matteMode: MatteModeSchema.optional(),
4286
4497
  animation: LayerAnimationSchema.default({ tracks: [] }),
4287
4498
  vision: z.unknown().optional(),
4288
4499
  relighting: z.unknown().optional()
@@ -4445,8 +4656,34 @@ const LightTypeSchema = z.enum([
4445
4656
  "ambient",
4446
4657
  "directional",
4447
4658
  "point",
4448
- "spot"
4659
+ "spot",
4660
+ "environment"
4449
4661
  ]);
4662
+ const EnvironmentPresetSchema = z.enum([
4663
+ "studio",
4664
+ "soft",
4665
+ "sunset",
4666
+ "night",
4667
+ "neutral"
4668
+ ]);
4669
+ const ToneMappingSchema = z.enum([
4670
+ "neutral",
4671
+ "agx",
4672
+ "aces",
4673
+ "none"
4674
+ ]);
4675
+ const EnvironmentFogSchema = z.object({
4676
+ color: ColorSchema,
4677
+ start: z.number().min(0),
4678
+ end: z.number().min(0),
4679
+ opacity: z.number().min(0).max(1).optional()
4680
+ }).strict();
4681
+ const BloomConfigSchema = z.object({
4682
+ intensity: z.number().min(0).max(10).optional(),
4683
+ threshold: z.number().min(0).max(16).optional(),
4684
+ knee: z.number().min(0).max(1).optional(),
4685
+ radius: z.number().min(1).max(8).optional()
4686
+ }).strict();
4450
4687
  const LightNodeSchema = z.object({
4451
4688
  id: z.string().min(1),
4452
4689
  kind: z.literal("light"),
@@ -4468,6 +4705,20 @@ const LightNodeSchema = z.object({
4468
4705
  decay: z.number().min(0).default(2),
4469
4706
  angle: z.number().min(0).max(180).default(45),
4470
4707
  penumbra: z.number().min(0).max(1).default(.2),
4708
+ castShadow: z.boolean().optional(),
4709
+ shadowSoftness: z.number().min(0).max(64).optional(),
4710
+ shadowDarkness: z.number().min(0).max(1).optional(),
4711
+ shadowMapSize: z.number().int().min(256).max(8192).optional(),
4712
+ preset: EnvironmentPresetSchema.optional(),
4713
+ top: ColorSchema.optional(),
4714
+ horizon: ColorSchema.optional(),
4715
+ bottom: ColorSchema.optional(),
4716
+ softboxes: z.number().min(0).optional(),
4717
+ rotation: z.number().optional(),
4718
+ exposure: z.number().min(-16).max(16).optional(),
4719
+ toneMapping: ToneMappingSchema.optional(),
4720
+ fog: EnvironmentFogSchema.optional(),
4721
+ bloom: z.union([z.boolean(), BloomConfigSchema]).optional(),
4471
4722
  startFrame: z.number().int().min(0).default(0),
4472
4723
  durationFrames: z.number().int().min(1).optional(),
4473
4724
  animation: LayerAnimationSchema.default({ tracks: [] })
@@ -4761,7 +5012,10 @@ const Model3DNodeSchema = z.object({
4761
5012
  scaleX: z.number().default(1),
4762
5013
  scaleY: z.number().default(1),
4763
5014
  audioDeform: z.record(z.string(), z.unknown()).optional(),
4764
- text3dOptions: z.unknown().optional()
5015
+ color: ColorSchema.optional(),
5016
+ colorTint: ColorSchema.optional(),
5017
+ text3dOptions: z.unknown().optional(),
5018
+ primitive3d: z.unknown().optional()
4765
5019
  }).strict();
4766
5020
  const LayoutNodeSchema = z.lazy(() => z.union([
4767
5021
  FlexNodeSchema,
@@ -4798,6 +5052,10 @@ const CompositorProgramSchema = z.object({
4798
5052
  */
4799
5053
  /**
4800
5054
  * Camera Transition Type across scene boundaries.
5055
+ *
5056
+ * @deprecated Recorded on scenes but not rendered. Use framefields'
5057
+ * `Layer.sequence([...])` with `Transition.push` / `wipe` / `iris` /
5058
+ * `crossfade` / `zoom` / `whip`, which render as keyframes and mattes.
4801
5059
  */
4802
5060
  const SceneTransitionTypeSchema = z.enum([
4803
5061
  "cut",
@@ -5143,7 +5401,7 @@ function compositorToProgram(config, options) {
5143
5401
  },
5144
5402
  ...(config.onRequestFrame || options.onRequestFrame) && { onRequestFrame: config.onRequestFrame ?? options.onRequestFrame }
5145
5403
  },
5146
- children: config.layout.map((n) => nodeToVirtualMedia(n, resolveMedia, fps, 0, durationMs))
5404
+ children: hoistMattes(config.layout).map((n) => nodeToVirtualMedia(n, resolveMedia, fps, 0, durationMs))
5147
5405
  };
5148
5406
  const effectsList = Array.isArray(options.effects) ? options.effects : Array.isArray(config.effects) ? config.effects : [];
5149
5407
  for (const eff of effectsList) {
@@ -5184,5 +5442,5 @@ function collectNodeOps(nodes) {
5184
5442
  }
5185
5443
 
5186
5444
  //#endregion
5187
- export { TextPathBuilder as $, MaterialTypeSchema as A, evaluateAnimationAtFrame as At, SelectorUnitsSchema as B, evaluateVolumetricFormation as Bt, KineticMarqueeConfigSchema as C, computeLayoutSync as Ct, LightTypeSchema as D, deterministicWigglyNoise as Dt, LightNodeSchema as E, computeStaggerDelay as Et, SceneDefinitionSchema as F, evaluateSelectorCombination as Ft, SpringPhysicsSchema as G, initLayout as Gt, ShapeNodeSchema as H, generatePathSegments as Ht, SceneTransitionTypeSchema as I, evaluateSkewMatrix as It, TextAnimatorBuilder as J, sampleCurveGeometry as Jt, TextAnchorConfigSchema as K, parseSvgPathToCubicBeziers as Kt, SelectorBasedOnSchema as L, evaluateSpringProgress as Lt, Model3DNodeSchema as M, evaluateCubicBezierDerivative as Mt, ParticleDissolveConfigSchema as N, evaluateExpressionSelector as Nt, LineSpacingDynamicsSchema as O, distanceToCurveParameter as Ot, Scene as P, evaluateMarqueeOffset as Pt, TextNodeSchema as Q, SelectorModeSchema as R, evaluateTrackAtFrame as Rt, GlyphAnchorPointSchema as S, computeLayout as St, LayoutNodeSchema as T, computeRangeSelectorWeight as Tt, SkewPropertiesSchema as U, getScramblePool as Ut, Sequence as V, generateArcLengthLUT as Vt, Spatial3DPropertiesSchema as W, getShuffledOrder as Wt, TextCursorConfigSchema as X, waveToCubicBeziers as Xt, TextAnimatorSchema as Y, samplePathChainGeometry as Yt, TextCursorStyleSchema as Z, EnhancedTextNodeSchema as _, calculateSequenceTimeline as _t, AnchorPresetSchema as a, TextSignalSelectorSchema as at, FlexNodeSchema as b, computeAnchorPivotOffset as bt, BoxNodeSchema as c, TextWigglySelectorSchema as ct, CarrierHandoffConfigSchema as d, VariableFontAxesSchema as dt, TextPathOptionsSchema as et, ChromaticGlitchConfigSchema as f, Vec2Schema as ft, DynamicStrokePropertiesSchema as g, buildPathLUT as gt, CubicBezierSegmentSchema as h, applyStaggerToChildren as ht, AnchorGroupingSchema as i, TextSelectorSchema as it, MediaNodeSchema as j, evaluateCubicBezier as jt, LongShadowConfigSchema as k, ellipseToCubicBeziers as kt, CameraAnimation as l, TypewriterAnimatorSchema as lt, CompositorProgramSchema as m, VolumetricFormationModeSchema as mt, AdvancedTextAnimatorBuilder as n, TextRangeSelectorSchema as nt, AnimatableGlyphPropsSchema as o, TextSpanMarkSchema as ot, ColorStopSchema as p, VolumetricFormationConfigSchema as pt, TextAnimator as q, sampleAudioSpectrumScale as qt, AdvancedTextAnimatorSchema as r, TextScrambleConfigSchema as rt, AudioSpectrumTypographySchema as s, TextSpanSchema as st, AETextAnimatorSchema as t, TextPathSourceSchema as tt, CameraNodeSchema as u, TypingCadenceSchema as ut, ExpressionSelectorSchema as v, collectNodeOps as vt, LayerAnimation as w, computeLineLeadingDisplacement as wt, GlyphAnchorGroupingSchema as x, computeCarrierContinuity as xt, ExtendedGlyphPropertiesSchema as y, compositorToProgram as yt, SelectorShapeSchema as z, evaluateTypewriterState as zt };
5188
- //# sourceMappingURL=program-C797QMRL.mjs.map
5445
+ export { TextAnimatorSchema as $, mergeAnimationTracks as $t, LightTypeSchema as A, computeRangeSelectorWeight as At, SceneTransitionTypeSchema as B, evaluateSelectorCombination as Bt, FlexNodeSchema as C, collectNodeOps as Ct, LayerAnimation as D, computeLayout as Dt, KineticMarqueeConfigSchema as E, computeCarrierContinuity as Et, MediaNodeSchema as F, evaluateAnimationAtFrame as Ft, Sequence as G, evaluateVolumetricFormation as Gt, SelectorModeSchema as H, evaluateSpringProgress as Ht, Model3DNodeSchema as I, evaluateCubicBezier as It, Spatial3DPropertiesSchema as J, getScramblePool as Jt, ShapeNodeSchema as K, generateArcLengthLUT as Kt, ParticleDissolveConfigSchema as L, evaluateCubicBezierDerivative as Lt, LongShadowConfigSchema as M, deterministicWigglyNoise as Mt, MaterialTypeSchema as N, distanceToCurveParameter as Nt, LayoutNodeSchema as O, computeLayoutSync as Ot, MatteModeSchema as P, ellipseToCubicBeziers as Pt, TextAnimatorBuilder as Q, lintComposition as Qt, Scene as R, evaluateExpressionSelector as Rt, ExtendedGlyphPropertiesSchema as S, calculateSequenceTimeline as St, GlyphAnchorPointSchema as T, computeAnchorPivotOffset as Tt, SelectorShapeSchema as U, evaluateTrackAtFrame as Ut, SelectorBasedOnSchema as V, evaluateSkewMatrix as Vt, SelectorUnitsSchema as W, evaluateTypewriterState as Wt, TextAnchorConfigSchema as X, hoistMattes as Xt, SpringPhysicsSchema as Y, getShuffledOrder as Yt, TextAnimator as Z, initLayout as Zt, DynamicStrokePropertiesSchema as _, Vec2Schema as _t, AnchorPresetSchema as a, TextPathSourceSchema as at, EnvironmentPresetSchema as b, applyStaggerToChildren as bt, BloomConfigSchema as c, TextSelectorSchema as ct, CameraNodeSchema as d, TextSpanSchema as dt, parseSvgPathToCubicBeziers as en, TextCursorConfigSchema as et, CarrierHandoffConfigSchema as f, TextWigglySelectorSchema as ft, CubicBezierSegmentSchema as g, VariableFontAxesSchema as gt, CompositorProgramSchema as h, TypingCadenceSchema as ht, AnchorGroupingSchema as i, waveToCubicBeziers as in, TextPathOptionsSchema as it, LineSpacingDynamicsSchema as j, computeStaggerDelay as jt, LightNodeSchema as k, computeLineLeadingDisplacement as kt, BoxNodeSchema as l, TextSignalSelectorSchema as lt, ColorStopSchema as m, TypewriterAnimatorSchema as mt, AdvancedTextAnimatorBuilder as n, sampleCurveGeometry as nn, TextNodeSchema as nt, AnimatableGlyphPropsSchema as o, TextRangeSelectorSchema as ot, ChromaticGlitchConfigSchema as p, ToneMappingSchema as pt, SkewPropertiesSchema as q, generatePathSegments as qt, AdvancedTextAnimatorSchema as r, samplePathChainGeometry as rn, TextPathBuilder as rt, AudioSpectrumTypographySchema as s, TextScrambleConfigSchema as st, AETextAnimatorSchema as t, sampleAudioSpectrumScale as tn, TextCursorStyleSchema as tt, CameraAnimation as u, TextSpanMarkSchema as ut, EnhancedTextNodeSchema as v, VolumetricFormationConfigSchema as vt, GlyphAnchorGroupingSchema as w, compositorToProgram as wt, ExpressionSelectorSchema as x, buildPathLUT as xt, EnvironmentFogSchema as y, VolumetricFormationModeSchema as yt, SceneDefinitionSchema as z, evaluateMarqueeOffset as zt };
5446
+ //# sourceMappingURL=program-BmNKgzja.mjs.map