framefields 2.13.0 → 2.13.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 (285) hide show
  1. package/README.md +9 -4
  2. package/dist/audio/index.d.mts +3 -3
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-CHV33Od9.d.mts → audio-C4B9p_yq.d.mts} +2 -2
  5. package/dist/{audio-CHV33Od9.d.mts.map → audio-C4B9p_yq.d.mts.map} +1 -1
  6. package/dist/{audio-DHzLQ_RG.mjs → audio-DIvi6hTD.mjs} +3 -3
  7. package/dist/{audio-DHzLQ_RG.mjs.map → audio-DIvi6hTD.mjs.map} +1 -1
  8. package/dist/cli/check-worker.mjs +43 -43
  9. package/dist/cloud/index.d.mts.map +1 -1
  10. package/dist/components/index.d.mts +7 -7
  11. package/dist/components/index.mjs +42 -42
  12. package/dist/{dist-CUNvNDS3.mjs → dist-CCrYOkcc.mjs} +18 -4
  13. package/dist/dist-CCrYOkcc.mjs.map +1 -0
  14. package/dist/{dist-D3BeAZ7X.mjs → dist-DtPPPsZV.mjs} +314 -137
  15. package/dist/dist-DtPPPsZV.mjs.map +1 -0
  16. package/dist/effects/index.d.mts +3 -3
  17. package/dist/effects/index.mjs +34 -34
  18. package/dist/{effects-BiDgCK1L.mjs → effects-B-L3rLs6.mjs} +2 -2
  19. package/dist/{effects-BiDgCK1L.mjs.map → effects-B-L3rLs6.mjs.map} +1 -1
  20. package/dist/fonts/index.mjs +2 -2
  21. package/dist/{fonts-DeDPWdvJ.mjs → fonts-k5ll8NTE.mjs} +2 -2
  22. package/dist/{fonts-DeDPWdvJ.mjs.map → fonts-k5ll8NTE.mjs.map} +1 -1
  23. package/dist/{gpu-CWjgql4C.mjs → gpu-D2HT3KcE.mjs} +2 -2
  24. package/dist/{gpu-CWjgql4C.mjs.map → gpu-D2HT3KcE.mjs.map} +1 -1
  25. package/dist/{index-D68eGFNE.d.mts → index-B08eSpaI.d.mts} +2 -2
  26. package/dist/{index-D68eGFNE.d.mts.map → index-B08eSpaI.d.mts.map} +1 -1
  27. package/dist/index-BFTtXosj.d.mts.map +1 -1
  28. package/dist/{index-YB9j9KUx.d.mts → index-BGlaws7-.d.mts} +2 -2
  29. package/dist/{index-YB9j9KUx.d.mts.map → index-BGlaws7-.d.mts.map} +1 -1
  30. package/dist/{index-Dibc_xpC.d.mts → index-ByhlTwxh.d.mts} +3 -3
  31. package/dist/{index-Dibc_xpC.d.mts.map → index-ByhlTwxh.d.mts.map} +1 -1
  32. package/dist/{index-X2u96TEo.d.mts → index-C2yaponf.d.mts} +2 -3
  33. package/dist/index-C2yaponf.d.mts.map +1 -0
  34. package/dist/{index-E2IXX0Cz.d.mts → index-CtKUQ2VG.d.mts} +4 -4
  35. package/dist/{index-E2IXX0Cz.d.mts.map → index-CtKUQ2VG.d.mts.map} +1 -1
  36. package/dist/index.d.mts +7 -7
  37. package/dist/index.mjs +49 -49
  38. package/dist/preview/index.d.mts +1 -1
  39. package/dist/preview/index.mjs +10 -10
  40. package/dist/preview-engine/audio.mjs +1 -1
  41. package/dist/preview-engine/{chunk-IEEV5RB3.mjs → chunk-3C2XT64C.mjs} +1 -1
  42. package/dist/preview-engine/chunk-52X7SURQ.mjs +494 -0
  43. package/dist/preview-engine/{chunk-77WWW75O.mjs → chunk-5ZS46EFB.mjs} +1 -1
  44. package/dist/preview-engine/{chunk-4P3MMJWD.mjs → chunk-FZ4RD7HV.mjs} +1 -1
  45. package/dist/preview-engine/{chunk-UFPA36D2.mjs → chunk-N3XTDAL6.mjs} +18 -18
  46. package/dist/preview-engine/chunk-OBIJIQCZ.mjs +1 -0
  47. package/dist/preview-engine/{chunk-SMHEMYCV.mjs → chunk-UBY2UYEL.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-XYCR3STG.mjs → chunk-XCPRRMMW.mjs} +31 -31
  49. package/dist/preview-engine/components.mjs +1 -1
  50. package/dist/preview-engine/effects.mjs +1 -1
  51. package/dist/preview-engine/framefields.mjs +1 -1
  52. package/dist/preview-engine/player.mjs +1 -1
  53. package/dist/preview-engine/renderers-ZMMQ7S2A.mjs +228 -0
  54. package/dist/preview-engine/signals.mjs +1 -1
  55. package/dist/{preview-PDz7o2xg.mjs → preview-lHH8Tv4j.mjs} +3 -3
  56. package/dist/{preview-PDz7o2xg.mjs.map → preview-lHH8Tv4j.mjs.map} +1 -1
  57. package/dist/{program-Bn6ko_I4.mjs → program-BfiB9ttP.mjs} +15 -2
  58. package/dist/program-BfiB9ttP.mjs.map +1 -0
  59. package/dist/renderer/index.d.mts +1 -1
  60. package/dist/renderer/index.mjs +2 -2
  61. package/dist/renderer-0rLmztAv.mjs +5 -0
  62. package/dist/{renderer-BjgFpwVK.mjs → renderer-4nsuReW2.mjs} +3 -3
  63. package/dist/{renderer-BjgFpwVK.mjs.map → renderer-4nsuReW2.mjs.map} +1 -1
  64. package/dist/{renderer-DJPZs_zV.mjs → renderer-7xQmXXMH.mjs} +3 -3
  65. package/dist/{renderer-DJPZs_zV.mjs.map → renderer-7xQmXXMH.mjs.map} +1 -1
  66. package/dist/renderer-B0pjOXFY.mjs +5 -0
  67. package/dist/{renderer-C_1eqfI0.mjs → renderer-B10HDC13.mjs} +3 -3
  68. package/dist/{renderer-C_1eqfI0.mjs.map → renderer-B10HDC13.mjs.map} +1 -1
  69. package/dist/{renderer-DRal7Goa.mjs → renderer-B2IUPjhw.mjs} +3 -3
  70. package/dist/{renderer-DRal7Goa.mjs.map → renderer-B2IUPjhw.mjs.map} +1 -1
  71. package/dist/{renderer-Br8km655.mjs → renderer-B3_GddgJ.mjs} +2 -2
  72. package/dist/{renderer-Br8km655.mjs.map → renderer-B3_GddgJ.mjs.map} +1 -1
  73. package/dist/{renderer-DOZPZTxe.mjs → renderer-B3un4Pdi.mjs} +3 -3
  74. package/dist/{renderer-DOZPZTxe.mjs.map → renderer-B3un4Pdi.mjs.map} +1 -1
  75. package/dist/{renderer-Dp5ChuOs.mjs → renderer-B6bK9rXm.mjs} +2 -2
  76. package/dist/{renderer-Dp5ChuOs.mjs.map → renderer-B6bK9rXm.mjs.map} +1 -1
  77. package/dist/renderer-B7J13reL.mjs +5 -0
  78. package/dist/{renderer-Nnu32rqg.mjs → renderer-BEhZiOT4.mjs} +2 -2
  79. package/dist/{renderer-Nnu32rqg.mjs.map → renderer-BEhZiOT4.mjs.map} +1 -1
  80. package/dist/{renderer-C7m7Yxgc.mjs → renderer-BEuXJY-C.mjs} +3 -3
  81. package/dist/{renderer-C7m7Yxgc.mjs.map → renderer-BEuXJY-C.mjs.map} +1 -1
  82. package/dist/{renderer-D-fzEZfX.mjs → renderer-BGchUBW_.mjs} +2 -2
  83. package/dist/{renderer-D-fzEZfX.mjs.map → renderer-BGchUBW_.mjs.map} +1 -1
  84. package/dist/{renderer--Q0pM9Vh.mjs → renderer-BIKkxw_Z.mjs} +3 -3
  85. package/dist/{renderer--Q0pM9Vh.mjs.map → renderer-BIKkxw_Z.mjs.map} +1 -1
  86. package/dist/{renderer-Dz6P-rPI.mjs → renderer-BM19iK8v.mjs} +2 -2
  87. package/dist/{renderer-Dz6P-rPI.mjs.map → renderer-BM19iK8v.mjs.map} +1 -1
  88. package/dist/{renderer-CE4535aW.mjs → renderer-BOlHW3Mi.mjs} +2 -2
  89. package/dist/{renderer-CE4535aW.mjs.map → renderer-BOlHW3Mi.mjs.map} +1 -1
  90. package/dist/renderer-BPGIKGgl.mjs +5 -0
  91. package/dist/{renderer-C9dqx3U7.mjs → renderer-BTwuM9u-.mjs} +3 -3
  92. package/dist/{renderer-C9dqx3U7.mjs.map → renderer-BTwuM9u-.mjs.map} +1 -1
  93. package/dist/{renderer-BqUAyzCZ.mjs → renderer-BZMh2io2.mjs} +2 -2
  94. package/dist/{renderer-BqUAyzCZ.mjs.map → renderer-BZMh2io2.mjs.map} +1 -1
  95. package/dist/{renderer-BZgJj8Cl.mjs → renderer-BZX932Lj.mjs} +2 -2
  96. package/dist/{renderer-BZgJj8Cl.mjs.map → renderer-BZX932Lj.mjs.map} +1 -1
  97. package/dist/{renderer-BgjPbgbn.mjs → renderer-BhcTYhaP.mjs} +3 -3
  98. package/dist/{renderer-BgjPbgbn.mjs.map → renderer-BhcTYhaP.mjs.map} +1 -1
  99. package/dist/{renderer-CyUiXLRa.mjs → renderer-BmyFfvVA.mjs} +3 -3
  100. package/dist/{renderer-CyUiXLRa.mjs.map → renderer-BmyFfvVA.mjs.map} +1 -1
  101. package/dist/{renderer-opVuiAQR.mjs → renderer-BrEeUw7T.mjs} +2 -2
  102. package/dist/{renderer-opVuiAQR.mjs.map → renderer-BrEeUw7T.mjs.map} +1 -1
  103. package/dist/{renderer-CMnlgAGs.mjs → renderer-BsrKj6Td.mjs} +2 -2
  104. package/dist/{renderer-CMnlgAGs.mjs.map → renderer-BsrKj6Td.mjs.map} +1 -1
  105. package/dist/renderer-Bv-Artj1.mjs +5 -0
  106. package/dist/{renderer-BO_wuUKA.mjs → renderer-BvBqTAtk.mjs} +3 -3
  107. package/dist/{renderer-BO_wuUKA.mjs.map → renderer-BvBqTAtk.mjs.map} +1 -1
  108. package/dist/renderer-BvLjbhcL.mjs +5 -0
  109. package/dist/{renderer-D8gN7aqk.mjs → renderer-Bw-_GZVw.mjs} +3 -3
  110. package/dist/{renderer-D8gN7aqk.mjs.map → renderer-Bw-_GZVw.mjs.map} +1 -1
  111. package/dist/{renderer-LXhEPCmy.mjs → renderer-Bw0O--gW.mjs} +3 -3
  112. package/dist/{renderer-LXhEPCmy.mjs.map → renderer-Bw0O--gW.mjs.map} +1 -1
  113. package/dist/renderer-By6awWaf.mjs +5 -0
  114. package/dist/renderer-C0rvsz7m.mjs +5 -0
  115. package/dist/{renderer-SJyp9-62.mjs → renderer-C4hd6Cqi.mjs} +2 -2
  116. package/dist/{renderer-SJyp9-62.mjs.map → renderer-C4hd6Cqi.mjs.map} +1 -1
  117. package/dist/{renderer-CnL8Cmmr.mjs → renderer-C64_B8It.mjs} +2 -2
  118. package/dist/{renderer-FPiLBwj5.mjs → renderer-C98XwEIr.mjs} +2 -2
  119. package/dist/{renderer-FPiLBwj5.mjs.map → renderer-C98XwEIr.mjs.map} +1 -1
  120. package/dist/{renderer-CL-vyXgX.mjs → renderer-CC22Djgi.mjs} +3 -3
  121. package/dist/{renderer-CL-vyXgX.mjs.map → renderer-CC22Djgi.mjs.map} +1 -1
  122. package/dist/renderer-CDgud_HB.mjs +5 -0
  123. package/dist/renderer-CDiRF3bG.mjs +6 -0
  124. package/dist/{renderer-CwlY8Tb-.mjs → renderer-CHCRcCKw.mjs} +2 -2
  125. package/dist/{renderer-CwlY8Tb-.mjs.map → renderer-CHCRcCKw.mjs.map} +1 -1
  126. package/dist/renderer-CIIEQd4B.mjs +5 -0
  127. package/dist/renderer-CJblwOA9.mjs +5 -0
  128. package/dist/renderer-CNMOXtXE.mjs +5 -0
  129. package/dist/{renderer-S9tVGneU.mjs → renderer-CO4NGvAh.mjs} +69 -69
  130. package/dist/{renderer-S9tVGneU.mjs.map → renderer-CO4NGvAh.mjs.map} +1 -1
  131. package/dist/{renderer-CxSFvKd1.mjs → renderer-CO9vE3sd.mjs} +2 -2
  132. package/dist/{renderer-CxSFvKd1.mjs.map → renderer-CO9vE3sd.mjs.map} +1 -1
  133. package/dist/renderer-COeSeNGg.mjs +5 -0
  134. package/dist/{renderer-NBMmvqWl.mjs → renderer-CQ4h8n7p.mjs} +3 -3
  135. package/dist/{renderer-NBMmvqWl.mjs.map → renderer-CQ4h8n7p.mjs.map} +1 -1
  136. package/dist/{renderer-BsMZ5Iaq.mjs → renderer-CRhEGqW4.mjs} +3 -3
  137. package/dist/{renderer-BsMZ5Iaq.mjs.map → renderer-CRhEGqW4.mjs.map} +1 -1
  138. package/dist/{renderer-RzkU_O1i.mjs → renderer-CSu_vYPn.mjs} +3 -3
  139. package/dist/{renderer-RzkU_O1i.mjs.map → renderer-CSu_vYPn.mjs.map} +1 -1
  140. package/dist/{renderer-BCTUqJG7.mjs → renderer-CU6WT5jW.mjs} +3 -3
  141. package/dist/{renderer-BCTUqJG7.mjs.map → renderer-CU6WT5jW.mjs.map} +1 -1
  142. package/dist/renderer-CUfElmtZ.mjs +5 -0
  143. package/dist/{renderer-Cp_HOmp7.mjs → renderer-CXrnzihz.mjs} +3 -3
  144. package/dist/{renderer-Cp_HOmp7.mjs.map → renderer-CXrnzihz.mjs.map} +1 -1
  145. package/dist/renderer-CYh2lFoJ.mjs +5 -0
  146. package/dist/renderer-CYtVZYMH.mjs +5 -0
  147. package/dist/{renderer-C-GTxnfv.mjs → renderer-CdXBRdFf.mjs} +2 -2
  148. package/dist/{renderer-C-GTxnfv.mjs.map → renderer-CdXBRdFf.mjs.map} +1 -1
  149. package/dist/{renderer-puQhVfDS.mjs → renderer-Cfx_FCSf.mjs} +3 -3
  150. package/dist/{renderer-puQhVfDS.mjs.map → renderer-Cfx_FCSf.mjs.map} +1 -1
  151. package/dist/renderer-CjxZlkjb.mjs +5 -0
  152. package/dist/{renderer-DGb_wgTW.mjs → renderer-CkTehyRX.mjs} +3 -3
  153. package/dist/{renderer-DGb_wgTW.mjs.map → renderer-CkTehyRX.mjs.map} +1 -1
  154. package/dist/{renderer-CgK7Q1G8.mjs → renderer-CldjJmRR.mjs} +2 -2
  155. package/dist/{renderer-BlZgyBSo.mjs → renderer-CoC64eam.mjs} +3 -3
  156. package/dist/{renderer-BlZgyBSo.mjs.map → renderer-CoC64eam.mjs.map} +1 -1
  157. package/dist/renderer-Cpd6TvTC.mjs +5 -0
  158. package/dist/{renderer-BPOh9x5X.mjs → renderer-Cv9CKKWG.mjs} +2 -2
  159. package/dist/{renderer-BPOh9x5X.mjs.map → renderer-Cv9CKKWG.mjs.map} +1 -1
  160. package/dist/{renderer-Cu3iKMSJ.mjs → renderer-D-mX1EVA.mjs} +3 -3
  161. package/dist/{renderer-Cu3iKMSJ.mjs.map → renderer-D-mX1EVA.mjs.map} +1 -1
  162. package/dist/{renderer-BMpmmYOq.mjs → renderer-D0h1hTOo.mjs} +2 -2
  163. package/dist/{renderer-BMpmmYOq.mjs.map → renderer-D0h1hTOo.mjs.map} +1 -1
  164. package/dist/{renderer-DpZballM.mjs → renderer-D0xM67cK.mjs} +2 -2
  165. package/dist/{renderer-DpZballM.mjs.map → renderer-D0xM67cK.mjs.map} +1 -1
  166. package/dist/renderer-D3ziOPhX.mjs +5 -0
  167. package/dist/{renderer-549d94qG.mjs → renderer-DCrKEVjb.mjs} +3 -3
  168. package/dist/{renderer-549d94qG.mjs.map → renderer-DCrKEVjb.mjs.map} +1 -1
  169. package/dist/renderer-DL-phtL5.mjs +5 -0
  170. package/dist/{renderer-CQFMyC_c.mjs → renderer-DNynPM6X.mjs} +2 -2
  171. package/dist/{renderer-CQFMyC_c.mjs.map → renderer-DNynPM6X.mjs.map} +1 -1
  172. package/dist/renderer-DSnmYnHg.mjs +5 -0
  173. package/dist/renderer-DUGfsT-E.mjs +5 -0
  174. package/dist/renderer-DW5af9x1.mjs +5 -0
  175. package/dist/{renderer-B-LUGB9h.mjs → renderer-DWYmJSrl.mjs} +2 -2
  176. package/dist/{renderer-B-LUGB9h.mjs.map → renderer-DWYmJSrl.mjs.map} +1 -1
  177. package/dist/renderer-DYMrol1t.mjs +5 -0
  178. package/dist/{renderer-CciiDHuU.mjs → renderer-DYeNNc_G.mjs} +3 -3
  179. package/dist/{renderer-CciiDHuU.mjs.map → renderer-DYeNNc_G.mjs.map} +1 -1
  180. package/dist/{renderer-CYwVNbUh.mjs → renderer-DYlx7VHo.mjs} +2 -2
  181. package/dist/{renderer-CYwVNbUh.mjs.map → renderer-DYlx7VHo.mjs.map} +1 -1
  182. package/dist/{renderer-CZ5mwBW1.mjs → renderer-D_m6Qbsi.mjs} +2 -2
  183. package/dist/{renderer-CZ5mwBW1.mjs.map → renderer-D_m6Qbsi.mjs.map} +1 -1
  184. package/dist/renderer-DekeUHaz.mjs +5 -0
  185. package/dist/{renderer-BKi6jDi_.mjs → renderer-DhGZ41hQ.mjs} +3 -3
  186. package/dist/{renderer-BKi6jDi_.mjs.map → renderer-DhGZ41hQ.mjs.map} +1 -1
  187. package/dist/{renderer-KgsVk9c6.mjs → renderer-DiZkZ0Pr.mjs} +3 -3
  188. package/dist/{renderer-KgsVk9c6.mjs.map → renderer-DiZkZ0Pr.mjs.map} +1 -1
  189. package/dist/{renderer-BtgqTg2K.mjs → renderer-Dm57W73p.mjs} +2 -2
  190. package/dist/renderer-Dt5uyJdZ.mjs +5 -0
  191. package/dist/{renderer-g9SstkTz.mjs → renderer-DtFZbE1j.mjs} +2 -2
  192. package/dist/{renderer-C1ctHdXl.mjs → renderer-DvHi_wXE.mjs} +3 -3
  193. package/dist/{renderer-C1ctHdXl.mjs.map → renderer-DvHi_wXE.mjs.map} +1 -1
  194. package/dist/{renderer-vll8LX0I.mjs → renderer-Dv_iRIyx.mjs} +17 -17
  195. package/dist/renderer-Dv_iRIyx.mjs.map +1 -0
  196. package/dist/renderer-DwLQAnaK.mjs +5 -0
  197. package/dist/{renderer-DXFJv_e6.mjs → renderer-DzON3wDZ.mjs} +3 -3
  198. package/dist/{renderer-DXFJv_e6.mjs.map → renderer-DzON3wDZ.mjs.map} +1 -1
  199. package/dist/{renderer-RAq3LnNy.mjs → renderer-GIlQ9lZq.mjs} +2 -2
  200. package/dist/{renderer-RAq3LnNy.mjs.map → renderer-GIlQ9lZq.mjs.map} +1 -1
  201. package/dist/{renderer-DwGlDNOV.mjs → renderer-HKv5cBdp.mjs} +2 -2
  202. package/dist/{renderer-DwGlDNOV.mjs.map → renderer-HKv5cBdp.mjs.map} +1 -1
  203. package/dist/renderer-IXQP2CWM.mjs +5 -0
  204. package/dist/renderer-K-Pkw63O.mjs +5 -0
  205. package/dist/renderer-MPw2KH9P.mjs +5 -0
  206. package/dist/{renderer-BUj7jE6t.mjs → renderer-QbSrnPZU.mjs} +3 -3
  207. package/dist/{renderer-BUj7jE6t.mjs.map → renderer-QbSrnPZU.mjs.map} +1 -1
  208. package/dist/renderer-RPu8RMav.mjs +5 -0
  209. package/dist/{renderer-dRXP2dJU.mjs → renderer-TfeohPxt.mjs} +3 -3
  210. package/dist/{renderer-dRXP2dJU.mjs.map → renderer-TfeohPxt.mjs.map} +1 -1
  211. package/dist/{renderer-CuPAQjDK.mjs → renderer-Y1kjtOto.mjs} +3 -3
  212. package/dist/{renderer-CuPAQjDK.mjs.map → renderer-Y1kjtOto.mjs.map} +1 -1
  213. package/dist/{renderer-BIieU9pY.mjs → renderer-YONlI6W-.mjs} +3 -3
  214. package/dist/{renderer-BIieU9pY.mjs.map → renderer-YONlI6W-.mjs.map} +1 -1
  215. package/dist/{renderer-45ifiDkn.mjs → renderer-_J9JcCMR.mjs} +3 -3
  216. package/dist/{renderer-45ifiDkn.mjs.map → renderer-_J9JcCMR.mjs.map} +1 -1
  217. package/dist/renderer-dCqxd5N2.mjs +5 -0
  218. package/dist/{renderer-aRk849b3.d.mts → renderer-fG8Jy8Rx.d.mts} +2 -2
  219. package/dist/{renderer-aRk849b3.d.mts.map → renderer-fG8Jy8Rx.d.mts.map} +1 -1
  220. package/dist/renderer-lhjmE-Fp.mjs +5 -0
  221. package/dist/{renderer-_54hiCq0.mjs → renderer-mDBoz0zT.mjs} +3 -3
  222. package/dist/{renderer-_54hiCq0.mjs.map → renderer-mDBoz0zT.mjs.map} +1 -1
  223. package/dist/{renderer-BHPgkoEL.mjs → renderer-pn52dzZz.mjs} +2 -2
  224. package/dist/{renderer-BHPgkoEL.mjs.map → renderer-pn52dzZz.mjs.map} +1 -1
  225. package/dist/renderer-u9cmBuvM.mjs +5 -0
  226. package/dist/{renderer-BPiWsrC2.mjs → renderer-uER8kn7f.mjs} +2 -2
  227. package/dist/{renderer-BPiWsrC2.mjs.map → renderer-uER8kn7f.mjs.map} +1 -1
  228. package/dist/{renderer-B5b-ehRb.mjs → renderer-uzU6dsdR.mjs} +2 -2
  229. package/dist/{renderer-B5b-ehRb.mjs.map → renderer-uzU6dsdR.mjs.map} +1 -1
  230. package/dist/renderer-vH12jcpz.mjs +5 -0
  231. package/dist/{renderer-DxB_OfLs.mjs → renderer-yNWYqvvq.mjs} +2 -2
  232. package/dist/{renderer-DxB_OfLs.mjs.map → renderer-yNWYqvvq.mjs.map} +1 -1
  233. package/dist/{renderer-dGEMVaZ3.mjs → renderer-zLi2qFGT.mjs} +2 -2
  234. package/dist/{renderer-dGEMVaZ3.mjs.map → renderer-zLi2qFGT.mjs.map} +1 -1
  235. package/dist/{renderers-CP8CFWDs-BRQyvcut.mjs → renderers-CP8CFWDs-BufiCyn7.mjs} +2 -2
  236. package/dist/{renderers-CP8CFWDs-BRQyvcut.mjs.map → renderers-CP8CFWDs-BufiCyn7.mjs.map} +1 -1
  237. package/dist/signals/index.d.mts +4 -4
  238. package/dist/signals/index.mjs +4 -4
  239. package/dist/{src-BzFGotRc.mjs → src-DrP7fGJX.mjs} +37 -12
  240. package/dist/{src-BzFGotRc.mjs.map → src-DrP7fGJX.mjs.map} +1 -1
  241. package/package.json +60 -60
  242. package/dist/dist-CUNvNDS3.mjs.map +0 -1
  243. package/dist/dist-D3BeAZ7X.mjs.map +0 -1
  244. package/dist/index-X2u96TEo.d.mts.map +0 -1
  245. package/dist/preview-engine/chunk-7M5LE6EM.mjs +0 -483
  246. package/dist/preview-engine/chunk-FRJPXWAG.mjs +0 -1
  247. package/dist/preview-engine/renderers-TTXTV4PC.mjs +0 -228
  248. package/dist/program-Bn6ko_I4.mjs.map +0 -1
  249. package/dist/renderer-1aSF5BmY.mjs +0 -5
  250. package/dist/renderer-B2e4Gr9u.mjs +0 -5
  251. package/dist/renderer-B6fz4j50.mjs +0 -5
  252. package/dist/renderer-BEftIYw-.mjs +0 -5
  253. package/dist/renderer-BHTnO-7e.mjs +0 -5
  254. package/dist/renderer-BMlnQqTO.mjs +0 -5
  255. package/dist/renderer-BOzcFezY.mjs +0 -5
  256. package/dist/renderer-BVbjJIKJ.mjs +0 -5
  257. package/dist/renderer-BXsHKf4k.mjs +0 -5
  258. package/dist/renderer-Bks49NVl.mjs +0 -5
  259. package/dist/renderer-C-t7qFKr.mjs +0 -5
  260. package/dist/renderer-C24n-6CX.mjs +0 -6
  261. package/dist/renderer-CCReX-7M.mjs +0 -5
  262. package/dist/renderer-CIxFQrAm.mjs +0 -5
  263. package/dist/renderer-CLHBMIqJ.mjs +0 -5
  264. package/dist/renderer-CMJKi-Ye.mjs +0 -5
  265. package/dist/renderer-C_H3mHZa.mjs +0 -5
  266. package/dist/renderer-CfkTdR5B.mjs +0 -5
  267. package/dist/renderer-CnhkXJ0R.mjs +0 -5
  268. package/dist/renderer-CqpyVsq_.mjs +0 -5
  269. package/dist/renderer-CtWgIpTE.mjs +0 -5
  270. package/dist/renderer-CyuKr5ca.mjs +0 -5
  271. package/dist/renderer-D9ON_1Hf.mjs +0 -5
  272. package/dist/renderer-DAnTgh4o.mjs +0 -5
  273. package/dist/renderer-DWgpivA3.mjs +0 -5
  274. package/dist/renderer-Dh_qNNwR.mjs +0 -5
  275. package/dist/renderer-DkCpXPMP.mjs +0 -5
  276. package/dist/renderer-Dre-6cDR.mjs +0 -5
  277. package/dist/renderer-Ds5z4_HX.mjs +0 -5
  278. package/dist/renderer-HGSCOMyP.mjs +0 -5
  279. package/dist/renderer-KMY8W-cJ.mjs +0 -5
  280. package/dist/renderer-R21YvXz3.mjs +0 -5
  281. package/dist/renderer-RtzCz37W.mjs +0 -5
  282. package/dist/renderer-iMrqAjix.mjs +0 -5
  283. package/dist/renderer-sMed1u1O.mjs +0 -5
  284. package/dist/renderer-tsAuo46l.mjs +0 -5
  285. package/dist/renderer-vll8LX0I.mjs.map +0 -1
