framefields 2.5.0 → 2.5.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 (393) hide show
  1. package/dist/audio/index.mjs +10 -10
  2. package/dist/{audio-CMHpfOoS.mjs → audio-CZwVENqB.mjs} +3 -3
  3. package/dist/{audio-CMHpfOoS.mjs.map → audio-CZwVENqB.mjs.map} +1 -1
  4. package/dist/components/index.d.mts +1 -1
  5. package/dist/components/index.mjs +42 -42
  6. package/dist/{dist-BBUrGwqd.mjs → dist-DBWkkSvJ.mjs} +90 -66
  7. package/dist/dist-DBWkkSvJ.mjs.map +1 -0
  8. package/dist/{dist-QMVy31gR.mjs → dist-DHQVWaV2.mjs} +32 -19
  9. package/dist/dist-DHQVWaV2.mjs.map +1 -0
  10. package/dist/effects/index.mjs +34 -34
  11. package/dist/{effects-mRe-rLte.mjs → effects-DZvq-nWT.mjs} +2 -2
  12. package/dist/{effects-mRe-rLte.mjs.map → effects-DZvq-nWT.mjs.map} +1 -1
  13. package/dist/fonts/index.mjs +2 -2
  14. package/dist/{fonts-wI3CUYHM.mjs → fonts-DcsxFpyU.mjs} +3 -2
  15. package/dist/fonts-DcsxFpyU.mjs.map +1 -0
  16. package/dist/{gpu-I5fdrflL.mjs → gpu-Dq_uI_00.mjs} +2 -2
  17. package/dist/{gpu-I5fdrflL.mjs.map → gpu-Dq_uI_00.mjs.map} +1 -1
  18. package/dist/index-CalU-mpZ.d.mts.map +1 -1
  19. package/dist/index-D6-lH1Mx.d.mts.map +1 -1
  20. package/dist/{index-BJe_GEyj.d.mts → index-DKssQ_wn.d.mts} +2 -2
  21. package/dist/index-DKssQ_wn.d.mts.map +1 -0
  22. package/dist/index-fymoeGNW.d.mts.map +1 -1
  23. package/dist/index.d.mts +1 -1
  24. package/dist/index.mjs +49 -49
  25. package/dist/preview/index.mjs +10 -10
  26. package/dist/{preview--DEgW67P.mjs → preview-CYI4i4m3.mjs} +4 -3
  27. package/dist/preview-CYI4i4m3.mjs.map +1 -0
  28. package/dist/preview-engine/audio.mjs +1 -1
  29. package/dist/preview-engine/{chunk-4UI3S3UG.mjs → chunk-2QQQTZHS.mjs} +1 -1
  30. package/dist/preview-engine/{chunk-MZAAJXUL.mjs → chunk-2RZ6S4SW.mjs} +1 -1
  31. package/dist/preview-engine/{chunk-QVUT3QNF.mjs → chunk-3AYICEZ5.mjs} +1 -1
  32. package/dist/preview-engine/{chunk-A5OUYV3I.mjs → chunk-3I6B3YPF.mjs} +1 -1
  33. package/dist/preview-engine/{chunk-LQBDZSQD.mjs → chunk-6GMEF2QB.mjs} +1 -1
  34. package/dist/preview-engine/chunk-AB5VITYM.mjs +1974 -0
  35. package/dist/preview-engine/{chunk-OOJAQBS3.mjs → chunk-BNO5JAEZ.mjs} +1 -1
  36. package/dist/preview-engine/{chunk-7EHUT5A3.mjs → chunk-CE6CG5BH.mjs} +1 -1
  37. package/dist/preview-engine/{chunk-LQENNFBA.mjs → chunk-CT2WFPYG.mjs} +11 -11
  38. package/dist/preview-engine/{chunk-AJLPRIXB.mjs → chunk-DUEY7AXY.mjs} +1 -1
  39. package/dist/preview-engine/{chunk-NG5WSR3A.mjs → chunk-DWHQSNSJ.mjs} +1 -1
  40. package/dist/preview-engine/chunk-EU7CFSB5.mjs +1 -0
  41. package/dist/preview-engine/{chunk-NIRW77QA.mjs → chunk-KJGNTREI.mjs} +1 -1
  42. package/dist/preview-engine/{chunk-VZGDX7II.mjs → chunk-LNJYHSYX.mjs} +1 -1
  43. package/dist/preview-engine/{chunk-O6LGKH4S.mjs → chunk-LQVACZDE.mjs} +1 -1
  44. package/dist/preview-engine/{chunk-5N3GW3NE.mjs → chunk-M6ZKK6ZU.mjs} +1 -1
  45. package/dist/preview-engine/{chunk-KRVXRP5F.mjs → chunk-MA4YVA2E.mjs} +1 -1
  46. package/dist/preview-engine/{chunk-JAJOZG5P.mjs → chunk-MBJXS3D7.mjs} +1 -1
  47. package/dist/preview-engine/{chunk-QQJPPGH5.mjs → chunk-MCR7XMNQ.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-CBQOJAIS.mjs → chunk-NAISBHLR.mjs} +3 -3
  49. package/dist/preview-engine/{chunk-TA5OBYRR.mjs → chunk-NHQR76WL.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-MJN3LOZ7.mjs → chunk-NKGXINCU.mjs} +1 -1
  51. package/dist/preview-engine/{chunk-ZFURUTVW.mjs → chunk-P734GD7D.mjs} +1 -1
  52. package/dist/preview-engine/{chunk-2AV7HRRL.mjs → chunk-PDM3TJ45.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-ANZDLSSM.mjs → chunk-PXWCGXTF.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-5P764TTF.mjs → chunk-QJYAIQYU.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-VUFDQJ2B.mjs → chunk-QKQYHPBK.mjs} +1 -1
  56. package/dist/preview-engine/{chunk-NVTPJUNG.mjs → chunk-QVW5METG.mjs} +1 -1
  57. package/dist/preview-engine/{chunk-MRDJNDYV.mjs → chunk-QYIKOOFI.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-CEIOI4HO.mjs → chunk-SIXIF5QZ.mjs} +1 -1
  59. package/dist/preview-engine/chunk-SNASF7OM.mjs +3 -0
  60. package/dist/preview-engine/{chunk-7HTTYP6T.mjs → chunk-T4VP45AP.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-HXHP3UHZ.mjs → chunk-TE2QAKKF.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-VRNN6H6Y.mjs → chunk-UXCTWFKK.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-V6DAD4S4.mjs → chunk-V3FODTPI.mjs} +2 -2
  64. package/dist/preview-engine/{chunk-ILKBHDFB.mjs → chunk-VH5V54RA.mjs} +1 -1
  65. package/dist/preview-engine/chunk-W4HIVUUA.mjs +4 -0
  66. package/dist/preview-engine/{chunk-YMQMPBTL.mjs → chunk-WUMVCQYI.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-4EOS6ZWW.mjs → chunk-X6BJLPW6.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-PJN7DD55.mjs → chunk-XUPZBI3Y.mjs} +6 -6
  69. package/dist/preview-engine/{chunk-Z4ZO4RVT.mjs → chunk-YJ24W73B.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-DPIED3EG.mjs → chunk-Z4TKEI3I.mjs} +1 -1
  71. package/dist/preview-engine/{chunk-MLW6Y4RN.mjs → chunk-ZAIVXGSS.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-C2TA65CH.mjs → chunk-ZVUTFXDR.mjs} +1 -1
  73. package/dist/preview-engine/components.mjs +1 -0
  74. package/dist/preview-engine/effects.mjs +1 -1
  75. package/dist/preview-engine/fonts.mjs +1 -1
  76. package/dist/preview-engine/framefields.mjs +1 -1973
  77. package/dist/preview-engine/player.mjs +5 -5
  78. package/dist/preview-engine/renderers-2S5ZWL2J.mjs +1 -0
  79. package/dist/preview-engine/renderers-37CN7O4S.mjs +1 -1
  80. package/dist/preview-engine/renderers-3UGG2IMP.mjs +1 -1
  81. package/dist/preview-engine/{renderers-RV62K5JC.mjs → renderers-4RFB2LG2.mjs} +1 -1
  82. package/dist/preview-engine/renderers-6NFRKHNO.mjs +1 -0
  83. package/dist/preview-engine/{renderers-BOT4H6KJ.mjs → renderers-6PVGRTXV.mjs} +1 -1
  84. package/dist/preview-engine/renderers-7MPBAHYA.mjs +1 -0
  85. package/dist/preview-engine/renderers-AFTYMS3H.mjs +1 -0
  86. package/dist/preview-engine/renderers-AKZAAGR7.mjs +1 -0
  87. package/dist/preview-engine/renderers-AYEWAW7F.mjs +1 -1
  88. package/dist/preview-engine/{renderers-EOIMH7UE.mjs → renderers-BNXTSIXJ.mjs} +1 -1
  89. package/dist/preview-engine/{renderers-6ZCFR7BL.mjs → renderers-BQLYS4TM.mjs} +1 -1
  90. package/dist/preview-engine/renderers-C7SJ3M6S.mjs +1 -0
  91. package/dist/preview-engine/{renderers-HE42AT5T.mjs → renderers-CEJP6Q7F.mjs} +1 -1
  92. package/dist/preview-engine/{renderers-C4G7X7LD.mjs → renderers-CLLR5MOQ.mjs} +1 -1
  93. package/dist/preview-engine/{renderers-DSICQMRF.mjs → renderers-DHKB5LI6.mjs} +1 -1
  94. package/dist/preview-engine/renderers-DUF2CTX6.mjs +1 -1
  95. package/dist/preview-engine/{renderers-SIHL5GLI.mjs → renderers-DZZFIYYA.mjs} +1 -1
  96. package/dist/preview-engine/renderers-EIJFIY6L.mjs +1 -0
  97. package/dist/preview-engine/renderers-EOMMSENQ.mjs +1 -1
  98. package/dist/preview-engine/{renderers-V67L3MCY.mjs → renderers-FOHW7RWH.mjs} +1 -1
  99. package/dist/preview-engine/{renderers-GSRKNT75.mjs → renderers-GF77N2KM.mjs} +1 -1
  100. package/dist/preview-engine/renderers-H3ZM2TOA.mjs +1 -0
  101. package/dist/preview-engine/{renderers-W6ZTVA2I.mjs → renderers-HJ6NO5ZD.mjs} +1 -1
  102. package/dist/preview-engine/renderers-JXBZPQKP.mjs +1 -0
  103. package/dist/preview-engine/renderers-KSQM7EM5.mjs +1 -0
  104. package/dist/preview-engine/{renderers-3ZYXHUSW.mjs → renderers-KV3TTCO6.mjs} +1 -1
  105. package/dist/preview-engine/renderers-LD3COS4X.mjs +1 -0
  106. package/dist/preview-engine/renderers-MCTBJEL7.mjs +1 -1
  107. package/dist/preview-engine/renderers-MKEXNBCW.mjs +1 -0
  108. package/dist/preview-engine/{renderers-PJGFJGJS.mjs → renderers-MPCYLXXU.mjs} +1 -1
  109. package/dist/preview-engine/{renderers-V5MJJH33.mjs → renderers-MS4HG3M4.mjs} +1 -1
  110. package/dist/preview-engine/{renderers-SD35PBEM.mjs → renderers-N7T34SCI.mjs} +1 -1
  111. package/dist/preview-engine/{renderers-QPHOG7QR.mjs → renderers-O56IOD7J.mjs} +1 -1
  112. package/dist/preview-engine/renderers-OZGEXW2X.mjs +1 -1
  113. package/dist/preview-engine/renderers-PSEDMUBV.mjs +1 -0
  114. package/dist/preview-engine/renderers-PVUROEGR.mjs +1 -1
  115. package/dist/preview-engine/renderers-QBVVTQV6.mjs +1 -1
  116. package/dist/preview-engine/{renderers-DBRC3SQE.mjs → renderers-QO2RHF7F.mjs} +1 -1
  117. package/dist/preview-engine/renderers-QPFZBLDI.mjs +1 -0
  118. package/dist/preview-engine/renderers-R4U2TK6P.mjs +1 -0
  119. package/dist/preview-engine/renderers-RBLNDAO4.mjs +1 -0
  120. package/dist/preview-engine/renderers-RM25AXWZ.mjs +1 -0
  121. package/dist/preview-engine/{renderers-ZAPIBQZC.mjs → renderers-ROSSJ7Y2.mjs} +1 -1
  122. package/dist/preview-engine/{renderers-ZVKXIQ3E.mjs → renderers-RRJ2DX2W.mjs} +1 -1
  123. package/dist/preview-engine/renderers-RYRFCEYT.mjs +1 -0
  124. package/dist/preview-engine/renderers-SIBP54WK.mjs +1 -0
  125. package/dist/preview-engine/renderers-SRU6QXLN.mjs +1 -0
  126. package/dist/preview-engine/{renderers-K6J77OI5.mjs → renderers-T62TXGVO.mjs} +1 -1
  127. package/dist/preview-engine/{renderers-SBX64ERA.mjs → renderers-TAMDNTEQ.mjs} +1 -1
  128. package/dist/preview-engine/{renderers-T3S7QVM4.mjs → renderers-TASYN62K.mjs} +1 -1
  129. package/dist/preview-engine/{renderers-C44CEIYB.mjs → renderers-TWZHTKW7.mjs} +1 -1
  130. package/dist/preview-engine/renderers-UQHKFGDX.mjs +1 -0
  131. package/dist/preview-engine/{renderers-PPGOYOID.mjs → renderers-UVABXXQF.mjs} +1 -1
  132. package/dist/preview-engine/{renderers-JM7JEVBN.mjs → renderers-W5CTR4B5.mjs} +1 -1
  133. package/dist/preview-engine/renderers-WDV7ENJA.mjs +1 -1
  134. package/dist/preview-engine/renderers-WNBDSSJ3.mjs +1 -0
  135. package/dist/preview-engine/renderers-WTC2RNGU.mjs +1 -0
  136. package/dist/preview-engine/{renderers-SPW4SWZ2.mjs → renderers-XLBHSQZJ.mjs} +1 -1
  137. package/dist/preview-engine/{renderers-JRU2GNPE.mjs → renderers-XSPU2BIQ.mjs} +1 -1
  138. package/dist/preview-engine/renderers-XVUOO7B6.mjs +1 -1
  139. package/dist/preview-engine/renderers-YHOQUEHD.mjs +1 -0
  140. package/dist/preview-engine/renderers-YPFM5UJO.mjs +1 -1
  141. package/dist/preview-engine/renderers-YW3LBALW.mjs +1 -1
  142. package/dist/preview-engine/signals.mjs +1 -1
  143. package/dist/{program-CEHCeDpG.mjs → program-BdPDtfVv.mjs} +2 -2
  144. package/dist/{program-CEHCeDpG.mjs.map → program-BdPDtfVv.mjs.map} +1 -1
  145. package/dist/renderer/index.mjs +2 -2
  146. package/dist/{renderer-BbdgwkDB.mjs → renderer-0cHsK6xR.mjs} +3 -3
  147. package/dist/{renderer-BbdgwkDB.mjs.map → renderer-0cHsK6xR.mjs.map} +1 -1
  148. package/dist/{renderer-JaSEubRQ.mjs → renderer-1VKN5j2C.mjs} +2 -2
  149. package/dist/{renderer-JaSEubRQ.mjs.map → renderer-1VKN5j2C.mjs.map} +1 -1
  150. package/dist/{renderer-BgOEqtZu.mjs → renderer-2bipMLqz.mjs} +2 -2
  151. package/dist/{renderer-BgOEqtZu.mjs.map → renderer-2bipMLqz.mjs.map} +1 -1
  152. package/dist/{renderer-DhQZiRL3.mjs → renderer-7DyjqxEj.mjs} +3 -3
  153. package/dist/{renderer-DhQZiRL3.mjs.map → renderer-7DyjqxEj.mjs.map} +1 -1
  154. package/dist/renderer-B-D_VZg3.mjs +5 -0
  155. package/dist/{renderer-3aLw-la1.mjs → renderer-B31zMDE8.mjs} +3 -3
  156. package/dist/{renderer-3aLw-la1.mjs.map → renderer-B31zMDE8.mjs.map} +1 -1
  157. package/dist/{renderer-CPmoA87K.mjs → renderer-B4blg067.mjs} +2 -2
  158. package/dist/{renderer-CPmoA87K.mjs.map → renderer-B4blg067.mjs.map} +1 -1
  159. package/dist/{renderer-ChNCtBMR.mjs → renderer-B5YYBBDq.mjs} +2 -2
  160. package/dist/{renderer-ChNCtBMR.mjs.map → renderer-B5YYBBDq.mjs.map} +1 -1
  161. package/dist/renderer-B64dhpDX.mjs +5 -0
  162. package/dist/{renderer-D8D7dKxq.mjs → renderer-B8LXXvHi.mjs} +2 -2
  163. package/dist/{renderer-D8D7dKxq.mjs.map → renderer-B8LXXvHi.mjs.map} +1 -1
  164. package/dist/{renderer-BG8jNTHr.mjs → renderer-BAkPq8qo.mjs} +2 -2
  165. package/dist/{renderer-BG8jNTHr.mjs.map → renderer-BAkPq8qo.mjs.map} +1 -1
  166. package/dist/{renderer-B5oJN3A5.mjs → renderer-BBTdHKH7.mjs} +3 -3
  167. package/dist/{renderer-B5oJN3A5.mjs.map → renderer-BBTdHKH7.mjs.map} +1 -1
  168. package/dist/{renderer-CHFUJyul.mjs → renderer-BBTkfhL8.mjs} +3 -3
  169. package/dist/{renderer-CHFUJyul.mjs.map → renderer-BBTkfhL8.mjs.map} +1 -1
  170. package/dist/renderer-BDL4jyrb.mjs +5 -0
  171. package/dist/{renderer-B5HG6Czb.mjs → renderer-BGNdwdCR.mjs} +2 -2
  172. package/dist/{renderer-B5HG6Czb.mjs.map → renderer-BGNdwdCR.mjs.map} +1 -1
  173. package/dist/{renderer-Bvhj-05p.mjs → renderer-BJwOM1Dq.mjs} +3 -3
  174. package/dist/{renderer-Bvhj-05p.mjs.map → renderer-BJwOM1Dq.mjs.map} +1 -1
  175. package/dist/renderer-BKCZGKkl.mjs +5 -0
  176. package/dist/renderer-BKs3jI7-.mjs +5 -0
  177. package/dist/{renderer-CKGOKBZi.mjs → renderer-BN_n6O6P.mjs} +3 -3
  178. package/dist/{renderer-CKGOKBZi.mjs.map → renderer-BN_n6O6P.mjs.map} +1 -1
  179. package/dist/renderer-BW74Zf-u.mjs +5 -0
  180. package/dist/{renderer-DVnrUnkh.mjs → renderer-BWa3CLK7.mjs} +2 -2
  181. package/dist/{renderer-DVnrUnkh.mjs.map → renderer-BWa3CLK7.mjs.map} +1 -1
  182. package/dist/{renderer-CrU0kbiB.mjs → renderer-BWnFh7NO.mjs} +3 -3
  183. package/dist/{renderer-CrU0kbiB.mjs.map → renderer-BWnFh7NO.mjs.map} +1 -1
  184. package/dist/renderer-BXuQN61O.mjs +5 -0
  185. package/dist/renderer-BY1pPvzx.mjs +6 -0
  186. package/dist/{renderer-BEmDSqXg.mjs → renderer-BYJS2lhn.mjs} +2 -2
  187. package/dist/{renderer-BEmDSqXg.mjs.map → renderer-BYJS2lhn.mjs.map} +1 -1
  188. package/dist/renderer-Bahthqvq.mjs +5 -0
  189. package/dist/renderer-BbaiQG8h.mjs +5 -0
  190. package/dist/{renderer-Baw30QRI.mjs → renderer-BfrzKmRh.mjs} +2 -2
  191. package/dist/{renderer-Baw30QRI.mjs.map → renderer-BfrzKmRh.mjs.map} +1 -1
  192. package/dist/renderer-BhHF-08y.mjs +5 -0
  193. package/dist/{renderer-CyhSWLKq.mjs → renderer-BhhweLr_.mjs} +3 -3
  194. package/dist/{renderer-CyhSWLKq.mjs.map → renderer-BhhweLr_.mjs.map} +1 -1
  195. package/dist/{renderer-DetTl6bQ.mjs → renderer-Bmj7AyJP.mjs} +3 -3
  196. package/dist/{renderer-DetTl6bQ.mjs.map → renderer-Bmj7AyJP.mjs.map} +1 -1
  197. package/dist/{renderer-CddpdCL3.mjs → renderer-BmoQJUJO.mjs} +3 -3
  198. package/dist/{renderer-CddpdCL3.mjs.map → renderer-BmoQJUJO.mjs.map} +1 -1
  199. package/dist/renderer-BnrMcw6C.mjs +5 -0
  200. package/dist/{renderer-CcS3Zntx.mjs → renderer-Bo1PY0zW.mjs} +2 -2
  201. package/dist/{renderer--wMbTRFg.mjs → renderer-Bo_d7h86.mjs} +2 -2
  202. package/dist/{renderer--wMbTRFg.mjs.map → renderer-Bo_d7h86.mjs.map} +1 -1
  203. package/dist/renderer-BsS61z5l.mjs +5 -0
  204. package/dist/renderer-Btuq2Eq8.mjs +5 -0
  205. package/dist/{renderer-pcpDwv3K.mjs → renderer-Bw5YP2Db.mjs} +2 -2
  206. package/dist/{renderer-pcpDwv3K.mjs.map → renderer-Bw5YP2Db.mjs.map} +1 -1
  207. package/dist/renderer-BxmsEl2x.mjs +5 -0
  208. package/dist/{renderer-DkS6cblv.mjs → renderer-CDX2f82b.mjs} +3 -3
  209. package/dist/{renderer-DkS6cblv.mjs.map → renderer-CDX2f82b.mjs.map} +1 -1
  210. package/dist/renderer-CGOyHdKs.mjs +5 -0
  211. package/dist/renderer-CJjmpmpu.mjs +5 -0
  212. package/dist/{renderer-wld_ZR0-.mjs → renderer-CJoa4H2G.mjs} +2 -2
  213. package/dist/{renderer-wld_ZR0-.mjs.map → renderer-CJoa4H2G.mjs.map} +1 -1
  214. package/dist/{renderer-DWtquP0s.mjs → renderer-CLO8QHWE.mjs} +2 -2
  215. package/dist/{renderer-DWtquP0s.mjs.map → renderer-CLO8QHWE.mjs.map} +1 -1
  216. package/dist/{renderer-DkeJefRk.mjs → renderer-CMEqUhrW.mjs} +2 -2
  217. package/dist/{renderer-DkeJefRk.mjs.map → renderer-CMEqUhrW.mjs.map} +1 -1
  218. package/dist/{renderer-DILjs1tz.mjs → renderer-COtZ315B.mjs} +2 -2
  219. package/dist/renderer-CQvDDAIu.mjs +5 -0
  220. package/dist/{renderer-mSlww_MA.mjs → renderer-CWSM0IGG.mjs} +2 -2
  221. package/dist/{renderer-mSlww_MA.mjs.map → renderer-CWSM0IGG.mjs.map} +1 -1
  222. package/dist/{renderer-DqdD8gzX.mjs → renderer-CXbXF7Dh.mjs} +3 -3
  223. package/dist/{renderer-DqdD8gzX.mjs.map → renderer-CXbXF7Dh.mjs.map} +1 -1
  224. package/dist/renderer-CYxigw7S.mjs +5 -0
  225. package/dist/{renderer-D86Y5YYi.mjs → renderer-CdUf7ZDJ.mjs} +3 -3
  226. package/dist/{renderer-D86Y5YYi.mjs.map → renderer-CdUf7ZDJ.mjs.map} +1 -1
  227. package/dist/renderer-CgDofO5z.mjs +5 -0
  228. package/dist/renderer-CgmQchab.mjs +5 -0
  229. package/dist/{renderer-DvIWhLnY.mjs → renderer-Ch7qwjH9.mjs} +3 -3
  230. package/dist/{renderer-DvIWhLnY.mjs.map → renderer-Ch7qwjH9.mjs.map} +1 -1
  231. package/dist/{renderer-CaUJlGoB.mjs → renderer-ChCUad83.mjs} +3 -3
  232. package/dist/{renderer-CaUJlGoB.mjs.map → renderer-ChCUad83.mjs.map} +1 -1
  233. package/dist/{renderer-vPJRRVNN.mjs → renderer-ChjkppUz.mjs} +3 -3
  234. package/dist/{renderer-vPJRRVNN.mjs.map → renderer-ChjkppUz.mjs.map} +1 -1
  235. package/dist/{renderer-DATAjI6x.mjs → renderer-Cj1giMd0.mjs} +2 -2
  236. package/dist/{renderer-DATAjI6x.mjs.map → renderer-Cj1giMd0.mjs.map} +1 -1
  237. package/dist/{renderer-B41jTHFs.mjs → renderer-Cjs1OeBu.mjs} +3 -3
  238. package/dist/{renderer-B41jTHFs.mjs.map → renderer-Cjs1OeBu.mjs.map} +1 -1
  239. package/dist/renderer-CjzrLwW_.mjs +5 -0
  240. package/dist/renderer-ClnYWADT.mjs +5 -0
  241. package/dist/{renderer-CF25oNd3.mjs → renderer-CmKdr2nA.mjs} +3 -3
  242. package/dist/{renderer-CF25oNd3.mjs.map → renderer-CmKdr2nA.mjs.map} +1 -1
  243. package/dist/renderer-CwAd71C6.mjs +5 -0
  244. package/dist/{renderer-DxLkZGUK.mjs → renderer-D0X7Eh-T.mjs} +3 -3
  245. package/dist/{renderer-DxLkZGUK.mjs.map → renderer-D0X7Eh-T.mjs.map} +1 -1
  246. package/dist/{renderer-DIyzKouj.mjs → renderer-D2ru2Afi.mjs} +2 -2
  247. package/dist/{renderer-DIyzKouj.mjs.map → renderer-D2ru2Afi.mjs.map} +1 -1
  248. package/dist/renderer-D3Z9t-xT.mjs +5 -0
  249. package/dist/{renderer-B1yPBJQc.mjs → renderer-D5u3GVtD.mjs} +69 -69
  250. package/dist/{renderer-B1yPBJQc.mjs.map → renderer-D5u3GVtD.mjs.map} +1 -1
  251. package/dist/{renderer-ZGJWn-_L.mjs → renderer-D6p8b6ql.mjs} +2 -2
  252. package/dist/{renderer-ZGJWn-_L.mjs.map → renderer-D6p8b6ql.mjs.map} +1 -1
  253. package/dist/{renderer-DfxwJVjW.mjs → renderer-DBjV6C2u.mjs} +2 -2
  254. package/dist/{renderer-C8KEfda3.mjs → renderer-DHqicGgT.mjs} +3 -3
  255. package/dist/{renderer-C8KEfda3.mjs.map → renderer-DHqicGgT.mjs.map} +1 -1
  256. package/dist/{renderer-aXwxbXcE.mjs → renderer-DK34NH92.mjs} +3 -3
  257. package/dist/{renderer-aXwxbXcE.mjs.map → renderer-DK34NH92.mjs.map} +1 -1
  258. package/dist/renderer-DKH1oSlW.mjs +5 -0
  259. package/dist/{renderer-Bv0-WmP4.mjs → renderer-DP41Fokp.mjs} +2 -2
  260. package/dist/{renderer-Bv0-WmP4.mjs.map → renderer-DP41Fokp.mjs.map} +1 -1
  261. package/dist/{renderer-D2tdNoM6.mjs → renderer-DQuKNgIx.mjs} +3 -3
  262. package/dist/{renderer-D2tdNoM6.mjs.map → renderer-DQuKNgIx.mjs.map} +1 -1
  263. package/dist/renderer-DTkf_hwG.mjs +5 -0
  264. package/dist/renderer-DU0bmOS7.mjs +5 -0
  265. package/dist/{renderer-C1XZ0fQ-.mjs → renderer-DWaqF7-6.mjs} +3 -3
  266. package/dist/{renderer-C1XZ0fQ-.mjs.map → renderer-DWaqF7-6.mjs.map} +1 -1
  267. package/dist/renderer-D_vJHQt5.mjs +5 -0
  268. package/dist/{renderer-Cg-d78nf.mjs → renderer-Db_wphHH.mjs} +5 -5
  269. package/dist/{renderer-Cg-d78nf.mjs.map → renderer-Db_wphHH.mjs.map} +1 -1
  270. package/dist/renderer-Dc5n0M6P.mjs +5 -0
  271. package/dist/renderer-Ddfn0Dha.mjs +5 -0
  272. package/dist/renderer-DeSoNQeG.mjs +5 -0
  273. package/dist/{renderer-Djn4BYtz.mjs → renderer-DkPDYtD3.mjs} +3 -3
  274. package/dist/{renderer-Djn4BYtz.mjs.map → renderer-DkPDYtD3.mjs.map} +1 -1
  275. package/dist/{renderer-CYZb9uoO.mjs → renderer-DqO9gBAi.mjs} +2 -2
  276. package/dist/{renderer-CYZb9uoO.mjs.map → renderer-DqO9gBAi.mjs.map} +1 -1
  277. package/dist/{renderer-BWtI3wKu.mjs → renderer-DuQMzR3v.mjs} +2 -2
  278. package/dist/{renderer-BWtI3wKu.mjs.map → renderer-DuQMzR3v.mjs.map} +1 -1
  279. package/dist/{renderer-DJ78Bgv7.mjs → renderer-DyMEAZIm.mjs} +3 -3
  280. package/dist/{renderer-DJ78Bgv7.mjs.map → renderer-DyMEAZIm.mjs.map} +1 -1
  281. package/dist/renderer-Dzca9Qba.mjs +5 -0
  282. package/dist/{renderer-mWfgWQy_.mjs → renderer-FCqOfN6n.mjs} +3 -3
  283. package/dist/{renderer-mWfgWQy_.mjs.map → renderer-FCqOfN6n.mjs.map} +1 -1
  284. package/dist/{renderer-D-bmSKv4.mjs → renderer-Fsdod0yZ.mjs} +3 -3
  285. package/dist/{renderer-D-bmSKv4.mjs.map → renderer-Fsdod0yZ.mjs.map} +1 -1
  286. package/dist/{renderer-BMnrBPh1.mjs → renderer-G3px5ODP.mjs} +2 -2
  287. package/dist/{renderer-BMnrBPh1.mjs.map → renderer-G3px5ODP.mjs.map} +1 -1
  288. package/dist/renderer-HRVvtc9c.mjs +5 -0
  289. package/dist/{renderer-AkRxGnFU.mjs → renderer-IMg0dK6K.mjs} +3 -3
  290. package/dist/{renderer-AkRxGnFU.mjs.map → renderer-IMg0dK6K.mjs.map} +1 -1
  291. package/dist/renderer-M3Qs4f1K.mjs +5 -0
  292. package/dist/renderer-NDHJt_Ae.mjs +5 -0
  293. package/dist/{renderer-GY7D1oAn.mjs → renderer-PLoGrFGz.mjs} +3 -3
  294. package/dist/{renderer-GY7D1oAn.mjs.map → renderer-PLoGrFGz.mjs.map} +1 -1
  295. package/dist/{renderer-DstROEvX.mjs → renderer-VdTs-dqH.mjs} +3 -3
  296. package/dist/{renderer-DstROEvX.mjs.map → renderer-VdTs-dqH.mjs.map} +1 -1
  297. package/dist/{renderer-COZCwiIr.mjs → renderer-VxVi_0c7.mjs} +2 -2
  298. package/dist/{renderer-COZCwiIr.mjs.map → renderer-VxVi_0c7.mjs.map} +1 -1
  299. package/dist/{renderer-gniIzAsk.mjs → renderer-WVrUeiLZ.mjs} +2 -2
  300. package/dist/{renderer-DqabtpGN.mjs → renderer-Z39F9QK5.mjs} +3 -3
  301. package/dist/{renderer-DqabtpGN.mjs.map → renderer-Z39F9QK5.mjs.map} +1 -1
  302. package/dist/{renderer-VcPoZAM2.mjs → renderer-ZjSP5jw6.mjs} +2 -2
  303. package/dist/{renderer-VcPoZAM2.mjs.map → renderer-ZjSP5jw6.mjs.map} +1 -1
  304. package/dist/{renderer-BORzpTQP.mjs → renderer-fH9SCJC2.mjs} +2 -2
  305. package/dist/{renderer-BORzpTQP.mjs.map → renderer-fH9SCJC2.mjs.map} +1 -1
  306. package/dist/{renderer-DuawUm8D.mjs → renderer-gjT5v76-.mjs} +2 -2
  307. package/dist/{renderer-DuawUm8D.mjs.map → renderer-gjT5v76-.mjs.map} +1 -1
  308. package/dist/{renderer-BxDhx8KM.mjs → renderer-kP5Y282J.mjs} +3 -3
  309. package/dist/{renderer-BxDhx8KM.mjs.map → renderer-kP5Y282J.mjs.map} +1 -1
  310. package/dist/{renderer-Dw2ZFwDT.mjs → renderer-kkDfQ56G.mjs} +3 -3
  311. package/dist/{renderer-Dw2ZFwDT.mjs.map → renderer-kkDfQ56G.mjs.map} +1 -1
  312. package/dist/{renderer-vQrX7Qsw.mjs → renderer-l_U6kA8K.mjs} +2 -2
  313. package/dist/{renderer-vQrX7Qsw.mjs.map → renderer-l_U6kA8K.mjs.map} +1 -1
  314. package/dist/{renderer-DGhCIVI4.mjs → renderer-o_JK4YfO.mjs} +3 -3
  315. package/dist/{renderer-DGhCIVI4.mjs.map → renderer-o_JK4YfO.mjs.map} +1 -1
  316. package/dist/{renderer-MrvH4L7b.mjs → renderer-vwoyR8pW.mjs} +2 -2
  317. package/dist/{renderer-MrvH4L7b.mjs.map → renderer-vwoyR8pW.mjs.map} +1 -1
  318. package/dist/{renderers-CP8CFWDs-DgKdGMvS.mjs → renderers-CP8CFWDs-DiX2Y4Qp.mjs} +2 -2
  319. package/dist/{renderers-CP8CFWDs-DgKdGMvS.mjs.map → renderers-CP8CFWDs-DiX2Y4Qp.mjs.map} +1 -1
  320. package/dist/signals/index.mjs +4 -4
  321. package/dist/{src-CU_7ui4I.mjs → src-Ds9IAk5S.mjs} +7 -7
  322. package/dist/{src-CU_7ui4I.mjs.map → src-Ds9IAk5S.mjs.map} +1 -1
  323. package/package.json +58 -58
  324. package/dist/dist-BBUrGwqd.mjs.map +0 -1
  325. package/dist/dist-QMVy31gR.mjs.map +0 -1
  326. package/dist/fonts-wI3CUYHM.mjs.map +0 -1
  327. package/dist/index-BJe_GEyj.d.mts.map +0 -1
  328. package/dist/preview--DEgW67P.mjs.map +0 -1
  329. package/dist/preview-engine/chunk-3T4LB4ZH.mjs +0 -3
  330. package/dist/preview-engine/chunk-DKXKOUQR.mjs +0 -1
  331. package/dist/preview-engine/chunk-RQLMW6MA.mjs +0 -4
  332. package/dist/preview-engine/chunk-XN56POGE.mjs +0 -1
  333. package/dist/preview-engine/renderers-2CBJYNOC.mjs +0 -1
  334. package/dist/preview-engine/renderers-3AZ5PMGC.mjs +0 -1
  335. package/dist/preview-engine/renderers-3VXNHICC.mjs +0 -1
  336. package/dist/preview-engine/renderers-4FONYSBA.mjs +0 -1
  337. package/dist/preview-engine/renderers-54I5SFXR.mjs +0 -1
  338. package/dist/preview-engine/renderers-5LXALKB4.mjs +0 -1
  339. package/dist/preview-engine/renderers-5TICPV2K.mjs +0 -1
  340. package/dist/preview-engine/renderers-5YS5WHAV.mjs +0 -1
  341. package/dist/preview-engine/renderers-6UTRYW7Z.mjs +0 -1
  342. package/dist/preview-engine/renderers-CLCPP3TZ.mjs +0 -1
  343. package/dist/preview-engine/renderers-DTZ2AER5.mjs +0 -1
  344. package/dist/preview-engine/renderers-GUJTPO37.mjs +0 -1
  345. package/dist/preview-engine/renderers-LGUHDWWB.mjs +0 -1
  346. package/dist/preview-engine/renderers-LGXD24IJ.mjs +0 -1
  347. package/dist/preview-engine/renderers-OBXNUQMP.mjs +0 -1
  348. package/dist/preview-engine/renderers-PUJRHBUW.mjs +0 -1
  349. package/dist/preview-engine/renderers-SCJTTOEJ.mjs +0 -1
  350. package/dist/preview-engine/renderers-SNUVYUDE.mjs +0 -1
  351. package/dist/preview-engine/renderers-SRKCF3LD.mjs +0 -1
  352. package/dist/preview-engine/renderers-UN6YLFHW.mjs +0 -1
  353. package/dist/preview-engine/renderers-UTWKTBZI.mjs +0 -1
  354. package/dist/preview-engine/renderers-W6762MNW.mjs +0 -1
  355. package/dist/preview-engine/renderers-XP7YFWBV.mjs +0 -1
  356. package/dist/preview-engine/renderers-ZRR4TUVQ.mjs +0 -1
  357. package/dist/renderer-7vCBWQVP.mjs +0 -5
  358. package/dist/renderer-B-XgGMCq.mjs +0 -5
  359. package/dist/renderer-B0yabPlf.mjs +0 -5
  360. package/dist/renderer-B9MYevrF.mjs +0 -5
  361. package/dist/renderer-BCGosndi.mjs +0 -5
  362. package/dist/renderer-BXTHDEnd.mjs +0 -5
  363. package/dist/renderer-BbJoZ-zL.mjs +0 -5
  364. package/dist/renderer-BxAZKOQy.mjs +0 -5
  365. package/dist/renderer-BxgkH__7.mjs +0 -5
  366. package/dist/renderer-CFEvikBH.mjs +0 -5
  367. package/dist/renderer-C_u9B-_7.mjs +0 -5
  368. package/dist/renderer-Cgx_qzGT.mjs +0 -5
  369. package/dist/renderer-ClOkY1Ny.mjs +0 -5
  370. package/dist/renderer-CtDub_ig.mjs +0 -5
  371. package/dist/renderer-D0duAhCo.mjs +0 -5
  372. package/dist/renderer-D4wM1dqg.mjs +0 -6
  373. package/dist/renderer-D5U3d09T.mjs +0 -5
  374. package/dist/renderer-DKqFxYfP.mjs +0 -5
  375. package/dist/renderer-DQZNI1zf.mjs +0 -5
  376. package/dist/renderer-DXITcVbS.mjs +0 -5
  377. package/dist/renderer-DY1QgdDC.mjs +0 -5
  378. package/dist/renderer-DYEz06xn.mjs +0 -5
  379. package/dist/renderer-D_2OrSMc.mjs +0 -5
  380. package/dist/renderer-DcCl9CO6.mjs +0 -5
  381. package/dist/renderer-DotZXhrh.mjs +0 -5
  382. package/dist/renderer-DpYDVTzs.mjs +0 -5
  383. package/dist/renderer-DpZxLVQF.mjs +0 -5
  384. package/dist/renderer-DvJbouz0.mjs +0 -5
  385. package/dist/renderer-S305xm67.mjs +0 -5
  386. package/dist/renderer-TgUloP-y.mjs +0 -5
  387. package/dist/renderer-gZ5SMvbU.mjs +0 -5
  388. package/dist/renderer-kEpx7pUy.mjs +0 -5
  389. package/dist/renderer-oPWZmzua.mjs +0 -5
  390. package/dist/renderer-qCNOffLy.mjs +0 -5
  391. package/dist/renderer-xEVoeq12.mjs +0 -5
  392. package/dist/renderer-ypw8fzVD.mjs +0 -5
  393. /package/dist/preview-engine/{chunk-Q4Z54DQ7.mjs → chunk-LXHECDOB.mjs} +0 -0
