framefields 2.3.1 → 2.4.0

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 (369) hide show
  1. package/README.md +24 -1
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-BNnEclHU.d.mts → audio-C6toT7F3.d.mts} +3 -3
  5. package/dist/{audio-BNnEclHU.d.mts.map → audio-C6toT7F3.d.mts.map} +1 -1
  6. package/dist/{audio-CS104aUj.mjs → audio-DXwNhi1z.mjs} +3 -3
  7. package/dist/{audio-CS104aUj.mjs.map → audio-DXwNhi1z.mjs.map} +1 -1
  8. package/dist/{dist-BOdxAhOT.mjs → dist-Cl0mvShy.mjs} +2 -2
  9. package/dist/{dist-BOdxAhOT.mjs.map → dist-Cl0mvShy.mjs.map} +1 -1
  10. package/dist/{dist-jU289ehm.mjs → dist-DRB6Vg5u.mjs} +1395 -878
  11. package/dist/dist-DRB6Vg5u.mjs.map +1 -0
  12. package/dist/effects/index.d.mts +4 -4
  13. package/dist/effects/index.mjs +34 -34
  14. package/dist/{effects-BzOlVD-w.mjs → effects-lBqG-vd1.mjs} +2 -2
  15. package/dist/{effects-BzOlVD-w.mjs.map → effects-lBqG-vd1.mjs.map} +1 -1
  16. package/dist/fonts/index.mjs +2 -2
  17. package/dist/{fonts-BhlV_3Qt.mjs → fonts-DlRJD6NS.mjs} +2 -2
  18. package/dist/{fonts-BhlV_3Qt.mjs.map → fonts-DlRJD6NS.mjs.map} +1 -1
  19. package/dist/{gpu-BA1Wz_mS.mjs → gpu-DOQX1W2q.mjs} +2 -2
  20. package/dist/{gpu-BA1Wz_mS.mjs.map → gpu-DOQX1W2q.mjs.map} +1 -1
  21. package/dist/{index-QmkcUL3W.d.mts → index-BHqdtJbN.d.mts} +2 -2
  22. package/dist/{index-QmkcUL3W.d.mts.map → index-BHqdtJbN.d.mts.map} +1 -1
  23. package/dist/{index-CeRv1KC0.d.mts → index-BONyHjZX.d.mts} +3 -3
  24. package/dist/{index-CeRv1KC0.d.mts.map → index-BONyHjZX.d.mts.map} +1 -1
  25. package/dist/{index-Cg2ptXcs.d.mts → index-CaiZ5p6q.d.mts} +2 -2
  26. package/dist/{index-Cg2ptXcs.d.mts.map → index-CaiZ5p6q.d.mts.map} +1 -1
  27. package/dist/{index-BU51pxZO.d.mts → index-Cf1pVxn0.d.mts} +4 -4
  28. package/dist/{index-BU51pxZO.d.mts.map → index-Cf1pVxn0.d.mts.map} +1 -1
  29. package/dist/{index-AdrZIWT0.d.mts → index-DEODKaL6.d.mts} +13 -1
  30. package/dist/index-DEODKaL6.d.mts.map +1 -0
  31. package/dist/{index-B3BwLHa6.d.mts → index-DN9oXO-X.d.mts} +3 -3
  32. package/dist/{index-B3BwLHa6.d.mts.map → index-DN9oXO-X.d.mts.map} +1 -1
  33. package/dist/index.d.mts +177 -9
  34. package/dist/index.d.mts.map +1 -1
  35. package/dist/index.mjs +485 -90
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/preview/index.d.mts +2 -2
  38. package/dist/preview/index.mjs +10 -10
  39. package/dist/{preview-BVyG76gO.mjs → preview-Ca4tF5Ro.mjs} +2 -2
  40. package/dist/{preview-BVyG76gO.mjs.map → preview-Ca4tF5Ro.mjs.map} +1 -1
  41. package/dist/preview-engine/audio.mjs +1 -1
  42. package/dist/preview-engine/{chunk-VO2R3DWV.mjs → chunk-44CQSOYE.mjs} +1 -1
  43. package/dist/preview-engine/{chunk-FNE22WGA.mjs → chunk-6AEU4DC7.mjs} +4 -4
  44. package/dist/preview-engine/{chunk-PR2BUYCL.mjs → chunk-7G3XIOP7.mjs} +1 -1
  45. package/dist/preview-engine/chunk-7QJUC6YY.mjs +1525 -0
  46. package/dist/preview-engine/{chunk-AXQZX3TC.mjs → chunk-AY7UX37L.mjs} +1 -1
  47. package/dist/preview-engine/{chunk-FPRXK2WD.mjs → chunk-DIGIQ5MJ.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-K773AOF3.mjs → chunk-EVXWDOCL.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-ZNL4W4DK.mjs → chunk-EYWPOCZW.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-WSIURGP2.mjs → chunk-HE4R7EZM.mjs} +1 -1
  51. package/dist/preview-engine/{chunk-L3CHEZMZ.mjs → chunk-IR5DNNWR.mjs} +1 -1
  52. package/dist/preview-engine/{chunk-2MZXSWVT.mjs → chunk-JXNG2ACR.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-O2RNIQXT.mjs → chunk-L6BH5J4P.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-BVA5NGSH.mjs → chunk-M5HZPZHQ.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-PFA427ZC.mjs → chunk-MLY5M7Y5.mjs} +1 -1
  56. package/dist/preview-engine/{chunk-ZH5MZQTZ.mjs → chunk-OG62XGCT.mjs} +1 -1
  57. package/dist/preview-engine/{chunk-LBRVQ4GE.mjs → chunk-PSRQA3QW.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-3UPI4EPV.mjs → chunk-Q22PJXFJ.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-E3HC4GRQ.mjs → chunk-T2FE5VOW.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-Q2DPNVIA.mjs → chunk-TS3JI3BH.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-NEE3KQTX.mjs → chunk-U4JIFQRR.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-BQY4BUMN.mjs → chunk-VGZZSPDN.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-TPAEN6VV.mjs → chunk-VK2CVMWJ.mjs} +1 -1
  64. package/dist/preview-engine/effects.mjs +1 -1
  65. package/dist/preview-engine/framefields.mjs +32 -25
  66. package/dist/preview-engine/player.mjs +5 -5
  67. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -1
  68. package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
  69. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -1
  70. package/dist/preview-engine/{renderers-P4S7GL64.mjs → renderers-2VN3AH45.mjs} +1 -1
  71. package/dist/preview-engine/{renderers-LLUEOW5T.mjs → renderers-3GHEWWVX.mjs} +1 -1
  72. package/dist/preview-engine/renderers-3SRG77SC.mjs +1 -1
  73. package/dist/preview-engine/{renderers-YNFKFM7D.mjs → renderers-3YCJOINH.mjs} +1 -1
  74. package/dist/preview-engine/{renderers-WP67KK5K.mjs → renderers-4GRVAW2W.mjs} +1 -1
  75. package/dist/preview-engine/{renderers-BGGRPAVV.mjs → renderers-5FQA2DP4.mjs} +1 -1
  76. package/dist/preview-engine/{renderers-FGHOLJJK.mjs → renderers-5YEIUTVN.mjs} +1 -1
  77. package/dist/preview-engine/{renderers-JLFGBYN4.mjs → renderers-6CG7DBTB.mjs} +1 -1
  78. package/dist/preview-engine/{renderers-O2DZPBOJ.mjs → renderers-6OGFUSH6.mjs} +1 -1
  79. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -1
  80. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -1
  81. package/dist/preview-engine/{renderers-7JTNJE7M.mjs → renderers-A6HM64UZ.mjs} +1 -1
  82. package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
  83. package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
  84. package/dist/preview-engine/{renderers-XCMVZ2XG.mjs → renderers-BSKZXITT.mjs} +1 -1
  85. package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
  86. package/dist/preview-engine/{renderers-LVDUZZ75.mjs → renderers-CRRLV7IO.mjs} +1 -1
  87. package/dist/preview-engine/{renderers-TFZST6WW.mjs → renderers-D6T6IPER.mjs} +1 -1
  88. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -1
  89. package/dist/preview-engine/{renderers-6ODPWZ2R.mjs → renderers-E76OKK66.mjs} +1 -1
  90. package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
  91. package/dist/preview-engine/{renderers-7NCG6BYS.mjs → renderers-EJWPVVQR.mjs} +1 -1
  92. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -1
  93. package/dist/preview-engine/{renderers-3F5AIDEL.mjs → renderers-HQEKSUNR.mjs} +3 -3
  94. package/dist/preview-engine/renderers-HUW2ZMS3.mjs +1 -1
  95. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -1
  96. package/dist/preview-engine/{renderers-ZSENYGIY.mjs → renderers-I5E2RSV4.mjs} +1 -1
  97. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -1
  98. package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
  99. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -1
  100. package/dist/preview-engine/{renderers-FQWWAETX.mjs → renderers-MCECHPCL.mjs} +1 -1
  101. package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
  102. package/dist/preview-engine/{renderers-UJ4YVJZT.mjs → renderers-N7FR54V2.mjs} +1 -1
  103. package/dist/preview-engine/{renderers-PVYP2ONH.mjs → renderers-N7TS5562.mjs} +1 -1
  104. package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
  105. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -1
  106. package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
  107. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -1
  108. package/dist/preview-engine/{renderers-WHBDHTRI.mjs → renderers-PYWXELLG.mjs} +1 -1
  109. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -1
  110. package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
  111. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -1
  112. package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
  113. package/dist/preview-engine/{renderers-D2EJULOJ.mjs → renderers-RLHTNLRE.mjs} +1 -1
  114. package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
  115. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -1
  116. package/dist/preview-engine/{renderers-HMR2NAD7.mjs → renderers-TR2V2HZ2.mjs} +1 -1
  117. package/dist/preview-engine/{renderers-UPKB5OLS.mjs → renderers-U6KY34TP.mjs} +1 -1
  118. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -1
  119. package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
  120. package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
  121. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -1
  122. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -1
  123. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -1
  124. package/dist/preview-engine/{renderers-DN2GF3I7.mjs → renderers-YMPXGYRU.mjs} +1 -1
  125. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -1
  126. package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
  127. package/dist/preview-engine/{renderers-TPBPNXWH.mjs → renderers-ZHZMGMLN.mjs} +1 -1
  128. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -1
  129. package/dist/preview-engine/signals.mjs +1 -1
  130. package/dist/{program-CCSfHMfh.mjs → program-CJEg2wMa.mjs} +2 -2
  131. package/dist/{program-CCSfHMfh.mjs.map → program-CJEg2wMa.mjs.map} +1 -1
  132. package/dist/renderer/index.d.mts +2 -2
  133. package/dist/renderer/index.mjs +2 -2
  134. package/dist/renderer--IHe-yqK.mjs +5 -0
  135. package/dist/{renderer-DukD7S3w.mjs → renderer-445i0uxs.mjs} +2 -2
  136. package/dist/{renderer-DukD7S3w.mjs.map → renderer-445i0uxs.mjs.map} +1 -1
  137. package/dist/{renderer-CNYfB5cC.mjs → renderer-5tQ7ImPk.mjs} +2 -2
  138. package/dist/{renderer-CNYfB5cC.mjs.map → renderer-5tQ7ImPk.mjs.map} +1 -1
  139. package/dist/{renderer-g-ui08Lh.mjs → renderer-Ai5nZsof.mjs} +3 -3
  140. package/dist/{renderer-g-ui08Lh.mjs.map → renderer-Ai5nZsof.mjs.map} +1 -1
  141. package/dist/renderer-B16iwR0_.mjs +5 -0
  142. package/dist/renderer-B3EEYpx6.mjs +5 -0
  143. package/dist/renderer-B3Si5IB4.mjs +5 -0
  144. package/dist/{renderer-BetA_iVd.mjs → renderer-B4JmNa_T.mjs} +3 -3
  145. package/dist/{renderer-BetA_iVd.mjs.map → renderer-B4JmNa_T.mjs.map} +1 -1
  146. package/dist/{renderer-BvvuGfZk.mjs → renderer-B6UqWjtH.mjs} +3 -3
  147. package/dist/{renderer-BvvuGfZk.mjs.map → renderer-B6UqWjtH.mjs.map} +1 -1
  148. package/dist/{renderer-D1wd0FhZ.mjs → renderer-B8v8iEkB.mjs} +7 -6
  149. package/dist/{renderer-D1wd0FhZ.mjs.map → renderer-B8v8iEkB.mjs.map} +1 -1
  150. package/dist/{renderer-FXUCKps6.mjs → renderer-BFWRUTov.mjs} +3 -3
  151. package/dist/{renderer-FXUCKps6.mjs.map → renderer-BFWRUTov.mjs.map} +1 -1
  152. package/dist/renderer-BH8vZKmX.mjs +5 -0
  153. package/dist/renderer-BHZie6Pa.mjs +5 -0
  154. package/dist/renderer-BHpJ1e15.mjs +5 -0
  155. package/dist/{renderer-CMdtUn5o.mjs → renderer-BL36f2IQ.mjs} +2 -2
  156. package/dist/{renderer-CMdtUn5o.mjs.map → renderer-BL36f2IQ.mjs.map} +1 -1
  157. package/dist/{renderer-BonWt8jF.mjs → renderer-BOvCstdU.mjs} +3 -3
  158. package/dist/{renderer-BonWt8jF.mjs.map → renderer-BOvCstdU.mjs.map} +1 -1
  159. package/dist/renderer-BPJ79b47.mjs +5 -0
  160. package/dist/renderer-BPbM_6WR.mjs +5 -0
  161. package/dist/{renderer-BmDpyiII.mjs → renderer-BPsi7Q7Z.mjs} +3 -3
  162. package/dist/{renderer-BmDpyiII.mjs.map → renderer-BPsi7Q7Z.mjs.map} +1 -1
  163. package/dist/{renderer-CuphUktB.mjs → renderer-BTJyO6ov.mjs} +2 -2
  164. package/dist/{renderer-CuphUktB.mjs.map → renderer-BTJyO6ov.mjs.map} +1 -1
  165. package/dist/{renderer-Celrh689.mjs → renderer-BZCLdb8F.mjs} +3 -3
  166. package/dist/{renderer-Celrh689.mjs.map → renderer-BZCLdb8F.mjs.map} +1 -1
  167. package/dist/{renderer-D7ss6fLB.mjs → renderer-BZF48o1T.mjs} +3 -3
  168. package/dist/{renderer-D7ss6fLB.mjs.map → renderer-BZF48o1T.mjs.map} +1 -1
  169. package/dist/{renderer-DOWekunR.mjs → renderer-BZWiY6Jw.mjs} +3 -3
  170. package/dist/{renderer-DOWekunR.mjs.map → renderer-BZWiY6Jw.mjs.map} +1 -1
  171. package/dist/{renderer-dUkOBfGB.mjs → renderer-BZvWlGsa.mjs} +3 -3
  172. package/dist/{renderer-dUkOBfGB.mjs.map → renderer-BZvWlGsa.mjs.map} +1 -1
  173. package/dist/{renderer-D26S5hUh.mjs → renderer-BaBluD-r.mjs} +2 -2
  174. package/dist/{renderer-D26S5hUh.mjs.map → renderer-BaBluD-r.mjs.map} +1 -1
  175. package/dist/{renderer-BD7Lmb8h.mjs → renderer-BaHEN_Kv.mjs} +3 -3
  176. package/dist/{renderer-BD7Lmb8h.mjs.map → renderer-BaHEN_Kv.mjs.map} +1 -1
  177. package/dist/{renderer-Cn6VlWHZ.mjs → renderer-BhZutM8K.mjs} +3 -3
  178. package/dist/{renderer-Cn6VlWHZ.mjs.map → renderer-BhZutM8K.mjs.map} +1 -1
  179. package/dist/renderer-Bn-WnRh9.mjs +5 -0
  180. package/dist/renderer-BqHvDAUe.mjs +5 -0
  181. package/dist/{renderer-PknbdJyL.mjs → renderer-BtJ6XYN7.mjs} +3 -3
  182. package/dist/{renderer-PknbdJyL.mjs.map → renderer-BtJ6XYN7.mjs.map} +1 -1
  183. package/dist/{renderer-C39GD6jP.mjs → renderer-BzgnTEvf.mjs} +3 -3
  184. package/dist/{renderer-C39GD6jP.mjs.map → renderer-BzgnTEvf.mjs.map} +1 -1
  185. package/dist/{renderer-c-bwxMde.mjs → renderer-C-La-IAt.mjs} +2 -2
  186. package/dist/{renderer-c-bwxMde.mjs.map → renderer-C-La-IAt.mjs.map} +1 -1
  187. package/dist/{renderer-pPiQwFYh.mjs → renderer-C2ZIAhdJ.mjs} +2 -2
  188. package/dist/{renderer-pPiQwFYh.mjs.map → renderer-C2ZIAhdJ.mjs.map} +1 -1
  189. package/dist/{renderer-C6cF5seJ.mjs → renderer-C9pl21Zb.mjs} +2 -2
  190. package/dist/{renderer-C6cF5seJ.mjs.map → renderer-C9pl21Zb.mjs.map} +1 -1
  191. package/dist/renderer-CAtXDNsh.mjs +5 -0
  192. package/dist/{renderer-CLdwOhST.mjs → renderer-CCCitH4J.mjs} +2 -2
  193. package/dist/{renderer-CLdwOhST.mjs.map → renderer-CCCitH4J.mjs.map} +1 -1
  194. package/dist/{renderer-Dq4aO7az.mjs → renderer-CCu1Q8ib.mjs} +2 -2
  195. package/dist/{renderer-Dq4aO7az.mjs.map → renderer-CCu1Q8ib.mjs.map} +1 -1
  196. package/dist/{renderer-Bel1UHA5.mjs → renderer-CG4TmDWH.mjs} +2 -2
  197. package/dist/{renderer-CiMpdh0s.mjs → renderer-CJmZURPQ.mjs} +2 -2
  198. package/dist/{renderer-CiMpdh0s.mjs.map → renderer-CJmZURPQ.mjs.map} +1 -1
  199. package/dist/{renderer-B93zd3sx.mjs → renderer-CN3iCli4.mjs} +2 -2
  200. package/dist/{renderer-B93zd3sx.mjs.map → renderer-CN3iCli4.mjs.map} +1 -1
  201. package/dist/{renderer-BFRI5alp.mjs → renderer-CNS8LA2_.mjs} +3 -3
  202. package/dist/{renderer-BFRI5alp.mjs.map → renderer-CNS8LA2_.mjs.map} +1 -1
  203. package/dist/renderer-C_5nfVce.mjs +5 -0
  204. package/dist/{renderer-kSs8VtY7.mjs → renderer-CduDa1qf.mjs} +3 -3
  205. package/dist/{renderer-kSs8VtY7.mjs.map → renderer-CduDa1qf.mjs.map} +1 -1
  206. package/dist/{renderer-CFe9pZFN.mjs → renderer-CduL1AOK.mjs} +2 -2
  207. package/dist/{renderer-CFe9pZFN.mjs.map → renderer-CduL1AOK.mjs.map} +1 -1
  208. package/dist/{renderer-BRwp1kV-.mjs → renderer-Cfto0m0-.mjs} +3 -3
  209. package/dist/{renderer-BRwp1kV-.mjs.map → renderer-Cfto0m0-.mjs.map} +1 -1
  210. package/dist/{renderer-DCYabwlC.mjs → renderer-CgZ1G37H.mjs} +2 -2
  211. package/dist/{renderer-DCYabwlC.mjs.map → renderer-CgZ1G37H.mjs.map} +1 -1
  212. package/dist/renderer-Cie7KKeQ.mjs +5 -0
  213. package/dist/{renderer-C8GZ0pCV.mjs → renderer-CjTxu89O.mjs} +3 -3
  214. package/dist/{renderer-C8GZ0pCV.mjs.map → renderer-CjTxu89O.mjs.map} +1 -1
  215. package/dist/{renderer-4VpA7LfU.mjs → renderer-CoN2JgLO.mjs} +2 -2
  216. package/dist/{renderer-4VpA7LfU.mjs.map → renderer-CoN2JgLO.mjs.map} +1 -1
  217. package/dist/{renderer-YJ3Yukou.mjs → renderer-CoO2j8AC.mjs} +3 -3
  218. package/dist/{renderer-YJ3Yukou.mjs.map → renderer-CoO2j8AC.mjs.map} +1 -1
  219. package/dist/{renderer-DpwlN4LH.mjs → renderer-CoX23zo_.mjs} +3 -3
  220. package/dist/{renderer-DpwlN4LH.mjs.map → renderer-CoX23zo_.mjs.map} +1 -1
  221. package/dist/renderer-CuoxvPsX.mjs +5 -0
  222. package/dist/renderer-Cvd3oIJQ.mjs +5 -0
  223. package/dist/renderer-CxAgpBrJ.mjs +5 -0
  224. package/dist/{renderer-BvBIHi6N.mjs → renderer-CxSH3F_n.mjs} +2 -2
  225. package/dist/{renderer-BvBIHi6N.mjs.map → renderer-CxSH3F_n.mjs.map} +1 -1
  226. package/dist/{renderer-DUBb7D17.mjs → renderer-Cz9fzS11.mjs} +3 -3
  227. package/dist/{renderer-DUBb7D17.mjs.map → renderer-Cz9fzS11.mjs.map} +1 -1
  228. package/dist/{renderer-C3lPwajT.mjs → renderer-D-IcBLT0.mjs} +3 -3
  229. package/dist/{renderer-C3lPwajT.mjs.map → renderer-D-IcBLT0.mjs.map} +1 -1
  230. package/dist/renderer-D-cWBX0r.mjs +5 -0
  231. package/dist/{renderer-HMl2V4iM.mjs → renderer-D-e3vDnO.mjs} +3 -3
  232. package/dist/{renderer-HMl2V4iM.mjs.map → renderer-D-e3vDnO.mjs.map} +1 -1
  233. package/dist/renderer-D0q2VyJR.mjs +5 -0
  234. package/dist/{renderer-AtLlZMQ9.mjs → renderer-D4E8Yf61.mjs} +2 -2
  235. package/dist/{renderer-AtLlZMQ9.mjs.map → renderer-D4E8Yf61.mjs.map} +1 -1
  236. package/dist/renderer-D6NXn3Ky.mjs +5 -0
  237. package/dist/renderer-D9bp2jor.mjs +5 -0
  238. package/dist/{renderer-BpEsZG3t.mjs → renderer-DA1brg35.mjs} +3 -3
  239. package/dist/{renderer-BpEsZG3t.mjs.map → renderer-DA1brg35.mjs.map} +1 -1
  240. package/dist/{renderer-D1Jt-c3F.mjs → renderer-DAFi5TC_.mjs} +2 -2
  241. package/dist/{renderer-D1Jt-c3F.mjs.map → renderer-DAFi5TC_.mjs.map} +1 -1
  242. package/dist/renderer-DEzIOIB7.mjs +5 -0
  243. package/dist/{renderer-Cu5k5D9N.mjs → renderer-DFX2V9Dp.mjs} +2 -2
  244. package/dist/{renderer-Cu5k5D9N.mjs.map → renderer-DFX2V9Dp.mjs.map} +1 -1
  245. package/dist/{renderer-8BM6sJUR.mjs → renderer-DH0wkQkR.mjs} +2 -2
  246. package/dist/{renderer-8BM6sJUR.mjs.map → renderer-DH0wkQkR.mjs.map} +1 -1
  247. package/dist/{renderer-DerDxKK3.mjs → renderer-DOZJeWM4.mjs} +3 -3
  248. package/dist/{renderer-DerDxKK3.mjs.map → renderer-DOZJeWM4.mjs.map} +1 -1
  249. package/dist/{renderer-BVUTOGHs.mjs → renderer-DOkEalxy.mjs} +2 -2
  250. package/dist/{renderer-BVUTOGHs.mjs.map → renderer-DOkEalxy.mjs.map} +1 -1
  251. package/dist/renderer-DSSTVulw.mjs +5 -0
  252. package/dist/renderer-DUmTURPu.mjs +5 -0
  253. package/dist/{renderer-LM_XIKl1.mjs → renderer-DVaVVz-D.mjs} +3 -3
  254. package/dist/{renderer-LM_XIKl1.mjs.map → renderer-DVaVVz-D.mjs.map} +1 -1
  255. package/dist/renderer-DXCAgI9m.mjs +5 -0
  256. package/dist/{renderer-O1b-oYJE.mjs → renderer-DY8fPeH3.mjs} +2 -2
  257. package/dist/renderer-DZ9j3fQj.mjs +5 -0
  258. package/dist/{renderer-CWx3Kg79.mjs → renderer-DZndEvZN.mjs} +3 -3
  259. package/dist/{renderer-CWx3Kg79.mjs.map → renderer-DZndEvZN.mjs.map} +1 -1
  260. package/dist/{renderer-DPWeKe_x.mjs → renderer-DaV95CAd.mjs} +3 -3
  261. package/dist/{renderer-DPWeKe_x.mjs.map → renderer-DaV95CAd.mjs.map} +1 -1
  262. package/dist/{renderer-Dh-OF6aH.mjs → renderer-DautVsW4.mjs} +2 -2
  263. package/dist/{renderer-Dh-OF6aH.mjs.map → renderer-DautVsW4.mjs.map} +1 -1
  264. package/dist/renderer-Dd1G_VKM.mjs +5 -0
  265. package/dist/renderer-Dee8079X.mjs +5 -0
  266. package/dist/{renderer-BG5sbTXt.mjs → renderer-Dg5yLAM9.mjs} +3 -3
  267. package/dist/{renderer-BG5sbTXt.mjs.map → renderer-Dg5yLAM9.mjs.map} +1 -1
  268. package/dist/renderer-DgWh5noB.mjs +5 -0
  269. package/dist/{renderer-DlESyfg7.d.mts → renderer-Dim2ZlfK.d.mts} +2 -2
  270. package/dist/{renderer-DlESyfg7.d.mts.map → renderer-Dim2ZlfK.d.mts.map} +1 -1
  271. package/dist/{renderer-DMZ5aLU1.mjs → renderer-Dk0dnuHr.mjs} +2 -2
  272. package/dist/{renderer-DMZ5aLU1.mjs.map → renderer-Dk0dnuHr.mjs.map} +1 -1
  273. package/dist/{renderer-Bzl0s07U.mjs → renderer-DkM_wN8j.mjs} +2 -2
  274. package/dist/{renderer-Bzl0s07U.mjs.map → renderer-DkM_wN8j.mjs.map} +1 -1
  275. package/dist/{renderer-CqewgazK.mjs → renderer-DkYiOWPJ.mjs} +3 -3
  276. package/dist/{renderer-CqewgazK.mjs.map → renderer-DkYiOWPJ.mjs.map} +1 -1
  277. package/dist/{renderer-Dk-THZHp.mjs → renderer-DqgduGiO.mjs} +3 -3
  278. package/dist/{renderer-Dk-THZHp.mjs.map → renderer-DqgduGiO.mjs.map} +1 -1
  279. package/dist/renderer-DuD9QRix.mjs +5 -0
  280. package/dist/{renderer-DCGLXnYW.mjs → renderer-Edn9xltT.mjs} +2 -2
  281. package/dist/renderer-KtG5p44R.mjs +5 -0
  282. package/dist/{renderer-DcAfp1Er.mjs → renderer-Tf1AS1aO.mjs} +2 -2
  283. package/dist/{renderer-DcAfp1Er.mjs.map → renderer-Tf1AS1aO.mjs.map} +1 -1
  284. package/dist/{renderer-1uLtqb74.mjs → renderer-TyZu7nQ2.mjs} +91 -73
  285. package/dist/renderer-TyZu7nQ2.mjs.map +1 -0
  286. package/dist/{renderer-DdlaBsk_.mjs → renderer-eWBBsCv2.mjs} +2 -2
  287. package/dist/{renderer-DdlaBsk_.mjs.map → renderer-eWBBsCv2.mjs.map} +1 -1
  288. package/dist/{renderer-YdLL2o6d.mjs → renderer-fXRwAdO2.mjs} +2 -2
  289. package/dist/{renderer-YdLL2o6d.mjs.map → renderer-fXRwAdO2.mjs.map} +1 -1
  290. package/dist/renderer-fdVdNIhL.mjs +5 -0
  291. package/dist/renderer-gBKWL0_E.mjs +5 -0
  292. package/dist/{renderer-DfkWYUTX.mjs → renderer-gbBgGPNL.mjs} +2 -2
  293. package/dist/{renderer-DaCsT-XU.mjs → renderer-h9sJnoxw.mjs} +3 -3
  294. package/dist/{renderer-DaCsT-XU.mjs.map → renderer-h9sJnoxw.mjs.map} +1 -1
  295. package/dist/renderer-hmWhsR6C.mjs +5 -0
  296. package/dist/{renderer-CdOy3EBJ.mjs → renderer-i4RJ-_sx.mjs} +2 -2
  297. package/dist/{renderer-CdOy3EBJ.mjs.map → renderer-i4RJ-_sx.mjs.map} +1 -1
  298. package/dist/renderer-jkL9FU2W.mjs +6 -0
  299. package/dist/{renderer-wL-ly4fT.mjs → renderer-nMnE_T2y.mjs} +3 -3
  300. package/dist/{renderer-wL-ly4fT.mjs.map → renderer-nMnE_T2y.mjs.map} +1 -1
  301. package/dist/{renderer-DpWRj6zF.mjs → renderer-q971j1BW.mjs} +3 -3
  302. package/dist/{renderer-DpWRj6zF.mjs.map → renderer-q971j1BW.mjs.map} +1 -1
  303. package/dist/{renderer-ChloaI6P.mjs → renderer-wFyrVuuj.mjs} +3 -3
  304. package/dist/{renderer-ChloaI6P.mjs.map → renderer-wFyrVuuj.mjs.map} +1 -1
  305. package/dist/renderer-yAWv-daq.mjs +5 -0
  306. package/dist/{renderer-BI4OMlEx.mjs → renderer-yGARXwV0.mjs} +2 -2
  307. package/dist/{renderer-BI4OMlEx.mjs.map → renderer-yGARXwV0.mjs.map} +1 -1
  308. package/dist/{renderers-CP8CFWDs-CVHwMTiz.mjs → renderers-CP8CFWDs-DoVn7dbW.mjs} +2 -2
  309. package/dist/{renderers-CP8CFWDs-CVHwMTiz.mjs.map → renderers-CP8CFWDs-DoVn7dbW.mjs.map} +1 -1
  310. package/dist/signals/index.d.mts +5 -5
  311. package/dist/signals/index.mjs +4 -4
  312. package/package.json +57 -56
  313. package/dist/dist-jU289ehm.mjs.map +0 -1
  314. package/dist/index-AdrZIWT0.d.mts.map +0 -1
  315. package/dist/preview-engine/chunk-GCTVRM7J.mjs +0 -1522
  316. package/dist/preview-engine/chunk-OCX5AD23.mjs +0 -1
  317. package/dist/preview-engine/renderers-3T7Q4SPP.mjs +0 -1
  318. package/dist/preview-engine/renderers-4DV4REGM.mjs +0 -1
  319. package/dist/preview-engine/renderers-CQXQHOW2.mjs +0 -1
  320. package/dist/preview-engine/renderers-IXGM55XK.mjs +0 -1
  321. package/dist/preview-engine/renderers-KVHUVWSN.mjs +0 -1
  322. package/dist/preview-engine/renderers-M7R2ZJUP.mjs +0 -1
  323. package/dist/preview-engine/renderers-PMOO7DLX.mjs +0 -1
  324. package/dist/preview-engine/renderers-QCCPCH73.mjs +0 -1
  325. package/dist/preview-engine/renderers-RRXFJRGI.mjs +0 -1
  326. package/dist/preview-engine/renderers-VLMQR3DW.mjs +0 -1
  327. package/dist/preview-engine/renderers-WVTTRCVI.mjs +0 -1
  328. package/dist/preview-engine/renderers-X5PUIPU5.mjs +0 -1
  329. package/dist/preview-engine/renderers-YDCDY3BR.mjs +0 -1
  330. package/dist/preview-engine/renderers-YJNQ4B7B.mjs +0 -1
  331. package/dist/preview-engine/renderers-Z7YQUFAY.mjs +0 -1
  332. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +0 -1
  333. package/dist/renderer-1Kv7oA86.mjs +0 -5
  334. package/dist/renderer-1uLtqb74.mjs.map +0 -1
  335. package/dist/renderer-AVHJ33nv.mjs +0 -5
  336. package/dist/renderer-B8dJGf8R.mjs +0 -6
  337. package/dist/renderer-BEA6nknY.mjs +0 -5
  338. package/dist/renderer-BOfi06L2.mjs +0 -5
  339. package/dist/renderer-BOhvtAGL.mjs +0 -5
  340. package/dist/renderer-BQT3GI9g.mjs +0 -5
  341. package/dist/renderer-BXmStgeT.mjs +0 -5
  342. package/dist/renderer-Bajxo7Nt.mjs +0 -5
  343. package/dist/renderer-BzRR0KMm.mjs +0 -5
  344. package/dist/renderer-C3Gjy2iE.mjs +0 -5
  345. package/dist/renderer-C5hQgkz-.mjs +0 -5
  346. package/dist/renderer-CLF-MiOA.mjs +0 -5
  347. package/dist/renderer-CLa43fCd.mjs +0 -5
  348. package/dist/renderer-CMK1d6w_.mjs +0 -5
  349. package/dist/renderer-CPEQOe3u.mjs +0 -5
  350. package/dist/renderer-CemfjOM9.mjs +0 -5
  351. package/dist/renderer-CkcrScs9.mjs +0 -5
  352. package/dist/renderer-CwrLihY6.mjs +0 -5
  353. package/dist/renderer-D4S6i2MC.mjs +0 -5
  354. package/dist/renderer-DB8F0XoP.mjs +0 -5
  355. package/dist/renderer-DGpVLJOn.mjs +0 -5
  356. package/dist/renderer-DGxibeSa.mjs +0 -5
  357. package/dist/renderer-DJQm3bAW.mjs +0 -5
  358. package/dist/renderer-DMftVSfX.mjs +0 -5
  359. package/dist/renderer-DNpovOd8.mjs +0 -5
  360. package/dist/renderer-DSHlvKQk.mjs +0 -5
  361. package/dist/renderer-DYtrdR2p.mjs +0 -5
  362. package/dist/renderer-DuSImLUz.mjs +0 -5
  363. package/dist/renderer-FbyMYKXe.mjs +0 -5
  364. package/dist/renderer-NMFv7Auz.mjs +0 -5
  365. package/dist/renderer-P3vpdUnb.mjs +0 -5
  366. package/dist/renderer-QTOm26Lg.mjs +0 -5
  367. package/dist/renderer-ahzhMa5q.mjs +0 -5
  368. package/dist/renderer-dThfTNge.mjs +0 -5
  369. package/dist/renderer-dgAS_k7B.mjs +0 -5
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ### Compositing, motion graphics, and 3D for code-first video — one npm package that AI agents drive with code.
8
8
 