package/README.md CHANGED
@@ -42,6 +42,11 @@ Every frame is rendered by framefields directly from TypeScript in [`examples/`]
42
42
 
43
43
  <table>
44
44
  <tr>
45
+ <td width="33.33%" align="center">
46
+ <a href="https://youtu.be/tR_j_twU4p4"><img src="https://raw.githubusercontent.com/gatewai-dev/framefields/main/assets/showcase/news-explainer.jpg" alt="News explainer film about the Palm Beach County jet crash" width="100%"></a>
47
+ <br><a href="https://youtu.be/tR_j_twU4p4"><b>News explainer</b></a>
48
+ <br><sub><a href="https://github.com/gatewai-dev/framefields/blob/main/examples/33_news_explainer"><code>33_news_explainer</code></a></sub>
49
+ </td>
45
50
  <td width="33.33%" align="center">
46
51
  <a href="https://youtu.be/3lrQdiXjlnY"><img src="https://raw.githubusercontent.com/gatewai-dev/framefields/main/assets/showcase/relay.jpg" alt="Relay product film" width="100%"></a>
47
52
  <br><a href="https://youtu.be/3lrQdiXjlnY"><b>Relay</b></a>
@@ -52,13 +57,13 @@ Every frame is rendered by framefields directly from TypeScript in [`examples/`]
52
57
  <br><a href="https://youtu.be/xSowU7X48J8"><b>Shard storm</b></a>