@@ -1,15 +1,15 @@
1
1
  import "../chunk-D7gtBK74.mjs";
2
- import { g as WebGPUAudioProcessor } from "../dist-BBUrGwqd.mjs";
3
- import { t as renderers_default$1 } from "../renderers-CP8CFWDs-DgKdGMvS.mjs";
4
- import { i as mixAudioTracks } from "../dist-QMVy31gR.mjs";
5
- import { t as renderers_default$2 } from "../renderer--wMbTRFg.mjs";
6
- import { t as renderers_default$3 } from "../renderer-JaSEubRQ.mjs";
7
- import { t as renderers_default } from "../renderer-BEmDSqXg.mjs";
8
- import { t as renderers_default$4 } from "../renderer-pcpDwv3K.mjs";
9
- import { t as renderers_default$5 } from "../renderer-DIyzKouj.mjs";
10
- import { t as renderers_default$6 } from "../renderer-Bv0-WmP4.mjs";
2
+ import { g as WebGPUAudioProcessor } from "../dist-DBWkkSvJ.mjs";
3
+ import { t as renderers_default$1 } from "../renderers-CP8CFWDs-DiX2Y4Qp.mjs";
4
+ import { i as mixAudioTracks } from "../dist-DHQVWaV2.mjs";
5
+ import { t as renderers_default$2 } from "../renderer-Bo_d7h86.mjs";
6
+ import { t as renderers_default$3 } from "../renderer-1VKN5j2C.mjs";
7
+ import { t as renderers_default } from "../renderer-BYJS2lhn.mjs";
8
+ import { t as renderers_default$4 } from "../renderer-Bw5YP2Db.mjs";
9
+ import { t as renderers_default$5 } from "../renderer-D2ru2Afi.mjs";
10
+ import { t as renderers_default$6 } from "../renderer-DP41Fokp.mjs";
11
11
  import "../renderer-B7fX0C62.mjs";
