framefields 2.3.0 → 2.3.2

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 (344) hide show
  1. package/dist/audio/index.mjs +10 -10
  2. package/dist/{audio-ChRqnFwB.mjs → audio-C7Kn5xBm.mjs} +3 -3
  3. package/dist/{audio-ChRqnFwB.mjs.map → audio-C7Kn5xBm.mjs.map} +1 -1
  4. package/dist/{dist-t-NLlnhM.mjs → dist-CPUIfrtw.mjs} +2 -2
  5. package/dist/{dist-t-NLlnhM.mjs.map → dist-CPUIfrtw.mjs.map} +1 -1
  6. package/dist/{dist-PwT_Vmax.mjs → dist-CturBK2Z.mjs} +245 -91
  7. package/dist/dist-CturBK2Z.mjs.map +1 -0
  8. package/dist/effects/index.mjs +34 -34
  9. package/dist/{effects-Duoqc_Oa.mjs → effects-CW1VgdI5.mjs} +2 -2
  10. package/dist/{effects-Duoqc_Oa.mjs.map → effects-CW1VgdI5.mjs.map} +1 -1
  11. package/dist/fonts/index.mjs +2 -2
  12. package/dist/{fonts-CgNmeFXh.mjs → fonts-EgMNL8KE.mjs} +2 -2
  13. package/dist/{fonts-CgNmeFXh.mjs.map → fonts-EgMNL8KE.mjs.map} +1 -1
  14. package/dist/{gpu-1ZpAuQOR.mjs → gpu-CN14e7Bi.mjs} +2 -2
  15. package/dist/{gpu-1ZpAuQOR.mjs.map → gpu-CN14e7Bi.mjs.map} +1 -1
  16. package/dist/index-AdrZIWT0.d.mts.map +1 -1
  17. package/dist/index-CeRv1KC0.d.mts.map +1 -1
  18. package/dist/index.mjs +48 -48
  19. package/dist/preview/index.mjs +10 -10
  20. package/dist/{preview-CArsjmkd.mjs → preview-1sjnhHQL.mjs} +2 -2
  21. package/dist/{preview-CArsjmkd.mjs.map → preview-1sjnhHQL.mjs.map} +1 -1
  22. package/dist/preview-engine/audio.mjs +1 -1
  23. package/dist/preview-engine/{chunk-VO2R3DWV.mjs → chunk-44CQSOYE.mjs} +1 -1
  24. package/dist/preview-engine/{chunk-FNE22WGA.mjs → chunk-6AEU4DC7.mjs} +4 -4
  25. package/dist/preview-engine/{chunk-PR2BUYCL.mjs → chunk-7G3XIOP7.mjs} +1 -1
  26. package/dist/preview-engine/{chunk-AXQZX3TC.mjs → chunk-AY7UX37L.mjs} +1 -1
  27. package/dist/preview-engine/{chunk-FPRXK2WD.mjs → chunk-DIGIQ5MJ.mjs} +1 -1
  28. package/dist/preview-engine/{chunk-K773AOF3.mjs → chunk-EVXWDOCL.mjs} +1 -1
  29. package/dist/preview-engine/{chunk-ZNL4W4DK.mjs → chunk-EYWPOCZW.mjs} +1 -1
  30. package/dist/preview-engine/{chunk-WSIURGP2.mjs → chunk-HE4R7EZM.mjs} +1 -1
  31. package/dist/preview-engine/{chunk-L3CHEZMZ.mjs → chunk-IR5DNNWR.mjs} +1 -1
  32. package/dist/preview-engine/{chunk-2MZXSWVT.mjs → chunk-JXNG2ACR.mjs} +1 -1
  33. package/dist/preview-engine/{chunk-O2RNIQXT.mjs → chunk-L6BH5J4P.mjs} +1 -1
  34. package/dist/preview-engine/{chunk-BVA5NGSH.mjs → chunk-M5HZPZHQ.mjs} +1 -1
  35. package/dist/preview-engine/{chunk-PFA427ZC.mjs → chunk-MLY5M7Y5.mjs} +1 -1
  36. package/dist/preview-engine/{chunk-ZH5MZQTZ.mjs → chunk-OG62XGCT.mjs} +1 -1
  37. package/dist/preview-engine/{chunk-LBRVQ4GE.mjs → chunk-PSRQA3QW.mjs} +1 -1
  38. package/dist/preview-engine/{chunk-3UPI4EPV.mjs → chunk-Q22PJXFJ.mjs} +1 -1
  39. package/dist/preview-engine/{chunk-E3HC4GRQ.mjs → chunk-T2FE5VOW.mjs} +1 -1
  40. package/dist/preview-engine/{chunk-Q2DPNVIA.mjs → chunk-TS3JI3BH.mjs} +1 -1
  41. package/dist/preview-engine/{chunk-NEE3KQTX.mjs → chunk-U4JIFQRR.mjs} +1 -1
  42. package/dist/preview-engine/{chunk-DLAHSLNX.mjs → chunk-U7NIY7UC.mjs} +14 -14
  43. package/dist/preview-engine/{chunk-BQY4BUMN.mjs → chunk-VGZZSPDN.mjs} +1 -1
  44. package/dist/preview-engine/{chunk-TPAEN6VV.mjs → chunk-VK2CVMWJ.mjs} +1 -1
  45. package/dist/preview-engine/effects.mjs +1 -1
  46. package/dist/preview-engine/framefields.mjs +3 -3
  47. package/dist/preview-engine/player.mjs +5 -5
  48. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -1
  49. package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
  50. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -1
  51. package/dist/preview-engine/{renderers-P4S7GL64.mjs → renderers-2VN3AH45.mjs} +1 -1
  52. package/dist/preview-engine/{renderers-LLUEOW5T.mjs → renderers-3GHEWWVX.mjs} +1 -1
  53. package/dist/preview-engine/renderers-3SRG77SC.mjs +1 -1
  54. package/dist/preview-engine/{renderers-YNFKFM7D.mjs → renderers-3YCJOINH.mjs} +1 -1
  55. package/dist/preview-engine/{renderers-WP67KK5K.mjs → renderers-4GRVAW2W.mjs} +1 -1
  56. package/dist/preview-engine/{renderers-BGGRPAVV.mjs → renderers-5FQA2DP4.mjs} +1 -1
  57. package/dist/preview-engine/{renderers-FGHOLJJK.mjs → renderers-5YEIUTVN.mjs} +1 -1
  58. package/dist/preview-engine/{renderers-JLFGBYN4.mjs → renderers-6CG7DBTB.mjs} +1 -1
  59. package/dist/preview-engine/{renderers-O2DZPBOJ.mjs → renderers-6OGFUSH6.mjs} +1 -1
  60. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -1
  61. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -1
  62. package/dist/preview-engine/{renderers-7JTNJE7M.mjs → renderers-A6HM64UZ.mjs} +1 -1
  63. package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
  64. package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
  65. package/dist/preview-engine/{renderers-XCMVZ2XG.mjs → renderers-BSKZXITT.mjs} +1 -1
  66. package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
  67. package/dist/preview-engine/{renderers-LVDUZZ75.mjs → renderers-CRRLV7IO.mjs} +1 -1
  68. package/dist/preview-engine/{renderers-TFZST6WW.mjs → renderers-D6T6IPER.mjs} +1 -1
  69. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -1
  70. package/dist/preview-engine/{renderers-6ODPWZ2R.mjs → renderers-E76OKK66.mjs} +1 -1
  71. package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
  72. package/dist/preview-engine/{renderers-7NCG6BYS.mjs → renderers-EJWPVVQR.mjs} +1 -1
  73. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -1
  74. package/dist/preview-engine/renderers-HUW2ZMS3.mjs +1 -1
  75. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -1
  76. package/dist/preview-engine/{renderers-ZSENYGIY.mjs → renderers-I5E2RSV4.mjs} +1 -1
  77. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -1
  78. package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
  79. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -1
  80. package/dist/preview-engine/{renderers-FQWWAETX.mjs → renderers-MCECHPCL.mjs} +1 -1
  81. package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
  82. package/dist/preview-engine/{renderers-UJ4YVJZT.mjs → renderers-N7FR54V2.mjs} +1 -1
  83. package/dist/preview-engine/{renderers-PVYP2ONH.mjs → renderers-N7TS5562.mjs} +1 -1
  84. package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
  85. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -1
  86. package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
  87. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -1
  88. package/dist/preview-engine/{renderers-WHBDHTRI.mjs → renderers-PYWXELLG.mjs} +1 -1
  89. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -1
  90. package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
  91. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -1
  92. package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
  93. package/dist/preview-engine/{renderers-D2EJULOJ.mjs → renderers-RLHTNLRE.mjs} +1 -1
  94. package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
  95. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -1
  96. package/dist/preview-engine/{renderers-HMR2NAD7.mjs → renderers-TR2V2HZ2.mjs} +1 -1
  97. package/dist/preview-engine/{renderers-UPKB5OLS.mjs → renderers-U6KY34TP.mjs} +1 -1
  98. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -1
  99. package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
  100. package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
  101. package/dist/preview-engine/{renderers-527ONFIA.mjs → renderers-WP2LBR5U.mjs} +1 -1
  102. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -1
  103. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -1
  104. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -1
  105. package/dist/preview-engine/{renderers-DN2GF3I7.mjs → renderers-YMPXGYRU.mjs} +1 -1
  106. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -1
  107. package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
  108. package/dist/preview-engine/{renderers-TPBPNXWH.mjs → renderers-ZHZMGMLN.mjs} +1 -1
  109. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -1
  110. package/dist/preview-engine/signals.mjs +1 -1
  111. package/dist/{program-Dd9tJFkY.mjs → program-DtiNMTxO.mjs} +2 -2
  112. package/dist/{program-Dd9tJFkY.mjs.map → program-DtiNMTxO.mjs.map} +1 -1
  113. package/dist/renderer/index.mjs +2 -2
  114. package/dist/{renderer-7OvgLE8w.mjs → renderer--Da6pAJ4.mjs} +2 -2
  115. package/dist/{renderer-yGAk7J9P.mjs → renderer--S2cNYXS.mjs} +3 -3
  116. package/dist/{renderer-yGAk7J9P.mjs.map → renderer--S2cNYXS.mjs.map} +1 -1
  117. package/dist/renderer-1hypa-l7.mjs +5 -0
  118. package/dist/renderer-6D8M4DRu.mjs +5 -0
  119. package/dist/{renderer-257LxOyx.mjs → renderer-6QAlE1Mp.mjs} +3 -3
  120. package/dist/{renderer-257LxOyx.mjs.map → renderer-6QAlE1Mp.mjs.map} +1 -1
  121. package/dist/{renderer-C-Qj0BnT.mjs → renderer-8k-TR_Cy.mjs} +3 -3
  122. package/dist/{renderer-C-Qj0BnT.mjs.map → renderer-8k-TR_Cy.mjs.map} +1 -1
  123. package/dist/renderer-APrj6tdP.mjs +5 -0
  124. package/dist/{renderer-CKpwEo1w.mjs → renderer-B3x-uogM.mjs} +3 -3
  125. package/dist/{renderer-CKpwEo1w.mjs.map → renderer-B3x-uogM.mjs.map} +1 -1
  126. package/dist/{renderer-C4tUATd_.mjs → renderer-B48vtpou.mjs} +3 -3
  127. package/dist/{renderer-C4tUATd_.mjs.map → renderer-B48vtpou.mjs.map} +1 -1
  128. package/dist/{renderer-aCDIEYb3.mjs → renderer-B5Icb0XW.mjs} +2 -2
  129. package/dist/{renderer-aCDIEYb3.mjs.map → renderer-B5Icb0XW.mjs.map} +1 -1
  130. package/dist/{renderer-2BnBo6CX.mjs → renderer-B6c_Rk_2.mjs} +3 -3
  131. package/dist/{renderer-2BnBo6CX.mjs.map → renderer-B6c_Rk_2.mjs.map} +1 -1
  132. package/dist/{renderer-CS-goRD3.mjs → renderer-BAmGO6Hj.mjs} +3 -3
  133. package/dist/{renderer-CS-goRD3.mjs.map → renderer-BAmGO6Hj.mjs.map} +1 -1
  134. package/dist/renderer-BF8wlbN1.mjs +5 -0
  135. package/dist/{renderer-CxP2e6Ov.mjs → renderer-BFHgl-0f.mjs} +2 -2
  136. package/dist/{renderer-CxP2e6Ov.mjs.map → renderer-BFHgl-0f.mjs.map} +1 -1
  137. package/dist/{renderer-D0xLIq1r.mjs → renderer-BI1nmIqA.mjs} +3 -3
  138. package/dist/{renderer-D0xLIq1r.mjs.map → renderer-BI1nmIqA.mjs.map} +1 -1
  139. package/dist/renderer-BOUcMCJB.mjs +5 -0
  140. package/dist/{renderer-D1T7A3NF.mjs → renderer-BRWpn3dT.mjs} +3 -3
  141. package/dist/{renderer-D1T7A3NF.mjs.map → renderer-BRWpn3dT.mjs.map} +1 -1
  142. package/dist/renderer-BSwn6KmG.mjs +5 -0
  143. package/dist/renderer-BUxvuC5A.mjs +5 -0
  144. package/dist/{renderer-72A4SvOE.mjs → renderer-BXCZev4l.mjs} +3 -3
  145. package/dist/{renderer-72A4SvOE.mjs.map → renderer-BXCZev4l.mjs.map} +1 -1
  146. package/dist/renderer-BYOsmJ8F.mjs +5 -0
  147. package/dist/{renderer-D1MOTlWS.mjs → renderer-BYj8x8YM.mjs} +2 -2
  148. package/dist/{renderer-D1MOTlWS.mjs.map → renderer-BYj8x8YM.mjs.map} +1 -1
  149. package/dist/{renderer-UT0CcmMZ.mjs → renderer-BaOC1Pd1.mjs} +3 -3
  150. package/dist/{renderer-UT0CcmMZ.mjs.map → renderer-BaOC1Pd1.mjs.map} +1 -1
  151. package/dist/{renderer-BY08hHFS.mjs → renderer-BebePsG7.mjs} +2 -2
  152. package/dist/{renderer-BY08hHFS.mjs.map → renderer-BebePsG7.mjs.map} +1 -1
  153. package/dist/{renderer-DzOzVxNS.mjs → renderer-Bf4BdBtb.mjs} +2 -2
  154. package/dist/{renderer-DzOzVxNS.mjs.map → renderer-Bf4BdBtb.mjs.map} +1 -1
  155. package/dist/{renderer-zQIB2VZZ.mjs → renderer-BkXqFmNO.mjs} +2 -2
  156. package/dist/{renderer-zQIB2VZZ.mjs.map → renderer-BkXqFmNO.mjs.map} +1 -1
  157. package/dist/{renderer-YyEBKPcE.mjs → renderer-BlafvK-L.mjs} +2 -2
  158. package/dist/{renderer-OxafT7Xm.mjs → renderer-BmWH4dK1.mjs} +5 -5
  159. package/dist/{renderer-OxafT7Xm.mjs.map → renderer-BmWH4dK1.mjs.map} +1 -1
  160. package/dist/renderer-Bp7LqSTt.mjs +5 -0
  161. package/dist/{renderer-D-yNHLG7.mjs → renderer-Bq9jXYJ5.mjs} +3 -3
  162. package/dist/{renderer-D-yNHLG7.mjs.map → renderer-Bq9jXYJ5.mjs.map} +1 -1
  163. package/dist/{renderer-BVR0mEIT.mjs → renderer-BqSiWRoD.mjs} +2 -2
  164. package/dist/{renderer-BVR0mEIT.mjs.map → renderer-BqSiWRoD.mjs.map} +1 -1
  165. package/dist/{renderer-DyPgVl1l.mjs → renderer-ButaUWLr.mjs} +3 -3
  166. package/dist/{renderer-DyPgVl1l.mjs.map → renderer-ButaUWLr.mjs.map} +1 -1
  167. package/dist/{renderer-94byj7Mk.mjs → renderer-C2Ff-9u_.mjs} +2 -2
  168. package/dist/{renderer-94byj7Mk.mjs.map → renderer-C2Ff-9u_.mjs.map} +1 -1
  169. package/dist/{renderer-DpQaiH6C.mjs → renderer-C4puWDLK.mjs} +2 -2
  170. package/dist/{renderer-DpQaiH6C.mjs.map → renderer-C4puWDLK.mjs.map} +1 -1
  171. package/dist/{renderer-D6YcQTLI.mjs → renderer-CBG6ewNf.mjs} +3 -3
  172. package/dist/{renderer-D6YcQTLI.mjs.map → renderer-CBG6ewNf.mjs.map} +1 -1
  173. package/dist/renderer-CD0amH_Q.mjs +5 -0
  174. package/dist/renderer-CIJGjrt7.mjs +5 -0
  175. package/dist/{renderer-CIMI33Yd.mjs → renderer-CJwgsecF.mjs} +2 -2
  176. package/dist/{renderer-CIMI33Yd.mjs.map → renderer-CJwgsecF.mjs.map} +1 -1
  177. package/dist/{renderer-aN60v8jR.mjs → renderer-CMzd3BrW.mjs} +2 -2
  178. package/dist/{renderer-aN60v8jR.mjs.map → renderer-CMzd3BrW.mjs.map} +1 -1
  179. package/dist/renderer-CNFTl94b.mjs +5 -0
  180. package/dist/{renderer-DJQD7tai.mjs → renderer-CPNLkir4.mjs} +2 -2
  181. package/dist/{renderer-DJQD7tai.mjs.map → renderer-CPNLkir4.mjs.map} +1 -1
  182. package/dist/{renderer-CLUyYFqS.mjs → renderer-CRYO5HQw.mjs} +2 -2
  183. package/dist/{renderer-CLUyYFqS.mjs.map → renderer-CRYO5HQw.mjs.map} +1 -1
  184. package/dist/renderer-CTJ0gHPS.mjs +5 -0
  185. package/dist/{renderer-Dju3SEAJ.mjs → renderer-CbNW0KHh.mjs} +3 -3
  186. package/dist/{renderer-Dju3SEAJ.mjs.map → renderer-CbNW0KHh.mjs.map} +1 -1
  187. package/dist/renderer-Cc3INn7w.mjs +5 -0
  188. package/dist/{renderer-BK32cV7E.mjs → renderer-CczmOPAO.mjs} +3 -3
  189. package/dist/{renderer-BK32cV7E.mjs.map → renderer-CczmOPAO.mjs.map} +1 -1
  190. package/dist/renderer-CeHh2lKY.mjs +5 -0
  191. package/dist/renderer-CfjwkQP4.mjs +5 -0
  192. package/dist/{renderer-0L9MEb3A.mjs → renderer-CgEMtLOL.mjs} +2 -2
  193. package/dist/{renderer-0L9MEb3A.mjs.map → renderer-CgEMtLOL.mjs.map} +1 -1
  194. package/dist/{renderer-CWQ-Bct7.mjs → renderer-Ch1rv1XP.mjs} +2 -2
  195. package/dist/{renderer-CWQ-Bct7.mjs.map → renderer-Ch1rv1XP.mjs.map} +1 -1
  196. package/dist/renderer-CiuOB-Md.mjs +5 -0
  197. package/dist/{renderer-DNYSf2Fl.mjs → renderer-ClK7_Yzz.mjs} +2 -2
  198. package/dist/{renderer-DNYSf2Fl.mjs.map → renderer-ClK7_Yzz.mjs.map} +1 -1
  199. package/dist/renderer-Cor66Y2X.mjs +5 -0
  200. package/dist/renderer-CtIM0LWe.mjs +5 -0
  201. package/dist/renderer-CyqgTsnx.mjs +5 -0
  202. package/dist/{renderer-DWcbrx2M.mjs → renderer-Cz11KJmQ.mjs} +2 -2
  203. package/dist/{renderer-DWcbrx2M.mjs.map → renderer-Cz11KJmQ.mjs.map} +1 -1
  204. package/dist/{renderer-B2aXfdW_.mjs → renderer-D-eTVnDS.mjs} +2 -2
  205. package/dist/{renderer-B2aXfdW_.mjs.map → renderer-D-eTVnDS.mjs.map} +1 -1
  206. package/dist/renderer-D2QG9yIW.mjs +5 -0
  207. package/dist/renderer-D2woU27o.mjs +6 -0
  208. package/dist/{renderer-EhCkD11e.mjs → renderer-D8tdGi2P.mjs} +3 -3
  209. package/dist/{renderer-EhCkD11e.mjs.map → renderer-D8tdGi2P.mjs.map} +1 -1
  210. package/dist/{renderer-DuxzqfoE.mjs → renderer-D90PpIKG.mjs} +2 -2
  211. package/dist/renderer-DAhDiQQY.mjs +5 -0
  212. package/dist/{renderer-BmQbSQHf.mjs → renderer-DDBmBmQN.mjs} +2 -2
  213. package/dist/{renderer-BmQbSQHf.mjs.map → renderer-DDBmBmQN.mjs.map} +1 -1
  214. package/dist/renderer-DIjxOQFi.mjs +5 -0
  215. package/dist/{renderer-_AuL8mAi.mjs → renderer-DJWQWN1E.mjs} +3 -3
  216. package/dist/{renderer-_AuL8mAi.mjs.map → renderer-DJWQWN1E.mjs.map} +1 -1
  217. package/dist/{renderer-JiEpssIz.mjs → renderer-DL4oR40b.mjs} +2 -2
  218. package/dist/{renderer-JiEpssIz.mjs.map → renderer-DL4oR40b.mjs.map} +1 -1
  219. package/dist/{renderer-CrUudSLP.mjs → renderer-DNhOjz6C.mjs} +2 -2
  220. package/dist/{renderer-CrUudSLP.mjs.map → renderer-DNhOjz6C.mjs.map} +1 -1
  221. package/dist/renderer-DRzalGhU.mjs +5 -0
  222. package/dist/{renderer-BpdzhZE7.mjs → renderer-DS64UaYK.mjs} +3 -3
  223. package/dist/{renderer-BpdzhZE7.mjs.map → renderer-DS64UaYK.mjs.map} +1 -1
  224. package/dist/renderer-DY6S1jWp.mjs +5 -0
  225. package/dist/{renderer-CSPpKLi3.mjs → renderer-DYo_a5-8.mjs} +2 -2
  226. package/dist/{renderer-CSPpKLi3.mjs.map → renderer-DYo_a5-8.mjs.map} +1 -1
  227. package/dist/{renderer-Ck2pRec0.mjs → renderer-DacnnTjY.mjs} +3 -3
  228. package/dist/{renderer-Ck2pRec0.mjs.map → renderer-DacnnTjY.mjs.map} +1 -1
  229. package/dist/renderer-DeW0KNQV.mjs +5 -0
  230. package/dist/{renderer-CvOzuDX3.mjs → renderer-DjPC9l3w.mjs} +3 -3
  231. package/dist/{renderer-CvOzuDX3.mjs.map → renderer-DjPC9l3w.mjs.map} +1 -1
  232. package/dist/{renderer-BId5hBLb.mjs → renderer-DjwF10p2.mjs} +3 -3
  233. package/dist/{renderer-BId5hBLb.mjs.map → renderer-DjwF10p2.mjs.map} +1 -1
  234. package/dist/{renderer-CraudZUC.mjs → renderer-DmOewVsB.mjs} +3 -3
  235. package/dist/{renderer-CraudZUC.mjs.map → renderer-DmOewVsB.mjs.map} +1 -1
  236. package/dist/{renderer-BHrqEgIA.mjs → renderer-DqlvbOUt.mjs} +3 -3
  237. package/dist/{renderer-BHrqEgIA.mjs.map → renderer-DqlvbOUt.mjs.map} +1 -1
  238. package/dist/renderer-DsVSVFkl.mjs +5 -0
  239. package/dist/{renderer-DIqwz7dV.mjs → renderer-DvoPplvC.mjs} +2 -2
  240. package/dist/{renderer-BEpANdcO.mjs → renderer-Dw1e5phO.mjs} +3 -3
  241. package/dist/{renderer-BEpANdcO.mjs.map → renderer-Dw1e5phO.mjs.map} +1 -1
  242. package/dist/renderer-DxvcIgEU.mjs +5 -0
  243. package/dist/renderer-F0MKqmol.mjs +5 -0
  244. package/dist/{renderer-CKSdl0Xf.mjs → renderer-F410V727.mjs} +3 -3
  245. package/dist/{renderer-CKSdl0Xf.mjs.map → renderer-F410V727.mjs.map} +1 -1
  246. package/dist/{renderer-B3ypX3MH.mjs → renderer-Fm2brScz.mjs} +3 -3
  247. package/dist/{renderer-B3ypX3MH.mjs.map → renderer-Fm2brScz.mjs.map} +1 -1
  248. package/dist/{renderer-CI9Pq77W.mjs → renderer-GlyeFl5R.mjs} +3 -3
  249. package/dist/{renderer-CI9Pq77W.mjs.map → renderer-GlyeFl5R.mjs.map} +1 -1
  250. package/dist/{renderer-DZnUiiBp.mjs → renderer-ITtBRR4o.mjs} +3 -3
  251. package/dist/{renderer-DZnUiiBp.mjs.map → renderer-ITtBRR4o.mjs.map} +1 -1
  252. package/dist/{renderer-CwwmwM7J.mjs → renderer-Kj9AhRCc.mjs} +3 -3
  253. package/dist/{renderer-CwwmwM7J.mjs.map → renderer-Kj9AhRCc.mjs.map} +1 -1
  254. package/dist/{renderer-DNaHFctD.mjs → renderer-MS70wrQB.mjs} +2 -2
  255. package/dist/{renderer-DNaHFctD.mjs.map → renderer-MS70wrQB.mjs.map} +1 -1
  256. package/dist/{renderer-BEdc-7JW.mjs → renderer-Mdyv_W8K.mjs} +3 -3
  257. package/dist/{renderer-BEdc-7JW.mjs.map → renderer-Mdyv_W8K.mjs.map} +1 -1
  258. package/dist/renderer-OkbovcAc.mjs +5 -0
  259. package/dist/{renderer-Dvq11SEA.mjs → renderer-QMGrRiab.mjs} +2 -2
  260. package/dist/{renderer-Dvq11SEA.mjs.map → renderer-QMGrRiab.mjs.map} +1 -1
  261. package/dist/renderer-QyBeWMEL.mjs +5 -0
  262. package/dist/{renderer-B3c-j-e5.mjs → renderer-R0sJId_6.mjs} +2 -2
  263. package/dist/{renderer-B3c-j-e5.mjs.map → renderer-R0sJId_6.mjs.map} +1 -1
  264. package/dist/{renderer-DKXK5hDm.mjs → renderer-Rg1BFv8B.mjs} +2 -2
  265. package/dist/{renderer-DKXK5hDm.mjs.map → renderer-Rg1BFv8B.mjs.map} +1 -1
  266. package/dist/{renderer-BmTDXIUI.mjs → renderer-S6ez0leJ.mjs} +2 -2
  267. package/dist/{renderer-BmTDXIUI.mjs.map → renderer-S6ez0leJ.mjs.map} +1 -1
  268. package/dist/{renderer-ChoYV7Ko.mjs → renderer-YtRSM2cv.mjs} +2 -2
  269. package/dist/{renderer-ChoYV7Ko.mjs.map → renderer-YtRSM2cv.mjs.map} +1 -1
  270. package/dist/{renderer-CC72sZ8l.mjs → renderer-_-MCpvGq.mjs} +91 -73
  271. package/dist/renderer-_-MCpvGq.mjs.map +1 -0
  272. package/dist/{renderer-xezE7IZX.mjs → renderer-_Fh9IBlE.mjs} +3 -3
  273. package/dist/{renderer-xezE7IZX.mjs.map → renderer-_Fh9IBlE.mjs.map} +1 -1
  274. package/dist/{renderer-mpInX4Iy.mjs → renderer-dJcu7WqI.mjs} +3 -3
  275. package/dist/{renderer-mpInX4Iy.mjs.map → renderer-dJcu7WqI.mjs.map} +1 -1
  276. package/dist/renderer-hSh5IrDp.mjs +5 -0
  277. package/dist/{renderer-Dvg5nbgU.mjs → renderer-ktpusVT2.mjs} +3 -3
  278. package/dist/{renderer-Dvg5nbgU.mjs.map → renderer-ktpusVT2.mjs.map} +1 -1
  279. package/dist/renderer-puLncHft.mjs +5 -0
  280. package/dist/{renderer-D8_UYdDb.mjs → renderer-w8LKBg_5.mjs} +2 -2
  281. package/dist/{renderer-D8_UYdDb.mjs.map → renderer-w8LKBg_5.mjs.map} +1 -1
  282. package/dist/renderer-wnFCaw7j.mjs +5 -0
  283. package/dist/renderer-xjtlyGS1.mjs +5 -0
  284. package/dist/{renderer-Cvysm2Jg.mjs → renderer-z3YOOR3k.mjs} +3 -3
  285. package/dist/{renderer-Cvysm2Jg.mjs.map → renderer-z3YOOR3k.mjs.map} +1 -1
  286. package/dist/{renderers-CP8CFWDs-i6u_rhCX.mjs → renderers-CP8CFWDs-DXiR_PLR.mjs} +2 -2
  287. package/dist/{renderers-CP8CFWDs-i6u_rhCX.mjs.map → renderers-CP8CFWDs-DXiR_PLR.mjs.map} +1 -1
  288. package/dist/signals/index.mjs +4 -4
  289. package/package.json +56 -56
  290. package/dist/dist-PwT_Vmax.mjs.map +0 -1
  291. package/dist/preview-engine/chunk-OCX5AD23.mjs +0 -1
  292. package/dist/preview-engine/renderers-3T7Q4SPP.mjs +0 -1
  293. package/dist/preview-engine/renderers-4DV4REGM.mjs +0 -1
  294. package/dist/preview-engine/renderers-CQXQHOW2.mjs +0 -1
  295. package/dist/preview-engine/renderers-IXGM55XK.mjs +0 -1
  296. package/dist/preview-engine/renderers-KVHUVWSN.mjs +0 -1
  297. package/dist/preview-engine/renderers-M7R2ZJUP.mjs +0 -1
  298. package/dist/preview-engine/renderers-PMOO7DLX.mjs +0 -1
  299. package/dist/preview-engine/renderers-QCCPCH73.mjs +0 -1
  300. package/dist/preview-engine/renderers-RRXFJRGI.mjs +0 -1
  301. package/dist/preview-engine/renderers-VLMQR3DW.mjs +0 -1
  302. package/dist/preview-engine/renderers-WVTTRCVI.mjs +0 -1
  303. package/dist/preview-engine/renderers-X5PUIPU5.mjs +0 -1
  304. package/dist/preview-engine/renderers-YDCDY3BR.mjs +0 -1
  305. package/dist/preview-engine/renderers-YJNQ4B7B.mjs +0 -1
  306. package/dist/preview-engine/renderers-Z7YQUFAY.mjs +0 -1
  307. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +0 -1
  308. package/dist/renderer-0lp9ClNc.mjs +0 -5
  309. package/dist/renderer-4g_BfiKp.mjs +0 -5
  310. package/dist/renderer-7Aw6AHqW.mjs +0 -5
  311. package/dist/renderer-B82v8PyC.mjs +0 -5
  312. package/dist/renderer-B8BDMJNz.mjs +0 -5
  313. package/dist/renderer-BCPRrhP8.mjs +0 -5
  314. package/dist/renderer-BFhzO6En.mjs +0 -5
  315. package/dist/renderer-BH0KF-y-.mjs +0 -6
  316. package/dist/renderer-BTI5ybyH.mjs +0 -5
  317. package/dist/renderer-Ba7LH8U2.mjs +0 -5
  318. package/dist/renderer-BcQBlfhC.mjs +0 -5
  319. package/dist/renderer-BdMJzCTz.mjs +0 -5
  320. package/dist/renderer-Bxi2j-tG.mjs +0 -5
  321. package/dist/renderer-CC72sZ8l.mjs.map +0 -1
  322. package/dist/renderer-CCn5ISVM.mjs +0 -5
  323. package/dist/renderer-CDRsdhg9.mjs +0 -5
  324. package/dist/renderer-CiCK8ZG_.mjs +0 -5
  325. package/dist/renderer-CsEk9TFz.mjs +0 -5
  326. package/dist/renderer-D1gx_-hi.mjs +0 -5
  327. package/dist/renderer-D5MCGNAF.mjs +0 -5
  328. package/dist/renderer-DD_MzvM-.mjs +0 -5
  329. package/dist/renderer-DP7YoZ0K.mjs +0 -5
  330. package/dist/renderer-DXiWvKij.mjs +0 -5
  331. package/dist/renderer-Dc6fW-o1.mjs +0 -5
  332. package/dist/renderer-DiurlsNT.mjs +0 -5
  333. package/dist/renderer-DvCUdgVz.mjs +0 -5
  334. package/dist/renderer-IiwAh9-K.mjs +0 -5
  335. package/dist/renderer-JlGXqH0E.mjs +0 -5
  336. package/dist/renderer-TZFKKgL1.mjs +0 -5
  337. package/dist/renderer-aEecoNPX.mjs +0 -5
  338. package/dist/renderer-ewhliYYP.mjs +0 -5
  339. package/dist/renderer-hQc6GgTi.mjs +0 -5
  340. package/dist/renderer-iuX0RZIi.mjs +0 -5
  341. package/dist/renderer-j4vkTzHa.mjs +0 -5
  342. package/dist/renderer-msPjwx_9.mjs +0 -5
  343. package/dist/renderer-pI2ndu-b.mjs +0 -5
  344. package/dist/renderer-x1OGMhsC.mjs +0 -5