53
58
  <br><sub><a href="https://github.com/gatewai-dev/framefields/blob/main/examples/31_shard_storm"><code>31_shard_storm</code></a></sub>
54
59
  </td>
60
+ </tr>
61
+ <tr>
55
62
  <td width="33.33%" align="center">
56
63
  <a href="https://youtu.be/POC7rKnuoE4"><img src="https://raw.githubusercontent.com/gatewai-dev/framefields/main/assets/showcase/physics-dancer.jpg" alt="Physics dancer showcase film" width="100%"></a>
57
64
  <br><a href="https://youtu.be/POC7rKnuoE4"><b>Physics dancer</b></a>
58
65
  <br><sub><a href="https://github.com/gatewai-dev/framefields/blob/main/examples/28_physics_dancer"><code>28_physics_dancer</code></a></sub>
59
66
  </td>
60
- </tr>
61
- <tr>
62
67
  <td width="33.33%" align="center">
63
68
  <a href="https://youtu.be/k2lgbdL6_TA"><img src="https://raw.githubusercontent.com/gatewai-dev/framefields/main/assets/showcase/mac-keyboard.jpg" alt="Mac keyboard from 3D primitives" width="100%"></a>
64
69
  <br><a href="https://youtu.be/k2lgbdL6_TA"><b>Mac Keyboard</b></a>
@@ -69,13 +74,13 @@ Every frame is rendered by framefields directly from TypeScript in [`examples/`]
69
74
  <br><a href="https://youtu.be/FVXTqAozAv8"><b>Framefields launch</b></a>
70
75
  <br><sub><a href="https://github.com/gatewai-dev/framefields/blob/main/examples/22_framefields_launch"><code>22_framefields_launch</code></a></sub>
71
76
  </td>
77
+ </tr>
78
+ <tr>
72
79
  <td width="33.33%" align="center">
73
80
  <a href="https://youtu.be/9BF1snfmg3o"><img src="https://raw.githubusercontent.com/gatewai-dev/framefields/main/assets/showcase/full-circle.jpg" alt="Full Circle film" width="100%"></a>
74
81
  <br><a href="https://youtu.be/9BF1snfmg3o"><b>Full Circle</b></a>
75
82
  <br><sub><a href="https://github.com/gatewai-dev/framefields/blob/main/examples/21_full_circle"><code>21_full_circle</code></a></sub>
76
83
  </td>
77
- </tr>
78
- <tr>
79
84
  <td width="33.33%" align="center">
80
85
  <a href="https://youtu.be/RQ3yi_lzPqI"><img src="https://raw.githubusercontent.com/gatewai-dev/framefields/main/assets/showcase/dancer.jpg" alt="Dancer showcase film" width="100%"></a>
81
86
  <br><a href="https://youtu.be/RQ3yi_lzPqI"><b>Dancer showcase</b></a>
@@ -1,7 +1,7 @@
1
1
  import "../index-a6JrbAK0.mjs";
2
2
  import { n as mixAudioTracks } from "../index-BFTtXosj.mjs";
3
- import { J as WebGPUAudioProcessor } from "../index-X2u96TEo.mjs";
3
+ import { J as WebGPUAudioProcessor } from "../index-C2yaponf.mjs";
4
4
  import "../renderer-DKJOon6y.mjs";
5
- import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, h as _default$2, i as SfxRenderContext, l as _default$7, m as _default$3, n as encodeStereoWav, o as mixSfxInto, p as _default, r as RenderedSfx, s as renderSfx, t as EncodeWavOptions, u as _default$6 } from "../index-D68eGFNE.mjs";
6
- import { t as _default$1 } from "../renderer-aRk849b3.mjs";
5
+ import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, h as _default$2, i as SfxRenderContext, l as _default$7, m as _default$3, n as encodeStereoWav, o as mixSfxInto, p as _default, r as RenderedSfx, s as renderSfx, t as EncodeWavOptions, u as _default$6 } from "../index-B08eSpaI.mjs";
6
+ import { t as _default$1 } from "../renderer-fG8Jy8Rx.mjs";
7
7
  export { EncodeWavOptions, RenderedSfx, SfxRenderContext, SfxTrigger, WebGPUAudioProcessor, _default as audioFadeRenderer, _default$1 as audioSignalExtractorRenderer, _default$2 as compressorRenderer, _default$3 as delayRenderer, encodeStereoWav, mixAudioTracks, mixSfxInto, _default$4 as noiseGateRenderer, _default$5 as parametricEqRenderer, renderSfx, _default$6 as reverbRenderer, softLimit, _default$7 as stereoPanningRenderer };
@@ -1,15 +1,15 @@
1
1
  import "../chunk-DOL2i2sR.mjs";
2
- import { g as WebGPUAudioProcessor } from "../dist-D3BeAZ7X.mjs";
3
- import { t as renderers_default$1 } from "../renderers-CP8CFWDs-BRQyvcut.mjs";
4
- import { i as mixAudioTracks } from "../dist-CUNvNDS3.mjs";
5
- import { t as renderers_default$2 } from "../renderer-DxB_OfLs.mjs";
6
- import { t as renderers_default$3 } from "../renderer-C-GTxnfv.mjs";
7
- import { t as renderers_default } from "../renderer-D-fzEZfX.mjs";
8
- import { t as renderers_default$4 } from "../renderer-CxSFvKd1.mjs";
9
- import { t as renderers_default$5 } from "../renderer-BHPgkoEL.mjs";
10
- import { t as renderers_default$6 } from "../renderer-BPOh9x5X.mjs";
2
+ import { g as WebGPUAudioProcessor } from "../dist-DtPPPsZV.mjs";
3
+ import { t as renderers_default$1 } from "../renderers-CP8CFWDs-BufiCyn7.mjs";
4
+ import { a as mixAudioTracks } from "../dist-CCrYOkcc.mjs";
5
+ import { t as renderers_default$2 } from "../renderer-yNWYqvvq.mjs";
6
+ import { t as renderers_default$3 } from "../renderer-CdXBRdFf.mjs";
7
+ import { t as renderers_default } from "../renderer-BGchUBW_.mjs";
8
+ import { t as renderers_default$4 } from "../renderer-CO9vE3sd.mjs";
9
+ import { t as renderers_default$5 } from "../renderer-pn52dzZz.mjs";
10
+ import { t as renderers_default$6 } from "../renderer-Cv9CKKWG.mjs";
11
11
  import "../renderer-Co2YqWX0.mjs";