12
- import { t as renderers_default$7 } from "../renderer-DWtquP0s.mjs";
12
+ import { t as renderers_default$7 } from "../renderer-CLO8QHWE.mjs";
13
13
  import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "../audio-BluXgSeG.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,6 +1,6 @@
1
1
  import { Tt as frameArraySignal } from "./dist-DFeF-ygz.mjs";
2
- import { A as ensureDevice, St as AudioSignalComputePipeline } from "./dist-BBUrGwqd.mjs";
3
- import { n as decodeAudioSource } from "./dist-QMVy31gR.mjs";
2
+ import { A as ensureDevice, wt as AudioSignalComputePipeline } from "./dist-DBWkkSvJ.mjs";
3
+ import { n as decodeAudioSource } from "./dist-DHQVWaV2.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-CMHpfOoS.mjs.map
85
+ //# sourceMappingURL=audio-CZwVENqB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio-CMHpfOoS.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-CZwVENqB.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"}
@@ -3,7 +3,7 @@ import "../index-fymoeGNW.mjs";
3
3
  import "../index-DNKM3to5.mjs";
4
4
  import "../renderer-COXKPofU.mjs";
5
5
  import "../renderer-Dx28wTi1.mjs";
6
- import { $i as themes, $n as Cue, $r as bandEdges, Ai as lineShift, Ar as ResolvedMotion, Bi as scaleFrames, Bn as ArcPath, Br as ThemeName, Ci as frameSpan, Cr as MotionPresetName, Di as holdFirstKeys, Dr as PropsOf, Ei as hashString, Er as Placement, Fi as rendererChars, Fn as targetSchema, Fr as TargetContext, Gi as springSettleFrames, Gn as BakedKey, Gr as WordRange, Hi as smoothRelease, Hn as ArrowGeometry, Hr as UNIT_INDEX, Ii as resampleBands, In as AnalyzeOptions, Ir as TargetNode, Ji as staggerRanks, Jn as BuildResult, Jr as arcPath, Ki as squigglePath, Kn as BaseProps, Kr as analyzeChannels, Li as resolveMotion, Ln as Anchor, Lr as TextLayout, Mi as pulseKeys, Mr as Rng, Ni as quantize, Nr as StaggerOrder, Oi as lerp2, Or as PulseOptions, Pi as rangeRects, Pr as Target, Qi as themeFrames, Qn as ComponentMeta, Qr as bakeSamples, Ri as resolveTarget, Rn as Animatable, Rr as Theme, Si as findRange, Sr as MotionPreset, Ti as hashRng, Tr as ParticleOptions, Ui as springAt, Un as AudioLevels, Ur as UnitSchedule, Vi as scheduleExpression, Vn as ArrowCurve, Vr as TrackedObjectLike, Wi as springKeys, Wn as BakeOptions, Wr as Vec2, Xi as targetPoint, Xn as ComponentDefinition, Xr as audioLevelsSchema, Yi as stepExpression, Yn as ComponentDefaults, Yr as arrowPaths, Zi as textLayout, Zn as ComponentExtras, Zr as bakeFunction, _i as ellipsePath, _r as MeasureFn, aa as windowExpression, ai as boxPath, ar as FrameContextLike, bi as evaluateGlyphExpression, br as Metrics, ca as wordRanges, ci as constantExpression, cr as GlyphAnimator, di as defineComponent, dr as GlyphUnit, ea as toFrames, ei as basePropsSchema, er as Cues, fi as defineMeta, fr as GrainOptions, gi as ease$1, gr as MOTION_PRESETS, hi as drawOnKeys, hr as LayerStyleConfig, i as analyzeAudio, ia as typingFrames, ii as boundsOf, ir as ExtrudedTextOptions, ji as offsetCues, jr as ResolvedTarget, ki as linePath, kr as Rect, li as contrastRatio, lr as GlyphBox, mi as dist, mr as Host, n as bindComponent, na as toSeconds, ni as bind, nr as CutoutOptions, oa as within, oi as catmullRom, or as FrameValue, pi as defineTheme, pr as HandOptions, qi as staggerOffsets, qn as BuildContext, qr as anchorPoint, r as z, ra as transformPathData, ri as boilKeys, rr as EaseFn, sa as wobblePoints, si as chain, sr as FrameWindow, t as ComponentNode, ta as toPathData, ti as beats, tr as CuesOf, ui as cover, ur as GlyphProps, vi as enterAnimation, vr as MeasureOptions, wi as glyphAnimator, wr as MotionSize, xi as exitAnimation, xr as MotionOptions, yi as evaluateEase, yr as MediaOptions, zi as rng, zn as AnimatableMethods, zr as ThemeInput } from "../index-BJe_GEyj.mjs";
6
+ import { $i as themes, $n as Cue, $r as bandEdges, Ai as lineShift, Ar as ResolvedMotion, Bi as scaleFrames, Bn as ArcPath, Br as ThemeName, Ci as frameSpan, Cr as MotionPresetName, Di as holdFirstKeys, Dr as PropsOf, Ei as hashString, Er as Placement, Fi as rendererChars, Fn as targetSchema, Fr as TargetContext, Gi as springSettleFrames, Gn as BakedKey, Gr as WordRange, Hi as smoothRelease, Hn as ArrowGeometry, Hr as UNIT_INDEX, Ii as resampleBands, In as AnalyzeOptions, Ir as TargetNode, Ji as staggerRanks, Jn as BuildResult, Jr as arcPath, Ki as squigglePath, Kn as BaseProps, Kr as analyzeChannels, Li as resolveMotion, Ln as Anchor, Lr as TextLayout, Mi as pulseKeys, Mr as Rng, Ni as quantize, Nr as StaggerOrder, Oi as lerp2, Or as PulseOptions, Pi as rangeRects, Pr as Target, Qi as themeFrames, Qn as ComponentMeta, Qr as bakeSamples, Ri as resolveTarget, Rn as Animatable, Rr as Theme, Si as findRange, Sr as MotionPreset, Ti as hashRng, Tr as ParticleOptions, Ui as springAt, Un as AudioLevels, Ur as UnitSchedule, Vi as scheduleExpression, Vn as ArrowCurve, Vr as TrackedObjectLike, Wi as springKeys, Wn as BakeOptions, Wr as Vec2, Xi as targetPoint, Xn as ComponentDefinition, Xr as audioLevelsSchema, Yi as stepExpression, Yn as ComponentDefaults, Yr as arrowPaths, Zi as textLayout, Zn as ComponentExtras, Zr as bakeFunction, _i as ellipsePath, _r as MeasureFn, aa as windowExpression, ai as boxPath, ar as FrameContextLike, bi as evaluateGlyphExpression, br as Metrics, ca as wordRanges, ci as constantExpression, cr as GlyphAnimator, di as defineComponent, dr as GlyphUnit, ea as toFrames, ei as basePropsSchema, er as Cues, fi as defineMeta, fr as GrainOptions, gi as ease$1, gr as MOTION_PRESETS, hi as drawOnKeys, hr as LayerStyleConfig, i as analyzeAudio, ia as typingFrames, ii as boundsOf, ir as ExtrudedTextOptions, ji as offsetCues, jr as ResolvedTarget, ki as linePath, kr as Rect, li as contrastRatio, lr as GlyphBox, mi as dist, mr as Host, n as bindComponent, na as toSeconds, ni as bind, nr as CutoutOptions, oa as within, oi as catmullRom, or as FrameValue, pi as defineTheme, pr as HandOptions, qi as staggerOffsets, qn as BuildContext, qr as anchorPoint, r as z, ra as transformPathData, ri as boilKeys, rr as EaseFn, sa as wobblePoints, si as chain, sr as FrameWindow, t as ComponentNode, ta as toPathData, ti as beats, tr as CuesOf, ui as cover, ur as GlyphProps, vi as enterAnimation, vr as MeasureOptions, wi as glyphAnimator, wr as MotionSize, xi as exitAnimation, xr as MotionOptions, yi as evaluateEase, yr as MediaOptions, zi as rng, zn as AnimatableMethods, zr as ThemeInput } from "../index-DKssQ_wn.mjs";
7
7
  import "../index-BpdVOlsV.mjs";