@@ -1 +1 @@
1
- import{a as k,b as l,c as m,d as n}from"./chunk-CURR5X7D.mjs";import{a as j}from"./chunk-O2RNIQXT.mjs";import{a as b}from"./chunk-FPRXK2WD.mjs";import{a as c}from"./chunk-VO2R3DWV.mjs";import{a as d}from"./chunk-Q2DPNVIA.mjs";import{a as e}from"./chunk-ZNL4W4DK.mjs";import{a as f}from"./chunk-NEE3KQTX.mjs";import{a as g}from"./chunk-K773AOF3.mjs";import{a}from"./chunk-ZH5MZQTZ.mjs";import{a as h}from"./chunk-PR2BUYCL.mjs";import{b as i}from"./chunk-BVA5NGSH.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-NIRW77QA.mjs";import"./chunk-Q4Z54DQ7.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-63SFBHEH.mjs";import"./chunk-BVF64D6H.mjs";export{a as WebGPUAudioProcessor,d as audioFadeRenderer,h as audioSignalExtractorRenderer,b as compressorRenderer,c as delayRenderer,n as encodeStereoWav,i as mixAudioTracks,l as mixSfxInto,e as noiseGateRenderer,f as parametricEqRenderer,k as renderSfx,g as reverbRenderer,m as softLimit,j as stereoPanningRenderer};
1
+ import{a as k,b as l,c as m,d as n}from"./chunk-CURR5X7D.mjs";import{a as j}from"./chunk-L6BH5J4P.mjs";import{a as b}from"./chunk-DIGIQ5MJ.mjs";import{a as c}from"./chunk-44CQSOYE.mjs";import{a as d}from"./chunk-TS3JI3BH.mjs";import{a as e}from"./chunk-EYWPOCZW.mjs";import{a as f}from"./chunk-U4JIFQRR.mjs";import{a as g}from"./chunk-EVXWDOCL.mjs";import{a}from"./chunk-OG62XGCT.mjs";import{a as h}from"./chunk-7G3XIOP7.mjs";import{b as i}from"./chunk-M5HZPZHQ.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import"./chunk-NIRW77QA.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-Q4Z54DQ7.mjs";import"./chunk-63SFBHEH.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as WebGPUAudioProcessor,d as audioFadeRenderer,h as audioSignalExtractorRenderer,b as compressorRenderer,c as delayRenderer,n as encodeStereoWav,i as mixAudioTracks,l as mixSfxInto,e as noiseGateRenderer,f as parametricEqRenderer,k as renderSfx,g as reverbRenderer,m as softLimit,j as stereoPanningRenderer};
@@ -1,4 +1,4 @@
1
- import{a as c}from"./chunk-ZH5MZQTZ.mjs";import{c as f,e as m,y as n,z as p}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var k=["delayTime","feedback","wet","dry"],P=()=>`
1
+ import{a as c}from"./chunk-OG62XGCT.mjs";import{c as f,e as m,y as n,z as p}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var k=["delayTime","feedback","wet","dry"],P=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  delaySec : f32,
@@ -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-X6HUH6K4.mjs";import{b as wt}from"./chunk-2SJ4BBMT.mjs";import{a as bt,b as it,d as St,e as A}from"./chunk-NIRW77QA.mjs";import{a as Pt,b as vt}from"./chunk-XN56POGE.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{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 bt(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 St(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-X6HUH6K4.mjs";import{b as wt}from"./chunk-2SJ4BBMT.mjs";import{a as bt,b as it,d as St,e as A}from"./chunk-NIRW77QA.mjs";import{a as Pt,b as vt}from"./chunk-XN56POGE.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{e as x}from"./chunk-BVF64D6H.mjs";x();var I=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 I{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 bt(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 I{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 St(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;ticks=0;lastTick=new Map;touchKey(t){this.lastAccessed.set(t,Date.now()),this.lastTick.set(t,this.ticks)}dropKey(t){let e=this.videoDecoders.get(t);if(e){try{e.destroy()}catch{}this.videoDecoders.delete(t)}let r=this.audioDecoders.get(t);if(r){try{r.destroy()}catch{}this.audioDecoders.delete(t)}this.lastAccessed.delete(t),this.lastTick.delete(t)}tick(t=120){this.ticks++;for(let[e,r]of this.lastTick)this.ticks-r>t&&this.dropKey(e)}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(),this.lastTick.clear()}get size(){return this.videoDecoders.size+this.audioDecoders.size}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())e-i>t&&this.dropKey(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){let e=[...this.videoDecoders.keys(),...this.audioDecoders.keys()];for(let r of e)r.includes(t)&&this.dropKey(r)}},te=new at;x();x();var Bt=`
2
2
  struct CompositeUniforms {
3
3
  blendMode : u32,
4
4
  padding1 : u32,
@@ -139,7 +139,7 @@ fn set_sat(c: vec3<f32>, s: f32) -> vec3<f32> {
139
139
 
140
140
  return vec4<f32>(out_rgb, out_a);
141
141
  }
142
- `;var It=`
142
+ `;var Et=`
143
143
  struct MotionBlur2DUniforms {
144
144
  vel: vec2<f32>,
145
145
  _pad: vec2<f32>,
@@ -183,7 +183,7 @@ fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
183
183
 
184
184
  return accum / max(totalWeight, 0.0001);
185
185
  }
186
- `,ut=class{textures=[];texturesByKey=new Map;index=0;getTexture(t,e,r,i,n){let s=new Set(Array.isArray(n)?n:n?[n]:[]),a=`${e}x${r}:${i}`,o=this.texturesByKey.get(a);if(o)for(let l=0;l<o.length;l++){let h=o[l];if(!s.has(h)){o.splice(l,1),o.unshift(h);let p=this.textures.indexOf(h);return p>=this.index&&(this.textures.splice(p,1),this.textures.splice(this.index,0,h),this.index++),h}}let c=t.createTexture({size:[e,r],format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});return this.texturesByKey.has(a)||this.texturesByKey.set(a,[]),this.texturesByKey.get(a).unshift(c),this.textures.splice(this.index,0,c),this.index++,c}reset(){this.index=0}destroy(){for(let t of this.textures)t.destroy();this.textures=[],this.texturesByKey.clear(),this.index=0}},Vt={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25,"luma-in":26,"luma-out":27},I=class{device;compositeUniformLayout;dualTextureLayout;motionBlurUniformLayout;singleTextureLayout;compositePipeline;motionBlurPipeline;compositePool;motionBlurPool;texturePool;compositeUniformBindGroupCache=new M;motionBlurUniformBindGroupCache=new M;compositeData=new Uint32Array(4);motionBlurData=new Float32Array(8);constructor(t,e){this.device=t,this.compositePool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.motionBlurPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.texturePool=new ut,this.compositeUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.dualTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.motionBlurUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.singleTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let r=t.createPipelineLayout({bindGroupLayouts:[this.compositeUniformLayout,this.dualTextureLayout]}),i=t.createShaderModule({label:"composite.wgsl",code:Bt});this.compositePipeline=t.createRenderPipeline({label:"CompositePipeline",layout:r,vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}});let n=t.createPipelineLayout({bindGroupLayouts:[this.motionBlurUniformLayout,this.singleTextureLayout]}),s=t.createShaderModule({label:"motion-blur-2d.wgsl",code:It});this.motionBlurPipeline=t.createRenderPipeline({label:"MotionBlurPipeline",layout:n,vertex:{module:s,entryPoint:"vs"},fragment:{module:s,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-list"}})}resetPools(){this.compositePool.reset(),this.motionBlurPool.reset(),this.texturePool.reset()}getTexture(t,e,r,i,n){return this.texturePool.getTexture(t,e,r,i,n)}getBuffer(t,e){return this.compositePool.getBuffer(t,e)}composite(t,e,r,i,n,s,a,o){let c=r.getSampler(this.device),l=[i,n];o&&(Array.isArray(o)?l.push(...o):l.push(o));let h=this.texturePool.getTexture(this.device,i.width,i.height,a,l);this.compositeData[0]=Vt[s]??0;let p=this.compositePool.getBuffer(this.device,this.compositeData),d=t.beginRenderPass({colorAttachments:[{view:h.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});d.setPipeline(this.compositePipeline);let f=this.compositeUniformBindGroupCache.getBindGroup(this.device,this.compositeUniformLayout,p);d.setBindGroup(0,f);let m=e.getCompositeBindGroup(this.device,this.dualTextureLayout,i,n,c);return d.setBindGroup(1,m),d.draw(4),d.end(),h}applyMotionBlur(t,e,r,i,n,s,a=180,o=16,c,l){if(Math.abs(n)<.1&&Math.abs(s)<.1||a<=0)return i;let h=r.getSampler(this.device),p=[i];l&&(Array.isArray(l)?p.push(...l):p.push(l));let d=this.texturePool.getTexture(this.device,i.width,i.height,c,p);this.motionBlurData[0]=n/i.width,this.motionBlurData[1]=s/i.height,this.motionBlurData[2]=0,this.motionBlurData[3]=0,this.motionBlurData[4]=a/360,this.motionBlurData[5]=o,this.motionBlurData[6]=i.width,this.motionBlurData[7]=i.height;let f=this.motionBlurPool.getBuffer(this.device,this.motionBlurData),m=t.beginRenderPass({colorAttachments:[{view:d.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});m.setPipeline(this.motionBlurPipeline);let y=this.motionBlurUniformBindGroupCache.getBindGroup(this.device,this.motionBlurUniformLayout,f);return m.setBindGroup(0,y),m.setBindGroup(1,e.getBindGroup(this.device,this.singleTextureLayout,i,h)),m.draw(3),m.end(),d}destroy(){this.compositePool.destroy(),this.motionBlurPool.destroy(),this.texturePool.destroy(),this.compositeUniformBindGroupCache.destroy(),this.motionBlurUniformBindGroupCache.destroy()}};x();x();var V=class{cache=new WeakMap;dualCache=new WeakMap;getBindGroup(t,e,r,i){let n=this.cache.get(r);n||(n=new Map,this.cache.set(r,n));let s=n.get(e);return s||(s=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i}]}),n.set(e,s)),s}getCompositeBindGroup(t,e,r,i,n){let s=this.dualCache.get(r);s||(s=new WeakMap,this.dualCache.set(r,s));let a=s.get(i);a||(a=new Map,s.set(i,a));let o=a.get(e);return o||(o=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i.createView()},{binding:2,resource:n}]}),a.set(e,o)),o}destroy(){this.cache=new WeakMap,this.dualCache=new WeakMap}};x();var W=class{scissorStack=[];stencilStack=[];pushScissor(t,e,r){this.scissorStack.push({rect:t,surfaceWidth:e,surfaceHeight:r})}popScissor(){this.scissorStack.length>0&&this.scissorStack.pop()}saveScissors(){return[...this.scissorStack]}restoreScissors(t){this.scissorStack=[...t]}clearScissors(){this.scissorStack=[]}getCurrentScissor(t,e){let r=this.scissorStack[this.scissorStack.length-1];if(r&&!(t!==void 0&&e!==void 0&&r.surfaceWidth!==void 0&&r.surfaceHeight!==void 0&&r.surfaceWidth!==0&&r.surfaceHeight!==0&&(r.surfaceWidth!==t||r.surfaceHeight!==e)))return r.rect}pushStencilClip(t){this.stencilStack.push(t)}popStencilClip(){this.stencilStack.length>0&&this.stencilStack.pop()}getCurrentStencil(){return this.stencilStack[this.stencilStack.length-1]}applyScissorToPass(t,e,r){let i=this.getCurrentScissor(e,r);if(!i){t.setScissorRect(0,0,Math.max(1,Math.floor(e)),Math.max(1,Math.floor(r)));return}let n=Math.max(0,Math.floor(i.x)),s=Math.max(0,Math.floor(i.y)),a=Math.min(e,Math.ceil(i.x+i.width)),o=Math.min(r,Math.ceil(i.y+i.height)),c=Math.max(0,a-n),l=Math.max(0,o-s);if(!Number.isFinite(n)||!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(l)||c<=0||l<=0)t.setScissorRect(0,0,1,1);else{let h=Math.min(c,Math.max(0,e-n)),p=Math.min(l,Math.max(0,r-s));h<=0||p<=0?t.setScissorRect(0,0,1,1):t.setScissorRect(Math.floor(n),Math.floor(s),Math.floor(h),Math.floor(p))}}destroy(){this.scissorStack=[],this.stencilStack=[]}};x();function Dt(u,t,e,r,i=24){let n=[],s=u;for(let a=1;a<=i;a++){let o=a/i,c=1-o,l=c*c,h=l*c,p=o*o,d=p*o,f={x:h*u.x+3*l*o*t.x+3*c*p*e.x+d*r.x,y:h*u.y+3*l*o*t.y+3*c*p*e.y+d*r.y};n.push({p0:s,p1:f}),s=f}return n}function Ct(u,t,e,r=16){let i=[],n=u;for(let s=1;s<=r;s++){let a=s/r,o=1-a,c=o*o,l=a*a,h={x:c*u.x+2*o*a*t.x+l*e.x,y:c*u.y+2*o*a*t.y+l*e.y};i.push({p0:n,p1:h}),n=h}return i}function Wt(u,t,e,r,i,n,s){let a=Math.abs(t),o=Math.abs(e);if(a<1e-9||o<1e-9)return[{p0:u,p1:s}];if(Math.hypot(s.x-u.x,s.y-u.y)<1e-9)return[];let c=r*Math.PI/180,l=Math.cos(c),h=Math.sin(c),p=(u.x-s.x)/2,d=(u.y-s.y)/2,f=l*p+h*d,m=-h*p+l*d,y=f*f/(a*a)+m*m/(o*o);y>1&&(a*=Math.sqrt(y),o*=Math.sqrt(y));let g=a*a*o*o-a*a*m*m-o*o*f*f,P=a*a*m*m+o*o*f*f,v=(i===n?-1:1)*Math.sqrt(Math.max(0,g/P)),b=v*a*m/o,S=-v*o*f/a,U=l*b-h*S+(u.x+s.x)/2,F=h*b+l*S+(u.y+s.y)/2,tt=(k,_,R,L)=>Math.atan2(k*L-_*R,k*R+_*L),et=tt(1,0,(f-b)/a,(m-S)/o),B=tt((f-b)/a,(m-S)/o,(-f-b)/a,(-m-S)/o);!n&&B>0&&(B-=2*Math.PI),n&&B<0&&(B+=2*Math.PI);let rt=Math.max(4,Math.ceil(Math.abs(B)/(2*Math.PI)*64)),ft=[],dt=u;for(let k=1;k<=rt;k++){let _=et+B*k/rt,R=a*Math.cos(_),L=o*Math.sin(_),mt=k===rt?s:{x:l*R-h*L+U,y:h*R+l*L+F};ft.push({p0:dt,p1:mt}),dt=mt}return ft}function z(u){let t=[];if(!u||typeof u!="string")return t;let e=[],r=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,i;for(;(i=r.exec(u))!==null;)i[1]?e.push(i[1]):i[2]&&e.push(parseFloat(i[2]));let n=0,s={x:0,y:0},a={x:0,y:0},o=null,c=null;for(;n<e.length;){let l=e[n++];if(typeof l!="string")continue;let h=l,p=h===h.toLowerCase(),d=h.toUpperCase(),f=()=>n<e.length&&typeof e[n]=="number"?e[n++]:0;switch(d){case"M":{let m=!0;for(;n<e.length&&typeof e[n]=="number";){let y=f(),g=f();p&&(y+=s.x,g+=s.y),m?(s={x:y,y:g},a={x:y,y:g},m=!1):(t.push({p0:s,p1:{x:y,y:g}}),s={x:y,y:g})}o=null,c=null;break}case"L":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f();p&&(m+=s.x,y+=s.y),t.push({p0:s,p1:{x:m,y}}),s={x:m,y}}o=null,c=null;break}case"H":{for(;n<e.length&&typeof e[n]=="number";){let m=f();p&&(m+=s.x);let y={x:m,y:s.y};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"V":{for(;n<e.length&&typeof e[n]=="number";){let m=f();p&&(m+=s.y);let y={x:s.x,y:m};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"C":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f(),v=f(),b=f();p&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y,v+=s.x,b+=s.y);let S={x:m,y},U={x:g,y:P},F={x:v,y:b};t.push(...Dt(s,S,U,F)),s=F,o=U}c=null;break}case"S":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f();p&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y);let v;o?v={x:2*s.x-o.x,y:2*s.y-o.y}:v={x:s.x,y:s.y};let b={x:m,y},S={x:g,y:P};t.push(...Dt(s,v,b,S)),s=S,o=b}c=null;break}case"Q":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f();p&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y);let v={x:m,y},b={x:g,y:P};t.push(...Ct(s,v,b)),s=b,c=v}o=null;break}case"T":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f();p&&(m+=s.x,y+=s.y);let g;c?g={x:2*s.x-c.x,y:2*s.y-c.y}:g={x:s.x,y:s.y};let P={x:m,y};t.push(...Ct(s,g,P)),s=P,c=g}o=null;break}case"A":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f()!==0,v=f()!==0,b=f(),S=f();p&&(b+=s.x,S+=s.y);let U={x:b,y:S};t.push(...Wt(s,m,y,g,P,v,U)),s=U}o=null,c=null;break}case"Z":{Math.hypot(s.x-a.x,s.y-a.y)>1e-5&&t.push({p0:s,p1:a}),s=a,o=null,c=null;break}default:break}}return t}function j(u,t,e,r=0){if(u.length===0)return[];let i=[],n=0;for(let l of u){let h=Math.hypot(l.p1.x-l.p0.x,l.p1.y-l.p0.y);i.push(h),n+=h}if(n<1e-6)return[];let s=Math.abs(r)>1?r%360/360:r,a=(t+s)%1,o=(e+s)%1;a<0&&(a+=1),o<0&&(o+=1);let c=(l,h)=>{if(l>=h)return[];let p=[],d=0;for(let f=0;f<u.length;f++){let m=u[f],y=i[f],g=d,P=d+y;if(d=P,P<=l||g>=h||y<1e-6)continue;let v=Math.max(0,(l-g)/y),b=Math.min(1,(h-g)/y);if(b>v){let S={x:m.p0.x+(m.p1.x-m.p0.x)*v,y:m.p0.y+(m.p1.y-m.p0.y)*v},U={x:m.p0.x+(m.p1.x-m.p0.x)*b,y:m.p0.y+(m.p1.y-m.p0.y)*b};p.push({p0:S,p1:U})}}return p};if(t===0&&e===1&&r===0)return[...u];if(Math.abs(a-o)<1e-5)return[];if(a<=o)return c(a*n,o*n);{let l=c(a*n,n),h=c(0,o*n);return[...l,...h]}}function lt(u,t,e=0){if(u.length===0||t.length===0)return u;let r=0;for(let d of t)r+=d;if(r<1e-5)return u;let i=0,n=[];for(let d of u){let f=Math.hypot(d.p1.x-d.p0.x,d.p1.y-d.p0.y);n.push(f),i+=f}let s=[],a=(e%r+r)%r,o=0,c=!0,l=a;for(;l>t[o];)l-=t[o],o=(o+1)%t.length,c=!c;let h=t[o]-l,p=0;for(;p<i;){let d=Math.min(h,i-p);if(c&&d>1e-4){let f=j(u,p/i,(p+d)/i);s.push(...f)}p+=d,o=(o+1)%t.length,c=!c,h=t[o]}return s}function Tt(u,t,e=0,r=0,i=0,n=0){let s=Math.min(u/2,t/2),a=Math.min(e,s),o=Math.min(r,s),c=Math.min(i,s),l=Math.min(n,s);return a===0&&o===0&&c===0&&l===0?`M 0 0 L ${u} 0 L ${u} ${t} L 0 ${t} Z`:[`M ${a} 0`,`L ${u-o} 0`,o>0?`Q ${u} 0 ${u} ${o}`:`L ${u} 0`,`L ${u} ${t-c}`,c>0?`Q ${u} ${t} ${u-c} ${t}`:`L ${u} ${t}`,`L ${l} ${t}`,l>0?`Q 0 ${t} 0 ${t-l}`:`L 0 ${t}`,`L 0 ${a}`,a>0?`Q 0 0 ${a} 0`:"L 0 0","Z"].join(" ")}function zt(u,t){let e=Math.min(u,t)/2,r=u/2,i=t/2,n=e*.5522847498;return[`M ${r} ${i-e}`,`C ${r+n} ${i-e} ${r+e} ${i-n} ${r+e} ${i}`,`C ${r+e} ${i+n} ${r+n} ${i+e} ${r} ${i+e}`,`C ${r-n} ${i+e} ${r-e} ${i+n} ${r-e} ${i}`,`C ${r-e} ${i-n} ${r-n} ${i-e} ${r} ${i-e}`,"Z"].join(" ")}function jt(u,t){let e=u/2,r=t/2,i=e,n=r,s=e*.5522847498,a=r*.5522847498;return[`M ${i} ${n-r}`,`C ${i+s} ${n-r} ${i+e} ${n-a} ${i+e} ${n}`,`C ${i+e} ${n+a} ${i+s} ${n+r} ${i} ${n+r}`,`C ${i-s} ${n+r} ${i-e} ${n+a} ${i-e} ${n}`,`C ${i-e} ${n-a} ${i-s} ${n-r} ${i} ${n-r}`,"Z"].join(" ")}function Ht(u,t,e=5){let r=Math.max(3,e),i=Math.min(u,t)/2,n=u/2,s=t/2,a=[];for(let o=0;o<r;o++){let c=-Math.PI/2+o*2*Math.PI/r;a.push({x:n+i*Math.cos(c),y:s+i*Math.sin(c)})}return a.map((o,c)=>`${c===0?"M":"L"} ${o.x} ${o.y}`).join(" ")+" Z"}function Nt(u,t,e=5,r=.5){let i=Math.max(3,e),n=Math.min(u,t)/2,s=n*Math.max(.01,Math.min(.99,r)),a=u/2,o=t/2,c=[];for(let l=0;l<i*2;l++){let h=-Math.PI/2+l*Math.PI/i,p=l%2===0?n:s;c.push({x:a+p*Math.cos(h),y:o+p*Math.sin(h)})}return c.map((l,h)=>`${h===0?"M":"L"} ${l.x} ${l.y}`).join(" ")+" Z"}function qt(u,t,e=40,r=40,i=20){let n=Math.min(e,t),s=Math.min(r,u),a=Math.min(i,n),o=t/2;return[`M 0 ${o-a/2}`,`L ${u-s} ${o-a/2}`,`L ${u-s} ${o-n/2}`,`L ${u} ${o}`,`L ${u-s} ${o+n/2}`,`L ${u-s} ${o+a/2}`,`L 0 ${o+a/2}`,"Z"].join(" ")}function ct(u){let{shapeType:t,width:e,height:r}=u;switch(t){case"rect":return Tt(e,r,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0);case"circle":return zt(e,r);case"ellipse":return jt(e,r);case"polygon":return Ht(e,r,u.polygonSides??5);case"star":return Nt(e,r,u.starPoints??5,u.starInnerRadiusRatio??.5);case"arrow":return qt(e,r,u.arrowHeadWidth??40,u.arrowHeadLength??40,u.arrowShaftWidth??20);case"path":return u.path??"";default:return""}}function kt(u){if(u.length<3)return[];if(u.length===3)return[u[0],u[1],u[2]];let t=[...u],e=t[t.length-1],r=t[0];if(Math.hypot(e.x-r.x,e.y-r.y)<1e-5&&t.pop(),t.length<3)return[];let i=0;for(let h=0;h<t.length;h++){let p=(h+1)%t.length;i+=t[h].x*t[p].y-t[p].x*t[h].y}i<0&&t.reverse();let n=(h,p,d,f)=>{let m=(d.x-p.x)*(h.y-p.y)-(d.y-p.y)*(h.x-p.x),y=(f.x-d.x)*(h.y-d.y)-(f.y-d.y)*(h.x-d.x),g=(p.x-f.x)*(h.y-f.y)-(p.y-f.y)*(h.x-f.x);return m>=-1e-6&&y>=-1e-6&&g>=-1e-6},s=(h,p,d,f)=>{if((p.x-h.x)*(d.y-h.y)-(p.y-h.y)*(d.x-h.x)<=1e-7)return!1;for(let y of f)if(!(y===h||y===p||y===d)&&n(y,h,p,d))return!1;return!0},a=[],o=[...t],c=0,l=o.length*o.length*2;for(;o.length>3&&c<l;){c++;let h=!1;for(let p=0;p<o.length;p++){let d=o[(p-1+o.length)%o.length],f=o[p],m=o[(p+1)%o.length];if(s(d,f,m,o)){a.push(d,f,m),o.splice(p,1),h=!0;break}}h||(a.push(o[0],o[1],o[2]),o.splice(1,1))}return o.length===3&&a.push(o[0],o[1],o[2]),a}function Ft(u){let{shapeType:t,width:e,height:r}=u;if(t==="rect"){let i=u.cornerRadius??0;if(i<=0)return new Float32Array([0,0,e,0,e,r,0,0,e,r,0,r]);let n=Tt(e,r,i,i,i,i),a=z(n).map(l=>l.p0),o=kt(a),c=new Float32Array(o.length*2);for(let l=0;l<o.length;l++)c[l*2]=o[l].x,c[l*2+1]=o[l].y;return c}if(t==="circle"||t==="ellipse"){let i=e/2,n=r/2,s=t==="circle"?Math.min(e,r)/2:e/2,a=t==="circle"?s:r/2,o=48,c=new Float32Array(o*3*2),l=0;for(let h=0;h<o;h++){let p=h*2*Math.PI/o,d=(h+1)*2*Math.PI/o;c[l++]=i,c[l++]=n,c[l++]=i+s*Math.cos(p),c[l++]=n+a*Math.sin(p),c[l++]=i+s*Math.cos(d),c[l++]=n+a*Math.sin(d)}return c}if(t==="polygon"){let i=Math.max(3,u.polygonSides??5),n=Math.min(e,r)/2,s=e/2,a=r/2,o=new Float32Array(i*3*2),c=0;for(let l=0;l<i;l++){let h=-Math.PI/2+l*2*Math.PI/i,p=-Math.PI/2+(l+1)*2*Math.PI/i;o[c++]=s,o[c++]=a,o[c++]=s+n*Math.cos(h),o[c++]=a+n*Math.sin(h),o[c++]=s+n*Math.cos(p),o[c++]=a+n*Math.sin(p)}return o}if(t==="star"){let i=Math.max(3,u.starPoints??5),n=Math.min(e,r)/2,s=n*Math.max(.01,Math.min(.99,u.starInnerRadiusRatio??.5)),a=e/2,o=r/2,c=i*2,l=new Float32Array(c*3*2),h=0;for(let p=0;p<c;p++){let d=-Math.PI/2+p*Math.PI/i,f=-Math.PI/2+(p+1)*Math.PI/i,m=p%2===0?n:s,y=(p+1)%2===0?n:s;l[h++]=a,l[h++]=o,l[h++]=a+m*Math.cos(d),l[h++]=o+m*Math.sin(d),l[h++]=a+y*Math.cos(f),l[h++]=o+y*Math.sin(f)}return l}if(t==="arrow"){let i=Math.min(u.arrowHeadWidth??40,r),n=Math.min(u.arrowHeadLength??40,e),s=Math.min(u.arrowShaftWidth??20,i),a=r/2,o=0,c=e-n,l=e,h=a-s/2,p=a+s/2,d=a-i/2,f=a+i/2;return new Float32Array([o,h,c,h,c,p,o,h,c,p,o,p,c,d,l,a,c,f])}if(t==="path"&&u.path){let i=z(u.path);if(i.length===0)return new Float32Array(0);let n=i.map(o=>o.p0),s=kt(n),a=new Float32Array(s.length*2);for(let o=0;o<s.length;o++)a[o*2]=s[o].x,a[o*2+1]=s[o].y;return a}return new Float32Array(0)}x();x();var _t=`
186
+ `,ut=class{textures=[];texturesByKey=new Map;index=0;getTexture(t,e,r,i,n){let s=new Set(Array.isArray(n)?n:n?[n]:[]),a=`${e}x${r}:${i}`,o=this.texturesByKey.get(a);if(o)for(let l=0;l<o.length;l++){let h=o[l];if(!s.has(h)){o.splice(l,1),o.unshift(h);let p=this.textures.indexOf(h);return p>=this.index&&(this.textures.splice(p,1),this.textures.splice(this.index,0,h),this.index++),h}}let c=t.createTexture({size:[e,r],format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});return this.texturesByKey.has(a)||this.texturesByKey.set(a,[]),this.texturesByKey.get(a).unshift(c),this.textures.splice(this.index,0,c),this.index++,c}reset(){this.index=0}destroy(){for(let t of this.textures)t.destroy();this.textures=[],this.texturesByKey.clear(),this.index=0}},Vt={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25,"luma-in":26,"luma-out":27},E=class{device;compositeUniformLayout;dualTextureLayout;motionBlurUniformLayout;singleTextureLayout;compositePipeline;motionBlurPipeline;compositePool;motionBlurPool;texturePool;compositeUniformBindGroupCache=new M;motionBlurUniformBindGroupCache=new M;compositeData=new Uint32Array(4);motionBlurData=new Float32Array(8);constructor(t,e){this.device=t,this.compositePool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.motionBlurPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.texturePool=new ut,this.compositeUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.dualTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.motionBlurUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.singleTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let r=t.createPipelineLayout({bindGroupLayouts:[this.compositeUniformLayout,this.dualTextureLayout]}),i=t.createShaderModule({label:"composite.wgsl",code:Bt});this.compositePipeline=t.createRenderPipeline({label:"CompositePipeline",layout:r,vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}});let n=t.createPipelineLayout({bindGroupLayouts:[this.motionBlurUniformLayout,this.singleTextureLayout]}),s=t.createShaderModule({label:"motion-blur-2d.wgsl",code:Et});this.motionBlurPipeline=t.createRenderPipeline({label:"MotionBlurPipeline",layout:n,vertex:{module:s,entryPoint:"vs"},fragment:{module:s,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-list"}})}resetPools(){this.compositePool.reset(),this.motionBlurPool.reset(),this.texturePool.reset()}getTexture(t,e,r,i,n){return this.texturePool.getTexture(t,e,r,i,n)}getBuffer(t,e){return this.compositePool.getBuffer(t,e)}composite(t,e,r,i,n,s,a,o){let c=r.getSampler(this.device),l=[i,n];o&&(Array.isArray(o)?l.push(...o):l.push(o));let h=this.texturePool.getTexture(this.device,i.width,i.height,a,l);this.compositeData[0]=Vt[s]??0;let p=this.compositePool.getBuffer(this.device,this.compositeData),d=t.beginRenderPass({colorAttachments:[{view:h.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});d.setPipeline(this.compositePipeline);let f=this.compositeUniformBindGroupCache.getBindGroup(this.device,this.compositeUniformLayout,p);d.setBindGroup(0,f);let m=e.getCompositeBindGroup(this.device,this.dualTextureLayout,i,n,c);return d.setBindGroup(1,m),d.draw(4),d.end(),h}applyMotionBlur(t,e,r,i,n,s,a=180,o=16,c,l){if(Math.abs(n)<.1&&Math.abs(s)<.1||a<=0)return i;let h=r.getSampler(this.device),p=[i];l&&(Array.isArray(l)?p.push(...l):p.push(l));let d=this.texturePool.getTexture(this.device,i.width,i.height,c,p);this.motionBlurData[0]=n/i.width,this.motionBlurData[1]=s/i.height,this.motionBlurData[2]=0,this.motionBlurData[3]=0,this.motionBlurData[4]=a/360,this.motionBlurData[5]=o,this.motionBlurData[6]=i.width,this.motionBlurData[7]=i.height;let f=this.motionBlurPool.getBuffer(this.device,this.motionBlurData),m=t.beginRenderPass({colorAttachments:[{view:d.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});m.setPipeline(this.motionBlurPipeline);let y=this.motionBlurUniformBindGroupCache.getBindGroup(this.device,this.motionBlurUniformLayout,f);return m.setBindGroup(0,y),m.setBindGroup(1,e.getBindGroup(this.device,this.singleTextureLayout,i,h)),m.draw(3),m.end(),d}destroy(){this.compositePool.destroy(),this.motionBlurPool.destroy(),this.texturePool.destroy(),this.compositeUniformBindGroupCache.destroy(),this.motionBlurUniformBindGroupCache.destroy()}};x();x();var V=class{cache=new WeakMap;dualCache=new WeakMap;getBindGroup(t,e,r,i){let n=this.cache.get(r);n||(n=new Map,this.cache.set(r,n));let s=n.get(e);return s||(s=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i}]}),n.set(e,s)),s}getCompositeBindGroup(t,e,r,i,n){let s=this.dualCache.get(r);s||(s=new WeakMap,this.dualCache.set(r,s));let a=s.get(i);a||(a=new Map,s.set(i,a));let o=a.get(e);return o||(o=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i.createView()},{binding:2,resource:n}]}),a.set(e,o)),o}destroy(){this.cache=new WeakMap,this.dualCache=new WeakMap}};x();var W=class{scissorStack=[];stencilStack=[];pushScissor(t,e,r){this.scissorStack.push({rect:t,surfaceWidth:e,surfaceHeight:r})}popScissor(){this.scissorStack.length>0&&this.scissorStack.pop()}saveScissors(){return[...this.scissorStack]}restoreScissors(t){this.scissorStack=[...t]}clearScissors(){this.scissorStack=[]}getCurrentScissor(t,e){let r=this.scissorStack[this.scissorStack.length-1];if(r&&!(t!==void 0&&e!==void 0&&r.surfaceWidth!==void 0&&r.surfaceHeight!==void 0&&r.surfaceWidth!==0&&r.surfaceHeight!==0&&(r.surfaceWidth!==t||r.surfaceHeight!==e)))return r.rect}pushStencilClip(t){this.stencilStack.push(t)}popStencilClip(){this.stencilStack.length>0&&this.stencilStack.pop()}getCurrentStencil(){return this.stencilStack[this.stencilStack.length-1]}applyScissorToPass(t,e,r){let i=this.getCurrentScissor(e,r);if(!i){t.setScissorRect(0,0,Math.max(1,Math.floor(e)),Math.max(1,Math.floor(r)));return}let n=Math.max(0,Math.floor(i.x)),s=Math.max(0,Math.floor(i.y)),a=Math.min(e,Math.ceil(i.x+i.width)),o=Math.min(r,Math.ceil(i.y+i.height)),c=Math.max(0,a-n),l=Math.max(0,o-s);if(!Number.isFinite(n)||!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(l)||c<=0||l<=0)t.setScissorRect(0,0,1,1);else{let h=Math.min(c,Math.max(0,e-n)),p=Math.min(l,Math.max(0,r-s));h<=0||p<=0?t.setScissorRect(0,0,1,1):t.setScissorRect(Math.floor(n),Math.floor(s),Math.floor(h),Math.floor(p))}}destroy(){this.scissorStack=[],this.stencilStack=[]}};x();function Dt(u,t,e,r,i=24){let n=[],s=u;for(let a=1;a<=i;a++){let o=a/i,c=1-o,l=c*c,h=l*c,p=o*o,d=p*o,f={x:h*u.x+3*l*o*t.x+3*c*p*e.x+d*r.x,y:h*u.y+3*l*o*t.y+3*c*p*e.y+d*r.y};n.push({p0:s,p1:f}),s=f}return n}function Ct(u,t,e,r=16){let i=[],n=u;for(let s=1;s<=r;s++){let a=s/r,o=1-a,c=o*o,l=a*a,h={x:c*u.x+2*o*a*t.x+l*e.x,y:c*u.y+2*o*a*t.y+l*e.y};i.push({p0:n,p1:h}),n=h}return i}function Wt(u,t,e,r,i,n,s){let a=Math.abs(t),o=Math.abs(e);if(a<1e-9||o<1e-9)return[{p0:u,p1:s}];if(Math.hypot(s.x-u.x,s.y-u.y)<1e-9)return[];let c=r*Math.PI/180,l=Math.cos(c),h=Math.sin(c),p=(u.x-s.x)/2,d=(u.y-s.y)/2,f=l*p+h*d,m=-h*p+l*d,y=f*f/(a*a)+m*m/(o*o);y>1&&(a*=Math.sqrt(y),o*=Math.sqrt(y));let g=a*a*o*o-a*a*m*m-o*o*f*f,P=a*a*m*m+o*o*f*f,v=(i===n?-1:1)*Math.sqrt(Math.max(0,g/P)),b=v*a*m/o,S=-v*o*f/a,U=l*b-h*S+(u.x+s.x)/2,F=h*b+l*S+(u.y+s.y)/2,tt=(k,_,R,L)=>Math.atan2(k*L-_*R,k*R+_*L),et=tt(1,0,(f-b)/a,(m-S)/o),B=tt((f-b)/a,(m-S)/o,(-f-b)/a,(-m-S)/o);!n&&B>0&&(B-=2*Math.PI),n&&B<0&&(B+=2*Math.PI);let rt=Math.max(4,Math.ceil(Math.abs(B)/(2*Math.PI)*64)),ft=[],dt=u;for(let k=1;k<=rt;k++){let _=et+B*k/rt,R=a*Math.cos(_),L=o*Math.sin(_),mt=k===rt?s:{x:l*R-h*L+U,y:h*R+l*L+F};ft.push({p0:dt,p1:mt}),dt=mt}return ft}function z(u){let t=[];if(!u||typeof u!="string")return t;let e=[],r=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,i;for(;(i=r.exec(u))!==null;)i[1]?e.push(i[1]):i[2]&&e.push(parseFloat(i[2]));let n=0,s={x:0,y:0},a={x:0,y:0},o=null,c=null;for(;n<e.length;){let l=e[n++];if(typeof l!="string")continue;let h=l,p=h===h.toLowerCase(),d=h.toUpperCase(),f=()=>n<e.length&&typeof e[n]=="number"?e[n++]:0;switch(d){case"M":{let m=!0;for(;n<e.length&&typeof e[n]=="number";){let y=f(),g=f();p&&(y+=s.x,g+=s.y),m?(s={x:y,y:g},a={x:y,y:g},m=!1):(t.push({p0:s,p1:{x:y,y:g}}),s={x:y,y:g})}o=null,c=null;break}case"L":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f();p&&(m+=s.x,y+=s.y),t.push({p0:s,p1:{x:m,y}}),s={x:m,y}}o=null,c=null;break}case"H":{for(;n<e.length&&typeof e[n]=="number";){let m=f();p&&(m+=s.x);let y={x:m,y:s.y};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"V":{for(;n<e.length&&typeof e[n]=="number";){let m=f();p&&(m+=s.y);let y={x:s.x,y:m};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"C":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f(),v=f(),b=f();p&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y,v+=s.x,b+=s.y);let S={x:m,y},U={x:g,y:P},F={x:v,y:b};t.push(...Dt(s,S,U,F)),s=F,o=U}c=null;break}case"S":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f();p&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y);let v;o?v={x:2*s.x-o.x,y:2*s.y-o.y}:v={x:s.x,y:s.y};let b={x:m,y},S={x:g,y:P};t.push(...Dt(s,v,b,S)),s=S,o=b}c=null;break}case"Q":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f();p&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y);let v={x:m,y},b={x:g,y:P};t.push(...Ct(s,v,b)),s=b,c=v}o=null;break}case"T":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f();p&&(m+=s.x,y+=s.y);let g;c?g={x:2*s.x-c.x,y:2*s.y-c.y}:g={x:s.x,y:s.y};let P={x:m,y};t.push(...Ct(s,g,P)),s=P,c=g}o=null;break}case"A":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),P=f()!==0,v=f()!==0,b=f(),S=f();p&&(b+=s.x,S+=s.y);let U={x:b,y:S};t.push(...Wt(s,m,y,g,P,v,U)),s=U}o=null,c=null;break}case"Z":{Math.hypot(s.x-a.x,s.y-a.y)>1e-5&&t.push({p0:s,p1:a}),s=a,o=null,c=null;break}default:break}}return t}function j(u,t,e,r=0){if(u.length===0)return[];let i=[],n=0;for(let l of u){let h=Math.hypot(l.p1.x-l.p0.x,l.p1.y-l.p0.y);i.push(h),n+=h}if(n<1e-6)return[];let s=Math.abs(r)>1?r%360/360:r,a=(t+s)%1,o=(e+s)%1;a<0&&(a+=1),o<0&&(o+=1);let c=(l,h)=>{if(l>=h)return[];let p=[],d=0;for(let f=0;f<u.length;f++){let m=u[f],y=i[f],g=d,P=d+y;if(d=P,P<=l||g>=h||y<1e-6)continue;let v=Math.max(0,(l-g)/y),b=Math.min(1,(h-g)/y);if(b>v){let S={x:m.p0.x+(m.p1.x-m.p0.x)*v,y:m.p0.y+(m.p1.y-m.p0.y)*v},U={x:m.p0.x+(m.p1.x-m.p0.x)*b,y:m.p0.y+(m.p1.y-m.p0.y)*b};p.push({p0:S,p1:U})}}return p};if(t===0&&e===1&&r===0)return[...u];if(Math.abs(a-o)<1e-5)return[];if(a<=o)return c(a*n,o*n);{let l=c(a*n,n),h=c(0,o*n);return[...l,...h]}}function lt(u,t,e=0){if(u.length===0||t.length===0)return u;let r=0;for(let d of t)r+=d;if(r<1e-5)return u;let i=0,n=[];for(let d of u){let f=Math.hypot(d.p1.x-d.p0.x,d.p1.y-d.p0.y);n.push(f),i+=f}let s=[],a=(e%r+r)%r,o=0,c=!0,l=a;for(;l>t[o];)l-=t[o],o=(o+1)%t.length,c=!c;let h=t[o]-l,p=0;for(;p<i;){let d=Math.min(h,i-p);if(c&&d>1e-4){let f=j(u,p/i,(p+d)/i);s.push(...f)}p+=d,o=(o+1)%t.length,c=!c,h=t[o]}return s}function Tt(u,t,e=0,r=0,i=0,n=0){let s=Math.min(u/2,t/2),a=Math.min(e,s),o=Math.min(r,s),c=Math.min(i,s),l=Math.min(n,s);return a===0&&o===0&&c===0&&l===0?`M 0 0 L ${u} 0 L ${u} ${t} L 0 ${t} Z`:[`M ${a} 0`,`L ${u-o} 0`,o>0?`Q ${u} 0 ${u} ${o}`:`L ${u} 0`,`L ${u} ${t-c}`,c>0?`Q ${u} ${t} ${u-c} ${t}`:`L ${u} ${t}`,`L ${l} ${t}`,l>0?`Q 0 ${t} 0 ${t-l}`:`L 0 ${t}`,`L 0 ${a}`,a>0?`Q 0 0 ${a} 0`:"L 0 0","Z"].join(" ")}function zt(u,t){let e=Math.min(u,t)/2,r=u/2,i=t/2,n=e*.5522847498;return[`M ${r} ${i-e}`,`C ${r+n} ${i-e} ${r+e} ${i-n} ${r+e} ${i}`,`C ${r+e} ${i+n} ${r+n} ${i+e} ${r} ${i+e}`,`C ${r-n} ${i+e} ${r-e} ${i+n} ${r-e} ${i}`,`C ${r-e} ${i-n} ${r-n} ${i-e} ${r} ${i-e}`,"Z"].join(" ")}function jt(u,t){let e=u/2,r=t/2,i=e,n=r,s=e*.5522847498,a=r*.5522847498;return[`M ${i} ${n-r}`,`C ${i+s} ${n-r} ${i+e} ${n-a} ${i+e} ${n}`,`C ${i+e} ${n+a} ${i+s} ${n+r} ${i} ${n+r}`,`C ${i-s} ${n+r} ${i-e} ${n+a} ${i-e} ${n}`,`C ${i-e} ${n-a} ${i-s} ${n-r} ${i} ${n-r}`,"Z"].join(" ")}function Ht(u,t,e=5){let r=Math.max(3,e),i=Math.min(u,t)/2,n=u/2,s=t/2,a=[];for(let o=0;o<r;o++){let c=-Math.PI/2+o*2*Math.PI/r;a.push({x:n+i*Math.cos(c),y:s+i*Math.sin(c)})}return a.map((o,c)=>`${c===0?"M":"L"} ${o.x} ${o.y}`).join(" ")+" Z"}function Nt(u,t,e=5,r=.5){let i=Math.max(3,e),n=Math.min(u,t)/2,s=n*Math.max(.01,Math.min(.99,r)),a=u/2,o=t/2,c=[];for(let l=0;l<i*2;l++){let h=-Math.PI/2+l*Math.PI/i,p=l%2===0?n:s;c.push({x:a+p*Math.cos(h),y:o+p*Math.sin(h)})}return c.map((l,h)=>`${h===0?"M":"L"} ${l.x} ${l.y}`).join(" ")+" Z"}function qt(u,t,e=40,r=40,i=20){let n=Math.min(e,t),s=Math.min(r,u),a=Math.min(i,n),o=t/2;return[`M 0 ${o-a/2}`,`L ${u-s} ${o-a/2}`,`L ${u-s} ${o-n/2}`,`L ${u} ${o}`,`L ${u-s} ${o+n/2}`,`L ${u-s} ${o+a/2}`,`L 0 ${o+a/2}`,"Z"].join(" ")}function ct(u){let{shapeType:t,width:e,height:r}=u;switch(t){case"rect":return Tt(e,r,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0);case"circle":return zt(e,r);case"ellipse":return jt(e,r);case"polygon":return Ht(e,r,u.polygonSides??5);case"star":return Nt(e,r,u.starPoints??5,u.starInnerRadiusRatio??.5);case"arrow":return qt(e,r,u.arrowHeadWidth??40,u.arrowHeadLength??40,u.arrowShaftWidth??20);case"path":return u.path??"";default:return""}}function kt(u){if(u.length<3)return[];if(u.length===3)return[u[0],u[1],u[2]];let t=[...u],e=t[t.length-1],r=t[0];if(Math.hypot(e.x-r.x,e.y-r.y)<1e-5&&t.pop(),t.length<3)return[];let i=0;for(let h=0;h<t.length;h++){let p=(h+1)%t.length;i+=t[h].x*t[p].y-t[p].x*t[h].y}i<0&&t.reverse();let n=(h,p,d,f)=>{let m=(d.x-p.x)*(h.y-p.y)-(d.y-p.y)*(h.x-p.x),y=(f.x-d.x)*(h.y-d.y)-(f.y-d.y)*(h.x-d.x),g=(p.x-f.x)*(h.y-f.y)-(p.y-f.y)*(h.x-f.x);return m>=-1e-6&&y>=-1e-6&&g>=-1e-6},s=(h,p,d,f)=>{if((p.x-h.x)*(d.y-h.y)-(p.y-h.y)*(d.x-h.x)<=1e-7)return!1;for(let y of f)if(!(y===h||y===p||y===d)&&n(y,h,p,d))return!1;return!0},a=[],o=[...t],c=0,l=o.length*o.length*2;for(;o.length>3&&c<l;){c++;let h=!1;for(let p=0;p<o.length;p++){let d=o[(p-1+o.length)%o.length],f=o[p],m=o[(p+1)%o.length];if(s(d,f,m,o)){a.push(d,f,m),o.splice(p,1),h=!0;break}}h||(a.push(o[0],o[1],o[2]),o.splice(1,1))}return o.length===3&&a.push(o[0],o[1],o[2]),a}function Ft(u){let{shapeType:t,width:e,height:r}=u;if(t==="rect"){let i=u.cornerRadius??0;if(i<=0)return new Float32Array([0,0,e,0,e,r,0,0,e,r,0,r]);let n=Tt(e,r,i,i,i,i),a=z(n).map(l=>l.p0),o=kt(a),c=new Float32Array(o.length*2);for(let l=0;l<o.length;l++)c[l*2]=o[l].x,c[l*2+1]=o[l].y;return c}if(t==="circle"||t==="ellipse"){let i=e/2,n=r/2,s=t==="circle"?Math.min(e,r)/2:e/2,a=t==="circle"?s:r/2,o=48,c=new Float32Array(o*3*2),l=0;for(let h=0;h<o;h++){let p=h*2*Math.PI/o,d=(h+1)*2*Math.PI/o;c[l++]=i,c[l++]=n,c[l++]=i+s*Math.cos(p),c[l++]=n+a*Math.sin(p),c[l++]=i+s*Math.cos(d),c[l++]=n+a*Math.sin(d)}return c}if(t==="polygon"){let i=Math.max(3,u.polygonSides??5),n=Math.min(e,r)/2,s=e/2,a=r/2,o=new Float32Array(i*3*2),c=0;for(let l=0;l<i;l++){let h=-Math.PI/2+l*2*Math.PI/i,p=-Math.PI/2+(l+1)*2*Math.PI/i;o[c++]=s,o[c++]=a,o[c++]=s+n*Math.cos(h),o[c++]=a+n*Math.sin(h),o[c++]=s+n*Math.cos(p),o[c++]=a+n*Math.sin(p)}return o}if(t==="star"){let i=Math.max(3,u.starPoints??5),n=Math.min(e,r)/2,s=n*Math.max(.01,Math.min(.99,u.starInnerRadiusRatio??.5)),a=e/2,o=r/2,c=i*2,l=new Float32Array(c*3*2),h=0;for(let p=0;p<c;p++){let d=-Math.PI/2+p*Math.PI/i,f=-Math.PI/2+(p+1)*Math.PI/i,m=p%2===0?n:s,y=(p+1)%2===0?n:s;l[h++]=a,l[h++]=o,l[h++]=a+m*Math.cos(d),l[h++]=o+m*Math.sin(d),l[h++]=a+y*Math.cos(f),l[h++]=o+y*Math.sin(f)}return l}if(t==="arrow"){let i=Math.min(u.arrowHeadWidth??40,r),n=Math.min(u.arrowHeadLength??40,e),s=Math.min(u.arrowShaftWidth??20,i),a=r/2,o=0,c=e-n,l=e,h=a-s/2,p=a+s/2,d=a-i/2,f=a+i/2;return new Float32Array([o,h,c,h,c,p,o,h,c,p,o,p,c,d,l,a,c,f])}if(t==="path"&&u.path){let i=z(u.path);if(i.length===0)return new Float32Array(0);let n=i.map(o=>o.p0),s=kt(n),a=new Float32Array(s.length*2);for(let o=0;o<s.length;o++)a[o*2]=s[o].x,a[o*2+1]=s[o].y;return a}return new Float32Array(0)}x();x();var _t=`
187
187
  struct Uniforms {
188
188
  transformCol0 : vec4<f32>,
189
189
  transformCol1 : vec4<f32>,
@@ -471,4 +471,4 @@ fn sdRoundedRect(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 {
471
471
 
472
472
  return vec4<f32>(fill.rgb * alpha, alpha);
473
473
  }
474
- `;var Z=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new M;uniformData=new Float32Array(72);vertexData=new Float32Array(8);constructor(t,e){this.device=t,this.uniformPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(256,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"solid.wgsl",code:Ot});this.uniformLayout=C(t),this.pipeline=T(t,{label:"SolidPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a=0,o){let c=Y(i),l=c?{r:0,g:0,b:0,a:1}:D(i),h=o?.opacity??1;e.packIntoBuffer(this.uniformData,h,n,s,o?.transform),this.uniformData[15]=a,this.uniformData[16]=l.r,this.uniformData[17]=l.g,this.uniformData[18]=l.b,this.uniformData[19]=l.a,this.uniformData[20]=r.x,this.uniformData[21]=r.y,this.uniformData[22]=r.width,this.uniformData[23]=r.height,X(c,r,this.uniformData,24);let p=this.uniformPool.getBuffer(this.device,this.uniformData);this.vertexData[0]=r.x,this.vertexData[1]=r.y,this.vertexData[2]=r.x+r.width,this.vertexData[3]=r.y,this.vertexData[4]=r.x,this.vertexData[5]=r.y+r.height,this.vertexData[6]=r.x+r.width,this.vertexData[7]=r.y+r.height;let d=this.vertexPool.getBuffer(this.device,this.vertexData);t.setPipeline(this.pipeline);let f=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,p);t.setBindGroup(0,f),t.setVertexBuffer(0,d),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();var J=class{stack=[new DOMMatrix];push(t){let r=this.stack[this.stack.length-1].multiply(t);this.stack.push(r)}pop(){this.stack.length>1&&this.stack.pop()}getCurrent(){return this.stack[this.stack.length-1]}packIntoBuffer(t,e,r,i,n,s){let a=this.getCurrent();n&&(a=a.multiply(n)),t[0]=a.a,t[1]=a.b,t[2]=0,t[3]=0,t[4]=a.c,t[5]=a.d,t[6]=0,t[7]=0,t[8]=a.e,t[9]=a.f,t[10]=1,t[11]=0,t[12]=e,t[13]=r,t[14]=i,t[15]=s??0}destroy(){this.stack=[new DOMMatrix]}};function Yt(u){if(Array.isArray(u)){let r=u[3]??1;return[u[0]*r,u[1]*r,u[2]*r,r]}if("r"in u){let r=u.a??1;return{r:u.r*r,g:u.g*r,b:u.b*r,a:r}}let t=Array.from(u),e=t[3]??1;return[t[0]*e,t[1]*e,t[2]*e,e]}var $t=new WeakMap;function vr(u,t){let e=$t.get(u);return(!e||e.format!==t||e.isDestroyed)&&(e=new pt(u,t),$t.set(u,e)),e.resetPools(),e}var pt=class{device;transformStack=new J;clipStack=new W;quadPipeline;solidPipeline;shapeFillPipeline;pathPipeline;effectPipeline;slugPipeline;bindGroupCache=new V;samplerCache=new Mt;format;isDestroyed=!1;rasterDrawCount=0;surfaceWidth=0;surfaceHeight=0;lastEncoder=null;constructor(t,e){this.device=t,this.format=e,this.quadPipeline=new q(t,e),this.solidPipeline=new Z(t,e),this.shapeFillPipeline=new K(t,e),this.pathPipeline=new H(t,e),this.effectPipeline=new I(t,e),this.slugPipeline=new Gt(t,e)}beginFrame(t,e,r={r:0,g:0,b:0,a:0},i,n,s="clear"){this.surfaceWidth=i,this.surfaceHeight=n,t!==this.lastEncoder&&(this.lastEncoder=t,this.resetPools());let a=t.beginRenderPass({colorAttachments:[{view:e,clearValue:Yt(r),loadOp:s,storeOp:"store"}]});return this.clipStack.applyScissorToPass(a,i,n),a}endFrame(t){}resetPools(){this.quadPipeline.resetPools(),this.solidPipeline.resetPools(),this.shapeFillPipeline.resetPools(),this.pathPipeline.resetPools(),this.effectPipeline&&this.effectPipeline.resetPools(),this.slugPipeline.resetPools(),ot.flushRetired(this.device),ot.prune(this.device)}drawTexture(t,e,r,i){let n=this.samplerCache.getSampler(this.device),s={x:0,y:0,width:e.width,height:e.height};this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,n,s,r,this.surfaceWidth,this.surfaceHeight,i)}drawTextureRegion(t,e,r,i,n){let s=this.samplerCache.getSampler(this.device);this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,s,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawRect(t,e,r,i=0,n){let s=0,a=n;typeof i=="object"&&i!==null?(a=i,s=0):typeof i=="number"&&(s=i),this.rasterDrawCount++,this.solidPipeline.draw(t,this.transformStack,e,r,this.surfaceWidth,this.surfaceHeight,s,a)}drawPath(t,e,r,i,n){this.rasterDrawCount++,this.pathPipeline.drawPath(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShapeFill(t,e,r,i,n){this.rasterDrawCount++,this.shapeFillPipeline.draw(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShape(t,e,r,i,n){let s={x:0,y:0,width:e.width,height:e.height};if(r&&r.type!=="none"){let a=Ft(e);if(a.length>0&&(this.drawShapeFill(t,a,r,s,n),(!i||!i.width||i.width<=0)&&(r.type??"solid")==="solid"&&r.color)){let o=ct(e);o&&this.drawPath(t,o,r.color,1,{...n,strokeLineCap:"round"})}}if(i&&i.width&&i.width>0&&i.color){let a=ct(e);a&&this.drawPath(t,a,i.color,i.width,{...n,strokeLineCap:i.cap,trimStart:i.trimStart,trimEnd:i.trimEnd,trimOffset:i.trimOffset,strokeDashArray:i.dashArray,strokeDashOffset:i.dashOffset})}}drawRRect(t,e,r,i){this.drawRect(t,e.rect,r,e.rx,i)}getTemporaryTexture(t,e,r){return this.effectPipeline.getTexture(this.device,t,e,this.format,r)}getTemporaryBuffer(t){return this.effectPipeline.getBuffer(this.device,t)}composite(t,e,r,i,n){return this.effectPipeline.composite(t,this.bindGroupCache,this.samplerCache,e,r,i,this.format,n)}applyMotionBlur(t,e,r,i,n=180,s=16,a){return this.effectPipeline.applyMotionBlur(t,this.bindGroupCache,this.samplerCache,e,r,i,n,s,this.format,a)}getCurrentTransform(){return this.transformStack.getCurrent()}getTransformStack(){return this.transformStack}getSurfaceWidth(){return this.surfaceWidth}getSurfaceHeight(){return this.surfaceHeight}pushIdentity(){let t=this.transformStack.getCurrent();this.pushTransform(t.inverse())}pushTransform(t){this.transformStack.push(t)}popTransform(){this.transformStack.pop()}pushScissor(t){this.clipStack.pushScissor(t,this.surfaceWidth,this.surfaceHeight)}pushScissorLocal(t){let e=this.transformStack.getCurrent(),r=[e.transformPoint(new DOMPoint(t.x,t.y)),e.transformPoint(new DOMPoint(t.x+t.width,t.y)),e.transformPoint(new DOMPoint(t.x,t.y+t.height)),e.transformPoint(new DOMPoint(t.x+t.width,t.y+t.height))],i=r.map(h=>h.x),n=r.map(h=>h.y),s=Math.min(...i),a=Math.min(...n),o=Math.max(...i)-s,c=Math.max(...n)-a,l=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(l){let h=Math.max(s,l.x),p=Math.max(a,l.y),d=Math.min(s+o,l.x+l.width),f=Math.min(a+c,l.y+l.height);s=h,a=p,o=Math.max(0,d-h),c=Math.max(0,f-p)}this.clipStack.pushScissor({x:s,y:a,width:o,height:c},this.surfaceWidth,this.surfaceHeight)}popScissor(){this.clipStack.popScissor()}suspendScissors(){let t=this.clipStack.saveScissors();return this.clipStack.clearScissors(),t}resumeScissors(t){this.clipStack.restoreScissors(t)}pushStencilClip(t){this.clipStack.pushStencilClip(t)}popStencilClip(){this.clipStack.popStencilClip()}destroy(){this.isDestroyed=!0,this.transformStack.destroy(),this.clipStack.destroy(),this.bindGroupCache.destroy(),this.samplerCache.destroy(),this.quadPipeline.destroy(),this.solidPipeline.destroy(),this.shapeFillPipeline.destroy(),this.pathPipeline.destroy(),this.effectPipeline.destroy(),this.slugPipeline.destroy(),this.lastEncoder=null}};x();async function At(u,t){if(typeof window<"u"&&typeof FontFace<"u")try{let r=await new FontFace(u,`url(${t})`).load();document.fonts.add(r),await document.fonts.ready}catch(e){console.warn(`[preloadFont] Failed to load font "${u}" from ${t}:`,e)}else await Pt(u,t)}x();var Xt=/\p{Extended_Pictographic}/gu,Et=!1;async function Tr(u,t,e=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(a){let o=a.operation;if(o){let c=o.op==="text"||o.kind==="text"||o.op==="caption"||o.kind==="caption"||typeof o.text=="string",l=o.fontFamily||(c?"Inter":"");if(l&&r.add(l),o.op==="text"&&typeof o.text=="string"){let h=o.fontSize??48;for(let p of o.text.match(Xt)??[])i.set(`${p}-${h}`,h)}}for(let c of a.children??[])s(c)})(u);let n=[];for(let s of r){let a=vt(s)??wt(s);n.push(At(s,a).catch(o=>e(o,`font "${s}" from ${a}`))),t&&n.push(O.preloadSlugFont(t,s,a).catch(o=>e(o,`Slug font "${s}" from ${a}`)))}if(t&&i.size>0){!O.hasEmojiFont()&&!Et&&(Et=!0,console.warn("[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path)."));for(let[s,a]of i){let o=s.slice(0,s.lastIndexOf("-"));n.push(O.preloadEmoji(t,o,a).catch(c=>{O.hasEmojiFont()&&e(c,`emoji "${o}"`)}))}}await Promise.all(n)}export{te as a,I as b,z as c,ct as d,vr as e,pt as f,At as g,Tr as h};
474
+ `;var Z=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new M;uniformData=new Float32Array(72);vertexData=new Float32Array(8);constructor(t,e){this.device=t,this.uniformPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(256,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"solid.wgsl",code:Ot});this.uniformLayout=C(t),this.pipeline=T(t,{label:"SolidPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a=0,o){let c=Y(i),l=c?{r:0,g:0,b:0,a:1}:D(i),h=o?.opacity??1;e.packIntoBuffer(this.uniformData,h,n,s,o?.transform),this.uniformData[15]=a,this.uniformData[16]=l.r,this.uniformData[17]=l.g,this.uniformData[18]=l.b,this.uniformData[19]=l.a,this.uniformData[20]=r.x,this.uniformData[21]=r.y,this.uniformData[22]=r.width,this.uniformData[23]=r.height,X(c,r,this.uniformData,24);let p=this.uniformPool.getBuffer(this.device,this.uniformData);this.vertexData[0]=r.x,this.vertexData[1]=r.y,this.vertexData[2]=r.x+r.width,this.vertexData[3]=r.y,this.vertexData[4]=r.x,this.vertexData[5]=r.y+r.height,this.vertexData[6]=r.x+r.width,this.vertexData[7]=r.y+r.height;let d=this.vertexPool.getBuffer(this.device,this.vertexData);t.setPipeline(this.pipeline);let f=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,p);t.setBindGroup(0,f),t.setVertexBuffer(0,d),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();var J=class{stack=[new DOMMatrix];push(t){let r=this.stack[this.stack.length-1].multiply(t);this.stack.push(r)}pop(){this.stack.length>1&&this.stack.pop()}getCurrent(){return this.stack[this.stack.length-1]}packIntoBuffer(t,e,r,i,n,s){let a=this.getCurrent();n&&(a=a.multiply(n)),t[0]=a.a,t[1]=a.b,t[2]=0,t[3]=0,t[4]=a.c,t[5]=a.d,t[6]=0,t[7]=0,t[8]=a.e,t[9]=a.f,t[10]=1,t[11]=0,t[12]=e,t[13]=r,t[14]=i,t[15]=s??0}destroy(){this.stack=[new DOMMatrix]}};function Yt(u){if(Array.isArray(u)){let r=u[3]??1;return[u[0]*r,u[1]*r,u[2]*r,r]}if("r"in u){let r=u.a??1;return{r:u.r*r,g:u.g*r,b:u.b*r,a:r}}let t=Array.from(u),e=t[3]??1;return[t[0]*e,t[1]*e,t[2]*e,e]}var $t=new WeakMap;function vr(u,t){let e=$t.get(u);return(!e||e.format!==t||e.isDestroyed)&&(e=new pt(u,t),$t.set(u,e)),e.resetPools(),e}var pt=class{device;transformStack=new J;clipStack=new W;quadPipeline;solidPipeline;shapeFillPipeline;pathPipeline;effectPipeline;slugPipeline;bindGroupCache=new V;samplerCache=new Mt;format;isDestroyed=!1;rasterDrawCount=0;surfaceWidth=0;surfaceHeight=0;lastEncoder=null;constructor(t,e){this.device=t,this.format=e,this.quadPipeline=new q(t,e),this.solidPipeline=new Z(t,e),this.shapeFillPipeline=new K(t,e),this.pathPipeline=new H(t,e),this.effectPipeline=new E(t,e),this.slugPipeline=new Gt(t,e)}beginFrame(t,e,r={r:0,g:0,b:0,a:0},i,n,s="clear"){this.surfaceWidth=i,this.surfaceHeight=n,t!==this.lastEncoder&&(this.lastEncoder=t,this.resetPools());let a=t.beginRenderPass({colorAttachments:[{view:e,clearValue:Yt(r),loadOp:s,storeOp:"store"}]});return this.clipStack.applyScissorToPass(a,i,n),a}endFrame(t){}resetPools(){this.quadPipeline.resetPools(),this.solidPipeline.resetPools(),this.shapeFillPipeline.resetPools(),this.pathPipeline.resetPools(),this.effectPipeline&&this.effectPipeline.resetPools(),this.slugPipeline.resetPools(),ot.flushRetired(this.device),ot.prune(this.device)}drawTexture(t,e,r,i){let n=this.samplerCache.getSampler(this.device),s={x:0,y:0,width:e.width,height:e.height};this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,n,s,r,this.surfaceWidth,this.surfaceHeight,i)}drawTextureRegion(t,e,r,i,n){let s=this.samplerCache.getSampler(this.device);this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,s,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawRect(t,e,r,i=0,n){let s=0,a=n;typeof i=="object"&&i!==null?(a=i,s=0):typeof i=="number"&&(s=i),this.rasterDrawCount++,this.solidPipeline.draw(t,this.transformStack,e,r,this.surfaceWidth,this.surfaceHeight,s,a)}drawPath(t,e,r,i,n){this.rasterDrawCount++,this.pathPipeline.drawPath(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShapeFill(t,e,r,i,n){this.rasterDrawCount++,this.shapeFillPipeline.draw(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShape(t,e,r,i,n){let s={x:0,y:0,width:e.width,height:e.height};if(r&&r.type!=="none"){let a=Ft(e);if(a.length>0&&(this.drawShapeFill(t,a,r,s,n),(!i||!i.width||i.width<=0)&&(r.type??"solid")==="solid"&&r.color)){let o=ct(e);o&&this.drawPath(t,o,r.color,1,{...n,strokeLineCap:"round"})}}if(i&&i.width&&i.width>0&&i.color){let a=ct(e);a&&this.drawPath(t,a,i.color,i.width,{...n,strokeLineCap:i.cap,trimStart:i.trimStart,trimEnd:i.trimEnd,trimOffset:i.trimOffset,strokeDashArray:i.dashArray,strokeDashOffset:i.dashOffset})}}drawRRect(t,e,r,i){this.drawRect(t,e.rect,r,e.rx,i)}getTemporaryTexture(t,e,r){return this.effectPipeline.getTexture(this.device,t,e,this.format,r)}getTemporaryBuffer(t){return this.effectPipeline.getBuffer(this.device,t)}composite(t,e,r,i,n){return this.effectPipeline.composite(t,this.bindGroupCache,this.samplerCache,e,r,i,this.format,n)}applyMotionBlur(t,e,r,i,n=180,s=16,a){return this.effectPipeline.applyMotionBlur(t,this.bindGroupCache,this.samplerCache,e,r,i,n,s,this.format,a)}getCurrentTransform(){return this.transformStack.getCurrent()}getTransformStack(){return this.transformStack}getSurfaceWidth(){return this.surfaceWidth}getSurfaceHeight(){return this.surfaceHeight}pushIdentity(){let t=this.transformStack.getCurrent();this.pushTransform(t.inverse())}pushTransform(t){this.transformStack.push(t)}popTransform(){this.transformStack.pop()}pushScissor(t){this.clipStack.pushScissor(t,this.surfaceWidth,this.surfaceHeight)}pushScissorLocal(t){let e=this.transformStack.getCurrent(),r=[e.transformPoint(new DOMPoint(t.x,t.y)),e.transformPoint(new DOMPoint(t.x+t.width,t.y)),e.transformPoint(new DOMPoint(t.x,t.y+t.height)),e.transformPoint(new DOMPoint(t.x+t.width,t.y+t.height))],i=r.map(h=>h.x),n=r.map(h=>h.y),s=Math.min(...i),a=Math.min(...n),o=Math.max(...i)-s,c=Math.max(...n)-a,l=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(l){let h=Math.max(s,l.x),p=Math.max(a,l.y),d=Math.min(s+o,l.x+l.width),f=Math.min(a+c,l.y+l.height);s=h,a=p,o=Math.max(0,d-h),c=Math.max(0,f-p)}this.clipStack.pushScissor({x:s,y:a,width:o,height:c},this.surfaceWidth,this.surfaceHeight)}popScissor(){this.clipStack.popScissor()}suspendScissors(){let t=this.clipStack.saveScissors();return this.clipStack.clearScissors(),t}resumeScissors(t){this.clipStack.restoreScissors(t)}pushStencilClip(t){this.clipStack.pushStencilClip(t)}popStencilClip(){this.clipStack.popStencilClip()}destroy(){this.isDestroyed=!0,this.transformStack.destroy(),this.clipStack.destroy(),this.bindGroupCache.destroy(),this.samplerCache.destroy(),this.quadPipeline.destroy(),this.solidPipeline.destroy(),this.shapeFillPipeline.destroy(),this.pathPipeline.destroy(),this.effectPipeline.destroy(),this.slugPipeline.destroy(),this.lastEncoder=null}};x();async function At(u,t){if(typeof window<"u"&&typeof FontFace<"u")try{let r=await new FontFace(u,`url(${t})`).load();document.fonts.add(r),await document.fonts.ready}catch(e){console.warn(`[preloadFont] Failed to load font "${u}" from ${t}:`,e)}else await Pt(u,t)}x();var Xt=/\p{Extended_Pictographic}/gu,It=!1;async function Tr(u,t,e=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(a){let o=a.operation;if(o){let c=o.op==="text"||o.kind==="text"||o.op==="caption"||o.kind==="caption"||typeof o.text=="string",l=o.fontFamily||(c?"Inter":"");if(l&&r.add(l),o.op==="text"&&typeof o.text=="string"){let h=o.fontSize??48;for(let p of o.text.match(Xt)??[])i.set(`${p}-${h}`,h)}}for(let c of a.children??[])s(c)})(u);let n=[];for(let s of r){let a=vt(s)??wt(s);n.push(At(s,a).catch(o=>e(o,`font "${s}" from ${a}`))),t&&n.push(O.preloadSlugFont(t,s,a).catch(o=>e(o,`Slug font "${s}" from ${a}`)))}if(t&&i.size>0){!O.hasEmojiFont()&&!It&&(It=!0,console.warn("[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path)."));for(let[s,a]of i){let o=s.slice(0,s.lastIndexOf("-"));n.push(O.preloadEmoji(t,o,a).catch(c=>{O.hasEmojiFont()&&e(c,`emoji "${o}"`)}))}}await Promise.all(n)}export{te as a,E as b,z as c,ct as d,vr as e,pt as f,At as g,Tr as h};
@@ -1,4 +1,4 @@
1
- import{a as g}from"./chunk-37EFVZWT.mjs";import{a as c,d as s}from"./chunk-6YJP57MZ.mjs";import{c as t,d as a,z as f}from"./chunk-63SFBHEH.mjs";import{e as d}from"./chunk-BVF64D6H.mjs";d();d();var l=async(n,m,p,e)=>{if(!e?.device||!n||n.length===0||n[0].length===0)return;let r=p.operation||{},i=r.nodeId||r.id||"audio-signal-extractor",v=e.fps??24,y=a(r.extractionMode,""),b=a(r.curve,""),I={extractionMode:y||void 0,attackMs:t(r.attackMs,10),releaseMs:t(r.releaseMs,120),sensitivity:t(r.sensitivity,1),noiseFloorDb:t(r.noiseFloorDb,-45),dynamicRangeDb:t(r.dynamicRangeDb,36),smoothing:t(r.smoothing,.15),curve:b||void 0,beatThreshold:t(r.beatThreshold,.55),beatDecayMs:t(r.beatDecayMs,80)},o=await c.extractFeatures(e.device,n,m,v,I,512);s.registerBuffer(e.device,i,o.primaryBuffer,e.renderId),s.registerBuffer(e.device,`${i}_beat`,o.beatBuffer,e.renderId),s.registerBuffer(e.device,`${i}_bass`,o.bassBuffer,e.renderId),s.registerBuffer(e.device,`${i}_energy`,o.energyBuffer,e.renderId),s.registerTexture(e.device,i,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_beat`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_bass`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_energy`,o.texture,o.textureView,e.renderId);let u=`signal_${i.replace(/[^a-zA-Z0-9]/g,"_")}`,A=`
1
+ import{a as g}from"./chunk-37EFVZWT.mjs";import{c as t,d as a,z as f}from"./chunk-63SFBHEH.mjs";import{a as c,d as s}from"./chunk-6YJP57MZ.mjs";import{e as d}from"./chunk-BVF64D6H.mjs";d();d();var l=async(n,m,p,e)=>{if(!e?.device||!n||n.length===0||n[0].length===0)return;let r=p.operation||{},i=r.nodeId||r.id||"audio-signal-extractor",v=e.fps??24,y=a(r.extractionMode,""),b=a(r.curve,""),I={extractionMode:y||void 0,attackMs:t(r.attackMs,10),releaseMs:t(r.releaseMs,120),sensitivity:t(r.sensitivity,1),noiseFloorDb:t(r.noiseFloorDb,-45),dynamicRangeDb:t(r.dynamicRangeDb,36),smoothing:t(r.smoothing,.15),curve:b||void 0,beatThreshold:t(r.beatThreshold,.55),beatDecayMs:t(r.beatDecayMs,80)},o=await c.extractFeatures(e.device,n,m,v,I,512);s.registerBuffer(e.device,i,o.primaryBuffer,e.renderId),s.registerBuffer(e.device,`${i}_beat`,o.beatBuffer,e.renderId),s.registerBuffer(e.device,`${i}_bass`,o.bassBuffer,e.renderId),s.registerBuffer(e.device,`${i}_energy`,o.energyBuffer,e.renderId),s.registerTexture(e.device,i,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_beat`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_bass`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_energy`,o.texture,o.textureView,e.renderId);let u=`signal_${i.replace(/[^a-zA-Z0-9]/g,"_")}`,A=`
2
2
  fn ${u}(t: f32, x: f32, y: f32, z: f32, i: u32, n: u32, frame: u32, color: vec4f, t_elapsed: f32, duration: f32) -> f32 {
3
3
  return 0.0f;
4
4
  }
@@ -1,4 +1,4 @@
1
- import{a as ge}from"./chunk-XOEEGC4Z.mjs";import{b as pe,c as ve}from"./chunk-FLPSWDX4.mjs";import{a as s}from"./chunk-NQZKBFC6.mjs";import{a as d,d as K,e as se,f as ue,g as oe,h as ce,j as de,k as me,l as fe,m as U}from"./chunk-ENKKLU7B.mjs";import{d as le}from"./chunk-6YJP57MZ.mjs";import{v as ae,z as ne}from"./chunk-63SFBHEH.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();h();var Q=100,Xe=ge().field("blurType",s.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",s.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",s.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",s.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",s.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",s.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",s.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",s.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),Oe=Xe.schema,je=s.union([pe,ve]);var g=`
1
+ import{a as ge}from"./chunk-XOEEGC4Z.mjs";import{b as pe,c as ve}from"./chunk-FLPSWDX4.mjs";import{a as s}from"./chunk-NQZKBFC6.mjs";import{a as d,d as K,e as se,f as ue,g as oe,h as ce,j as de,k as me,l as fe,m as U}from"./chunk-ENKKLU7B.mjs";import{v as ae,z as ne}from"./chunk-63SFBHEH.mjs";import{d as le}from"./chunk-6YJP57MZ.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();h();var Q=100,Xe=ge().field("blurType",s.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",s.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",s.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",s.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",s.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",s.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",s.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",s.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),Oe=Xe.schema,je=s.union([pe,ve]);var g=`
2
2
  struct BlurUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -1,4 +1,4 @@
1
- import{a as p}from"./chunk-ZH5MZQTZ.mjs";import{c as n,y as f,z as u}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var P=["threshold","ratio","attack","release","knee","makeupGain"],y=()=>`
1
+ import{a as p}from"./chunk-OG62XGCT.mjs";import{c as n,y as f,z as u}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var P=["threshold","ratio","attack","release","knee","makeupGain"],y=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  threshold : f32,
@@ -1,4 +1,4 @@
1
- import{a as _}from"./chunk-ZH5MZQTZ.mjs";import{c as a,y as n,z as O}from"./chunk-63SFBHEH.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var U=["roomSize","damping","wet","dry","width"],G=()=>`
1
+ import{a as _}from"./chunk-OG62XGCT.mjs";import{c as a,y as n,z as O}from"./chunk-63SFBHEH.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var U=["roomSize","damping","wet","dry","width"],G=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  roomSize : f32,
@@ -1,4 +1,4 @@
1
- import{a as p}from"./chunk-ZH5MZQTZ.mjs";import{c as t,y as n,z as m}from"./chunk-63SFBHEH.mjs";import{e as s}from"./chunk-BVF64D6H.mjs";s();s();var C=["threshold","attack","hold","release","range"],I=()=>`
1
+ import{a as p}from"./chunk-OG62XGCT.mjs";import{c as t,y as n,z as m}from"./chunk-63SFBHEH.mjs";import{e as s}from"./chunk-BVF64D6H.mjs";s();s();var C=["threshold","attack","hold","release","range"],I=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  threshold : f32,
@@ -1,4 +1,4 @@
1
- import{a as P,d as h,f as V,g as _,h as C,j as B,k as M,m as k}from"./chunk-ENKKLU7B.mjs";import{d as v}from"./chunk-6YJP57MZ.mjs";import{z as U}from"./chunk-63SFBHEH.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();var te=`
1
+ import{a as P,d as h,f as V,g as _,h as C,j as B,k as M,m as k}from"./chunk-ENKKLU7B.mjs";import{z as U}from"./chunk-63SFBHEH.mjs";import{d as v}from"./chunk-6YJP57MZ.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();var te=`
2
2
  struct FilmUniforms {
3
3
  strength : f32,
4
4
  size : f32,
@@ -1,4 +1,4 @@
1
- import{a as z,d as x,e as Y,g as X,h as G,j as F,k as O,m as k}from"./chunk-ENKKLU7B.mjs";import{d as U}from"./chunk-6YJP57MZ.mjs";import{x as s,z as N}from"./chunk-63SFBHEH.mjs";import{a as W}from"./chunk-IQC2I5A5.mjs";import{e as S}from"./chunk-BVF64D6H.mjs";S();S();var ve=`
1
+ import{a as z,d as x,e as Y,g as X,h as G,j as F,k as O,m as k}from"./chunk-ENKKLU7B.mjs";import{x as s,z as N}from"./chunk-63SFBHEH.mjs";import{d as U}from"./chunk-6YJP57MZ.mjs";import{a as W}from"./chunk-IQC2I5A5.mjs";import{e as S}from"./chunk-BVF64D6H.mjs";S();S();var ve=`
2
2
  struct RefractionCausticsUniforms {
3
3
  // vec4 0
4
4
  _pad0 : f32,
@@ -1,4 +1,4 @@
1
- import{a as W,d as V,e as $,f as j,g as E,h as F,j as A,k as Y,m as q}from"./chunk-ENKKLU7B.mjs";import{d as p}from"./chunk-6YJP57MZ.mjs";import{z as O}from"./chunk-63SFBHEH.mjs";import{e as C}from"./chunk-BVF64D6H.mjs";C();C();var ne=`
1
+ import{a as W,d as V,e as $,f as j,g as E,h as F,j as A,k as Y,m as q}from"./chunk-ENKKLU7B.mjs";import{z as O}from"./chunk-63SFBHEH.mjs";import{d as p}from"./chunk-6YJP57MZ.mjs";import{e as C}from"./chunk-BVF64D6H.mjs";C();C();var ne=`
2
2
  struct ColorKeyUniforms {
3
3
  similarity : f32,
4
4
  smoothness : f32,
@@ -1,4 +1,4 @@
1
- import{a as g}from"./chunk-ZH5MZQTZ.mjs";import{c as m,h as u,z as l}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var x=["pan"],w=()=>`
1
+ import{a as g}from"./chunk-OG62XGCT.mjs";import{c as m,h as u,z as l}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var x=["pan"],w=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  pan : f32,
@@ -1 +1 @@
1
- import{a as mt}from"./chunk-37EFVZWT.mjs";import{c as ht}from"./chunk-2SJ4BBMT.mjs";import{i as ut,l as N}from"./chunk-24P6DAB3.mjs";import{c as ft,e as et}from"./chunk-NIRW77QA.mjs";import{C as dt}from"./chunk-63SFBHEH.mjs";import{d as L,e as j}from"./chunk-BVF64D6H.mjs";j();j();j();function pt(e,n){return Math.round(e*n)}function X(e,n,i={timeOffsetSec:0}){if(!e)return e;let{operation:u,metadata:d={},children:c=[]}=e,{timeOffsetSec:p,durationLimitMs:s}=i;if(!u)return{...e,children:(c||[]).map(t=>X(t,n,i))};let m=u.timeline,y=m?.segments||[],f=N(e)?.durationMs??0;if(y.length>0){let t=y.reduce((a,A)=>{let z=A.endSec!=null?A.endSec-A.startSec:0,v=Math.max(1,Math.round(z*n));return a+v},0);t>0&&(f=t/n*1e3)}let h={...u},o=m?.startFrame??h.startFrame;if(typeof o=="number"){let t=pt(p,n);h.startFrame=o-t}let M={...d,durationMs:f},r=typeof o=="number"||h.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:p,durationLimitMs:s},F=(c||[]).map(t=>X(t,n,r));return{metadata:M,operation:h,children:F}}var gt=typeof L<"u"&&/^(debug|trace)$/i.test(L.env?.LOG_LEVEL??""),b={debug:(e,...n)=>{gt&&(typeof e=="object"&&e!==null?console.info("[AudioExtractor]",e,...n):console.info(`[AudioExtractor] ${e}`,...n))},warn:(e,...n)=>{typeof e=="object"&&e!==null?console.warn("[AudioExtractor]",e,...n):console.warn(`[AudioExtractor] ${e}`,...n)},error:(e,...n)=>{typeof e=="object"&&e!==null?console.error("[AudioExtractor]",e,...n):console.error(`[AudioExtractor] ${e}`,...n)}},wt=()=>{if(typeof window>"u")return Promise.resolve();let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))},Mt=async(e=3e4)=>{await new Promise(i=>setTimeout(i,100));let n=Date.now();return new Promise(i=>{let u=()=>{let d=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],c=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,p=d.length>0,s=c instanceof Set&&c.size>0;if(!p&&!s){i();return}if(Date.now()-n>e){b.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:d,globalDelays:c?Array.from(c):[]})}`),i();return}setTimeout(u,50)};u()})};async function xt(e){b.debug(`[AudioExtractor] decodeAudioSource started for url: ${e}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof L<"u"&&L.versions&&L.versions.node)){b.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${e}...`);let u=window.AudioContext||window.webkitAudioContext;if(!u)throw new Error("AudioContext is not supported in this browser");let d=new u;try{let c=await fetch(e);if(b.debug(`[AudioExtractor] Fetch response status for ${e}: ${c.status} (${c.statusText})`),!c.ok)throw new Error(`Failed to fetch audio source: ${c.statusText}`);let p=await c.arrayBuffer();b.debug(`[AudioExtractor] Fetched ${p.byteLength} bytes. Decoding audio data...`);let s=await d.decodeAudioData(p);b.debug(`[AudioExtractor] Decoded successfully: ${s.numberOfChannels} channels, sampleRate: ${s.sampleRate}, duration: ${s.duration}s`);let m=[];for(let y=0;y<s.numberOfChannels;y++)m.push(new Float32Array(s.getChannelData(y)));return{channels:m,sampleRate:s.sampleRate}}finally{d.close(),b.debug(`[AudioExtractor] AudioContext closed for ${e}`)}}let i=!1;try{b.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${e}...`);let u=await et.acquire(e);i=!0,b.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let d=await u.getPrimaryAudioTrack();if(!d)return b.warn(`[AudioExtractor] No primary audio track found in input for ${e}`),null;let p=new ft(d).samples(0),s=[],m=0,y=48e3,f=1;b.debug(`[AudioExtractor] Starting mediabunny generator loop for ${e}...`);for await(let o of p){y=o.sampleRate,f=o.numberOfChannels;let M=o.numberOfFrames;if(s.length===0)for(let l=0;l<f;l++)s.push([]);for(let l=0;l<f;l++){let r;try{let F=o.allocationSize({planeIndex:l,format:"f32-planar"});r=new Float32Array(F/4),o.copyTo(r,{planeIndex:l,format:"f32-planar"})}catch{let F=o.allocationSize({planeIndex:l});if(o.format==="s16"||o.format==="s16-planar"){let t=new Int16Array(F/2);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/32768}else if(o.format==="s32"||o.format==="s32-planar"){let t=new Int32Array(F/4);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/2147483648}else if(o.format==="u8"||o.format==="u8-planar"){let t=new Uint8Array(F);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=((t[a]??128)-128)/128}else r=new Float32Array(F/4),o.copyTo(r,{planeIndex:l})}s[l].push(r)}m+=M,o.close()}return b.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${m}`),m===0||s.length===0?null:{channels:s.map(o=>{let M=new Float32Array(m),l=0;for(let r of o)M.set(r,l),l+=r.length;return M}),sampleRate:y}}catch(u){if(u instanceof Error&&u.message.includes("Cannot open local media file"))throw u;if(typeof L<"u"&&L.versions?.node)try{let{execSync:d}=await import("./child_process-AIL2NBWS.mjs"),c=d(`ffmpeg -v error -i "${e}" -f f32le -ar 48000 -ac 2 pipe:1`,{maxBuffer:100*1024*1024}),p=c.byteLength/4,s=p/2,m=new Float32Array(c.buffer,c.byteOffset,p),y=new Float32Array(s),f=new Float32Array(s);for(let h=0;h<s;h++)y[h]=m[h*2],f[h]=m[h*2+1];return{channels:[y,f],sampleRate:48e3}}catch(d){b.warn({ffmpegErr:d},`[AudioExtractor] ffmpeg fallback decode failed for ${e}`)}return b.error({err:u},`[AudioExtractor] Failed to decode source ${e}`),null}finally{i&&et.release(e)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return b.error({err:n},`[AudioExtractor] Failed to decode source ${e}`),null}}async function yt(e,n,i,u,d,c){let p=new Float32Array(d),m=n/i*u,y=1e5;for(let f=0;f<d;f++){f>0&&f%y===0&&await wt();let h=c+f*m,o=Math.floor(h),M=Math.ceil(h);if(o<0){p[f]=0;continue}if(o>=e.length)break;let l=h-o,r=e[o]??0,F=M>=0&&M<e.length?e[M]??r:r,t=r+l*(F-r);p[f]=Number.isFinite(t)?t:0}return p}async function It(e,n,i=48e3,u,d){b.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${n}, targetSampleRate: ${i}`),await Mt(),mt.registerSignalsFromComposition(d,e);let c=N(e)?.durationMs||1e3,p=c/1e3,s=Math.ceil(p*i);b.debug(`[AudioExtractor] Composition total duration: ${c}ms (${p}s). Total mixed samples to allocate: ${s}`);let m=new Float32Array(s),y=new Float32Array(s),f=[m,y],h=new Map;async function o(t,a,A,z,v,B){if(!t)return null;let x=t.operation;if(!x){let k=N(t)?.durationMs??0,D=Math.round(k/1e3*n),U=B!==null?D>0?Math.min(B,D):B:D,O=Math.ceil(U/n*i);if(O<=0)return null;let q=new Float32Array(O),G=new Float32Array(O),H=[q,G];for(let C of t.children){let Y=await o(C,a,A,z,v,U);if(Y){let E=C.operation,S=E?.startFrame??E?.timeline?.startFrame??0,T=Math.round(S/n*i);for(let P=0;P<2;P++){let w=H[P],R=Y[P],g=Math.min(R.length,w.length-T);for(let $=0;$<g;$++)T+$>=0&&(w[T+$]+=R[$])}}}return H}let W=z*(x.volume??1)*(x.opacity===0?0:1)*(x.muted?0:1),nt=v,bt=x.startFrame??x.timeline?.startFrame??0,ot=A+bt,rt=x.timeline?.segments||[],V=x,at=V.op==="CompositorLayer"?(V.mediaStartFrame??V.trimStartFrames??null)!==null?(V.mediaStartFrame??V.trimStartFrames??0)/n:Math.round((V.trimStartSec??0)*n)/n:0,At=N(t)?.durationMs??0,K=Math.round(At/1e3*n),St=B!==null?K>0?Math.min(B,K):B:K,I=Math.ceil(St/n*i);if(I<=0)return null;let st=new Float32Array(I),it=new Float32Array(I),Z=[st,it],ct=async(k,D)=>{let U=k?k.startSec:0,O=a+at+U,q=ot+D,G=0;k?G=Math.max(1,Math.round(((k.endSec??0)-k.startSec)*n)):G=K;let H=B!==null?Math.min(B,G):G,C=Math.round(D/n*i);if(x.op==="source"){let E=ut(t),S=ht(t);if(S.sourceUrl&&(E==="Audio"||E==="Video")&&W>0){let T=Math.max(.5,nt*(Number(S.speed)||1)),P=Math.max(0,(Number(S.trimStartSec)||0)+O),w=h.get(S.sourceUrl);if(w===void 0&&(w=await xt(S.sourceUrl),h.set(S.sourceUrl,w)),w){let R=H/n,g=Math.min(I-C,Math.ceil(R*i));if(g>0&&C<I){let $=Math.round(P*w.sampleRate),Q=w.channels[0],tt=w.channels.length>1?w.channels[1]:w.channels[0],_=await yt(Q,w.sampleRate,i,T,g,$),Ft=await yt(tt,w.sampleRate,i,T,g,$);for(let J=0;J<g;J++){let lt=C+J;st[lt]+=_[J]*W,it[lt]+=Ft[J]*W}}}await wt()}}if(t.children)for(let E of t.children){let S=await o(E,O,q,W,nt,H);if(S){let T=E.operation,P=T?.startFrame??T?.timeline?.startFrame??0,w=Math.round(P/n*i),R=C+w;for(let g=0;g<2;g++){let $=Z[g],Q=S[g],tt=Math.min(Q.length,$.length-R);for(let _=0;_<tt;_++)R+_>=0&&($[R+_]+=Q[_])}}}let Y=dt.get(x.op);if(Y)try{let E=H/n,S=Math.min(I-C,Math.ceil(E*i));if(S>0&&C<I&&C>=0){let T=Z.map(g=>g.subarray(C,C+S)),P=x.op==="CompositorLayer"?ot:0,w=((q-P)/n+O-at)*1e3,R=N(t)?.durationMs??void 0;await Y(T,i,t,{device:u,frame:q,fps:n,renderId:d,elapsedMs:w,durationMs:R})}}catch(E){b.error({err:E},`[AudioExtractor] Custom plugin for operation '${x.op}' failed`)}};if(rt.length>0){let k=0;for(let D of rt){let U=(D.endSec??0)-D.startSec,O=Math.max(1,Math.round(U*n));await ct(D,k),k+=O}}else await ct(null,0);return Z}let M=X(e,n),l=await o(M,0,0,1,1,null);if(l)for(let t=0;t<2;t++){let a=f[t],A=l[t],z=Math.min(A.length,a.length);for(let v=0;v<z;v++)a[v]=A[v]}h.clear();let r=0;for(let t=0;t<s;t++){let a=Math.abs(m[t]??0),A=Math.abs(y[t]??0);a>r&&(r=a),A>r&&(r=A)}let F=r>.95?.92/r:1;for(let t=0;t<s;t++){let a=(m[t]??0)*F,A=(y[t]??0)*F;m[t]=Number.isFinite(a)?Math.tanh(a):0,y[t]=Number.isFinite(A)?Math.tanh(A):0}return{channels:f,sampleRate:i}}export{xt as a,It as b};
1
+ import{a as mt}from"./chunk-37EFVZWT.mjs";import{c as ht}from"./chunk-2SJ4BBMT.mjs";import{c as ft,e as et}from"./chunk-NIRW77QA.mjs";import{i as ut,l as N}from"./chunk-24P6DAB3.mjs";import{C as dt}from"./chunk-63SFBHEH.mjs";import{d as L,e as j}from"./chunk-BVF64D6H.mjs";j();j();j();function pt(e,n){return Math.round(e*n)}function X(e,n,i={timeOffsetSec:0}){if(!e)return e;let{operation:u,metadata:d={},children:c=[]}=e,{timeOffsetSec:p,durationLimitMs:s}=i;if(!u)return{...e,children:(c||[]).map(t=>X(t,n,i))};let m=u.timeline,y=m?.segments||[],f=N(e)?.durationMs??0;if(y.length>0){let t=y.reduce((a,A)=>{let z=A.endSec!=null?A.endSec-A.startSec:0,v=Math.max(1,Math.round(z*n));return a+v},0);t>0&&(f=t/n*1e3)}let h={...u},o=m?.startFrame??h.startFrame;if(typeof o=="number"){let t=pt(p,n);h.startFrame=o-t}let M={...d,durationMs:f},r=typeof o=="number"||h.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:p,durationLimitMs:s},F=(c||[]).map(t=>X(t,n,r));return{metadata:M,operation:h,children:F}}var gt=typeof L<"u"&&/^(debug|trace)$/i.test(L.env?.LOG_LEVEL??""),b={debug:(e,...n)=>{gt&&(typeof e=="object"&&e!==null?console.info("[AudioExtractor]",e,...n):console.info(`[AudioExtractor] ${e}`,...n))},warn:(e,...n)=>{typeof e=="object"&&e!==null?console.warn("[AudioExtractor]",e,...n):console.warn(`[AudioExtractor] ${e}`,...n)},error:(e,...n)=>{typeof e=="object"&&e!==null?console.error("[AudioExtractor]",e,...n):console.error(`[AudioExtractor] ${e}`,...n)}},wt=()=>{if(typeof window>"u")return Promise.resolve();let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))},Mt=async(e=3e4)=>{await new Promise(i=>setTimeout(i,100));let n=Date.now();return new Promise(i=>{let u=()=>{let d=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],c=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,p=d.length>0,s=c instanceof Set&&c.size>0;if(!p&&!s){i();return}if(Date.now()-n>e){b.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:d,globalDelays:c?Array.from(c):[]})}`),i();return}setTimeout(u,50)};u()})};async function xt(e){b.debug(`[AudioExtractor] decodeAudioSource started for url: ${e}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof L<"u"&&L.versions&&L.versions.node)){b.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${e}...`);let u=window.AudioContext||window.webkitAudioContext;if(!u)throw new Error("AudioContext is not supported in this browser");let d=new u;try{let c=await fetch(e);if(b.debug(`[AudioExtractor] Fetch response status for ${e}: ${c.status} (${c.statusText})`),!c.ok)throw new Error(`Failed to fetch audio source: ${c.statusText}`);let p=await c.arrayBuffer();b.debug(`[AudioExtractor] Fetched ${p.byteLength} bytes. Decoding audio data...`);let s=await d.decodeAudioData(p);b.debug(`[AudioExtractor] Decoded successfully: ${s.numberOfChannels} channels, sampleRate: ${s.sampleRate}, duration: ${s.duration}s`);let m=[];for(let y=0;y<s.numberOfChannels;y++)m.push(new Float32Array(s.getChannelData(y)));return{channels:m,sampleRate:s.sampleRate}}finally{d.close(),b.debug(`[AudioExtractor] AudioContext closed for ${e}`)}}let i=!1;try{b.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${e}...`);let u=await et.acquire(e);i=!0,b.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let d=await u.getPrimaryAudioTrack();if(!d)return b.warn(`[AudioExtractor] No primary audio track found in input for ${e}`),null;let p=new ft(d).samples(0),s=[],m=0,y=48e3,f=1;b.debug(`[AudioExtractor] Starting mediabunny generator loop for ${e}...`);for await(let o of p){y=o.sampleRate,f=o.numberOfChannels;let M=o.numberOfFrames;if(s.length===0)for(let l=0;l<f;l++)s.push([]);for(let l=0;l<f;l++){let r;try{let F=o.allocationSize({planeIndex:l,format:"f32-planar"});r=new Float32Array(F/4),o.copyTo(r,{planeIndex:l,format:"f32-planar"})}catch{let F=o.allocationSize({planeIndex:l});if(o.format==="s16"||o.format==="s16-planar"){let t=new Int16Array(F/2);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/32768}else if(o.format==="s32"||o.format==="s32-planar"){let t=new Int32Array(F/4);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/2147483648}else if(o.format==="u8"||o.format==="u8-planar"){let t=new Uint8Array(F);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=((t[a]??128)-128)/128}else r=new Float32Array(F/4),o.copyTo(r,{planeIndex:l})}s[l].push(r)}m+=M,o.close()}return b.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${m}`),m===0||s.length===0?null:{channels:s.map(o=>{let M=new Float32Array(m),l=0;for(let r of o)M.set(r,l),l+=r.length;return M}),sampleRate:y}}catch(u){if(u instanceof Error&&u.message.includes("Cannot open local media file"))throw u;if(typeof L<"u"&&L.versions?.node)try{let{execSync:d}=await import("./child_process-AIL2NBWS.mjs"),c=d(`ffmpeg -v error -i "${e}" -f f32le -ar 48000 -ac 2 pipe:1`,{maxBuffer:100*1024*1024}),p=c.byteLength/4,s=p/2,m=new Float32Array(c.buffer,c.byteOffset,p),y=new Float32Array(s),f=new Float32Array(s);for(let h=0;h<s;h++)y[h]=m[h*2],f[h]=m[h*2+1];return{channels:[y,f],sampleRate:48e3}}catch(d){b.warn({ffmpegErr:d},`[AudioExtractor] ffmpeg fallback decode failed for ${e}`)}return b.error({err:u},`[AudioExtractor] Failed to decode source ${e}`),null}finally{i&&et.release(e)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return b.error({err:n},`[AudioExtractor] Failed to decode source ${e}`),null}}async function yt(e,n,i,u,d,c){let p=new Float32Array(d),m=n/i*u,y=1e5;for(let f=0;f<d;f++){f>0&&f%y===0&&await wt();let h=c+f*m,o=Math.floor(h),M=Math.ceil(h);if(o<0){p[f]=0;continue}if(o>=e.length)break;let l=h-o,r=e[o]??0,F=M>=0&&M<e.length?e[M]??r:r,t=r+l*(F-r);p[f]=Number.isFinite(t)?t:0}return p}async function It(e,n,i=48e3,u,d){b.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${n}, targetSampleRate: ${i}`),await Mt(),mt.registerSignalsFromComposition(d,e);let c=N(e)?.durationMs||1e3,p=c/1e3,s=Math.ceil(p*i);b.debug(`[AudioExtractor] Composition total duration: ${c}ms (${p}s). Total mixed samples to allocate: ${s}`);let m=new Float32Array(s),y=new Float32Array(s),f=[m,y],h=new Map;async function o(t,a,A,z,v,B){if(!t)return null;let x=t.operation;if(!x){let k=N(t)?.durationMs??0,D=Math.round(k/1e3*n),U=B!==null?D>0?Math.min(B,D):B:D,O=Math.ceil(U/n*i);if(O<=0)return null;let q=new Float32Array(O),G=new Float32Array(O),H=[q,G];for(let C of t.children){let Y=await o(C,a,A,z,v,U);if(Y){let E=C.operation,S=E?.startFrame??E?.timeline?.startFrame??0,T=Math.round(S/n*i);for(let P=0;P<2;P++){let w=H[P],R=Y[P],g=Math.min(R.length,w.length-T);for(let $=0;$<g;$++)T+$>=0&&(w[T+$]+=R[$])}}}return H}let W=z*(x.volume??1)*(x.opacity===0?0:1)*(x.muted?0:1),nt=v,bt=x.startFrame??x.timeline?.startFrame??0,ot=A+bt,rt=x.timeline?.segments||[],V=x,at=V.op==="CompositorLayer"?(V.mediaStartFrame??V.trimStartFrames??null)!==null?(V.mediaStartFrame??V.trimStartFrames??0)/n:Math.round((V.trimStartSec??0)*n)/n:0,At=N(t)?.durationMs??0,K=Math.round(At/1e3*n),St=B!==null?K>0?Math.min(B,K):B:K,I=Math.ceil(St/n*i);if(I<=0)return null;let st=new Float32Array(I),it=new Float32Array(I),Z=[st,it],ct=async(k,D)=>{let U=k?k.startSec:0,O=a+at+U,q=ot+D,G=0;k?G=Math.max(1,Math.round(((k.endSec??0)-k.startSec)*n)):G=K;let H=B!==null?Math.min(B,G):G,C=Math.round(D/n*i);if(x.op==="source"){let E=ut(t),S=ht(t);if(S.sourceUrl&&(E==="Audio"||E==="Video")&&W>0){let T=Math.max(.5,nt*(Number(S.speed)||1)),P=Math.max(0,(Number(S.trimStartSec)||0)+O),w=h.get(S.sourceUrl);if(w===void 0&&(w=await xt(S.sourceUrl),h.set(S.sourceUrl,w)),w){let R=H/n,g=Math.min(I-C,Math.ceil(R*i));if(g>0&&C<I){let $=Math.round(P*w.sampleRate),Q=w.channels[0],tt=w.channels.length>1?w.channels[1]:w.channels[0],_=await yt(Q,w.sampleRate,i,T,g,$),Ft=await yt(tt,w.sampleRate,i,T,g,$);for(let J=0;J<g;J++){let lt=C+J;st[lt]+=_[J]*W,it[lt]+=Ft[J]*W}}}await wt()}}if(t.children)for(let E of t.children){let S=await o(E,O,q,W,nt,H);if(S){let T=E.operation,P=T?.startFrame??T?.timeline?.startFrame??0,w=Math.round(P/n*i),R=C+w;for(let g=0;g<2;g++){let $=Z[g],Q=S[g],tt=Math.min(Q.length,$.length-R);for(let _=0;_<tt;_++)R+_>=0&&($[R+_]+=Q[_])}}}let Y=dt.get(x.op);if(Y)try{let E=H/n,S=Math.min(I-C,Math.ceil(E*i));if(S>0&&C<I&&C>=0){let T=Z.map(g=>g.subarray(C,C+S)),P=x.op==="CompositorLayer"?ot:0,w=((q-P)/n+O-at)*1e3,R=N(t)?.durationMs??void 0;await Y(T,i,t,{device:u,frame:q,fps:n,renderId:d,elapsedMs:w,durationMs:R})}}catch(E){b.error({err:E},`[AudioExtractor] Custom plugin for operation '${x.op}' failed`)}};if(rt.length>0){let k=0;for(let D of rt){let U=(D.endSec??0)-D.startSec,O=Math.max(1,Math.round(U*n));await ct(D,k),k+=O}}else await ct(null,0);return Z}let M=X(e,n),l=await o(M,0,0,1,1,null);if(l)for(let t=0;t<2;t++){let a=f[t],A=l[t],z=Math.min(A.length,a.length);for(let v=0;v<z;v++)a[v]=A[v]}h.clear();let r=0;for(let t=0;t<s;t++){let a=Math.abs(m[t]??0),A=Math.abs(y[t]??0);a>r&&(r=a),A>r&&(r=A)}let F=r>.95?.92/r:1;for(let t=0;t<s;t++){let a=(m[t]??0)*F,A=(y[t]??0)*F;m[t]=Number.isFinite(a)?Math.tanh(a):0,y[t]=Number.isFinite(A)?Math.tanh(A):0}return{channels:f,sampleRate:i}}export{xt as a,It as b};
@@ -1,4 +1,4 @@
1
- import{a as P,d as y,e as F,f as N,g as k,h as C,j as H,k as D,m as O}from"./chunk-ENKKLU7B.mjs";import{d as x}from"./chunk-6YJP57MZ.mjs";import{z as G}from"./chunk-63SFBHEH.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();function Y(e,t,r,u){if(e==null)return t;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let o=e.get({frame:r,fps:u,time:u>0?r/u:0,duration:0,durationMs:0,progress:0,deltaTime:u>0?1/u:0}),p=Number(o);if(Number.isFinite(p))return p}catch{}if("value"in e){let o=Number(e.value);if(Number.isFinite(o))return o}}else if(typeof e=="function")try{let o=e(r,u),p=Number(o);if(Number.isFinite(p))return p}catch{}let s=Number(e);return Number.isFinite(s)?s:t}function b(e,t,r,u,s,o=0,p=30){let i=`${t}HandleId`,d=e[i],a=d?e.inputs?.[d]:null,l=!!(a?.connectionValid&&a.outputItem?.type==="Signal"),n=l?a?.outputItem?.data:null,c=r;if(l)n&&typeof n=="object"&&"offset"in n&&(c=Number(n.offset??r));else if(a?.connectionValid&&a.outputItem?.type==="Number")c=Number(a.outputItem.data??r);else{let v=e[t]??e.signals?.[t];c=Y(v,r,o,p)}return c=Math.max(u,Math.min(s,c)),{hasSignal:l,sd:n,value:c}}var Z=`
1
+ import{a as P,d as y,e as F,f as N,g as k,h as C,j as H,k as D,m as O}from"./chunk-ENKKLU7B.mjs";import{z as G}from"./chunk-63SFBHEH.mjs";import{d as x}from"./chunk-6YJP57MZ.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();function Y(e,t,r,u){if(e==null)return t;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let o=e.get({frame:r,fps:u,time:u>0?r/u:0,duration:0,durationMs:0,progress:0,deltaTime:u>0?1/u:0}),p=Number(o);if(Number.isFinite(p))return p}catch{}if("value"in e){let o=Number(e.value);if(Number.isFinite(o))return o}}else if(typeof e=="function")try{let o=e(r,u),p=Number(o);if(Number.isFinite(p))return p}catch{}let s=Number(e);return Number.isFinite(s)?s:t}function b(e,t,r,u,s,o=0,p=30){let i=`${t}HandleId`,d=e[i],a=d?e.inputs?.[d]:null,l=!!(a?.connectionValid&&a.outputItem?.type==="Signal"),n=l?a?.outputItem?.data:null,c=r;if(l)n&&typeof n=="object"&&"offset"in n&&(c=Number(n.offset??r));else if(a?.connectionValid&&a.outputItem?.type==="Number")c=Number(a.outputItem.data??r);else{let v=e[t]??e.signals?.[t];c=Y(v,r,o,p)}return c=Math.max(u,Math.min(s,c)),{hasSignal:l,sd:n,value:c}}var Z=`
2
2
  struct ModulateUniforms {
3
3
  hue : f32,
4
4
  brightness : f32,
@@ -1,4 +1,4 @@
1
- import{a as re}from"./chunk-37EFVZWT.mjs";import{d as M}from"./chunk-6YJP57MZ.mjs";import{h as ie}from"./chunk-63SFBHEH.mjs";import{e as ae}from"./chunk-BVF64D6H.mjs";ae();var le=()=>{if(typeof window>"u")return Promise.resolve();let B=globalThis.scheduler;return typeof B?.yield=="function"?B.yield():new Promise(n=>setTimeout(n,0))},se=class B{static devicePipelineCache=new WeakMap;static getDeviceCache(n){let r=B.devicePipelineCache.get(n);return r||(r=new Map,B.devicePipelineCache.set(n,r)),r}static getCache(n,r,p,g="",$=1){let d=`${r??"global"}_${p}_${g}_${$}`;return B.devicePipelineCache.get(n)?.get(d)}static clearCache(n,r){if(!r)return;let p=B.devicePipelineCache.get(r);if(!p)return;let g=`${n}_`;for(let[$,d]of p.entries())$.startsWith(g)&&(d.stateBuffer.destroy(),d.inputBuffer?.destroy(),d.outputBuffer?.destroy(),d.uniformBuffer?.destroy(),p.delete($))}static async process(n,r,p,g,$,d,b,ue,oe,q,I=1,D,k=!1,W,L,Y,E,P){let m=p.length;if(m===0)return;let h=p[0].length;if(h===0)return;let z=W!==void 0?W/1e3:d/b,F=L!==void 0?L/1e3:0,N=[],K="",j="",G=[],x=new Map,w=$.operation;if(w?.inputs){for(let e of Object.values(w.inputs))if(e?.connectionValid&&e.outputItem&&e.outputItem.type==="Signal"){let a=e.outputItem.data;a&&await M.ensureAudioSourcesExtracted(n,a,b,D)}for(let[e,a]of Object.entries(w))if(e.endsWith("HandleId")&&a){let c=a,s=w.inputs[c];if(s?.connectionValid&&s.outputItem&&s.outputItem.type==="Signal"){let u=s.outputItem.data;if(u){let f=e.replace("HandleId","");if(k){N.push({parameterName:f,signalNodeId:u.nodeId??"sig",signalFnName:u.signalFnName??u.name??"sig_fn"});let o=n.createCommandEncoder(),l=M.getOrCreate1DBuffer(n,o,u.nodeId??"sig",z,F,u,h,g,D,d,b);n.queue.submit([o.finish()]),x.set(f,l),P||G.push(l)}else{let o=u.nodeId;if(o){let l=re.get(o,D);if(l){N.push({parameterName:f,signalNodeId:o,signalFnName:l.name}),j+=`
1
+ import{a as re}from"./chunk-37EFVZWT.mjs";import{h as ie}from"./chunk-63SFBHEH.mjs";import{d as M}from"./chunk-6YJP57MZ.mjs";import{e as ae}from"./chunk-BVF64D6H.mjs";ae();var le=()=>{if(typeof window>"u")return Promise.resolve();let B=globalThis.scheduler;return typeof B?.yield=="function"?B.yield():new Promise(n=>setTimeout(n,0))},se=class B{static devicePipelineCache=new WeakMap;static getDeviceCache(n){let r=B.devicePipelineCache.get(n);return r||(r=new Map,B.devicePipelineCache.set(n,r)),r}static getCache(n,r,p,g="",$=1){let d=`${r??"global"}_${p}_${g}_${$}`;return B.devicePipelineCache.get(n)?.get(d)}static clearCache(n,r){if(!r)return;let p=B.devicePipelineCache.get(r);if(!p)return;let g=`${n}_`;for(let[$,d]of p.entries())$.startsWith(g)&&(d.stateBuffer.destroy(),d.inputBuffer?.destroy(),d.outputBuffer?.destroy(),d.uniformBuffer?.destroy(),p.delete($))}static async process(n,r,p,g,$,d,b,ue,oe,q,I=1,D,k=!1,W,L,Y,E,P){let m=p.length;if(m===0)return;let h=p[0].length;if(h===0)return;let z=W!==void 0?W/1e3:d/b,F=L!==void 0?L/1e3:0,N=[],K="",j="",G=[],x=new Map,w=$.operation;if(w?.inputs){for(let e of Object.values(w.inputs))if(e?.connectionValid&&e.outputItem&&e.outputItem.type==="Signal"){let a=e.outputItem.data;a&&await M.ensureAudioSourcesExtracted(n,a,b,D)}for(let[e,a]of Object.entries(w))if(e.endsWith("HandleId")&&a){let c=a,s=w.inputs[c];if(s?.connectionValid&&s.outputItem&&s.outputItem.type==="Signal"){let u=s.outputItem.data;if(u){let f=e.replace("HandleId","");if(k){N.push({parameterName:f,signalNodeId:u.nodeId??"sig",signalFnName:u.signalFnName??u.name??"sig_fn"});let o=n.createCommandEncoder(),l=M.getOrCreate1DBuffer(n,o,u.nodeId??"sig",z,F,u,h,g,D,d,b);n.queue.submit([o.finish()]),x.set(f,l),P||G.push(l)}else{let o=u.nodeId;if(o){let l=re.get(o,D);if(l){N.push({parameterName:f,signalNodeId:o,signalFnName:l.name}),j+=`
2
2
  ${l.wgsl}`;let A=[];for(let U of l.fnParams){let S=U.defaultValue;A.push(S%1===0?`${S.toFixed(1)}f`:`${S}f`)}let T=`(${z.toFixed(6)}f + f32(index) / u.sampleRate)`,v=`${F.toFixed(6)}f`,y=["t","0.0","0.0","0.0","index","numSamples","frame","vec4<f32>(0.0)",T,v,...A];f==="makeupGain"&&(K+=`
3
3
  let sigVal_${o} = ${l.name}(${y.join(", ")});
4
4
  dynamicMakeupGain = dynamicMakeupGain + sigVal_${o};
@@ -1,4 +1,4 @@
1
- import{a as X,d as f,e as _,f as P,g as Y,h as D,j as U,k as V,m as B}from"./chunk-ENKKLU7B.mjs";import{d}from"./chunk-6YJP57MZ.mjs";import{z as R}from"./chunk-63SFBHEH.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
1
+ import{a as X,d as f,e as _,f as P,g as Y,h as D,j as U,k as V,m as B}from"./chunk-ENKKLU7B.mjs";import{z as R}from"./chunk-63SFBHEH.mjs";import{d}from"./chunk-6YJP57MZ.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
2
2
  struct DisplacementUniforms {
3
3
  strengthX : f32,
4
4
  strengthY : f32,
@@ -1,4 +1,4 @@
1
- import{a as m}from"./chunk-JAJOZG5P.mjs";import{a as U,d as c,f as A,g as M,h as V,j as D,k as B,m as H}from"./chunk-ENKKLU7B.mjs";import{d as h}from"./chunk-6YJP57MZ.mjs";import{z as P}from"./chunk-63SFBHEH.mjs";import{e as L}from"./chunk-BVF64D6H.mjs";L();L();var Q=`
1
+ import{a as m}from"./chunk-JAJOZG5P.mjs";import{a as U,d as c,f as A,g as M,h as V,j as D,k as B,m as H}from"./chunk-ENKKLU7B.mjs";import{z as P}from"./chunk-63SFBHEH.mjs";import{d as h}from"./chunk-6YJP57MZ.mjs";import{e as L}from"./chunk-BVF64D6H.mjs";L();L();var Q=`
2
2
  struct LutUniforms {
3
3
  intensity : f32,
4
4
  lutSize : f32,
@@ -1,4 +1,4 @@
1
- import{a as B,d as R,e as E,f as O,g as $,h as Y,j as k,m as K}from"./chunk-ENKKLU7B.mjs";import{d as A}from"./chunk-6YJP57MZ.mjs";import{u as T,z as W}from"./chunk-63SFBHEH.mjs";import{a as X}from"./chunk-IQC2I5A5.mjs";import{e as D}from"./chunk-BVF64D6H.mjs";D();D();var ye=`
1
+ import{a as B,d as R,e as E,f as O,g as $,h as Y,j as k,m as K}from"./chunk-ENKKLU7B.mjs";import{u as T,z as W}from"./chunk-63SFBHEH.mjs";import{d as A}from"./chunk-6YJP57MZ.mjs";import{a as X}from"./chunk-IQC2I5A5.mjs";import{e as D}from"./chunk-BVF64D6H.mjs";D();D();var ye=`
2
2
  struct RelightUniforms {
3
3
  // vec4 0
4
4
  lightType : f32, // 0=Point, 1=Spot, 2=Directional, 3=Rim
@@ -1,4 +1,4 @@
1
- import{a as h}from"./chunk-ZH5MZQTZ.mjs";import{c as m,d as c,y as g,z as I}from"./chunk-63SFBHEH.mjs";import{e as i}from"./chunk-BVF64D6H.mjs";i();i();var w=["fadeInDuration","fadeOutDuration"],E=()=>`
1
+ import{a as h}from"./chunk-OG62XGCT.mjs";import{c as m,d as c,y as g,z as I}from"./chunk-63SFBHEH.mjs";import{e as i}from"./chunk-BVF64D6H.mjs";i();i();var w=["fadeInDuration","fadeOutDuration"],E=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  fadeInDuration : f32,
@@ -1,4 +1,4 @@
1
- import{a as h}from"./chunk-ZH5MZQTZ.mjs";import{c as i,d as c,y as t,z as g}from"./chunk-63SFBHEH.mjs";import{e as r}from"./chunk-BVF64D6H.mjs";r();r();var x=["frequency","gain","q"],v=()=>`
1
+ import{a as h}from"./chunk-OG62XGCT.mjs";import{c as i,d as c,y as t,z as g}from"./chunk-63SFBHEH.mjs";import{e as r}from"./chunk-BVF64D6H.mjs";r();r();var x=["frequency","gain","q"],v=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  numBands : f32,