12
- import { t as renderers_default$7 } from "../renderer-CMnlgAGs.mjs";
12
+ import { t as renderers_default$7 } from "../renderer-BsrKj6Td.mjs";
13
13
  import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "../audio-DS9Jg2ls.mjs";
14
14
 
15
15
  export { WebGPUAudioProcessor, renderers_default as audioFadeRenderer, renderers_default$1 as audioSignalExtractorRenderer, renderers_default$2 as compressorRenderer, renderers_default$3 as delayRenderer, encodeStereoWav, mixAudioTracks, mixSfxInto, renderers_default$4 as noiseGateRenderer, renderers_default$5 as parametricEqRenderer, renderSfx, renderers_default$6 as reverbRenderer, softLimit, renderers_default$7 as stereoPanningRenderer };
@@ -1,5 +1,5 @@
1
1
  import { $ as FrameSignal } from "./index-a6JrbAK0.mjs";
2
- import { l as AudioPitchTrackConfig, n as NodeRendererPlugin, u as AudioSignalComputeConfig } from "./index-X2u96TEo.mjs";
2
+ import { l as AudioPitchTrackConfig, n as NodeRendererPlugin, u as AudioSignalComputeConfig } from "./index-C2yaponf.mjs";
3
3
 
4
4
  //#region ../../nodes/node-modulate/dist/renderer.d.mts
5
5
  //#region src/renderers/index.d.ts
@@ -58,4 +58,4 @@ declare const AudioSignal: {
58
58
  };
59
59
  //#endregion
60
60
  export { ExtractedAudioSignalsBundle as a, AudioSignalOptions as i, AudioPitchSignals as n, _default as o, AudioSignal as r, AudioPitchOptions as t };
61
- //# sourceMappingURL=audio-CHV33Od9.d.mts.map
61
+ //# sourceMappingURL=audio-C4B9p_yq.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio-CHV33Od9.d.mts","names":["_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../../nodes/node-modulate/dist/renderer.d.mts","../src/signals/audio.ts"],"sourcesContent":["import * as _framefields_node_sdk_renderer0 from \"@framefields/node-sdk/renderer\";\n\n//#region src/renderers/index.d.ts\ndeclare const _default: Readonly<_framefields_node_sdk_renderer0.NodeRendererPlugin>;\n//#endregion\nexport { _default as default };\n//# sourceMappingURL=renderer.d.mts.map"],"mappings":";;;;;cAGcC,UAAUE,SAASH;AAHiD;;;UCcjE,kBAAA,SAA2B;;EDX9BC,WAAsE,CAAA,EAAA,MAAA;;;UCiBnE,2BAAA;EANA,OAAA,EAOP,WAPO,CAAmB,MAAA,CAAA;EAMnB,IAAA,EAEV,WAFU,CAAA,MAAA,CAAA;EACP,IAAA,EAEH,WAFG,CAAA,MAAA,CAAA;EACH,MAAA,EAEE,WAFF,CAAA,MAAA,CAAA;EACA,WAAA,EAAA,MAAA;EACE,SAAA,EAAA,MAAA;EAAW,UAAA,EAAA,MAAA;EAaH,WAAA,EAAA,OAAkB;EAKlB,OAAA,EAAA,OAAA;EAEZ,aAAA,EAAA,OAAA;EAEQ,UAAA,EAAA,OAAA;EAEJ,UAAA,EAAA,OAAA;EACO,YAAA,EAAA,OAAA;EAA0B,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAkC,UAZ3D,iBAAA,SAA0B,qBAYiC,CAAA;EAc/D,GAAA,CAAA,EAAA,MAAA;;;AAKD,UA1BK,iBAAA,CA0BL;EAAR;EAoFO,EAAA,EA5GN,WA4GM,CAAA,MAAA,CAAA;EACC;EAAR,UAAA,EA3GS,WA2GT,CAAA,MAAA,CAAA;EAWQ;EAED,MAAA,EAtHF,WAsHE,CAAA,MAAA,CAAA;EACC,OAAA,EAAA;IAAR,EAAA,EAtHY,YAsHZ;IA4BO,UAAA,EAlJ+B,YAkJ/B;IACC,MAAA,EAnJoD,YAmJpD;EAAR,CAAA;EAAO,GAAA,EAAA,MAAA;;;;cArIE;gCAED,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ;;8BAWA,8CAED,oBACP,QAAQ;;kCA4BD,oBACP,QAAQ"}
1
+ {"version":3,"file":"audio-C4B9p_yq.d.mts","names":["_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../../nodes/node-modulate/dist/renderer.d.mts","../src/signals/audio.ts"],"sourcesContent":["import * as _framefields_node_sdk_renderer0 from \"@framefields/node-sdk/renderer\";\n\n//#region src/renderers/index.d.ts\ndeclare const _default: Readonly<_framefields_node_sdk_renderer0.NodeRendererPlugin>;\n//#endregion\nexport { _default as default };\n//# sourceMappingURL=renderer.d.mts.map"],"mappings":";;;;;cAGcC,UAAUE,SAASH;AAHiD;;;UCcjE,kBAAA,SAA2B;;EDX9BC,WAAsE,CAAA,EAAA,MAAA;;;UCiBnE,2BAAA;EANA,OAAA,EAOP,WAPO,CAAmB,MAAA,CAAA;EAMnB,IAAA,EAEV,WAFU,CAAA,MAAA,CAAA;EACP,IAAA,EAEH,WAFG,CAAA,MAAA,CAAA;EACH,MAAA,EAEE,WAFF,CAAA,MAAA,CAAA;EACA,WAAA,EAAA,MAAA;EACE,SAAA,EAAA,MAAA;EAAW,UAAA,EAAA,MAAA;EAaH,WAAA,EAAA,OAAkB;EAKlB,OAAA,EAAA,OAAA;EAEZ,aAAA,EAAA,OAAA;EAEQ,UAAA,EAAA,OAAA;EAEJ,UAAA,EAAA,OAAA;EACO,YAAA,EAAA,OAAA;EAA0B,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAkC,UAZ3D,iBAAA,SAA0B,qBAYiC,CAAA;EAc/D,GAAA,CAAA,EAAA,MAAA;;;AAKD,UA1BK,iBAAA,CA0BL;EAAR;EAoFO,EAAA,EA5GN,WA4GM,CAAA,MAAA,CAAA;EACC;EAAR,UAAA,EA3GS,WA2GT,CAAA,MAAA,CAAA;EAWQ;EAED,MAAA,EAtHF,WAsHE,CAAA,MAAA,CAAA;EACC,OAAA,EAAA;IAAR,EAAA,EAtHY,YAsHZ;IA4BO,UAAA,EAlJ+B,YAkJ/B;IACC,MAAA,EAnJoD,YAmJpD;EAAR,CAAA;EAAO,GAAA,EAAA,MAAA;;;;cArIE;gCAED,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ;;8BAWA,8CAED,oBACP,QAAQ;;kCA4BD,oBACP,QAAQ"}
@@ -1,6 +1,6 @@
1
1
  import { Mt as frameArraySignal } from "./dist-C8XSqfTx.mjs";
2
- import { At as AudioSignalComputePipeline, j as ensureDevice, lt as trackAudioPitch } from "./dist-D3BeAZ7X.mjs";
3
- import { n as decodeAudioSource } from "./dist-CUNvNDS3.mjs";
2
+ import { j as ensureDevice, jt as AudioSignalComputePipeline, ut as trackAudioPitch } from "./dist-DtPPPsZV.mjs";
3
+ import { n as decodeAudioSource } from "./dist-CCrYOkcc.mjs";
4
4
 
5
5
  //#region src/signals/audio.ts