8
8
  import "../audio-C1A4N3Wh.mjs";
9
9
  import "../index-D6-lH1Mx.mjs";
@@ -1,49 +1,49 @@
1
1
  import "../chunk-D7gtBK74.mjs";
2
- import { $ as offsetCues, A as constantExpression, At as wobblePoints, B as enterAnimation, C as beats, Ct as toFrames, D as boxPath, Dt as typingFrames, E as boundsOf, Et as transformPathData, F as defineTheme, G as frameSpan, H as evaluateGlyphExpression, I as dist, J as hashString, K as glyphAnimator, L as drawOnKeys, M as cover, N as defineComponent, O as catmullRom, Ot as windowExpression, P as defineMeta, Q as lineShift, R as ease, S as basePropsSchema, St as themes, T as boilKeys, Tt as toSeconds, U as exitAnimation, V as evaluateEase, W as findRange, X as lerp2, Y as holdFirstKeys, Z as linePath, _ as arrowPaths, _t as stepExpression, at as resolveMotion, b as bakeSamples, bt as textLayout, ct as scaleFrames, d as analyzeAudio, dt as springAt, et as pulseKeys, f as MOTION_PRESETS, ft as springKeys, g as arcPath, gt as staggerRanks, h as anchorPoint, ht as staggerOffsets, it as resampleBands, j as contrastRatio, jt as wordRanges, k as chain, kt as within, l as bindComponent, lt as scheduleExpression, m as analyzeChannels, mt as squigglePath, nt as rangeRects, ot as resolveTarget, p as UNIT_INDEX, pt as springSettleFrames, q as hashRng, rt as rendererChars, st as rng, tt as quantize, u as z, ut as smoothRelease, v as audioLevelsSchema, vt as targetPoint, w as bind, wt as toPathData, x as bandEdges, xt as themeFrames, y as bakeFunction, yt as targetSchema, z as ellipsePath } from "../src-CU_7ui4I.mjs";
3
- import "../dist-BBUrGwqd.mjs";
4
- import "../renderers-CP8CFWDs-DgKdGMvS.mjs";
2
+ import { $ as offsetCues, A as constantExpression, At as wobblePoints, B as enterAnimation, C as beats, Ct as toFrames, D as boxPath, Dt as typingFrames, E as boundsOf, Et as transformPathData, F as defineTheme, G as frameSpan, H as evaluateGlyphExpression, I as dist, J as hashString, K as glyphAnimator, L as drawOnKeys, M as cover, N as defineComponent, O as catmullRom, Ot as windowExpression, P as defineMeta, Q as lineShift, R as ease, S as basePropsSchema, St as themes, T as boilKeys, Tt as toSeconds, U as exitAnimation, V as evaluateEase, W as findRange, X as lerp2, Y as holdFirstKeys, Z as linePath, _ as arrowPaths, _t as stepExpression, at as resolveMotion, b as bakeSamples, bt as textLayout, ct as scaleFrames, d as analyzeAudio, dt as springAt, et as pulseKeys, f as MOTION_PRESETS, ft as springKeys, g as arcPath, gt as staggerRanks, h as anchorPoint, ht as staggerOffsets, it as resampleBands, j as contrastRatio, jt as wordRanges, k as chain, kt as within, l as bindComponent, lt as scheduleExpression, m as analyzeChannels, mt as squigglePath, nt as rangeRects, ot as resolveTarget, p as UNIT_INDEX, pt as springSettleFrames, q as hashRng, rt as rendererChars, st as rng, tt as quantize, u as z, ut as smoothRelease, v as audioLevelsSchema, vt as targetPoint, w as bind, wt as toPathData, x as bandEdges, xt as themeFrames, y as bakeFunction, yt as targetSchema, z as ellipsePath } from "../src-Ds9IAk5S.mjs";
3
+ import "../dist-DBWkkSvJ.mjs";
4
+ import "../renderers-CP8CFWDs-DiX2Y4Qp.mjs";
5
5
  import "../signals-Cf9mfNGE.mjs";
