framefields 2.1.2 → 2.2.0-beta.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 (259) hide show
  1. package/README.md +48 -618
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-CfBpzxn9.d.mts → audio-1QquqDJs.d.mts} +3 -3
  5. package/dist/{audio-CfBpzxn9.d.mts.map → audio-1QquqDJs.d.mts.map} +1 -1
  6. package/dist/{audio-GGuQ_JI0.mjs → audio-BYqbtdH8.mjs} +3 -3
  7. package/dist/{audio-GGuQ_JI0.mjs.map → audio-BYqbtdH8.mjs.map} +1 -1
  8. package/dist/{dist-Bb8BoMiw.mjs → dist-BLbXEC6V.mjs} +5 -3
  9. package/dist/dist-BLbXEC6V.mjs.map +1 -0
  10. package/dist/{dist-DkuDAIrG.mjs → dist-DQlYw4eG.mjs} +85 -43
  11. package/dist/dist-DQlYw4eG.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-D6wFg2FR.mjs → effects-DgpPr38s.mjs} +2 -2
  15. package/dist/{effects-D6wFg2FR.mjs.map → effects-DgpPr38s.mjs.map} +1 -1
  16. package/dist/fonts/index.mjs +2 -2
  17. package/dist/{fonts-CZMYtbP7.mjs → fonts-DakFEiDw.mjs} +3 -3
  18. package/dist/fonts-DakFEiDw.mjs.map +1 -0
  19. package/dist/{gpu-DG3gI88-.mjs → gpu-AbcLcr1f.mjs} +2 -2
  20. package/dist/{gpu-DG3gI88-.mjs.map → gpu-AbcLcr1f.mjs.map} +1 -1
  21. package/dist/{index-Cpkzy5XR.d.mts → index--1jnkoBj.d.mts} +20 -2
  22. package/dist/index--1jnkoBj.d.mts.map +1 -0
  23. package/dist/index-BcA8rep0.d.mts.map +1 -1
  24. package/dist/{index-D__HdInU.d.mts → index-Bg8HIYAO.d.mts} +4 -4
  25. package/dist/{index-D__HdInU.d.mts.map → index-Bg8HIYAO.d.mts.map} +1 -1
  26. package/dist/{index-BzQc812z.d.mts → index-BqzHDFkU.d.mts} +3 -3
  27. package/dist/{index-BzQc812z.d.mts.map → index-BqzHDFkU.d.mts.map} +1 -1
  28. package/dist/{index-DpWia6iH.d.mts → index-CaZfxDXx.d.mts} +27 -3
  29. package/dist/index-CaZfxDXx.d.mts.map +1 -0
  30. package/dist/{index-Fciq8bcC.d.mts → index-D6_KcajH.d.mts} +2 -2
  31. package/dist/{index-Fciq8bcC.d.mts.map → index-D6_KcajH.d.mts.map} +1 -1
  32. package/dist/{index--0vVZDPM.d.mts → index-DgJIBC_N.d.mts} +3 -3
  33. package/dist/{index--0vVZDPM.d.mts.map → index-DgJIBC_N.d.mts.map} +1 -1
  34. package/dist/index.d.mts +72 -65
  35. package/dist/index.d.mts.map +1 -1
  36. package/dist/index.mjs +49 -49
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/preview/index.d.mts +2 -2
  39. package/dist/preview/index.mjs +10 -10
  40. package/dist/{preview--rOXbBxl.mjs → preview-RdaP0Rfv.mjs} +2 -2
  41. package/dist/{preview--rOXbBxl.mjs.map → preview-RdaP0Rfv.mjs.map} +1 -1
  42. package/dist/preview-engine/audio.mjs +1 -1
  43. package/dist/preview-engine/chunk-2W4BMOAZ.mjs +1 -0
  44. package/dist/preview-engine/{chunk-XC5WZNOY.mjs → chunk-5MSAA3DL.mjs} +2 -2
  45. package/dist/preview-engine/chunk-AKMCLVJ6.mjs +5 -0
  46. package/dist/preview-engine/{chunk-E4RAFHZM.mjs → chunk-ATLWPS6N.mjs} +1 -1
  47. package/dist/preview-engine/{chunk-5FC7GOWW.mjs → chunk-FFQ3K5FW.mjs} +1 -1
  48. package/dist/preview-engine/chunk-FJH5A2PV.mjs +1 -0
  49. package/dist/preview-engine/{chunk-BWJS6G7R.mjs → chunk-LQENNFBA.mjs} +6 -6
  50. package/dist/preview-engine/{chunk-5DOD2NVY.mjs → chunk-MOW55DX2.mjs} +1 -1
  51. package/dist/preview-engine/chunk-N4OG2BHX.mjs +3 -0
  52. package/dist/preview-engine/{chunk-QY7MHWZW.mjs → chunk-UKBUEM3G.mjs} +1 -1
  53. package/dist/preview-engine/chunk-VUFDQJ2B.mjs +1 -0
  54. package/dist/preview-engine/{chunk-ZIIFTWDH.mjs → chunk-XETMNJVV.mjs} +1 -1
  55. package/dist/preview-engine/effects.mjs +1 -1
  56. package/dist/preview-engine/fonts.mjs +1 -1
  57. package/dist/preview-engine/framefields.mjs +21 -21
  58. package/dist/preview-engine/player.mjs +5 -5
  59. package/dist/preview-engine/{renderers-YZEVPHPQ.mjs → renderers-OZYUGZG7.mjs} +1 -1
  60. package/dist/preview-engine/{renderers-2SVWAB42.mjs → renderers-UHYNEWQD.mjs} +1 -1
  61. package/dist/preview-engine/signals.mjs +1 -1
  62. package/dist/{program-Cc5AsBHz.mjs → program-Cc_2_YXn.mjs} +2 -2
  63. package/dist/{program-Cc5AsBHz.mjs.map → program-Cc_2_YXn.mjs.map} +1 -1
  64. package/dist/renderer/index.d.mts +3 -3
  65. package/dist/renderer/index.mjs +3 -3
  66. package/dist/{renderer-Br9BOkQs.mjs → renderer-2DjggBBS.mjs} +2 -2
  67. package/dist/{renderer-Br9BOkQs.mjs.map → renderer-2DjggBBS.mjs.map} +1 -1
  68. package/dist/{renderer-DyzNM721.mjs → renderer-4GYrnTfw.mjs} +2 -2
  69. package/dist/{renderer-DyzNM721.mjs.map → renderer-4GYrnTfw.mjs.map} +1 -1
  70. package/dist/renderer-9ETXaINw.mjs +5 -0
  71. package/dist/renderer-B3MVDN_e.mjs +5 -0
  72. package/dist/{renderer-qsg-JMuN.mjs → renderer-B4cnT3ce.mjs} +3 -3
  73. package/dist/{renderer-qsg-JMuN.mjs.map → renderer-B4cnT3ce.mjs.map} +1 -1
  74. package/dist/{renderer-NXdm6HLb.mjs → renderer-B5PFBOjv.mjs} +3 -3
  75. package/dist/{renderer-NXdm6HLb.mjs.map → renderer-B5PFBOjv.mjs.map} +1 -1
  76. package/dist/renderer-B6iUuWcx.mjs +6 -0
  77. package/dist/renderer-B8IdU-7S.mjs +5 -0
  78. package/dist/renderer-BEGJCxuL.mjs +5 -0
  79. package/dist/{renderer-CoGP4Mvf.mjs → renderer-BEzUirF0.mjs} +2 -2
  80. package/dist/{renderer-CoGP4Mvf.mjs.map → renderer-BEzUirF0.mjs.map} +1 -1
  81. package/dist/{renderer-CydWqyf0.mjs → renderer-BKd2nRnO.mjs} +2 -2
  82. package/dist/{renderer-CydWqyf0.mjs.map → renderer-BKd2nRnO.mjs.map} +1 -1
  83. package/dist/renderer-BLAkNFx7.mjs +5 -0
  84. package/dist/{renderer-C7UZLOYk.mjs → renderer-BN0CzoG_.mjs} +2 -2
  85. package/dist/{renderer-C7UZLOYk.mjs.map → renderer-BN0CzoG_.mjs.map} +1 -1
  86. package/dist/{renderer-D2BRlqof.mjs → renderer-BNcsS03m.mjs} +2 -2
  87. package/dist/{renderer-D2BRlqof.mjs.map → renderer-BNcsS03m.mjs.map} +1 -1
  88. package/dist/{renderer-Bs_f_App.d.mts → renderer-BO-7bYa5.d.mts} +2 -2
  89. package/dist/{renderer-Bs_f_App.d.mts.map → renderer-BO-7bYa5.d.mts.map} +1 -1
  90. package/dist/{renderer-DzrM1KMN.mjs → renderer-BPMywsr4.mjs} +3 -3
  91. package/dist/{renderer-DzrM1KMN.mjs.map → renderer-BPMywsr4.mjs.map} +1 -1
  92. package/dist/renderer-BVNhv2ft.mjs +5 -0
  93. package/dist/renderer-BaXTEIe0.mjs +5 -0
  94. package/dist/{renderer-Dno-fujw.mjs → renderer-Bfrwo_It.mjs} +2 -2
  95. package/dist/{renderer-Dno-fujw.mjs.map → renderer-Bfrwo_It.mjs.map} +1 -1
  96. package/dist/{renderer-Bc6J0iVG.mjs → renderer-BhxQzrHF.mjs} +2 -2
  97. package/dist/{renderer-Bc6J0iVG.mjs.map → renderer-BhxQzrHF.mjs.map} +1 -1
  98. package/dist/renderer-BjeA7s36.mjs +5 -0
  99. package/dist/renderer-BtGNxEay.mjs +5 -0
  100. package/dist/renderer-BvZg2RJG.mjs +5 -0
  101. package/dist/{renderer-BKf1qDwL.mjs → renderer-C2eBC0FB.mjs} +3 -3
  102. package/dist/{renderer-BKf1qDwL.mjs.map → renderer-C2eBC0FB.mjs.map} +1 -1
  103. package/dist/{renderer-BWVsBB3t.mjs → renderer-C4UqxwcT.mjs} +2 -2
  104. package/dist/{renderer-BWVsBB3t.mjs.map → renderer-C4UqxwcT.mjs.map} +1 -1
  105. package/dist/{renderer-BI5rvAyo.mjs → renderer-C6u-XrH-.mjs} +3 -3
  106. package/dist/{renderer-BI5rvAyo.mjs.map → renderer-C6u-XrH-.mjs.map} +1 -1
  107. package/dist/{renderer-D2FFvxsq.mjs → renderer-CB87_0vL.mjs} +3 -3
  108. package/dist/{renderer-D2FFvxsq.mjs.map → renderer-CB87_0vL.mjs.map} +1 -1
  109. package/dist/{renderer-CAJe9eLS.mjs → renderer-CD38wGmN.mjs} +2 -2
  110. package/dist/{renderer-CAJe9eLS.mjs.map → renderer-CD38wGmN.mjs.map} +1 -1
  111. package/dist/{renderer-C92mwhZz.mjs → renderer-CGZqCmf2.mjs} +2 -2
  112. package/dist/{renderer-C92mwhZz.mjs.map → renderer-CGZqCmf2.mjs.map} +1 -1
  113. package/dist/{renderer-DqjITuT-.mjs → renderer-CHkqgIOL.mjs} +2 -2
  114. package/dist/{renderer-DqjITuT-.mjs.map → renderer-CHkqgIOL.mjs.map} +1 -1
  115. package/dist/{renderer-BXQQxeNC.mjs → renderer-CK0u3Psf.mjs} +3 -3
  116. package/dist/{renderer-BXQQxeNC.mjs.map → renderer-CK0u3Psf.mjs.map} +1 -1
  117. package/dist/renderer-CLW6tUUn.mjs +5 -0
  118. package/dist/{renderer-9L0p8IT3.mjs → renderer-CO4theVJ.mjs} +2 -2
  119. package/dist/{renderer-DoYdfDEA.mjs → renderer-CPW9o3Lc.mjs} +3 -3
  120. package/dist/{renderer-DoYdfDEA.mjs.map → renderer-CPW9o3Lc.mjs.map} +1 -1
  121. package/dist/renderer-CS-ojgJk.mjs +5 -0
  122. package/dist/{renderer-timEC0Gl.mjs → renderer-CSfLMXN8.mjs} +3 -3
  123. package/dist/{renderer-timEC0Gl.mjs.map → renderer-CSfLMXN8.mjs.map} +1 -1
  124. package/dist/{renderer-BygIYH8s.mjs → renderer-CSoyJ8GH.mjs} +2 -2
  125. package/dist/{renderer-BygIYH8s.mjs.map → renderer-CSoyJ8GH.mjs.map} +1 -1
  126. package/dist/renderer-CUQtKECw.mjs +5 -0
  127. package/dist/renderer-CV-l8wMq.mjs +5 -0
  128. package/dist/renderer-CV7_ALA5.mjs +5 -0
  129. package/dist/renderer-CVR6T6Lp.mjs +5 -0
  130. package/dist/{renderer-DkyXqrQ6.mjs → renderer-CZ9gHx-4.mjs} +2 -2
  131. package/dist/{renderer-DkyXqrQ6.mjs.map → renderer-CZ9gHx-4.mjs.map} +1 -1
  132. package/dist/{renderer-D0aZNkQE.mjs → renderer-CciB_sav.mjs} +3 -3
  133. package/dist/{renderer-D0aZNkQE.mjs.map → renderer-CciB_sav.mjs.map} +1 -1
  134. package/dist/{renderer-DX2qEJTL.mjs → renderer-CfR0GeQL.mjs} +246 -62
  135. package/dist/renderer-CfR0GeQL.mjs.map +1 -0
  136. package/dist/{renderer-BhhSyHKF.mjs → renderer-ClWgdN2v.mjs} +2 -2
  137. package/dist/renderer-CtUF95UW.mjs +5 -0
  138. package/dist/{renderer-D8-zNjyz.mjs → renderer-Cv1wmjhA.mjs} +2 -2
  139. package/dist/{renderer-D8-zNjyz.mjs.map → renderer-Cv1wmjhA.mjs.map} +1 -1
  140. package/dist/{renderer-DUhXH5Tz.mjs → renderer-Cxh7j423.mjs} +3 -3
  141. package/dist/{renderer-DUhXH5Tz.mjs.map → renderer-Cxh7j423.mjs.map} +1 -1
  142. package/dist/{renderer-C5caYAA3.mjs → renderer-D0enmulV.mjs} +2 -2
  143. package/dist/{renderer-C5caYAA3.mjs.map → renderer-D0enmulV.mjs.map} +1 -1
  144. package/dist/renderer-D8ymQoTB.mjs +5 -0
  145. package/dist/renderer-D9x3UE1Y.mjs +5 -0
  146. package/dist/renderer-DAEXqa2Q.mjs +5 -0
  147. package/dist/renderer-DDhU9Goq.mjs +5 -0
  148. package/dist/{renderer-BhKIZDsm.mjs → renderer-DEQ09sg7.mjs} +2 -2
  149. package/dist/{renderer-BhKIZDsm.mjs.map → renderer-DEQ09sg7.mjs.map} +1 -1
  150. package/dist/{renderer-DX8aBDqR.mjs → renderer-DRpIQFAK.mjs} +2 -2
  151. package/dist/{renderer-DX8aBDqR.mjs.map → renderer-DRpIQFAK.mjs.map} +1 -1
  152. package/dist/{renderer-CrAqu3Rg.mjs → renderer-DT3QVVht.mjs} +2 -2
  153. package/dist/{renderer-CrAqu3Rg.mjs.map → renderer-DT3QVVht.mjs.map} +1 -1
  154. package/dist/{renderer-C27RfwXN.mjs → renderer-DU3216cx.mjs} +3 -3
  155. package/dist/{renderer-C27RfwXN.mjs.map → renderer-DU3216cx.mjs.map} +1 -1
  156. package/dist/{renderer-Dy-DBU0X.mjs → renderer-DU6i7shO.mjs} +2 -2
  157. package/dist/{renderer-Dy-DBU0X.mjs.map → renderer-DU6i7shO.mjs.map} +1 -1
  158. package/dist/renderer-DcCKath2.mjs +5 -0
  159. package/dist/{renderer-C--Dqe-3.mjs → renderer-DfSRmz7q.mjs} +3 -3
  160. package/dist/{renderer-C--Dqe-3.mjs.map → renderer-DfSRmz7q.mjs.map} +1 -1
  161. package/dist/renderer-DiBphLzn.mjs +5 -0
  162. package/dist/renderer-Diq9Z7gZ.mjs +5 -0
  163. package/dist/renderer-DjZiO7iA.mjs +5 -0
  164. package/dist/{renderer-Bg7647VN.mjs → renderer-DkGODUgE.mjs} +3 -3
  165. package/dist/{renderer-Bg7647VN.mjs.map → renderer-DkGODUgE.mjs.map} +1 -1
  166. package/dist/{renderer-FHyZn0em.mjs → renderer-DlqDnh-8.mjs} +2 -2
  167. package/dist/{renderer-FHyZn0em.mjs.map → renderer-DlqDnh-8.mjs.map} +1 -1
  168. package/dist/{renderer-DYIPWN_B.mjs → renderer-Dnm_SVy6.mjs} +3 -3
  169. package/dist/{renderer-DYIPWN_B.mjs.map → renderer-Dnm_SVy6.mjs.map} +1 -1
  170. package/dist/{renderer-CzBQgGD2.mjs → renderer-DppnY7RT.mjs} +3 -3
  171. package/dist/{renderer-CzBQgGD2.mjs.map → renderer-DppnY7RT.mjs.map} +1 -1
  172. package/dist/{renderer-DVnVnS3c.mjs → renderer-DqhZTIiC.mjs} +2 -2
  173. package/dist/{renderer-DVnVnS3c.mjs.map → renderer-DqhZTIiC.mjs.map} +1 -1
  174. package/dist/renderer-Dtj6o-74.mjs +5 -0
  175. package/dist/renderer-Duaam6bJ.mjs +5 -0
  176. package/dist/{renderer-DZD2G76E.mjs → renderer-DwCg5pXn.mjs} +2 -2
  177. package/dist/{renderer-DZD2G76E.mjs.map → renderer-DwCg5pXn.mjs.map} +1 -1
  178. package/dist/{renderer-c4AorKyw.mjs → renderer-Dyh8c41v.mjs} +2 -2
  179. package/dist/renderer-FHqZe3K1.mjs +5 -0
  180. package/dist/renderer-FTKfOejk.mjs +5 -0
  181. package/dist/{renderer-_1xGBbxn.mjs → renderer-FgcNOe1R.mjs} +5 -5
  182. package/dist/{renderer-_1xGBbxn.mjs.map → renderer-FgcNOe1R.mjs.map} +1 -1
  183. package/dist/{renderer-Bb8T5eRX.mjs → renderer-L7UTxwZT.mjs} +2 -2
  184. package/dist/{renderer-Bb8T5eRX.mjs.map → renderer-L7UTxwZT.mjs.map} +1 -1
  185. package/dist/renderer-LmbkN82X.mjs +5 -0
  186. package/dist/{renderer-B1Zn91xt.mjs → renderer-PbJk25JW.mjs} +3 -3
  187. package/dist/{renderer-B1Zn91xt.mjs.map → renderer-PbJk25JW.mjs.map} +1 -1
  188. package/dist/renderer-SDspl6p-.mjs +5 -0
  189. package/dist/renderer-SWVUDypd.mjs +5 -0
  190. package/dist/renderer-WhpTBwDM.mjs +5 -0
  191. package/dist/renderer-WrpQEVdv.mjs +5 -0
  192. package/dist/{renderer-CMsjnZ0G.mjs → renderer-dj3f8cMg.mjs} +3 -3
  193. package/dist/{renderer-CMsjnZ0G.mjs.map → renderer-dj3f8cMg.mjs.map} +1 -1
  194. package/dist/{renderer-DWEvQ-hQ.mjs → renderer-dwTzrQ2G.mjs} +3 -3
  195. package/dist/{renderer-DWEvQ-hQ.mjs.map → renderer-dwTzrQ2G.mjs.map} +1 -1
  196. package/dist/{renderer-C5zpaQed.mjs → renderer-egZPy7vq.mjs} +2 -2
  197. package/dist/{renderer-C5zpaQed.mjs.map → renderer-egZPy7vq.mjs.map} +1 -1
  198. package/dist/{renderer-DKqG9Lek.mjs → renderer-gwV6hyYm.mjs} +2 -2
  199. package/dist/{renderer-DKqG9Lek.mjs.map → renderer-gwV6hyYm.mjs.map} +1 -1
  200. package/dist/{renderer-BaaOR3Ao.mjs → renderer-lXmtdrdI.mjs} +2 -2
  201. package/dist/{renderer-BaaOR3Ao.mjs.map → renderer-lXmtdrdI.mjs.map} +1 -1
  202. package/dist/{renderer-Da06_9FZ.mjs → renderer-n2kYIGtb.mjs} +2 -2
  203. package/dist/{renderer-Da06_9FZ.mjs.map → renderer-n2kYIGtb.mjs.map} +1 -1
  204. package/dist/renderer-r4ney0FZ.mjs +5 -0
  205. package/dist/{renderer-DDqwds9R.mjs → renderer-sHDPBywo.mjs} +2 -2
  206. package/dist/{renderer-DDqwds9R.mjs.map → renderer-sHDPBywo.mjs.map} +1 -1
  207. package/dist/{renderer-DGtBOdst.mjs → renderer-scbJx-Dx.mjs} +2 -2
  208. package/dist/{renderers-CP8CFWDs-CMYe4kvZ.mjs → renderers-CP8CFWDs-B8HIr3kj.mjs} +2 -2
  209. package/dist/{renderers-CP8CFWDs-CMYe4kvZ.mjs.map → renderers-CP8CFWDs-B8HIr3kj.mjs.map} +1 -1
  210. package/dist/signals/index.d.mts +5 -5
  211. package/dist/signals/index.mjs +4 -4
  212. package/package.json +55 -55
  213. package/dist/dist-Bb8BoMiw.mjs.map +0 -1
  214. package/dist/dist-DkuDAIrG.mjs.map +0 -1
  215. package/dist/fonts-CZMYtbP7.mjs.map +0 -1
  216. package/dist/index-Cpkzy5XR.d.mts.map +0 -1
  217. package/dist/index-DpWia6iH.d.mts.map +0 -1
  218. package/dist/preview-engine/chunk-7EPDVSCL.mjs +0 -1
  219. package/dist/preview-engine/chunk-B43Z3J7J.mjs +0 -5
  220. package/dist/preview-engine/chunk-CYY366IE.mjs +0 -1
  221. package/dist/preview-engine/chunk-LGVEFPOG.mjs +0 -3
  222. package/dist/preview-engine/chunk-PNB3ERR3.mjs +0 -1
  223. package/dist/renderer-1VSi7Vum.mjs +0 -5
  224. package/dist/renderer-4BlpUHQT.mjs +0 -5
  225. package/dist/renderer-AzSX2-mZ.mjs +0 -5
  226. package/dist/renderer-B-cxK24t.mjs +0 -5
  227. package/dist/renderer-B5d5oM_D.mjs +0 -5
  228. package/dist/renderer-B8BdNjaN.mjs +0 -5
  229. package/dist/renderer-BKEfeg-4.mjs +0 -5
  230. package/dist/renderer-BLLOkeFB.mjs +0 -5
  231. package/dist/renderer-BTvov1NH.mjs +0 -5
  232. package/dist/renderer-BVun05IK.mjs +0 -5
  233. package/dist/renderer-B_3h5nhy.mjs +0 -5
  234. package/dist/renderer-BaZjoFYK.mjs +0 -5
  235. package/dist/renderer-BcApaCVe.mjs +0 -5
  236. package/dist/renderer-C14mKYCw.mjs +0 -5
  237. package/dist/renderer-CFqhAXkH.mjs +0 -5
  238. package/dist/renderer-CK-spD4j.mjs +0 -5
  239. package/dist/renderer-CLLzQTIk.mjs +0 -5
  240. package/dist/renderer-COwa6xlF.mjs +0 -5
  241. package/dist/renderer-CQPuuoVf.mjs +0 -6
  242. package/dist/renderer-CRd-cDqZ.mjs +0 -5
  243. package/dist/renderer-CTVnQAUm.mjs +0 -5
  244. package/dist/renderer-CbiEBSGx.mjs +0 -5
  245. package/dist/renderer-Cl7PruQ1.mjs +0 -5
  246. package/dist/renderer-CmuGGUDR.mjs +0 -5
  247. package/dist/renderer-CoNRrfqx.mjs +0 -5
  248. package/dist/renderer-CvIGa0mE.mjs +0 -5
  249. package/dist/renderer-CwMDPv0p.mjs +0 -5
  250. package/dist/renderer-DOHbhGPu.mjs +0 -5
  251. package/dist/renderer-DOmA6IKc.mjs +0 -5
  252. package/dist/renderer-DX2qEJTL.mjs.map +0 -1
  253. package/dist/renderer-DmCWc4JL.mjs +0 -5
  254. package/dist/renderer-OLaYikwi.mjs +0 -5
  255. package/dist/renderer-Q75RC5Uz.mjs +0 -5
  256. package/dist/renderer-T0LJ4Po3.mjs +0 -5
  257. package/dist/renderer-VuXt1hfq.mjs +0 -5
  258. package/dist/renderer-hY_2WLt3.mjs +0 -5
  259. package/dist/renderer-y4EqE06a.mjs +0 -5