6
6
  async function decodeOrThrow(source, purpose) {
@@ -108,4 +108,4 @@ const AudioSignal = {
108
108
 
109
109
  //#endregion
110
110
  export { AudioSignal as t };
111
- //# sourceMappingURL=audio-DHzLQ_RG.mjs.map
111
+ //# sourceMappingURL=audio-DIvi6hTD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio-DHzLQ_RG.mjs","names":[],"sources":["../src/signals/audio.ts"],"sourcesContent":["import { decodeAudioSource } from \"@framefields/compositions\";\nimport {\n\ttype FrameSignal,\n\tframeArraySignal,\n\ttype GPUTextureBinding,\n} from \"@framefields/core\";\nimport {\n\ttype AudioPitchTrackConfig,\n\ttype AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\n\ttrackAudioPitch,\n} from \"@framefields/webgpu-renderers\";\n\nexport interface AudioSignalOptions extends AudioSignalComputeConfig {\n\tfps?: number;\n\ttargetWidth?: number;\n\tpreviewMode?: \"waveform\" | \"envelope\" | \"beat_markers\" | \"spectrum\";\n}\n\nexport interface ExtractedAudioSignalsBundle {\n\tprimary: FrameSignal<number>;\n\tbeat: FrameSignal<number>;\n\tbass: FrameSignal<number>;\n\tenergy: FrameSignal<number>;\n\tdurationSec: number;\n\tnumFrames: number;\n\tsampleRate: number;\n\ttextureView: unknown;\n\ttexture: unknown;\n\tprimaryBuffer: unknown;\n\tbeatBuffer: unknown;\n\tbassBuffer: unknown;\n\tenergyBuffer: unknown;\n\tseekFrame(frame: number): void;\n}\n\nexport interface AudioPitchOptions extends AudioPitchTrackConfig {\n\tfps?: number;\n}\n\n/** Fundamental frequency per frame, e.g. an engine note (RPM) or a melody line. */\nexport interface AudioPitchSignals {\n\t/** Pitch in Hz; interpolated across unvoiced gaps so it never drops to 0 mid-track. */\n\thz: FrameSignal<number>;\n\t/** 0..1 periodicity of the measured frame, 0 where unvoiced. */\n\tconfidence: FrameSignal<number>;\n\t/** 1 where a pitch was measured, 0 where `hz` is interpolated. */\n\tvoiced: FrameSignal<number>;\n\tsamples: { hz: Float32Array; confidence: Float32Array; voiced: Float32Array };\n\tfps: number;\n\tnumFrames: number;\n\tdurationSec: number;\n}\n\nasync function decodeOrThrow(source: string, purpose: string) {\n\tconst decoded = await decodeAudioSource(source);\n\tif (!decoded || decoded.channels.length === 0) {\n\t\tthrow new Error(`Failed to decode audio source for ${purpose}: ${source}`);\n\t}\n\treturn decoded;\n}\n\nexport const AudioSignal = {\n\tasync extractFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst targetWidth = options.targetWidth ?? 512;\n\n\t\tconst extracted = await AudioSignalComputePipeline.extractFeatures(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t\ttargetWidth,\n\t\t);\n\n\t\tconst samples = extracted.channelSamples ?? {\n\t\t\tprimary: new Float32Array(extracted.numFrames),\n\t\t\tbeat: new Float32Array(extracted.numFrames),\n\t\t\tbass: new Float32Array(extracted.numFrames),\n\t\t\tenergy: new Float32Array(extracted.numFrames),\n\t\t};\n\n\t\tconst primaryBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_primary\",\n\t\t\tchannel: \"primary\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.primaryBuffer,\n\t\t\tstats: extracted.stats.primary,\n\t\t};\n\t\tconst beatBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_beat\",\n\t\t\tchannel: \"beat\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.beatBuffer,\n\t\t\tstats: extracted.stats.beat,\n\t\t};\n\t\tconst bassBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_bass\",\n\t\t\tchannel: \"bass\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.bassBuffer,\n\t\t\tstats: extracted.stats.bass,\n\t\t};\n\t\tconst energyBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_energy\",\n\t\t\tchannel: \"energy\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.energyBuffer,\n\t\t\tstats: extracted.stats.energy,\n\t\t};\n\n\t\tconst primary = frameArraySignal(samples.primary, fps, primaryBinding);\n\t\tconst beat = frameArraySignal(samples.beat, fps, beatBinding);\n\t\tconst bass = frameArraySignal(samples.bass, fps, bassBinding);\n\t\tconst energy = frameArraySignal(samples.energy, fps, energyBinding);\n\n\t\treturn {\n\t\t\tprimary,\n\t\t\tbeat,\n\t\t\tbass,\n\t\t\tenergy,\n\t\t\tdurationSec: extracted.durationSec,\n\t\t\tnumFrames: extracted.numFrames,\n\t\t\tsampleRate,\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tprimaryBuffer: extracted.primaryBuffer,\n\t\t\tbeatBuffer: extracted.beatBuffer,\n\t\t\tbassBuffer: extracted.bassBuffer,\n\t\t\tenergyBuffer: extracted.energyBuffer,\n\t\t\tseekFrame(frame: number) {\n\t\t\t\tprimary.seekFrame?.(frame);\n\t\t\t\tbeat.seekFrame?.(frame);\n\t\t\t\tbass.seekFrame?.(frame);\n\t\t\t\tenergy.seekFrame?.(frame);\n\t\t\t},\n\t\t};\n\t},\n\n\tasync extract(\n\t\tsource: string,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst decoded = await decodeOrThrow(source, \"feature extraction\");\n\t\treturn AudioSignal.extractFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n\n\t/** Tracks the fundamental frequency of the downmixed channels on the GPU. */\n\tasync pitchFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioPitchOptions = {},\n\t): Promise<AudioPitchSignals> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst track = await trackAudioPitch(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t);\n\t\treturn {\n\t\t\thz: frameArraySignal(track.hz, fps),\n\t\t\tconfidence: frameArraySignal(track.confidence, fps),\n\t\t\tvoiced: frameArraySignal(track.voiced, fps),\n\t\t\tsamples: {\n\t\t\t\thz: track.hz,\n\t\t\t\tconfidence: track.confidence,\n\t\t\t\tvoiced: track.voiced,\n\t\t\t},\n\t\t\tfps,\n\t\t\tnumFrames: track.numFrames,\n\t\t\tdurationSec: track.durationSec,\n\t\t};\n\t},\n\n\t/** Decodes `source` (audio or video file) and tracks its pitch. */\n\tasync pitch(\n\t\tsource: string,\n\t\toptions: AudioPitchOptions = {},\n\t): Promise<AudioPitchSignals> {\n\t\tconst decoded = await decodeOrThrow(source, \"pitch tracking\");\n\t\treturn AudioSignal.pitchFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"audio-DIvi6hTD.mjs","names":[],"sources":["../src/signals/audio.ts"],"sourcesContent":["import { decodeAudioSource } from \"@framefields/compositions\";\nimport {\n\ttype FrameSignal,\n\tframeArraySignal,\n\ttype GPUTextureBinding,\n} from \"@framefields/core\";\nimport {\n\ttype AudioPitchTrackConfig,\n\ttype AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\n\ttrackAudioPitch,\n} from \"@framefields/webgpu-renderers\";\n\nexport interface AudioSignalOptions extends AudioSignalComputeConfig {\n\tfps?: number;\n\ttargetWidth?: number;\n\tpreviewMode?: \"waveform\" | \"envelope\" | \"beat_markers\" | \"spectrum\";\n}\n\nexport interface ExtractedAudioSignalsBundle {\n\tprimary: FrameSignal<number>;\n\tbeat: FrameSignal<number>;\n\tbass: FrameSignal<number>;\n\tenergy: FrameSignal<number>;\n\tdurationSec: number;\n\tnumFrames: number;\n\tsampleRate: number;\n\ttextureView: unknown;\n\ttexture: unknown;\n\tprimaryBuffer: unknown;\n\tbeatBuffer: unknown;\n\tbassBuffer: unknown;\n\tenergyBuffer: unknown;\n\tseekFrame(frame: number): void;\n}\n\nexport interface AudioPitchOptions extends AudioPitchTrackConfig {\n\tfps?: number;\n}\n\n/** Fundamental frequency per frame, e.g. an engine note (RPM) or a melody line. */\nexport interface AudioPitchSignals {\n\t/** Pitch in Hz; interpolated across unvoiced gaps so it never drops to 0 mid-track. */\n\thz: FrameSignal<number>;\n\t/** 0..1 periodicity of the measured frame, 0 where unvoiced. */\n\tconfidence: FrameSignal<number>;\n\t/** 1 where a pitch was measured, 0 where `hz` is interpolated. */\n\tvoiced: FrameSignal<number>;\n\tsamples: { hz: Float32Array; confidence: Float32Array; voiced: Float32Array };\n\tfps: number;\n\tnumFrames: number;\n\tdurationSec: number;\n}\n\nasync function decodeOrThrow(source: string, purpose: string) {\n\tconst decoded = await decodeAudioSource(source);\n\tif (!decoded || decoded.channels.length === 0) {\n\t\tthrow new Error(`Failed to decode audio source for ${purpose}: ${source}`);\n\t}\n\treturn decoded;\n}\n\nexport const AudioSignal = {\n\tasync extractFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst targetWidth = options.targetWidth ?? 512;\n\n\t\tconst extracted = await AudioSignalComputePipeline.extractFeatures(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t\ttargetWidth,\n\t\t);\n\n\t\tconst samples = extracted.channelSamples ?? {\n\t\t\tprimary: new Float32Array(extracted.numFrames),\n\t\t\tbeat: new Float32Array(extracted.numFrames),\n\t\t\tbass: new Float32Array(extracted.numFrames),\n\t\t\tenergy: new Float32Array(extracted.numFrames),\n\t\t};\n\n\t\tconst primaryBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_primary\",\n\t\t\tchannel: \"primary\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.primaryBuffer,\n\t\t\tstats: extracted.stats.primary,\n\t\t};\n\t\tconst beatBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_beat\",\n\t\t\tchannel: \"beat\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.beatBuffer,\n\t\t\tstats: extracted.stats.beat,\n\t\t};\n\t\tconst bassBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_bass\",\n\t\t\tchannel: \"bass\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.bassBuffer,\n\t\t\tstats: extracted.stats.bass,\n\t\t};\n\t\tconst energyBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_energy\",\n\t\t\tchannel: \"energy\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.energyBuffer,\n\t\t\tstats: extracted.stats.energy,\n\t\t};\n\n\t\tconst primary = frameArraySignal(samples.primary, fps, primaryBinding);\n\t\tconst beat = frameArraySignal(samples.beat, fps, beatBinding);\n\t\tconst bass = frameArraySignal(samples.bass, fps, bassBinding);\n\t\tconst energy = frameArraySignal(samples.energy, fps, energyBinding);\n\n\t\treturn {\n\t\t\tprimary,\n\t\t\tbeat,\n\t\t\tbass,\n\t\t\tenergy,\n\t\t\tdurationSec: extracted.durationSec,\n\t\t\tnumFrames: extracted.numFrames,\n\t\t\tsampleRate,\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tprimaryBuffer: extracted.primaryBuffer,\n\t\t\tbeatBuffer: extracted.beatBuffer,\n\t\t\tbassBuffer: extracted.bassBuffer,\n\t\t\tenergyBuffer: extracted.energyBuffer,\n\t\t\tseekFrame(frame: number) {\n\t\t\t\tprimary.seekFrame?.(frame);\n\t\t\t\tbeat.seekFrame?.(frame);\n\t\t\t\tbass.seekFrame?.(frame);\n\t\t\t\tenergy.seekFrame?.(frame);\n\t\t\t},\n\t\t};\n\t},\n\n\tasync extract(\n\t\tsource: string,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst decoded = await decodeOrThrow(source, \"feature extraction\");\n\t\treturn AudioSignal.extractFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n\n\t/** Tracks the fundamental frequency of the downmixed channels on the GPU. */\n\tasync pitchFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioPitchOptions = {},\n\t): Promise<AudioPitchSignals> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst track = await trackAudioPitch(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t);\n\t\treturn {\n\t\t\thz: frameArraySignal(track.hz, fps),\n\t\t\tconfidence: frameArraySignal(track.confidence, fps),\n\t\t\tvoiced: frameArraySignal(track.voiced, fps),\n\t\t\tsamples: {\n\t\t\t\thz: track.hz,\n\t\t\t\tconfidence: track.confidence,\n\t\t\t\tvoiced: track.voiced,\n\t\t\t},\n\t\t\tfps,\n\t\t\tnumFrames: track.numFrames,\n\t\t\tdurationSec: track.durationSec,\n\t\t};\n\t},\n\n\t/** Decodes `source` (audio or video file) and tracks its pitch. */\n\tasync pitch(\n\t\tsource: string,\n\t\toptions: AudioPitchOptions = {},\n\t): Promise<AudioPitchSignals> {\n\t\tconst decoded = await decodeOrThrow(source, \"pitch tracking\");\n\t\treturn AudioSignal.pitchFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n};\n"],"mappings":"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"}
@@ -1,51 +1,51 @@
1
1
  import "../chunk-DOL2i2sR.mjs";
2
2
  import { Nt as frameCount } from "../dist-C8XSqfTx.mjs";
3
- import { t as Composition } from "../src-BzFGotRc.mjs";
4
- import { x as describeGpu } from "../dist-D3BeAZ7X.mjs";
5
- import "../renderers-CP8CFWDs-BRQyvcut.mjs";
3
+ import { t as Composition } from "../src-DrP7fGJX.mjs";
4
+ import { x as describeGpu } from "../dist-DtPPPsZV.mjs";
5
+ import "../renderers-CP8CFWDs-BufiCyn7.mjs";
6
6
  import "../signals-tiho_9fp.mjs";
7
- import "../renderer-D8gN7aqk.mjs";
7
+ import "../renderer-Bw-_GZVw.mjs";
8
8
  import "../renderer-DGOMfyh8.mjs";
9
- import "../renderer-DxB_OfLs.mjs";
10
- import "../renderer-C-GTxnfv.mjs";
11
- import "../renderer-D-fzEZfX.mjs";
12
- import "../renderer-CxSFvKd1.mjs";
13
- import "../renderer-BHPgkoEL.mjs";
14
- import "../renderer-BPOh9x5X.mjs";
9
+ import "../renderer-yNWYqvvq.mjs";
10
+ import "../renderer-CdXBRdFf.mjs";
11
+ import "../renderer-BGchUBW_.mjs";
12
+ import "../renderer-CO9vE3sd.mjs";
13
+ import "../renderer-pn52dzZz.mjs";
14
+ import "../renderer-Cv9CKKWG.mjs";
15
15
  import "../renderer-Co2YqWX0.mjs";
16
- import "../renderer-CMnlgAGs.mjs";
17
- import { s as CompositorProgramSchema } from "../program-Bn6ko_I4.mjs";
18
- import "../renderer-NBMmvqWl.mjs";
19
- import "../renderer-DwGlDNOV.mjs";
20
- import "../renderer-BsMZ5Iaq.mjs";
21
- import "../renderer-SJyp9-62.mjs";
22
- import "../renderer-BPiWsrC2.mjs";
23
- import "../renderer-CwlY8Tb-.mjs";
24
- import "../renderer-Br8km655.mjs";
25
- import "../renderer-BKi6jDi_.mjs";
26
- import "../renderer-KgsVk9c6.mjs";
27
- import "../renderer-Dz6P-rPI.mjs";
28
- import "../renderer-BUj7jE6t.mjs";
29
- import "../renderer-C1ctHdXl.mjs";
30
- import "../renderer-BZgJj8Cl.mjs";
31
- import "../renderer-RAq3LnNy.mjs";
32
- import "../renderer-B-LUGB9h.mjs";
33
- import "../renderer-BIieU9pY.mjs";
34
- import "../renderer-DpZballM.mjs";
35
- import "../renderer-CciiDHuU.mjs";
36
- import "../renderer-CYwVNbUh.mjs";
37
- import "../renderer-CE4535aW.mjs";
38
- import "../renderer-B5b-ehRb.mjs";
39
- import "../renderer-CQFMyC_c.mjs";
40
- import "../renderer-BMpmmYOq.mjs";
41
- import "../renderer-CuPAQjDK.mjs";
42
- import "../renderer-CyUiXLRa.mjs";
43
- import "../renderer-DXFJv_e6.mjs";
44
- import "../renderer-opVuiAQR.mjs";
45
- import "../renderer-dGEMVaZ3.mjs";
46
- import "../renderer-Nnu32rqg.mjs";
47
- import "../renderer-Dp5ChuOs.mjs";
48
- import "../renderer-CZ5mwBW1.mjs";
16
+ import "../renderer-BsrKj6Td.mjs";
17
+ import { s as CompositorProgramSchema } from "../program-BfiB9ttP.mjs";
18
+ import "../renderer-CQ4h8n7p.mjs";
19
+ import "../renderer-HKv5cBdp.mjs";
20
+ import "../renderer-CRhEGqW4.mjs";
21
+ import "../renderer-C4hd6Cqi.mjs";
22
+ import "../renderer-uER8kn7f.mjs";
23
+ import "../renderer-CHCRcCKw.mjs";
24
+ import "../renderer-B3_GddgJ.mjs";
25
+ import "../renderer-DhGZ41hQ.mjs";
26
+ import "../renderer-DiZkZ0Pr.mjs";
27
+ import "../renderer-BM19iK8v.mjs";
28
+ import "../renderer-QbSrnPZU.mjs";
29
+ import "../renderer-DvHi_wXE.mjs";
30
+ import "../renderer-BZX932Lj.mjs";
31
+ import "../renderer-GIlQ9lZq.mjs";
32
+ import "../renderer-DWYmJSrl.mjs";
33
+ import "../renderer-YONlI6W-.mjs";
34
+ import "../renderer-D0xM67cK.mjs";
35
+ import "../renderer-DYeNNc_G.mjs";
36
+ import "../renderer-DYlx7VHo.mjs";
37
+ import "../renderer-BOlHW3Mi.mjs";
38
+ import "../renderer-uzU6dsdR.mjs";
39
+ import "../renderer-DNynPM6X.mjs";
40
+ import "../renderer-D0h1hTOo.mjs";
41
+ import "../renderer-Y1kjtOto.mjs";
42
+ import "../renderer-BmyFfvVA.mjs";
43
+ import "../renderer-DzON3wDZ.mjs";
44
+ import "../renderer-BrEeUw7T.mjs";
45
+ import "../renderer-zLi2qFGT.mjs";
46
+ import "../renderer-BEhZiOT4.mjs";
47
+ import "../renderer-B6bK9rXm.mjs";
48
+ import "../renderer-D_m6Qbsi.mjs";
49
49
  import "../renderer-D-GWBoVT.mjs";
50
50
  import { t as failedCheck } from "../check-result-DZWx73V8.mjs";
51
51
  import { existsSync } from "node:fs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/cloud/git-source.ts","../../src/cloud/index.ts"],"sourcesContent":[],"mappings":";UAUiB,WAAA;EAAA,IAAA,EAAA,MAAA;EAQA,GAAA,CAAA,EAAA,MAAA;EASD,MAAA,CAAA,EAAA,MAAA;EA4EA;;;UArFC,cAAA;ECkBJ,MAAA,EDjBJ,WCiBI;EAEI;EAwBP,KAAA,EAAA,MAAA;EAMa;EAMb,QAAA,EAAA,MAAA,EAAA;;AAKV;AAUiB,iBD9DD,gBAAA,CC8DgB,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,ED9D8B,cC8D9B;AAShC;AAqBiB,iBDhBD,OAAA,CCgBmB,GAAQ,EAAA,MAAA,CAAA,EAAA,MAAA;;;ADrG1B,cCkBJ,mBAAA,GDjBJ,6BAAW;AAQJ,UCWC,kBAAA,CDX6C;EA4E9C;;;;ECnEH;EAEI,MAAA,CAAA,EAAA,MAAA;EAwBP;EAMa,IAAA,CAAA,EAAA,OAAA;EAMb;EAAW,MAAA,CAAA,EAAA,MAAA;EAKT;EAUK,OAAA,CAAA,EAAA,MAAA,GAAe,MAAA;EASf;EAqBA,UAAA,CAAA,EAAA,MAAA;EAMJ,KAAA,CAAA,EAAA,MAAA,GAAA,KAAiB;EAIV,OAAA,CAAA,EAAA,MAAA;EAAA;EAJkB,MAAA,CAAA,EAAA,OAAA;EAAK;EAmBrB,UAAA,CAAA,EAAA,MAAW;EACvB;EACC,GAAA,CAAA,EAAA,MAAA;EAAR;EAAO,MAAA,CAAA,EApFA,WAoFA;EA+FM;EAyCA,MAAA,CAAA,EAAA,MAAW;EACZ;EAAL,MAAA,CAAA,EAAA,MAAA;EAkCa;EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAzPA,iBAyPA,EAAA,GAAA,IAAA;EACF;EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACA;EAAA,KAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAA;WArPX;;;;KAKE,gBAAA;UAUK,eAAA;;;;;;;;;;;;UASA,iBAAA;;UAER;;SAED;;;;;;;;;;;;;;;;;;;;;;UAiBS,iBAAA,SAA0B;;;;;cAM9B,gBAAA,SAAyB,KAAA;;oBAIlB;sDAAA;;;iBAeE,WAAA,UACZ,qBACP,QAAQ;;;;;iBA+FK,eAAA,uBAEN,qBACP;;;;;;iBAsCa,WAAA,UACN,KAAK;4BAkCQ,QAAA;0BACF,QAAA;0BACA,QAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/cloud/git-source.ts","../../src/cloud/index.ts"],"sourcesContent":[],"mappings":";UAUiB,WAAA;EAAA,IAAA,EAAA,MAAA;EAQA,GAAA,CAAA,EAAA,MAAA;EASD,MAAA,CAAA,EAAA,MAAA;EA4EA;;;UArFC,cAAA;ECkBJ,MAAA,EDjBJ,WCiBI;EAEI;EAwBP,KAAA,EAAA,MAAA;EAMa;EAMb,QAAA,EAAA,MAAA,EAAA;;AAKV;AAUiB,iBD9DD,gBAAA,CC8DgB,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,ED9D8B,cC8D9B;AAShC;AAqBiB,iBDhBD,OAAA,CCgBmB,GAAA,EAAQ,MAAA,CAAA,EAAA,MAAA;;;ADrG1B,cCkBJ,mBAAA,GDjBJ,6BAAW;AAQJ,UCWC,kBAAA,CDX6C;EA4E9C;;;;ECnEH;EAEI,MAAA,CAAA,EAAA,MAAA;EAwBP;EAMa,IAAA,CAAA,EAAA,OAAA;EAMb;EAAW,MAAA,CAAA,EAAA,MAAA;EAKT;EAUK,OAAA,CAAA,EAAA,MAAA,GAAe,MAAA;EASf;EAqBA,UAAA,CAAA,EAAA,MAAA;EAMJ,KAAA,CAAA,EAAA,MAAA,GAAA,KAAiB;EAIV,OAAA,CAAA,EAAA,MAAA;EAAA;EAJkB,MAAA,CAAA,EAAA,OAAA;EAAK;EAmBrB,UAAA,CAAA,EAAA,MAAW;EACvB;EACC,GAAA,CAAA,EAAA,MAAA;EAAR;EAAO,MAAA,CAAA,EApFA,WAoFA;EA+FM;EAyCA,MAAA,CAAA,EAAA,MAAW;EACZ;EAAL,MAAA,CAAA,EAAA,MAAA;EAkCa;EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAzPA,iBAyPA,EAAA,GAAA,IAAA;EACF;EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACA;EAAA,KAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAA;WArPX;;;;KAKE,gBAAA;UAUK,eAAA;;;;;;;;;;;;UASA,iBAAA;;UAER;;SAED;;;;;;;;;;;;;;;;;;;;;;UAiBS,iBAAA,SAA0B;;;;;cAM9B,gBAAA,SAAyB,KAAA;;oBAIlB;sDAAA;;;iBAeE,WAAA,UACZ,qBACP,QAAQ;;;;;iBA+FK,eAAA,uBAEN,qBACP;;;;;;iBAsCa,WAAA,UACN,KAAK;4BAkCQ,QAAA;0BACF,QAAA;0BACA,QAAA"}