9
- [**Documentation**](https://framefields.dev/docs)  ·  [**Website**](https://framefields.dev)  ·  [**Discord**](https://discord.gg/cbqMGGme5)  ·  [**Examples**](https://github.com/gatewai-dev/framefields/blob/main/examples)
9
+ [**Documentation**](https://framefields.dev/docs)  ·  [**Website**](https://framefields.dev)  ·  [**Models**](https://framefields.dev/models)  ·  [**Discord**](https://discord.gg/cbqMGGme5)  ·  [**Examples**](https://github.com/gatewai-dev/framefields/blob/main/examples)
10
10
 
11
11
  [![npm](https://img.shields.io/badge/npm-framefields-cb3837?logo=npm&logoColor=white)](https://www.npmjs.com/package/framefields)
12
12
  [![docs](https://img.shields.io/badge/docs-framefields.dev%2Fdocs-6366f1)](https://framefields.dev/docs)
@@ -165,10 +165,33 @@ process.exit(0);
165
165
 
166
166
  ---
167
167
 
168
+ ## AI Gateway
169
+
170
+ Framefields includes optional, built-in access to the [**framefields.dev AI Gateway**](https://framefields.dev/models), letting agents and developers generate creative media—cinematic images, video footage, background music, voiceovers, and sound effects—directly from code. Authenticated via `FRAMEFIELDS_API_KEY` (an `ff_live_…` key from your [dashboard](https://framefields.dev/dashboard/keys)), the built-in `ai` client provides a unified interface (`run`, `subscribe`, `stream`, and `queue`) across hundreds of creative foundation models like Flux, Seedance, OpenAI, Nano Banana, Kling, Minimax, Suno, and ElevenLabs without configuring separate provider accounts or billing.
171
+
172
+ To get started, store your API key in `.env` and create a dedicated script (such as `src/generate.ts`) that calls `ai.subscribe()` to render media into `assets/`. Because AI generation is asynchronous and billed per execution, assets are generated once, saved locally, and tracked with Git LFS—ready to be loaded cleanly into `Layer.image()`, `Layer.video()`, or `Layer.audio()` inside your frame-accurate compositions without recurring cost or latency during previews and renders. Browse the full model catalog and schemas at [**framefields.dev/models**](https://framefields.dev/models).
173
+
174
+ ```typescript
175
+ import { ai } from "framefields";
176
+
177
+ // 1. Generate an image asset with Flux Schnell
178
+ const still = await ai.subscribe<{ images: { url: string }[] }>("flux/schnell", {
179
+ input: { prompt: "Cyberpunk alley in the rain, volumetric neon, 35mm", image_size: "landscape_16_9" },
180
+ });
181
+
182
+ // 2. Animate it into video with Kling or generate music & voiceovers
183
+ const clip = await ai.subscribe<{ video: { url: string } }>("kling-video/v2.1/standard/image-to-video", {
184
+ input: { prompt: "Slow forward tracking shot through neon rain", image_url: still.data.images[0].url, duration: "5" },
185
+ });
186
+ ```
187
+
188
+ ---
189
+
168
190
  ## Documentation
169
191
 
170
192
  Everything else—including full API references, interactive tutorials, and guides—is available at [**framefields.dev/docs**](https://framefields.dev/docs):
171
193
 
194
+ - **[AI Gateway & Asset Generation](https://framefields.dev/models)** — Unified SDK for generating images, video clips, music, and voice via hundreds of hosted models
172
195
  - **[Typography & Animators](https://framefields.dev/docs)** — Slug analytic vector text, After Effects-style range animators, and typewriter cadence
173
196
  - **[WebGPU 2D VFX](https://framefields.dev/docs)** — 50+ shaders: 3D LUTs, Curves, Film Grain, Glassmorphism, and Blur
174
197
  - **[Unified 3D Scenes](https://framefields.dev/docs)** — LookAt cameras, PBR materials, studio lighting, shadows, and glTF/GLB models
@@ -1,5 +1,5 @@
1
- import { N as WebGPUAudioProcessor } from "../index-AdrZIWT0.mjs";
2
- import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, g as mixAudioTracks, 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-CeRv1KC0.mjs";
3
- import "../index-Cg2ptXcs.mjs";
4
- import { t as _default$1 } from "../renderer-DlESyfg7.mjs";
1
+ import { N as WebGPUAudioProcessor } from "../index-DEODKaL6.mjs";
2
+ import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, g as mixAudioTracks, 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-BONyHjZX.mjs";
3
+ import "../index-CaiZ5p6q.mjs";
4
+ import { t as _default$1 } from "../renderer-Dim2ZlfK.mjs";
5
5
  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-GBe2k3y8.mjs";
2
- import { g as WebGPUAudioProcessor } from "../dist-jU289ehm.mjs";
3
- import { t as renderers_default$1 } from "../renderers-CP8CFWDs-CVHwMTiz.mjs";
4
- import { i as mixAudioTracks } from "../dist-BOdxAhOT.mjs";
5
- import { t as renderers_default$2 } from "../renderer-CdOy3EBJ.mjs";
6
- import { t as renderers_default$3 } from "../renderer-C6cF5seJ.mjs";
7
- import { t as renderers_default } from "../renderer-BI4OMlEx.mjs";
8
- import { t as renderers_default$4 } from "../renderer-Dq4aO7az.mjs";
9
- import { t as renderers_default$5 } from "../renderer-CLdwOhST.mjs";
10
- import { t as renderers_default$6 } from "../renderer-BVUTOGHs.mjs";
2
+ import { g as WebGPUAudioProcessor } from "../dist-DRB6Vg5u.mjs";
3
+ import { t as renderers_default$1 } from "../renderers-CP8CFWDs-DoVn7dbW.mjs";
4
+ import { i as mixAudioTracks } from "../dist-Cl0mvShy.mjs";
5
+ import { t as renderers_default$2 } from "../renderer-i4RJ-_sx.mjs";
6
+ import { t as renderers_default$3 } from "../renderer-C9pl21Zb.mjs";
7
+ import { t as renderers_default } from "../renderer-yGARXwV0.mjs";
8
+ import { t as renderers_default$4 } from "../renderer-CCu1Q8ib.mjs";
9
+ import { t as renderers_default$5 } from "../renderer-CCCitH4J.mjs";
10
+ import { t as renderers_default$6 } from "../renderer-DOkEalxy.mjs";
11
11
  import "../renderer-B-BcgA6d.mjs";
12
- import { t as renderers_default$7 } from "../renderer-DcAfp1Er.mjs";
12
+ import { t as renderers_default$7 } from "../renderer-Tf1AS1aO.mjs";
13
13
  import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "../audio-DJeVoE8b.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
- import { Ci as FrameSignal, o as AudioSignalComputeConfig } from "./index-AdrZIWT0.mjs";
2
- import { n as NodeRendererPlugin } from "./index-Cg2ptXcs.mjs";
1
+ import { Ci as FrameSignal, o as AudioSignalComputeConfig } from "./index-DEODKaL6.mjs";
2
+ import { n as NodeRendererPlugin } from "./index-CaiZ5p6q.mjs";
3
3
 
4
4
  //#region ../../nodes/node-modulate/dist/renderer.d.mts
5
5
  //#region src/renderers/index.d.ts
@@ -34,4 +34,4 @@ declare const AudioSignal: {
34
34
  };
35
35
  //#endregion
36
36
  export { _default as i, AudioSignalOptions as n, ExtractedAudioSignalsBundle as r, AudioSignal as t };
37
- //# sourceMappingURL=audio-BNnEclHU.d.mts.map
37
+ //# sourceMappingURL=audio-C6toT7F3.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio-BNnEclHU.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;;;UCYjE,kBAAA,SAA2B;;EDT9BC,WAAsE,CAAA,EAAA,MAAA;;;UCenE,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;EAaP,WAAA,EAAA,OAuGZ;EArGW,OAAA,EAAA,OAAA;EAED,aAAA,EAAA,OAAA;EACC,UAAA,EAAA,OAAA;EAAR,UAAA,EAAA,OAAA;EAoFO,YAAA,EAAA,OAAA;EACC,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAD,cA1FE,WA0FF,EAAA;gCAxFC,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ"}
1
+ {"version":3,"file":"audio-C6toT7F3.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;;;UCYjE,kBAAA,SAA2B;;EDT9BC,WAAsE,CAAA,EAAA,MAAA;;;UCenE,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;EAaP,WAAA,EAAA,OAuGZ;EArGW,OAAA,EAAA,OAAA;EAED,aAAA,EAAA,OAAA;EACC,UAAA,EAAA,OAAA;EAAR,UAAA,EAAA,OAAA;EAoFO,YAAA,EAAA,OAAA;EACC,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAD,cA1FE,WA0FF,EAAA;gCAxFC,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ"}
@@ -1,6 +1,6 @@
1
1
  import { xt as frameArraySignal } from "./dist-fjKpBYkc.mjs";
2
- import { A as ensureDevice, St as AudioSignalComputePipeline } from "./dist-jU289ehm.mjs";
3
- import { n as decodeAudioSource } from "./dist-BOdxAhOT.mjs";
2
+ import { A as ensureDevice, St as AudioSignalComputePipeline } from "./dist-DRB6Vg5u.mjs";
3
+ import { n as decodeAudioSource } from "./dist-Cl0mvShy.mjs";
4
4
 
5
5
  //#region src/signals/audio.ts
6
6
  const AudioSignal = {
@@ -82,4 +82,4 @@ const AudioSignal = {
82
82
 
83
83
  //#endregion
84
84
  export { AudioSignal as t };
85
- //# sourceMappingURL=audio-CS104aUj.mjs.map
85
+ //# sourceMappingURL=audio-DXwNhi1z.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio-CS104aUj.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 AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\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 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 decodeAudioSource(source);\n\t\tif (!decoded || decoded.channels.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to decode audio source for feature extraction: ${source}`,\n\t\t\t);\n\t\t}\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"],"mappings":";;;;;AAmCA,MAAa,cAAc;CAC1B,MAAM,oBACL,UACA,YACA,UAA8B,EAAE,EACO;EACvC,MAAM,SAAS,MAAM,cAAc;EACnC,MAAM,MAAM,QAAQ,OAAO;EAC3B,MAAM,cAAc,QAAQ,eAAe;EAE3C,MAAM,YAAY,MAAM,2BAA2B,gBAClD,QACA,UACA,YACA,KACA,SACA,YACA;EAED,MAAM,UAAU,UAAU,kBAAkB;GAC3C,SAAS,IAAI,aAAa,UAAU,UAAU;GAC9C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,QAAQ,IAAI,aAAa,UAAU,UAAU;GAC7C;EAED,MAAM,iBAAoC;GACzC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,gBAAmC;GACxC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EAED,MAAM,UAAU,iBAAiB,QAAQ,SAAS,KAAK,eAAe;EACtE,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,SAAS,iBAAiB,QAAQ,QAAQ,KAAK,cAAc;AAEnE,SAAO;GACN;GACA;GACA;GACA;GACA,aAAa,UAAU;GACvB,WAAW,UAAU;GACrB;GACA,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,eAAe,UAAU;GACzB,YAAY,UAAU;GACtB,YAAY,UAAU;GACtB,cAAc,UAAU;GACxB,UAAU,OAAe;AACxB,YAAQ,YAAY,MAAM;AAC1B,SAAK,YAAY,MAAM;AACvB,SAAK,YAAY,MAAM;AACvB,WAAO,YAAY,MAAM;;GAE1B;;CAGF,MAAM,QACL,QACA,UAA8B,EAAE,EACO;EACvC,MAAM,UAAU,MAAM,kBAAkB,OAAO;AAC/C,MAAI,CAAC,WAAW,QAAQ,SAAS,WAAW,EAC3C,OAAM,IAAI,MACT,yDAAyD,SACzD;AAEF,SAAO,YAAY,oBAClB,QAAQ,UACR,QAAQ,YACR,QACA;;CAEF"}
1
+ {"version":3,"file":"audio-DXwNhi1z.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 AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\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 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 decodeAudioSource(source);\n\t\tif (!decoded || decoded.channels.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to decode audio source for feature extraction: ${source}`,\n\t\t\t);\n\t\t}\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"],"mappings":";;;;;AAmCA,MAAa,cAAc;CAC1B,MAAM,oBACL,UACA,YACA,UAA8B,EAAE,EACO;EACvC,MAAM,SAAS,MAAM,cAAc;EACnC,MAAM,MAAM,QAAQ,OAAO;EAC3B,MAAM,cAAc,QAAQ,eAAe;EAE3C,MAAM,YAAY,MAAM,2BAA2B,gBAClD,QACA,UACA,YACA,KACA,SACA,YACA;EAED,MAAM,UAAU,UAAU,kBAAkB;GAC3C,SAAS,IAAI,aAAa,UAAU,UAAU;GAC9C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,QAAQ,IAAI,aAAa,UAAU,UAAU;GAC7C;EAED,MAAM,iBAAoC;GACzC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,gBAAmC;GACxC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EAED,MAAM,UAAU,iBAAiB,QAAQ,SAAS,KAAK,eAAe;EACtE,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,SAAS,iBAAiB,QAAQ,QAAQ,KAAK,cAAc;AAEnE,SAAO;GACN;GACA;GACA;GACA;GACA,aAAa,UAAU;GACvB,WAAW,UAAU;GACrB;GACA,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,eAAe,UAAU;GACzB,YAAY,UAAU;GACtB,YAAY,UAAU;GACtB,cAAc,UAAU;GACxB,UAAU,OAAe;AACxB,YAAQ,YAAY,MAAM;AAC1B,SAAK,YAAY,MAAM;AACvB,SAAK,YAAY,MAAM;AACvB,WAAO,YAAY,MAAM;;GAE1B;;CAGF,MAAM,QACL,QACA,UAA8B,EAAE,EACO;EACvC,MAAM,UAAU,MAAM,kBAAkB,OAAO;AAC/C,MAAI,CAAC,WAAW,QAAQ,SAAS,WAAW,EAC3C,OAAM,IAAI,MACT,yDAAyD,SACzD;AAEF,SAAO,YAAY,oBAClB,QAAQ,UACR,QAAQ,YACR,QACA;;CAEF"}
@@ -1,6 +1,6 @@
1
1
  import { Ot as getMediaType, Pt as isSignal, on as updateClockSignals, p as DEFAULT_DURATION_MS, qt as resolveMediaMimeType, wt as getActiveMediaMetadata } from "./dist-fjKpBYkc.mjs";
2
2
  import { t as audioRegistry, u as webgpuRegistry } from "./renderer-BSitV56h.mjs";
3
- import { C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, L as inputStore, N as getHeadlessFontPath, Nn as signalRegistry, O as drawSvgNode, Q as registerHeadlessFont, S as drawCaptionNode, T as drawLottieNode, at as resolveMediaSourceUrl, et as shaderStore, it as GetFontAssetUrl, k as drawVideoNode, m as SlugGeometry, p as SlugFontCache, w as drawImageNode } from "./dist-jU289ehm.mjs";
3
+ import { C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, L as inputStore, N as getHeadlessFontPath, Nn as signalRegistry, O as drawSvgNode, Q as registerHeadlessFont, S as drawCaptionNode, T as drawLottieNode, at as resolveMediaSourceUrl, et as shaderStore, it as GetFontAssetUrl, k as drawVideoNode, m as SlugGeometry, p as SlugFontCache, w as drawImageNode } from "./dist-DRB6Vg5u.mjs";
4
4
  import { AudioSampleSink } from "mediabunny";
5
5
 
6
6
  //#region ../renderers/dist/index.mjs
@@ -1361,4 +1361,4 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1361
1361
 
1362
1362
  //#endregion
1363
1363
  export { spring as _, resolveLayerDuration as a, computeStrokeRect as c, measureSpring as d, measureText as f, requiresIsolation as g, preloadFont as h, mixAudioTracks as i, interpolate as l, preloadCompositionFonts as m, decodeAudioSource as n, Easing as o, measureTextAsync as p, drawCompositionTree as r, bezier as s, compositionStateStore as t, mapBlendModeToSkia as u, springCalculation as v };
1364
- //# sourceMappingURL=dist-BOdxAhOT.mjs.map
1364
+ //# sourceMappingURL=dist-Cl0mvShy.mjs.map