6
- import "../renderer-GY7D1oAn.mjs";
6
+ import "../renderer-PLoGrFGz.mjs";
7
7
  import "../renderer-nLPfvY3-.mjs";
8
- import "../renderer--wMbTRFg.mjs";
9
- import "../renderer-JaSEubRQ.mjs";
10
- import "../renderer-BEmDSqXg.mjs";
11
- import "../renderer-pcpDwv3K.mjs";
12
- import "../renderer-DIyzKouj.mjs";
13
- import "../renderer-Bv0-WmP4.mjs";
8
+ import "../renderer-Bo_d7h86.mjs";
9
+ import "../renderer-1VKN5j2C.mjs";
10
+ import "../renderer-BYJS2lhn.mjs";
11
+ import "../renderer-Bw5YP2Db.mjs";
12
+ import "../renderer-D2ru2Afi.mjs";
13
+ import "../renderer-DP41Fokp.mjs";
14
14
  import "../renderer-B7fX0C62.mjs";
15
- import "../renderer-DWtquP0s.mjs";
15
+ import "../renderer-CLO8QHWE.mjs";
16
16
  import "../renderer-CNs1vBUy.mjs";
17
- import "../renderer-3aLw-la1.mjs";
18
- import "../renderer-BgOEqtZu.mjs";
19
- import "../renderer-CyhSWLKq.mjs";
20
- import "../renderer-COZCwiIr.mjs";
21
- import "../renderer-Baw30QRI.mjs";
22
- import "../renderer-DuawUm8D.mjs";
23
- import "../renderer-MrvH4L7b.mjs";
24
- import "../renderer-DstROEvX.mjs";
25
- import "../renderer-CddpdCL3.mjs";
26
- import "../renderer-vQrX7Qsw.mjs";
27
- import "../renderer-DetTl6bQ.mjs";
28
- import "../renderer-C1XZ0fQ-.mjs";
29
- import "../renderer-CPmoA87K.mjs";
30
- import "../renderer-DATAjI6x.mjs";
31
- import "../renderer-BWtI3wKu.mjs";
32
- import "../renderer-BxDhx8KM.mjs";
33
- import "../renderer-wld_ZR0-.mjs";
34
- import "../renderer-Bvhj-05p.mjs";
35
- import "../renderer-CYZb9uoO.mjs";
36
- import "../renderer-BG8jNTHr.mjs";
37
- import "../renderer-DVnrUnkh.mjs";
38
- import "../renderer-D8D7dKxq.mjs";
39
- import "../renderer-BMnrBPh1.mjs";
40
- import "../renderer-DxLkZGUK.mjs";
41
- import "../renderer-DJ78Bgv7.mjs";
42
- import "../renderer-C8KEfda3.mjs";
43
- import "../renderer-ChNCtBMR.mjs";
44
- import "../renderer-ZGJWn-_L.mjs";
45
- import "../renderer-BORzpTQP.mjs";
46
- import "../renderer-B5HG6Czb.mjs";
47
- import "../renderer-VcPoZAM2.mjs";
17
+ import "../renderer-B31zMDE8.mjs";
18
+ import "../renderer-2bipMLqz.mjs";
19
+ import "../renderer-BhhweLr_.mjs";
20
+ import "../renderer-VxVi_0c7.mjs";
21
+ import "../renderer-BfrzKmRh.mjs";
22
+ import "../renderer-gjT5v76-.mjs";
23
+ import "../renderer-vwoyR8pW.mjs";
24
+ import "../renderer-VdTs-dqH.mjs";
25
+ import "../renderer-BmoQJUJO.mjs";
26
+ import "../renderer-l_U6kA8K.mjs";
27
+ import "../renderer-Bmj7AyJP.mjs";
28
+ import "../renderer-DWaqF7-6.mjs";
29
+ import "../renderer-B4blg067.mjs";
30
+ import "../renderer-Cj1giMd0.mjs";
31
+ import "../renderer-DuQMzR3v.mjs";
32
+ import "../renderer-kP5Y282J.mjs";
33
+ import "../renderer-CJoa4H2G.mjs";
34
+ import "../renderer-BJwOM1Dq.mjs";
35
+ import "../renderer-DqO9gBAi.mjs";
36
+ import "../renderer-BAkPq8qo.mjs";
37
+ import "../renderer-BWa3CLK7.mjs";
38
+ import "../renderer-B8LXXvHi.mjs";
39
+ import "../renderer-G3px5ODP.mjs";
40
+ import "../renderer-D0X7Eh-T.mjs";
41
+ import "../renderer-DyMEAZIm.mjs";
42
+ import "../renderer-DHqicGgT.mjs";
43
+ import "../renderer-B5YYBBDq.mjs";
44
+ import "../renderer-D6p8b6ql.mjs";
45
+ import "../renderer-fH9SCJC2.mjs";
46
+ import "../renderer-BGNdwdCR.mjs";
47
+ import "../renderer-ZjSP5jw6.mjs";
48
48
 