@@ -1,16 +1,16 @@
1
1
  import "../chunk-DOL2i2sR.mjs";
2
2
  import "../index-a6JrbAK0.mjs";
3
3
  import "../index-BFTtXosj.mjs";
4
- import "../index-X2u96TEo.mjs";
4
+ import "../index-C2yaponf.mjs";
5
5
  import "../renderer-DKJOon6y.mjs";
6
- import "../index-D68eGFNE.mjs";
7
- import "../renderer-aRk849b3.mjs";
8
- import { $a as withDefaults, $i as exitAnimation, $n as Animatable, $r as ResolvedTarget, Aa as springKeys, Ai as basePropsSchema, Ar as GlyphProps, Ba as targetSchema, Bi as cover, Br as MediaOptions, Ca as rng, Ci as arcPath, Cr as FontNeed, Da as scheduleExpression, Di as bakeFunction, Dr as FrameWindow, Ea as scaleFrames, Ei as audioLevelsSchema, Er as FrameValue, Fa as staggerRanks, Fi as boxPath, Fr as KeyBook, Ga as toPathData, Gi as drawOnKeys, Gr as MotionSize, Ha as themeFrames, Hi as defineMeta, Hr as MotionOptions, Ia as stepExpression, Ii as catmullRom, Ir as LayerStyleConfig, Ja as transparent, Ji as elevationStyle, Jr as ProjectDefaults, Ka as toSeconds, Ki as ease$1, Kr as ParticleOptions, La as supersede, Li as chain, Lr as MOTION_PRESETS, Ma as springTrack, Mi as bind, Mr as GrainOptions, Na as squigglePath, Ni as boilKeys, Nr as HandOptions, Oa as smoothRelease, Oi as bakeSamples, Or as GlyphAnimator, Pa as staggerOffsets, Pi as boundsOf, Pr as Host, Qa as withAlpha, Qi as evaluateGlyphExpression, Qn as Anchor, Qr as ResolvedMotion, Ra as surfaceFill, Ri as constantExpression, Rr as MeasureFn, Sa as resolveTarget, Si as anchorPoint, Sr as ExtrudedTextOptions, Ta as safeArea, Ti as ascending, Tr as FrameContextLike, Ua as themes, Ui as defineTheme, Ur as MotionPreset, Va as textLayout, Vi as defineComponent, Vr as Metrics, Wa as toFrames, Wi as dist, Wr as MotionPresetName, Xa as valueAt, Xi as enterAnimation, Xr as PulseOptions, Ya as typingFrames, Yi as ellipsePath, Yr as PropsOf, Za as windowExpression, Zi as evaluateEase, Zn as AnalyzeOptions, Zr as Rect, _a as quantize, _i as UnitSchedule, _r as CuesOf, aa as holdFirstKeys, ai as StaggerOrder, ar as BakeOptions, ba as resampleBands, bi as after, br as Elevation, ca as last, ci as TargetContext, cr as BuildContext, da as lineShift, di as Theme, dr as ComponentDefaults, ea as findRange, ei as Rgba, eo as within, er as AnimatableMethods, fa as luminance, fi as ThemeInput, fr as ComponentDefinition, ga as pulseKeys, gi as UNIT_INDEX, gr as Cues, ha as parseColor, hi as TrackedObjectLike, hr as Cue, i as analyzeAudio, ia as hashString, ii as Spring, ir as AudioLevels, ja as springSettleFrames, ji as beats, jr as GlyphUnit, ka as springAt, ki as bandEdges, kr as GlyphBox, la as lerp2, li as TargetNode, lr as BuildResult, ma as offsetCues, mi as Track, mr as ComponentMeta, n as bindComponent, na as glyphAnimator, ni as SAFE_INSETS, no as wordRanges, nr as ArrowCurve, oa as inkOn, oi as SyntaxKind, or as BakedKey, pa as mix, pi as ThemeName, pr as ComponentExtras, qa as transformPathData, qi as elevate, qr as Placement, r as z, ra as hashRng, ri as SafeInsets, rr as ArrowGeometry, sa as isLight, si as Target, sr as BaseProps, t as ComponentNode, ta as frameSpan, ti as Rng, to as wobblePoints, tr as ArcPath, ua as linePath, ui as TextLayout, ur as CanvasSize, va as rangeRects, vi as Vec2, vr as CutoutOptions, wa as round, wi as arrowPaths, wr as FontRole, xa as resolveMotion, xi as analyzeChannels, xr as ElevationLevel, ya as rendererChars, yi as WordRange, yr as EaseFn, za as targetPoint, zi as contrastRatio, zr as MeasureOptions } from "../index-E2IXX0Cz.mjs";
9
- import "../index-YB9j9KUx.mjs";
10
- import "../audio-CHV33Od9.mjs";
6
+ import "../index-B08eSpaI.mjs";
7
+ import "../renderer-fG8Jy8Rx.mjs";
8
+ import { $a as withDefaults, $i as exitAnimation, $n as Animatable, $r as ResolvedTarget, Aa as springKeys, Ai as basePropsSchema, Ar as GlyphProps, Ba as targetSchema, Bi as cover, Br as MediaOptions, Ca as rng, Ci as arcPath, Cr as FontNeed, Da as scheduleExpression, Di as bakeFunction, Dr as FrameWindow, Ea as scaleFrames, Ei as audioLevelsSchema, Er as FrameValue, Fa as staggerRanks, Fi as boxPath, Fr as KeyBook, Ga as toPathData, Gi as drawOnKeys, Gr as MotionSize, Ha as themeFrames, Hi as defineMeta, Hr as MotionOptions, Ia as stepExpression, Ii as catmullRom, Ir as LayerStyleConfig, Ja as transparent, Ji as elevationStyle, Jr as ProjectDefaults, Ka as toSeconds, Ki as ease$1, Kr as ParticleOptions, La as supersede, Li as chain, Lr as MOTION_PRESETS, Ma as springTrack, Mi as bind, Mr as GrainOptions, Na as squigglePath, Ni as boilKeys, Nr as HandOptions, Oa as smoothRelease, Oi as bakeSamples, Or as GlyphAnimator, Pa as staggerOffsets, Pi as boundsOf, Pr as Host, Qa as withAlpha, Qi as evaluateGlyphExpression, Qn as Anchor, Qr as ResolvedMotion, Ra as surfaceFill, Ri as constantExpression, Rr as MeasureFn, Sa as resolveTarget, Si as anchorPoint, Sr as ExtrudedTextOptions, Ta as safeArea, Ti as ascending, Tr as FrameContextLike, Ua as themes, Ui as defineTheme, Ur as MotionPreset, Va as textLayout, Vi as defineComponent, Vr as Metrics, Wa as toFrames, Wi as dist, Wr as MotionPresetName, Xa as valueAt, Xi as enterAnimation, Xr as PulseOptions, Ya as typingFrames, Yi as ellipsePath, Yr as PropsOf, Za as windowExpression, Zi as evaluateEase, Zn as AnalyzeOptions, Zr as Rect, _a as quantize, _i as UnitSchedule, _r as CuesOf, aa as holdFirstKeys, ai as StaggerOrder, ar as BakeOptions, ba as resampleBands, bi as after, br as Elevation, ca as last, ci as TargetContext, cr as BuildContext, da as lineShift, di as Theme, dr as ComponentDefaults, ea as findRange, ei as Rgba, eo as within, er as AnimatableMethods, fa as luminance, fi as ThemeInput, fr as ComponentDefinition, ga as pulseKeys, gi as UNIT_INDEX, gr as Cues, ha as parseColor, hi as TrackedObjectLike, hr as Cue, i as analyzeAudio, ia as hashString, ii as Spring, ir as AudioLevels, ja as springSettleFrames, ji as beats, jr as GlyphUnit, ka as springAt, ki as bandEdges, kr as GlyphBox, la as lerp2, li as TargetNode, lr as BuildResult, ma as offsetCues, mi as Track, mr as ComponentMeta, n as bindComponent, na as glyphAnimator, ni as SAFE_INSETS, no as wordRanges, nr as ArrowCurve, oa as inkOn, oi as SyntaxKind, or as BakedKey, pa as mix, pi as ThemeName, pr as ComponentExtras, qa as transformPathData, qi as elevate, qr as Placement, r as z, ra as hashRng, ri as SafeInsets, rr as ArrowGeometry, sa as isLight, si as Target, sr as BaseProps, t as ComponentNode, ta as frameSpan, ti as Rng, to as wobblePoints, tr as ArcPath, ua as linePath, ui as TextLayout, ur as CanvasSize, va as rangeRects, vi as Vec2, vr as CutoutOptions, wa as round, wi as arrowPaths, wr as FontRole, xa as resolveMotion, xi as analyzeChannels, xr as ElevationLevel, ya as rendererChars, yi as WordRange, yr as EaseFn, za as targetPoint, zi as contrastRatio, zr as MeasureOptions } from "../index-CtKUQ2VG.mjs";
9
+ import "../index-BGlaws7-.mjs";
10
+ import "../audio-C4B9p_yq.mjs";
11
11
  import "../index-DBh3WphX.mjs";