@@ -0,0 +1,5 @@
1
+ import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-RQLMW6MA.mjs";import{d as at}from"./chunk-6YJP57MZ.mjs";import{c as st,d as ct,e as B,r as be}from"./chunk-LQENNFBA.mjs";import{a as de}from"./chunk-IQC2I5A5.mjs";import{d as Ge}from"./chunk-HYBAPT6I.mjs";import{d as Re,e as we}from"./chunk-BVF64D6H.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function We(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(We(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(We(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(We(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(We(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(We(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=B.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),B.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),B.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,Fe=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-Fe)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(B.isFailed(i)&&(i="Inter"),B.isFailed(i))return;let r=e.fontSize??48,c=B.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=B.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);B.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=B.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),Fe=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(Fe=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:Fe,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let W of I){let O=x.glyphs[W].charIndex,$=T.get(O);$?$.push(W):T.set(O,[W])}let M=Array.from(T.values()),g=W=>{let O=x.glyphs[W[0]];return O.clusterX??O.x};M.sort((W,O)=>g(W)-g(O));let _=[];for(let W of M){let O=x.glyphs[W[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let W=0;W<M.length-1;W++)G+=y*_[W];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let W=0;W<M.length;W++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[W])xe[$]+=O;W<M.length-1&&(N+=y*_[W])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,W=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:F,p_out:E}=je(z,K,ae,ne,W,q,!0),L=_e(F,E,f,ie,l,te,z,K,ae,ne,W,e.opacity??1,!1);if(!L.visible)continue;O=L.opacity,$=L.transX,J=L.transY,se=L.rot,V=L.scale,I===void 0&&(Ce=L.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let F=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=F.transX,J=F.transY,se=F.rot,V=F.scale,Me=F.scaleX,Ue=F.scaleY,O=F.opacity,I===void 0&&(Ce=F.blurAmount),F.color&&(tt=F.color),F.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,F.lineSpacing,F.lineAnchor??0)),De=F.transZ??0,nt=F.chromaticShift??0,it=F.dissolveProgress??0,ot=F.vfxParam??0,Ne=F.skewM01??0,Le=F.skewM10??0,Be=F.anchorConfig,rt=F.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let F=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,F)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Wt=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Wt??D);(F=>{let E=_*24,L=p.fontScale??r/o.unitsPerEm,Ie=R.width*L/2*Me,Ae=R.height*L/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*L+Ie,ce=-R.bearingY*L+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+F,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*L+Ie+e.dstRect.x+a+y+F,Te=p.y-R.bearingY*L+Ae+re.y+a+S;if(Be){let ve={width:R.width*L,height:R.height*L,ascender:(o.ascender??800)*L,descender:(o.descender??-200)*L},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Ft=p.opacity??1;g[E+19]=Ye.a*O*rt*Ft,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),W=G/M,O=(s.startOpacity??.8)*(1-W)+(s.endOpacity??0)*W,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&B.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.5,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,W=R.x+G/2,O=R.y+G/2;N=N.translate(W,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-W,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
2
+ `).split(`
3
+ `),e=[];for(let i=0;i<n.length;i++){let r=n[i],c=n[i+1];if(r?.match(/([0-9]+)/)&&c?.includes(" --> ")){let d=c.split(" --> "),u=Tt(d[0]),m=Tt(d[1]);e.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?e.length>0&&(e[e.length-1].text=e[e.length-1].text.trim()):e.length>0&&(e[e.length-1].text+=r+`
4
+ `))}return{captions:e.map(i=>({...i,text:i.text.trimEnd()}))}}function Dt(t,n,e=!0){if(!t||t.length===0)return null;let i=t.find(r=>n>=r.startMs&&n<r.endMs);return i||(!e&&t.length>0?t[0]:null)}function un(t,n,e){if(!t||t.length===0)return 160;let i=n.fontSize??48,r=n.letterSpacing??0,c=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*i:n.lineHeight??i*1.2,d=n.padding??(n.background?12:0),u=e?Math.max(10,e-d*2):void 0,m=n.fontFamily??"Inter";B.isFailed(m)&&(m="Inter");let C=B.getFont(m,n.fontWeight,null,void 0,i),h=0;for(let k of t){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=be.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`
5
+ `),v=0;for(let X of w)if(u){let j=X.length*i*.55+r*X.length,P=Math.max(1,Math.ceil(j/u));v+=P}else v+=1;a=Math.ceil(v*c)}let A=a+d*2;A>h&&(h=A)}return Math.max(20,h||160)}var Ze=class{cache=new Map;resolvedCache=new Map;getCached(n){return this.resolvedCache.get(n)}setCached(n,e){this.resolvedCache.set(n,e)}clear(){this.cache.clear(),this.resolvedCache.clear()}async load(n){if(!n)return[];let e=this.resolvedCache.get(n);if(e)return e;let i=this.cache.get(n);return i||(i=(async()=>{let r="";if(n.startsWith("data:")){let d=n.indexOf(",");if(d!==-1){let u=n.substring(0,d),m=n.substring(d+1);r=u.includes(";base64")?typeof Buffer<"u"?Buffer.from(m,"base64").toString("utf-8"):new TextDecoder().decode(Uint8Array.from(atob(m),h=>h.charCodeAt(0))):decodeURIComponent(m)}}else if(n.includes("-->"))r=n;else if(n.startsWith("http://")||n.startsWith("https://")){let d=await fetch(n);if(!d.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await d.text()}else{let d=n;if(d.startsWith("file://"))try{d=new URL(d).pathname}catch{d=d.replace(/^file:\/\//,"")}if(typeof Re<"u"&&Re.versions?.node)try{r=await(await import("./shims/fs-promises.mjs")).readFile(d,"utf-8")}catch{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}else{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}}let c=Ut(r).captions;return this.resolvedCache.set(n,c),c})(),this.cache.set(n,i),i.catch(()=>{this.cache.delete(n),this.resolvedCache.delete(n)})),i}},Nt=new Ze;async function dn(t,n,e){if(!e.src)return;let i=await Nt.load(e.src);if(!i||i.length===0)return;let r=e.frame/e.fps*1e3,c=Dt(i,r,e.isVideoMode!==!1);if(!c)return;let d=c.text,u=e.dstRect.width,m=e.padding??(e.textBackgroundColor?12:0),C=Math.max(10,u-m*2),h=e.maxWidth!==void 0?Math.min(e.maxWidth,C):C,k=e.fontSize??48,a=e.fontFamily??"Inter";if(B.isFailed(a)&&(a="Inter"),B.isFailed(a))return;let A=e.letterSpacing??0,w=B.getFont(a,e.fontWeight,t.device,void 0,k);if(!w||!w.curvesTex){let z=Ge(a);B.preloadSlugFont(t.device,a,z,void 0,e.renderId).catch(K=>{console.warn(`[drawCaptionNode] Failed to load Slug font for ${a}:`,K)});return}let v=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*k:e.lineHeight??k*1.2,X=be.measure(d,w,k,A,v,h,void 0,e.direction),j=X.width,P=X.height,H=j+m*2,ee=P+m*2,oe=e.align??"center",x=X.layout?.glyphs[0]?.baseRtl??e.direction==="rtl",fe=oe==="start"?x?"right":"left":oe==="end"?x?"left":"right":oe,le=0;fe==="center"?le=Math.max(0,(u-H)/2):fe==="right"&&(le=Math.max(0,u-H));let re=e.dstRect.height,U=e.verticalAlign??e.textAlignVertical??"bottom",ue=0;U==="top"?ue=0:U==="middle"?ue=(re-ee)/2:ue=re-ee;let he={x:e.dstRect.x+le,y:e.dstRect.y+ue,width:H,height:ee},Z=e.opacity??1;if(e.textBackgroundColor){let z=e.strokeRadius??e.borderRadius??8;t.renderer.drawRRect(n,{rect:he,rx:z,ry:z},e.textBackgroundColor,{opacity:Z})}let me={x:he.x+m,y:he.y+m,width:j,height:P};pt(t,n,{...e,text:d,dstRect:me,width:h,height:P,align:oe,opacity:Z,isCaption:!0,animation:void 0,textBackgroundColor:void 0})}export{Ct as a,zt as b,Mt as c,pt as d,un as e,Nt as f,dn as g};
@@ -1 +1 @@
1
- import{a as l}from"./chunk-BWJS6G7R.mjs";import{b as w}from"./chunk-HYBAPT6I.mjs";import{d as u,e as p}from"./chunk-BVF64D6H.mjs";p();var g=null,i=new Map,b=new Set,c=new Map,F=new Map;async function v(e,r){let t=r;if(r.startsWith("/"))if(w)t=`${w}${r}`;else{let s=await import("./shims/fs-promises.mjs");try{await s.access(r)}catch{throw new Error(`Relative font URL "${r}" cannot be resolved because BASE_URL is not configured.`)}}if(i.has(t))return i.get(t);if(t.startsWith("file://"))try{let s=new URL(t).pathname;return u.platform==="win32"&&s.startsWith("/")&&(s=s.slice(1)),i.set(t,s),s}catch{let s=t.replace(/^file:\/\//,"");return i.set(t,s),s}if(!t.startsWith("http://")&&!t.startsWith("https://"))return t;let n=await import("./shims/fs-promises.mjs"),a=await import("./shims/path.mjs"),o=await import("./shims/os.mjs");g||(g=a.join(o.tmpdir(),"gatewai-fonts"),await n.mkdir(g,{recursive:!0}).catch(()=>{}));let $=e.replace(/[^a-zA-Z0-9_-]/g,"_"),m=new URL(t),f=a.extname(m.pathname);(!f||f.length>5)&&(f=".ttf");let d=a.join(g,`${$}-${Date.now()}${f}`),h=await fetch(t);if(!h.ok)throw new Error(`Failed to fetch font from ${t}: ${h.statusText}`);let P=await h.arrayBuffer();return await n.writeFile(d,Buffer.from(P)),i.set(t,d),d}async function U(e,r){if(c.has(e))return c.get(e);let t=globalThis;try{let n=await v(e,r);c.set(e,n),l(n===r?`[registerHeadlessFont] Registered "${e}" from ${n}`:`[registerHeadlessFont] Registered "${e}" from ${r} (cached at ${n})`);try{t.OffscreenCanvas&&typeof t.OffscreenCanvas.registerFont=="function"&&(t.OffscreenCanvas.registerFont(n,{family:e}),b.add(e))}catch(a){console.warn(`[registerHeadlessFont] SkiaCanvas registration failed for "${e}" (non-fatal):`,a)}return n}catch(n){console.warn(`[registerHeadlessFont] Failed to download font "${e}" from ${r}:`,n)}}function C(e){return c.get(e)}async function L(e){let r=F.get(e);if(r)return r;let t=c.get(e);if(t)try{let a=await(await import("./shims/fs-promises.mjs")).readFile(t),o=new Uint8Array(a.length);return o.set(a),l(`[getHeadlessFontData] Read local font binary for "${e}" from: ${t} (${o.length} bytes)`),F.set(e,o),o}catch(n){console.warn(`[getHeadlessFontData] Failed to read font file from ${t}:`,n)}}export{U as a,C as b,L as c};
1
+ import{a as l}from"./chunk-LQENNFBA.mjs";import{b as w}from"./chunk-HYBAPT6I.mjs";import{d as u,e as p}from"./chunk-BVF64D6H.mjs";p();var g=null,i=new Map,b=new Set,c=new Map,F=new Map;async function v(e,r){let t=r;if(r.startsWith("/"))if(w)t=`${w}${r}`;else{let s=await import("./shims/fs-promises.mjs");try{await s.access(r)}catch{throw new Error(`Relative font URL "${r}" cannot be resolved because BASE_URL is not configured.`)}}if(i.has(t))return i.get(t);if(t.startsWith("file://"))try{let s=new URL(t).pathname;return u.platform==="win32"&&s.startsWith("/")&&(s=s.slice(1)),i.set(t,s),s}catch{let s=t.replace(/^file:\/\//,"");return i.set(t,s),s}if(!t.startsWith("http://")&&!t.startsWith("https://"))return t;let n=await import("./shims/fs-promises.mjs"),a=await import("./shims/path.mjs"),o=await import("./shims/os.mjs");g||(g=a.join(o.tmpdir(),"gatewai-fonts"),await n.mkdir(g,{recursive:!0}).catch(()=>{}));let $=e.replace(/[^a-zA-Z0-9_-]/g,"_"),m=new URL(t),f=a.extname(m.pathname);(!f||f.length>5)&&(f=".ttf");let d=a.join(g,`${$}-${Date.now()}${f}`),h=await fetch(t);if(!h.ok)throw new Error(`Failed to fetch font from ${t}: ${h.statusText}`);let P=await h.arrayBuffer();return await n.writeFile(d,Buffer.from(P)),i.set(t,d),d}async function U(e,r){if(c.has(e))return c.get(e);let t=globalThis;try{let n=await v(e,r);c.set(e,n),l(n===r?`[registerHeadlessFont] Registered "${e}" from ${n}`:`[registerHeadlessFont] Registered "${e}" from ${r} (cached at ${n})`);try{t.OffscreenCanvas&&typeof t.OffscreenCanvas.registerFont=="function"&&(t.OffscreenCanvas.registerFont(n,{family:e}),b.add(e))}catch(a){console.warn(`[registerHeadlessFont] SkiaCanvas registration failed for "${e}" (non-fatal):`,a)}return n}catch(n){console.warn(`[registerHeadlessFont] Failed to download font "${e}" from ${r}:`,n)}}function C(e){return c.get(e)}async function L(e){let r=F.get(e);if(r)return r;let t=c.get(e);if(t)try{let a=await(await import("./shims/fs-promises.mjs")).readFile(t),o=new Uint8Array(a.length);return o.set(a),l(`[getHeadlessFontData] Read local font binary for "${e}" from: ${t} (${o.length} bytes)`),F.set(e,o),o}catch(n){console.warn(`[getHeadlessFontData] Failed to read font file from ${t}:`,n)}}export{U as a,C as b,L as c};
@@ -1,4 +1,4 @@
1
- import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Ut,p as C,q as T,r as Mt}from"./chunk-RQLMW6MA.mjs";import{c as yt,d as xt,e as $}from"./chunk-VRGREB3V.mjs";import{a as St,b as it,d as wt,e as A}from"./chunk-ZIIFTWDH.mjs";import{a as vt,b as bt}from"./chunk-E4RAFHZM.mjs";import{e as O,s as G,t as M,v as Gt}from"./chunk-BWJS6G7R.mjs";import{a as D,b as gt}from"./chunk-IQC2I5A5.mjs";import{d as Pt}from"./chunk-HYBAPT6I.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var E=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await A.acquire(this.url);this.destroyed?A.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(A.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},st=class extends E{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new St(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,c=a*o*4,l=this.decodeBuffer;return(!l||l.length!==c)&&(l=new Uint8Array(c),this.decodeBuffer=l),await s.copyTo(l,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(l),{width:a,height:o,buffer:l})}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new it(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new it(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},nt=class extends E{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new wt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},at=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new st(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new nt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},te=new at;x();x();var Bt=`
1
+ import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Ut,p as C,q as T,r as Mt}from"./chunk-RQLMW6MA.mjs";import{c as yt,d as xt,e as $}from"./chunk-VRGREB3V.mjs";import{a as St,b as it,d as wt,e as A}from"./chunk-XETMNJVV.mjs";import{a as vt,b as bt}from"./chunk-ATLWPS6N.mjs";import{e as O,s as G,t as M,v as Gt}from"./chunk-LQENNFBA.mjs";import{a as D,b as gt}from"./chunk-IQC2I5A5.mjs";import{d as Pt}from"./chunk-HYBAPT6I.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var E=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await A.acquire(this.url);this.destroyed?A.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(A.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},st=class extends E{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new St(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,c=a*o*4,l=this.decodeBuffer;return(!l||l.length!==c)&&(l=new Uint8Array(c),this.decodeBuffer=l),await s.copyTo(l,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(l),{width:a,height:o,buffer:l})}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new it(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new it(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},nt=class extends E{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new wt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},at=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new st(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new nt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},te=new at;x();x();var Bt=`
2
2
  struct CompositeUniforms {
3
3
  blendMode : u32,
4
4
  padding1 : u32,
@@ -0,0 +1 @@
1
+ import{c as b}from"./chunk-VUFDQJ2B.mjs";import{a as l}from"./chunk-2W4BMOAZ.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{k as n}from"./chunk-63SFBHEH.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};