49
49
  export { MOTION_PRESETS, UNIT_INDEX, analyzeAudio, analyzeChannels, anchorPoint, arcPath, arrowPaths, audioLevelsSchema, bakeFunction, bakeSamples, bandEdges, basePropsSchema, beats, bind, bindComponent, boilKeys, boundsOf, boxPath, catmullRom, chain, constantExpression, contrastRatio, cover, defineComponent, defineMeta, defineTheme, dist, drawOnKeys, ease, ellipsePath, enterAnimation, evaluateEase, evaluateGlyphExpression, exitAnimation, findRange, frameSpan, glyphAnimator, hashRng, hashString, holdFirstKeys, lerp2, linePath, lineShift, offsetCues, pulseKeys, quantize, rangeRects, rendererChars, resampleBands, resolveMotion, resolveTarget, rng, scaleFrames, scheduleExpression, smoothRelease, springAt, springKeys, springSettleFrames, squigglePath, staggerOffsets, staggerRanks, stepExpression, targetPoint, targetSchema, textLayout, themeFrames, themes, toFrames, toPathData, toSeconds, transformPathData, typingFrames, windowExpression, within, wobblePoints, wordRanges, z };
@@ -12553,6 +12553,21 @@ async function registerHeadlessFont(family, url) {
12553
12553
  function getHeadlessFontPath(family) {
12554
12554
  return fontPaths.get(family);
12555
12555
  }
12556
+ const FONT_SOURCES_KEY = Symbol.for("framefields.fontSources");
12557
+ const sharedGlobals = globalThis;
12558
+ sharedGlobals[FONT_SOURCES_KEY] ??= /* @__PURE__ */ new Map();
12559
+ const fontSources = sharedGlobals[FONT_SOURCES_KEY];
12560
+ /**
12561
+ * Records where a registered family's font came from (its path or URL, or
12562
+ * its bytes), so loaders use it instead of guessing a file by family name.
12563
+ */
12564
+ function setRegisteredFontSource(family, source) {
12565
+ fontSources.set(family, source);
12566
+ }
12567
+ /** The path, URL or bytes a family was registered from, if it was. */
12568
+ function getRegisteredFontSource(family) {
12569
+ return fontSources.get(family);
12570
+ }
12556
12571
  async function getHeadlessFontData(family) {
12557
12572
  const cached$1 = fontDataCache.get(family);
12558
12573
  if (cached$1) return cached$1;
@@ -17282,6 +17297,76 @@ function parseFontBuffer(bytes) {
17282
17297
  else font = parsed;
17283
17298
  return font;
17284
17299
  }
17300
+ /**
17301
+ * A font file's bytes: read from disk in Node (the URL as a path, then the
17302
+ * font directories by family name), fetched elsewhere.
17303
+ */
17304
+ async function loadFontBuffer(fontFamily, fontUrl) {
17305
+ let buffer;
17306
+ const isNode = !!globalThis.__IS_HEADLESS_RENDERER__ || typeof window === "undefined" || typeof globalThis.document === "undefined";
17307
+ const isHttp = fontUrl.startsWith("http://") || fontUrl.startsWith("https://");
17308
+ if (isNode && !isHttp) {
17309
+ const fs$1 = await import(
17310
+ /* webpackIgnore: true */
17311
+ "node:fs/promises"
17312
+ );
17313
+ const path$1 = await import(
17314
+ /* webpackIgnore: true */
17315
+ "node:path"
17316
+ );
17317
+ const fontDirs = [];
17318
+ if (process.env.FONTS_DIR) fontDirs.push(path$1.resolve(process.env.FONTS_DIR));
17319
+ if (process.env.FRAMEFIELDS_FONTS_DIR) fontDirs.push(path$1.resolve(process.env.FRAMEFIELDS_FONTS_DIR));
17320
+ let currentDir = process.cwd();
17321
+ for (let i = 0; i < 5; i++) {
17322
+ fontDirs.push(path$1.resolve(currentDir, "assets/fonts"));
17323
+ const parent = path$1.dirname(currentDir);
17324
+ if (parent === currentDir) break;
17325
+ currentDir = parent;
17326
+ }
17327
+ const candidates = [];
17328
+ const addCandidate = (candidatePath) => {
17329
+ if (!candidates.includes(candidatePath)) candidates.push(candidatePath);
17330
+ };
17331
+ if (fontUrl && !fontUrl.startsWith("//api/")) {
17332
+ let fontPath = fontUrl;
17333
+ if (fontUrl.startsWith("file://")) try {
17334
+ fontPath = new URL(fontUrl).pathname;
17335
+ } catch {
17336
+ fontPath = fontUrl.replace(/^file:\/\//, "");
17337
+ }
17338
+ addCandidate(fontPath);
17339
+ addCandidate(path$1.resolve(process.cwd(), fontPath));
17340
+ for (const dir of fontDirs) addCandidate(path$1.resolve(dir, path$1.basename(fontPath)));
17341
+ }
17342
+ const cleanFamily = fontFamily.replace(/['"]/g, "").trim();
17343
+ const variations = [
17344
+ cleanFamily,
17345
+ cleanFamily.replace(/ /g, ""),
17346
+ cleanFamily.replace(/ /g, "_")
17347
+ ];
17348
+ for (const dir of fontDirs) for (const v of variations) {
17349
+ addCandidate(path$1.resolve(dir, `${v}.ttf`));
17350
+ addCandidate(path$1.resolve(dir, `${v}.otf`));
17351
+ }
17352
+ for (const dir of fontDirs) {
17353
+ addCandidate(path$1.resolve(dir, "Inter.ttf"));
17354
+ addCandidate(path$1.resolve(dir, "Inter.otf"));
17355
+ }
17356
+ let nodeBuffer = null;
17357
+ for (const c of candidates) try {
17358
+ nodeBuffer = await fs$1.readFile(c);
17359
+ if (nodeBuffer && nodeBuffer.length > 0) break;
17360
+ } catch {}
17361
+ if (!nodeBuffer) throw new Error(`Could not resolve font file for "${fontFamily}" (${fontUrl})`);
17362
+ buffer = nodeBuffer.buffer.slice(nodeBuffer.byteOffset, nodeBuffer.byteOffset + nodeBuffer.byteLength);
17363
+ } else {
17364
+ const response = await fetch(fontUrl);
17365
+ if (!response.ok) throw new Error(`Failed to fetch font from ${fontUrl}: ${response.statusText}`);
17366
+ buffer = await response.arrayBuffer();
17367
+ }
17368
+ return buffer;
17369
+ }
17285
17370
  function recreateTextures(device, slugFont) {
17286
17371
  if (slugFont.curvesTex) return;
17287
17372
  uploadSlugTextures(device, slugFont);
@@ -17305,6 +17390,7 @@ var SlugFontCache = class SlugFontCache$1 {
17305
17390
  /** Register an already parsed font (e.g. by FontManager) under a family name. */
17306
17391
  static setParsed(fontFamily, font) {
17307
17392
  SlugFontCache$1.parsedFontCache.set(fontFamily, font);
17393
+ SlugFontCache$1.failedFonts.delete(fontFamily);
17308
17394
  }
17309
17395
  static getParsed(fontFamily) {
17310
17396
  return SlugFontCache$1.parsedFontCache.get(fontFamily) || null;
@@ -17668,71 +17754,9 @@ var SlugFontCache = class SlugFontCache$1 {
17668
17754
  else {
17669
17755
  activePromise = (async () => {
17670
17756
  try {
17671
- let buffer;
17672
- const isNode = !!globalThis.__IS_HEADLESS_RENDERER__ || typeof window === "undefined" || typeof globalThis.document === "undefined";
17673
- const isHttp = fontUrl.startsWith("http://") || fontUrl.startsWith("https://");
17674
- if (isNode && !isHttp) {
17675
- const fs$1 = await import(
17676
- /* webpackIgnore: true */
17677
- "node:fs/promises"
17678
- );
17679
- const path$1 = await import(
17680
- /* webpackIgnore: true */
17681
- "node:path"
17682
- );
17683
- const fontDirs = [];
17684
- if (process.env.FONTS_DIR) fontDirs.push(path$1.resolve(process.env.FONTS_DIR));
17685
- if (process.env.FRAMEFIELDS_FONTS_DIR) fontDirs.push(path$1.resolve(process.env.FRAMEFIELDS_FONTS_DIR));
17686
- let currentDir = process.cwd();
17687
- for (let i = 0; i < 5; i++) {
17688
- fontDirs.push(path$1.resolve(currentDir, "assets/fonts"));
17689
- const parent = path$1.dirname(currentDir);
17690
- if (parent === currentDir) break;
17691
- currentDir = parent;
17692
- }
17693
- const candidates = [];
17694
- const addCandidate = (candidatePath) => {
17695
- if (!candidates.includes(candidatePath)) candidates.push(candidatePath);
17696
- };
17697
- if (fontUrl && !fontUrl.startsWith("//api/")) {
17698
- let fontPath = fontUrl;
17699
- if (fontUrl.startsWith("file://")) try {
17700
- fontPath = new URL(fontUrl).pathname;
17701
- } catch {
17702
- fontPath = fontUrl.replace(/^file:\/\//, "");
17703
- }
17704
- addCandidate(fontPath);
17705
- addCandidate(path$1.resolve(process.cwd(), fontPath));
17706
- for (const dir of fontDirs) addCandidate(path$1.resolve(dir, path$1.basename(fontPath)));
17707
- }
17708
- const cleanFamily = fontFamily.replace(/['"]/g, "").trim();
17709
- const variations = [
17710
- cleanFamily,
17711
- cleanFamily.replace(/ /g, ""),
17712
- cleanFamily.replace(/ /g, "_")
17713
- ];
17714
- for (const dir of fontDirs) for (const v of variations) {
17715
- addCandidate(path$1.resolve(dir, `${v}.ttf`));
17716
- addCandidate(path$1.resolve(dir, `${v}.otf`));
17717
- }
17718
- for (const dir of fontDirs) {
17719
- addCandidate(path$1.resolve(dir, "Inter.ttf"));
17720
- addCandidate(path$1.resolve(dir, "Inter.otf"));
17721
- }
17722
- let nodeBuffer = null;
17723
- for (const c of candidates) try {
17724
- nodeBuffer = await fs$1.readFile(c);
17725
- if (nodeBuffer && nodeBuffer.length > 0) break;
17726
- } catch {}
17727
- if (!nodeBuffer) throw new Error(`Could not resolve font file for "${fontFamily}" (${fontUrl})`);
17728
- buffer = nodeBuffer.buffer.slice(nodeBuffer.byteOffset, nodeBuffer.byteOffset + nodeBuffer.byteLength);
17729
- } else {
17730
- const response = await fetch(fontUrl);
17731
- if (!response.ok) throw new Error(`Failed to fetch font from ${fontUrl}: ${response.statusText}`);
17732
- buffer = await response.arrayBuffer();
17733
- }
17757
+ const registered = SlugFontCache$1.parsedFontCache.get(fontFamily);
17734
17758
  const startTime = performance.now();
17735
- const font = parseFontBuffer(new Uint8Array(buffer));
17759
+ const font = registered ?? parseFontBuffer(new Uint8Array(await loadFontBuffer(fontFamily, fontUrl)));
17736
17760
  const parseTime = performance.now();
17737
17761
  SlugFontCache$1.parsedFontCache.set(fontFamily, font);
17738
17762
  const generated = new SlugGenerator({
@@ -31689,5 +31713,5 @@ var NodeSurfaceProvider = class {
31689
31713
  if (typeof globalThis !== "undefined") globalThis.__GATEWAI_DELAYS__ = globalThis.__GATEWAI_DELAYS__ || /* @__PURE__ */ new Set();
31690
31714
 
31691
31715
  //#endregion
31692
- export { resolveTextSpans as $, TextSelectorSchema as $t, ensureDevice as A, sampleAudioSpectrumScale as An, GlyphAnchorGroupingSchema as At, loadModel3D as B, SignalRegistry as Bt, drawGifNode as C, evaluateTypewriterState as Cn, AudioSpectrumTypographySchema as Ct, drawSignalNode as D, getScramblePool as Dn, EnhancedTextNodeSchema as Dt, drawParagraphNode as E, generatePathSegments as En, DynamicStrokePropertiesSchema as Et, getRenderer2D as F, ParticleDissolveConfigSchema as Ft, parseColor as G, TextAnimatorBuilder as Gt, lutStore as H, Spatial3DPropertiesSchema as Ht, initHeadlessWebGPU as I, SelectorBasedOnSchema as It, parseOBJ as J, TextPathBuilder as Jt, parseFBX as K, TextCursorConfigSchema as Kt, inputStore as L, SelectorModeSchema as Lt, generateExtrudedTextGeometry as M, samplePathChainGeometry as Mn, KineticMarqueeConfigSchema as Mt, getHeadlessFontPath as N, signalRegistry as Nn, LineSpacingDynamicsSchema as Nt, drawSvgNode as O, getShuffledOrder as On, ExpressionSelectorSchema as Ot, getPrimitiveGeometry as P, waveToCubicBeziers as Pn, LongShadowConfigSchema as Pt, registerHeadlessFont as Q, TextScrambleConfigSchema as Qt, jointMatrices as R, SelectorShapeSchema as Rt, drawCaptionNode as S, evaluateSpringProgress as Sn, AudioSignalComputePipeline as St, drawLottieNode as T, generateArcLengthLUT as Tn, CubicBezierSegmentSchema as Tt, measureMaxCaptionHeight as U, SpringPhysicsSchema as Ut, loadOBJ as V, SkewPropertiesSchema as Vt, mediaDecoderCache as W, TextAnchorConfigSchema as Wt, poseNodes as X, TextPathSourceSchema as Xt, parseSvgPathToSegments as Y, TextPathOptionsSchema as Yt, probeVideoSize as Z, TextRangeSelectorSchema as Zt, buildShapeSvgPath as _, evaluateCubicBezierDerivative as _n, AdvancedTextAnimatorBuilder as _t, GlassPipeline as a, Vec2Schema as an, resolveMediaSourceUrl as at, colorMatrixWgsl as b, evaluateSelectorCombination as bn, AnchorPresetSchema as bt, Renderer2D as c, buildPathLUT as cn, LIGHT_UNIFORM_SIZE_BYTES as ct, ScreenSpaceRelightPipeline as d, computeLineLeadingDisplacement as dn, Matrix4Math as dt, TextSignalSelectorSchema as en, shaderStore as et, ShadowPipeline as f, computeRangeSelectorWeight as fn, Path3D as ft, WebGPUAudioProcessor as g, evaluateCubicBezier as gn, AETextAnimatorSchema as gt, SlugPipeline as h, ellipseToCubicBeziers as hn, resolveEnvironment as ht, EffectPipeline as i, VariableFontAxesSchema as in, GetFontAssetUrl as it, fitSpansToText as j, sampleCurveGeometry as jn, GlyphAnchorPointSchema as jt, drawVideoNode as k, parseSvgPathToCubicBeziers as kn, ExtendedGlyphPropertiesSchema as kt, Renderer3D as l, buildWGSLSignalFn as ln, Light3D as lt, SlugGeometry as m, distanceToCurveParameter as mn, parseColorToRgb as mt, AudioLatentTrackCache as n, TypewriterAnimatorSchema as nn, srtLoader as nt, MotionBlurPipeline as o, VolumetricFormationConfigSchema as on, Camera3D as ot, SlugFontCache as p, deterministicWigglyNoise as pn, Vector3Math as pt, parseMTL as q, TextCursorStyleSchema as qt, AudioMeshDeformPipeline as r, TypingCadenceSchema as rn, textureCache as rt, NodeSurfaceProvider as s, VolumetricFormationModeSchema as sn, ENVIRONMENT_PRESETS as st, AudioLatentEngine as t, TextWigglySelectorSchema as tn, spansText as tt, SSAOPipeline as u, computeAnchorPivotOffset as un, MAX_LIGHTS as ut, clearAllVideoCache as v, evaluateExpressionSelector as vn, AdvancedTextAnimatorSchema as vt, drawImageNode as w, evaluateVolumetricFormation as wn, ChromaticGlitchConfigSchema as wt, describeGpu as x, evaluateSkewMatrix as xn, AnimatableGlyphPropsSchema as xt, clearHeadlessFonts as y, evaluateMarqueeOffset as yn, AnchorGroupingSchema as yt, loadFBX as z, SelectorUnitsSchema as zt };
31693
- //# sourceMappingURL=dist-BBUrGwqd.mjs.map
31716
+ export { registerHeadlessFont as $, TextRangeSelectorSchema as $t, ensureDevice as A, getShuffledOrder as An, ExpressionSelectorSchema as At, loadFBX as B, SelectorShapeSchema as Bt, drawGifNode as C, evaluateSkewMatrix as Cn, AnimatableGlyphPropsSchema as Ct, drawSignalNode as D, generateArcLengthLUT as Dn, CubicBezierSegmentSchema as Dt, drawParagraphNode as E, evaluateVolumetricFormation as En, ChromaticGlitchConfigSchema as Et, getRegisteredFontSource as F, signalRegistry as Fn, LineSpacingDynamicsSchema as Ft, mediaDecoderCache as G, SpringPhysicsSchema as Gt, loadOBJ as H, SignalRegistry as Ht, getRenderer2D as I, waveToCubicBeziers as In, LongShadowConfigSchema as It, parseMTL as J, TextCursorConfigSchema as Jt, parseColor as K, TextAnchorConfigSchema as Kt, initHeadlessWebGPU as L, ParticleDissolveConfigSchema as Lt, generateExtrudedTextGeometry as M, sampleAudioSpectrumScale as Mn, GlyphAnchorGroupingSchema as Mt, getHeadlessFontPath as N, sampleCurveGeometry as Nn, GlyphAnchorPointSchema as Nt, drawSvgNode as O, generatePathSegments as On, DynamicStrokePropertiesSchema as Ot, getPrimitiveGeometry as P, samplePathChainGeometry as Pn, KineticMarqueeConfigSchema as Pt, probeVideoSize as Q, TextPathSourceSchema as Qt, inputStore as R, SelectorBasedOnSchema as Rt, drawCaptionNode as S, evaluateSelectorCombination as Sn, AnchorPresetSchema as St, drawLottieNode as T, evaluateTypewriterState as Tn, AudioSpectrumTypographySchema as Tt, lutStore as U, SkewPropertiesSchema as Ut, loadModel3D as V, SelectorUnitsSchema as Vt, measureMaxCaptionHeight as W, Spatial3DPropertiesSchema as Wt, parseSvgPathToSegments as X, TextPathBuilder as Xt, parseOBJ as Y, TextCursorStyleSchema as Yt, poseNodes as Z, TextPathOptionsSchema as Zt, buildShapeSvgPath as _, ellipseToCubicBeziers as _n, resolveEnvironment as _t, GlassPipeline as a, TypingCadenceSchema as an, textureCache as at, colorMatrixWgsl as b, evaluateExpressionSelector as bn, AdvancedTextAnimatorSchema as bt, Renderer2D as c, VolumetricFormationConfigSchema as cn, Camera3D as ct, ScreenSpaceRelightPipeline as d, buildWGSLSignalFn as dn, Light3D as dt, TextScrambleConfigSchema as en, resolveTextSpans as et, ShadowPipeline as f, computeAnchorPivotOffset as fn, MAX_LIGHTS as ft, WebGPUAudioProcessor as g, distanceToCurveParameter as gn, parseColorToRgb as gt, SlugPipeline as h, deterministicWigglyNoise as hn, Vector3Math as ht, EffectPipeline as i, TypewriterAnimatorSchema as in, srtLoader as it, fitSpansToText as j, parseSvgPathToCubicBeziers as jn, ExtendedGlyphPropertiesSchema as jt, drawVideoNode as k, getScramblePool as kn, EnhancedTextNodeSchema as kt, Renderer3D as l, VolumetricFormationModeSchema as ln, ENVIRONMENT_PRESETS as lt, SlugGeometry as m, computeRangeSelectorWeight as mn, Path3D as mt, AudioLatentTrackCache as n, TextSignalSelectorSchema as nn, shaderStore as nt, MotionBlurPipeline as o, VariableFontAxesSchema as on, GetFontAssetUrl as ot, SlugFontCache as p, computeLineLeadingDisplacement as pn, Matrix4Math as pt, parseFBX as q, TextAnimatorBuilder as qt, AudioMeshDeformPipeline as r, TextWigglySelectorSchema as rn, spansText as rt, NodeSurfaceProvider as s, Vec2Schema as sn, resolveMediaSourceUrl as st, AudioLatentEngine as t, TextSelectorSchema as tn, setRegisteredFontSource as tt, SSAOPipeline as u, buildPathLUT as un, LIGHT_UNIFORM_SIZE_BYTES as ut, clearAllVideoCache as v, evaluateCubicBezier as vn, AETextAnimatorSchema as vt, drawImageNode as w, evaluateSpringProgress as wn, AudioSignalComputePipeline as wt, describeGpu as x, evaluateMarqueeOffset as xn, AnchorGroupingSchema as xt, clearHeadlessFonts as y, evaluateCubicBezierDerivative as yn, AdvancedTextAnimatorBuilder as yt, jointMatrices as z, SelectorModeSchema as zt };
31717
+ //# sourceMappingURL=dist-DBWkkSvJ.mjs.map