12
12
  import "../index-rtCXNxGO.mjs";
13
- import "../index-Dibc_xpC.mjs";
13
+ import "../index-ByhlTwxh.mjs";
14
14
  import "../index-DQ1U3HC3.mjs";
15
15
  import "../index-CnZhBlob.mjs";
16
16
  export { AnalyzeOptions, Anchor, Animatable, AnimatableMethods, ArcPath, ArrowCurve, ArrowGeometry, AudioLevels, BakeOptions, BakedKey, BaseProps, BuildContext, BuildResult, CanvasSize, ComponentDefaults, ComponentDefinition, ComponentExtras, ComponentMeta, ComponentNode, Cue, Cues, CuesOf, CutoutOptions, EaseFn, Elevation, ElevationLevel, ExtrudedTextOptions, FontNeed, FontRole, FrameContextLike, FrameValue, FrameWindow, GlyphAnimator, GlyphBox, GlyphProps, GlyphUnit, GrainOptions, HandOptions, Host, KeyBook, LayerStyleConfig, MOTION_PRESETS, MeasureFn, MeasureOptions, MediaOptions, Metrics, MotionOptions, MotionPreset, MotionPresetName, MotionSize, ParticleOptions, Placement, ProjectDefaults, PropsOf, PulseOptions, Rect, ResolvedMotion, ResolvedTarget, Rgba, Rng, SAFE_INSETS, SafeInsets, Spring, StaggerOrder, SyntaxKind, Target, TargetContext, TargetNode, TextLayout, Theme, ThemeInput, ThemeName, Track, TrackedObjectLike, UNIT_INDEX, UnitSchedule, Vec2, WordRange, after, analyzeAudio, analyzeChannels, anchorPoint, arcPath, arrowPaths, ascending, audioLevelsSchema, bakeFunction, bakeSamples, bandEdges, basePropsSchema, beats, bind, bindComponent, boilKeys, boundsOf, boxPath, catmullRom, chain, constantExpression, contrastRatio, cover, defineComponent, defineMeta, defineTheme, dist, drawOnKeys, ease$1 as ease, elevate, elevationStyle, ellipsePath, enterAnimation, evaluateEase, evaluateGlyphExpression, exitAnimation, findRange, frameSpan, glyphAnimator, hashRng, hashString, holdFirstKeys, inkOn, isLight, last, lerp2, linePath, lineShift, luminance, mix, offsetCues, parseColor, pulseKeys, quantize, rangeRects, rendererChars, resampleBands, resolveMotion, resolveTarget, rng, round, safeArea, scaleFrames, scheduleExpression, smoothRelease, springAt, springKeys, springSettleFrames, springTrack, squigglePath, staggerOffsets, staggerRanks, stepExpression, supersede, surfaceFill, targetPoint, targetSchema, textLayout, themeFrames, themes, toFrames, toPathData, toSeconds, transformPathData, transparent, typingFrames, valueAt, windowExpression, withAlpha, withDefaults, within, wobblePoints, wordRanges, z };
@@ -1,49 +1,49 @@
1
1
  import "../chunk-DOL2i2sR.mjs";
2
- import { $ as glyphAnimator, $t as wordRanges, A as boilKeys, At as squigglePath, B as defineTheme, Bt as themes, C as audioLevelsSchema, Ct as scaleFrames, D as basePropsSchema, Dt as springKeys, E as bandEdges, Et as springAt, F as constantExpression, Ft as surfaceFill, G as elevationStyle, Gt as transparent, H as drawOnKeys, Ht as toPathData, I as contrastRatio, It as targetPoint, J as evaluateEase, Jt as windowExpression, K as ellipsePath, Kt as typingFrames, L as cover, Lt as targetSchema, M as boxPath, Mt as staggerRanks, N as catmullRom, Nt as stepExpression, O as beats, Ot as springSettleFrames, P as chain, Pt as supersede, Q as frameSpan, Qt as wobblePoints, R as defineComponent, Rt as textLayout, S as ascending, St as safeArea, T as bakeSamples, Tt as smoothRelease, U as ease, Ut as toSeconds, V as dist, Vt as toFrames, W as elevate, Wt as transformPathData, X as exitAnimation, Xt as withDefaults, Y as evaluateGlyphExpression, Yt as withAlpha, Z as findRange, Zt as within, _ as after, _t as resampleBands, at as last, b as arcPath, bt as rng, ct as lineShift, d as analyzeAudio, dt as offsetCues, et as hashRng, f as KeyBook, ft as parseColor, g as UNIT_INDEX, gt as rendererChars, h as Track, ht as rangeRects, it as isLight, j as boundsOf, jt as staggerOffsets, k as bind, kt as springTrack, l as bindComponent, lt as luminance, m as SAFE_INSETS, mt as quantize, nt as holdFirstKeys, ot as lerp2, p as MOTION_PRESETS, pt as pulseKeys, q as enterAnimation, qt as valueAt, rt as inkOn, st as linePath, tt as hashString, u as z, ut as mix, v as analyzeChannels, vt as resolveMotion, w as bakeFunction, wt as scheduleExpression, x as arrowPaths, xt as round, y as anchorPoint, yt as resolveTarget, z as defineMeta, zt as themeFrames } from "../src-BzFGotRc.mjs";
3
- import "../dist-D3BeAZ7X.mjs";
4
- import "../renderers-CP8CFWDs-BRQyvcut.mjs";
2
+ import { $ as glyphAnimator, $t as wordRanges, A as boilKeys, At as squigglePath, B as defineTheme, Bt as themes, C as audioLevelsSchema, Ct as scaleFrames, D as basePropsSchema, Dt as springKeys, E as bandEdges, Et as springAt, F as constantExpression, Ft as surfaceFill, G as elevationStyle, Gt as transparent, H as drawOnKeys, Ht as toPathData, I as contrastRatio, It as targetPoint, J as evaluateEase, Jt as windowExpression, K as ellipsePath, Kt as typingFrames, L as cover, Lt as targetSchema, M as boxPath, Mt as staggerRanks, N as catmullRom, Nt as stepExpression, O as beats, Ot as springSettleFrames, P as chain, Pt as supersede, Q as frameSpan, Qt as wobblePoints, R as defineComponent, Rt as textLayout, S as ascending, St as safeArea, T as bakeSamples, Tt as smoothRelease, U as ease, Ut as toSeconds, V as dist, Vt as toFrames, W as elevate, Wt as transformPathData, X as exitAnimation, Xt as withDefaults, Y as evaluateGlyphExpression, Yt as withAlpha, Z as findRange, Zt as within, _ as after, _t as resampleBands, at as last, b as arcPath, bt as rng, ct as lineShift, d as analyzeAudio, dt as offsetCues, et as hashRng, f as KeyBook, ft as parseColor, g as UNIT_INDEX, gt as rendererChars, h as Track, ht as rangeRects, it as isLight, j as boundsOf, jt as staggerOffsets, k as bind, kt as springTrack, l as bindComponent, lt as luminance, m as SAFE_INSETS, mt as quantize, nt as holdFirstKeys, ot as lerp2, p as MOTION_PRESETS, pt as pulseKeys, q as enterAnimation, qt as valueAt, rt as inkOn, st as linePath, tt as hashString, u as z, ut as mix, v as analyzeChannels, vt as resolveMotion, w as bakeFunction, wt as scheduleExpression, x as arrowPaths, xt as round, y as anchorPoint, yt as resolveTarget, z as defineMeta, zt as themeFrames } from "../src-DrP7fGJX.mjs";
3
+ import "../dist-DtPPPsZV.mjs";
4
+ import "../renderers-CP8CFWDs-BufiCyn7.mjs";
5
5
  import "../signals-tiho_9fp.mjs";
6
- import "../renderer-D8gN7aqk.mjs";
6
+ import "../renderer-Bw-_GZVw.mjs";
7
7
  import "../renderer-DGOMfyh8.mjs";
8
- import "../renderer-DxB_OfLs.mjs";
9
- import "../renderer-C-GTxnfv.mjs";
10
- import "../renderer-D-fzEZfX.mjs";
11
- import "../renderer-CxSFvKd1.mjs";
12
- import "../renderer-BHPgkoEL.mjs";
13
- import "../renderer-BPOh9x5X.mjs";
8
+ import "../renderer-yNWYqvvq.mjs";
9
+ import "../renderer-CdXBRdFf.mjs";
10
+ import "../renderer-BGchUBW_.mjs";
11
+ import "../renderer-CO9vE3sd.mjs";
12
+ import "../renderer-pn52dzZz.mjs";
13
+ import "../renderer-Cv9CKKWG.mjs";
14
14
  import "../renderer-Co2YqWX0.mjs";
15
- import "../renderer-CMnlgAGs.mjs";
16
- import "../renderer-NBMmvqWl.mjs";
17
- import "../renderer-DwGlDNOV.mjs";
18
- import "../renderer-BsMZ5Iaq.mjs";
19
- import "../renderer-SJyp9-62.mjs";
20
- import "../renderer-BPiWsrC2.mjs";
21
- import "../renderer-CwlY8Tb-.mjs";
22
- import "../renderer-Br8km655.mjs";
23
- import "../renderer-BKi6jDi_.mjs";
24
- import "../renderer-KgsVk9c6.mjs";
25
- import "../renderer-Dz6P-rPI.mjs";
26
- import "../renderer-BUj7jE6t.mjs";
27
- import "../renderer-C1ctHdXl.mjs";
28
- import "../renderer-BZgJj8Cl.mjs";
29
- import "../renderer-RAq3LnNy.mjs";
30
- import "../renderer-B-LUGB9h.mjs";
31
- import "../renderer-BIieU9pY.mjs";
32
- import "../renderer-DpZballM.mjs";
33
- import "../renderer-CciiDHuU.mjs";
34
- import "../renderer-CYwVNbUh.mjs";
35
- import "../renderer-CE4535aW.mjs";
36
- import "../renderer-B5b-ehRb.mjs";
37
- import "../renderer-CQFMyC_c.mjs";
38
- import "../renderer-BMpmmYOq.mjs";
39
- import "../renderer-CuPAQjDK.mjs";
40
- import "../renderer-CyUiXLRa.mjs";
41
- import "../renderer-DXFJv_e6.mjs";
42
- import "../renderer-opVuiAQR.mjs";
43
- import "../renderer-dGEMVaZ3.mjs";
44
- import "../renderer-Nnu32rqg.mjs";
45
- import "../renderer-Dp5ChuOs.mjs";
46
- import "../renderer-CZ5mwBW1.mjs";
15
+ import "../renderer-BsrKj6Td.mjs";
16
+ import "../renderer-CQ4h8n7p.mjs";
17
+ import "../renderer-HKv5cBdp.mjs";
18
+ import "../renderer-CRhEGqW4.mjs";
19
+ import "../renderer-C4hd6Cqi.mjs";
20
+ import "../renderer-uER8kn7f.mjs";
21
+ import "../renderer-CHCRcCKw.mjs";
22
+ import "../renderer-B3_GddgJ.mjs";
23
+ import "../renderer-DhGZ41hQ.mjs";
24
+ import "../renderer-DiZkZ0Pr.mjs";
25
+ import "../renderer-BM19iK8v.mjs";
26
+ import "../renderer-QbSrnPZU.mjs";
27
+ import "../renderer-DvHi_wXE.mjs";
28
+ import "../renderer-BZX932Lj.mjs";
29
+ import "../renderer-GIlQ9lZq.mjs";
30
+ import "../renderer-DWYmJSrl.mjs";
31
+ import "../renderer-YONlI6W-.mjs";
32
+ import "../renderer-D0xM67cK.mjs";
33
+ import "../renderer-DYeNNc_G.mjs";
34
+ import "../renderer-DYlx7VHo.mjs";
35
+ import "../renderer-BOlHW3Mi.mjs";
36
+ import "../renderer-uzU6dsdR.mjs";
37
+ import "../renderer-DNynPM6X.mjs";
38
+ import "../renderer-D0h1hTOo.mjs";
39
+ import "../renderer-Y1kjtOto.mjs";
40
+ import "../renderer-BmyFfvVA.mjs";
41
+ import "../renderer-DzON3wDZ.mjs";
42
+ import "../renderer-BrEeUw7T.mjs";
43
+ import "../renderer-zLi2qFGT.mjs";
44
+ import "../renderer-BEhZiOT4.mjs";
45
+ import "../renderer-B6bK9rXm.mjs";
46
+ import "../renderer-D_m6Qbsi.mjs";
47
47
  import "../renderer-D-GWBoVT.mjs";
48
48
 
49
49
  export { KeyBook, MOTION_PRESETS, SAFE_INSETS, Track, UNIT_INDEX, after, analyzeAudio, analyzeChannels, anchorPoint, arcPath, arrowPaths, ascending, audioLevelsSchema, bakeFunction, bakeSamples, bandEdges, basePropsSchema, beats, bind, bindComponent, boilKeys, boundsOf, boxPath, catmullRom, chain, constantExpression, contrastRatio, cover, defineComponent, defineMeta, defineTheme, dist, drawOnKeys, ease, elevate, elevationStyle, ellipsePath, enterAnimation, evaluateEase, evaluateGlyphExpression, exitAnimation, findRange, frameSpan, glyphAnimator, hashRng, hashString, holdFirstKeys, inkOn, isLight, last, lerp2, linePath, lineShift, luminance, mix, offsetCues, parseColor, pulseKeys, quantize, rangeRects, rendererChars, resampleBands, resolveMotion, resolveTarget, rng, round, safeArea, scaleFrames, scheduleExpression, smoothRelease, springAt, springKeys, springSettleFrames, springTrack, squigglePath, staggerOffsets, staggerRanks, stepExpression, supersede, surfaceFill, targetPoint, targetSchema, textLayout, themeFrames, themes, toFrames, toPathData, toSeconds, transformPathData, transparent, typingFrames, valueAt, windowExpression, withAlpha, withDefaults, within, wobblePoints, wordRanges, z };
@@ -1,6 +1,6 @@
1
1
  import { Bt as getMediaType, It as getActiveMediaMetadata, Rn as updateClockSignals, Xt as isSignal, bn as resolveMediaMimeType, en as mediaSourceIsHold, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, tn as mediaSourceRange } from "./dist-C8XSqfTx.mjs";
2
2
  import { f as webgpuRegistry, t as audioRegistry } from "./renderer-BuvKGwk3.mjs";
3
- import { A as emojiGraphemes, C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, I as getRegisteredFontSource, O as drawSvgNode, P as getHeadlessFontPath, S as drawCaptionNode, T as drawLottieNode, Vn as signalRegistry, at as shaderStore, dt as GetFontAssetUrl, et as registerHeadlessFont, ft as resolveMediaSourceUrl, g as WebGPUAudioProcessor, k as drawVideoNode, m as SlugGeometry, p as SlugFontCache, tt as resolveInputUrl, w as drawImageNode, z as inputStore } from "./dist-D3BeAZ7X.mjs";
3
+ import { A as emojiGraphemes, C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, Hn as signalRegistry, I as getRegisteredFontSource, O as drawSvgNode, P as getHeadlessFontPath, S as drawCaptionNode, T as drawLottieNode, ft as GetFontAssetUrl, g as WebGPUAudioProcessor, k as drawVideoNode, m as SlugGeometry, nt as resolveInputUrl, ot as shaderStore, p as SlugFontCache, pt as resolveMediaSourceUrl, tt as registerHeadlessFont, w as drawImageNode, z as inputStore } from "./dist-DtPPPsZV.mjs";
4
4
  import { AudioSampleSink } from "mediabunny";
5
5
 
6
6
  //#region ../renderers/dist/index.mjs
@@ -1317,6 +1317,19 @@ const RANGE_MARGIN_SEC = .05;
1317
1317
  /** Processors that only scale what is already there, so silence stays silence. */
1318
1318
  const GAIN_ONLY_PROCESSORS = new Set(["Compositor", "CompositorLayer"]);
1319
1319
  /** Adds `src` into `dest` starting at `destStart` (which may be negative). */
1320
+ /**
1321
+ * Which of a layer's gain props (`volume`, `muted`) it keys. Those the mix
1322
+ * leaves to the layer's audio processor, which reads them per sample; the
1323
+ * rest are applied as constants. Shared so both sides agree on the split.
1324
+ */
1325
+ function keyedGain(operation) {
1326
+ const tracks = operation?.animation?.tracks ?? [];
1327
+ const keys = (prop) => tracks.some((t) => t.prop === prop && (t.keyframes?.length ?? 0) > 0);
1328
+ return {
1329
+ volume: keys("volume"),
1330
+ muted: keys("muted")
1331
+ };
1332
+ }
1320
1333
  function addInto(dest, src, destStart) {
1321
1334
  const from = Math.max(0, -destStart);
1322
1335
  const to = Math.min(src.length, dest.length - destStart);
@@ -1480,7 +1493,8 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1480
1493
  }
1481
1494
  return bus$1.channels;
1482
1495
  }
1483
- const volume = inheritedVolume * (op.volume ?? 1) * (op.opacity === 0 ? 0 : 1) * (op.muted ? 0 : 1);
1496
+ const keyed = keyedGain(op);
1497
+ const volume = inheritedVolume * (keyed.volume ? 1 : op.volume ?? 1) * (op.opacity === 0 ? 0 : 1) * (!keyed.muted && op.muted ? 0 : 1);
1484
1498
  const speedMultiplier = inheritedSpeed;
1485
1499
  const nodeStartFrame = op.startFrame ?? op.timeline?.startFrame ?? 0;
1486
1500
  const ownRemap = op.timeRemap;
@@ -1694,5 +1708,5 @@ async function preflightMediaTime(root, fps) {
1694
1708
  }
1695
1709
 
1696
1710
  //#endregion
1697
- export { requiresIsolation as _, preflightMediaTime as a, bezier as c, mapBlendModeToSkia as d, measureSpring as f, preloadFont as g, preloadCompositionFonts as h, mixAudioTracks as i, computeStrokeRect as l, measureTextAsync as m, decodeAudioSource as n, resolveLayerDuration as o, measureText as p, drawCompositionTree as r, Easing as s, compositionStateStore as t, interpolate as u, spring as v, springCalculation as y };
1698
- //# sourceMappingURL=dist-CUNvNDS3.mjs.map
1711
+ export { preloadFont as _, mixAudioTracks as a, springCalculation as b, Easing as c, interpolate as d, mapBlendModeToSkia as f, preloadCompositionFonts as g, measureTextAsync as h, keyedGain as i, bezier as l, measureText as m, decodeAudioSource as n, preflightMediaTime as o, measureSpring as p, drawCompositionTree as r, resolveLayerDuration as s, compositionStateStore as t, computeStrokeRect as u, requiresIsolation as v, spring as y };
1712
+ //# sourceMappingURL=dist-CCrYOkcc.mjs.map