framefields 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/audio/index.mjs +10 -10
  2. package/dist/{audio-QBA2VogL.mjs → audio-CYrO9q9P.mjs} +3 -3
  3. package/dist/{audio-QBA2VogL.mjs.map → audio-CYrO9q9P.mjs.map} +1 -1
  4. package/dist/components/index.d.mts +1 -1
  5. package/dist/components/index.mjs +42 -42
  6. package/dist/{dist-nHCqVk-e.mjs → dist-DSKhnhDk.mjs} +2 -2
  7. package/dist/{dist-nHCqVk-e.mjs.map → dist-DSKhnhDk.mjs.map} +1 -1
  8. package/dist/{dist-CDwWQYg3.mjs → dist-cC6nOaMR.mjs} +10 -2
  9. package/dist/dist-cC6nOaMR.mjs.map +1 -0
  10. package/dist/effects/index.mjs +34 -34
  11. package/dist/{effects-C-6I4iYW.mjs → effects-Dvdwndk0.mjs} +2 -2
  12. package/dist/{effects-C-6I4iYW.mjs.map → effects-Dvdwndk0.mjs.map} +1 -1
  13. package/dist/fonts/index.mjs +2 -2
  14. package/dist/{fonts-BieW3VWV.mjs → fonts-B6a4CyoM.mjs} +2 -2
  15. package/dist/{fonts-BieW3VWV.mjs.map → fonts-B6a4CyoM.mjs.map} +1 -1
  16. package/dist/{gpu-Bb4WmYYH.mjs → gpu-CrQADlcf.mjs} +2 -2
  17. package/dist/{gpu-Bb4WmYYH.mjs.map → gpu-CrQADlcf.mjs.map} +1 -1
  18. package/dist/index-3Vdef2KE.d.mts.map +1 -1
  19. package/dist/{index-E1IrPAm4.d.mts → index-CWG19cm-.d.mts} +465 -463
  20. package/dist/index-CWG19cm-.d.mts.map +1 -0
  21. package/dist/index-D-Gnyffj.d.mts.map +1 -1
  22. package/dist/index.d.mts +1 -1
  23. package/dist/index.mjs +49 -49
  24. package/dist/preview/index.mjs +10 -10
  25. package/dist/{preview-D6jS38Di.mjs → preview-OTsGYyOU.mjs} +2 -2
  26. package/dist/{preview-D6jS38Di.mjs.map → preview-OTsGYyOU.mjs.map} +1 -1
  27. package/dist/preview-engine/{chunk-BBHRXV75.mjs → chunk-4C26NVQY.mjs} +1 -1
  28. package/dist/preview-engine/{chunk-MLAIEIUF.mjs → chunk-5NLDETDV.mjs} +1 -1
  29. package/dist/preview-engine/{chunk-VY6ST4QX.mjs → chunk-AGLAJGQJ.mjs} +1 -1
  30. package/dist/preview-engine/{chunk-AYTP6OGO.mjs → chunk-K3IMPV6T.mjs} +1 -1
  31. package/dist/preview-engine/{chunk-W3I7LKDV.mjs → chunk-LHCEQ77S.mjs} +1 -1
  32. package/dist/preview-engine/{chunk-2LQCQ3OT.mjs → chunk-Q6CRERSJ.mjs} +5 -5
  33. package/dist/preview-engine/{chunk-ZMMNN77R.mjs → chunk-ZGMA27IG.mjs} +1 -1
  34. package/dist/preview-engine/components.mjs +1 -1
  35. package/dist/preview-engine/fonts.mjs +1 -1
  36. package/dist/preview-engine/framefields.mjs +1 -1
  37. package/dist/preview-engine/player.mjs +1 -1
  38. package/dist/preview-engine/{renderers-4G3UOPA7.mjs → renderers-IT5ISWSA.mjs} +1 -1
  39. package/dist/{program-Bf4yHbHC.mjs → program-W4CWO2bp.mjs} +2 -2
  40. package/dist/{program-Bf4yHbHC.mjs.map → program-W4CWO2bp.mjs.map} +1 -1
  41. package/dist/registry/chat-thread.json +1 -1
  42. package/dist/renderer/index.mjs +2 -2
  43. package/dist/{renderer-B6vr-B0t.mjs → renderer-0W-Ty55h.mjs} +3 -3
  44. package/dist/{renderer-B6vr-B0t.mjs.map → renderer-0W-Ty55h.mjs.map} +1 -1
  45. package/dist/{renderer-ij448rvt.mjs → renderer-0n4A8P2_.mjs} +2 -2
  46. package/dist/{renderer-ij448rvt.mjs.map → renderer-0n4A8P2_.mjs.map} +1 -1
  47. package/dist/{renderer-l1qJE4z-.mjs → renderer-158rymL0.mjs} +2 -2
  48. package/dist/{renderer-l1qJE4z-.mjs.map → renderer-158rymL0.mjs.map} +1 -1
  49. package/dist/{renderer-Bbkf5EIi.mjs → renderer-1KfQICGK.mjs} +3 -3
  50. package/dist/{renderer-Bbkf5EIi.mjs.map → renderer-1KfQICGK.mjs.map} +1 -1
  51. package/dist/renderer-8HnHWqYj.mjs +5 -0
  52. package/dist/renderer-8itujues.mjs +5 -0
  53. package/dist/{renderer-BL9vkn6m.mjs → renderer-B3gQT1uq.mjs} +3 -3
  54. package/dist/{renderer-BL9vkn6m.mjs.map → renderer-B3gQT1uq.mjs.map} +1 -1
  55. package/dist/{renderer-DlA7kzIs.mjs → renderer-BE6K88VR.mjs} +3 -3
  56. package/dist/{renderer-DlA7kzIs.mjs.map → renderer-BE6K88VR.mjs.map} +1 -1
  57. package/dist/{renderer-qQmoO5Hk.mjs → renderer-BEpA2g1_.mjs} +2 -2
  58. package/dist/{renderer-qQmoO5Hk.mjs.map → renderer-BEpA2g1_.mjs.map} +1 -1
  59. package/dist/renderer-BFods-7v.mjs +5 -0
  60. package/dist/{renderer-BQFxoNzi.mjs → renderer-BGDKxfsM.mjs} +3 -3
  61. package/dist/{renderer-BQFxoNzi.mjs.map → renderer-BGDKxfsM.mjs.map} +1 -1
  62. package/dist/{renderer-DYJHFHF4.mjs → renderer-BGnMRdUK.mjs} +2 -2
  63. package/dist/{renderer-DYJHFHF4.mjs.map → renderer-BGnMRdUK.mjs.map} +1 -1
  64. package/dist/{renderer-BDCS7k5X.mjs → renderer-BIMm7lYG.mjs} +3 -3
  65. package/dist/{renderer-BDCS7k5X.mjs.map → renderer-BIMm7lYG.mjs.map} +1 -1
  66. package/dist/{renderer-B1Ox12RF.mjs → renderer-BKL3UEzN.mjs} +2 -2
  67. package/dist/{renderer-B1Ox12RF.mjs.map → renderer-BKL3UEzN.mjs.map} +1 -1
  68. package/dist/{renderer-AOZWHGT3.mjs → renderer-BKhdqykZ.mjs} +3 -3
  69. package/dist/{renderer-AOZWHGT3.mjs.map → renderer-BKhdqykZ.mjs.map} +1 -1
  70. package/dist/{renderer-CgdplRri.mjs → renderer-BO5u8eFS.mjs} +2 -2
  71. package/dist/{renderer-CgdplRri.mjs.map → renderer-BO5u8eFS.mjs.map} +1 -1
  72. package/dist/{renderer-DAfWLGfy.mjs → renderer-BQ-pHSPI.mjs} +3 -3
  73. package/dist/{renderer-DAfWLGfy.mjs.map → renderer-BQ-pHSPI.mjs.map} +1 -1
  74. package/dist/{renderer-rv-AKqCl.mjs → renderer-BXGr426R.mjs} +2 -2
  75. package/dist/{renderer-rv-AKqCl.mjs.map → renderer-BXGr426R.mjs.map} +1 -1
  76. package/dist/{renderer-bb3puodg.mjs → renderer-B_Oz9L3g.mjs} +2 -2
  77. package/dist/{renderer-bb3puodg.mjs.map → renderer-B_Oz9L3g.mjs.map} +1 -1
  78. package/dist/renderer-BbQygRwc.mjs +5 -0
  79. package/dist/{renderer-CYLP8sD6.mjs → renderer-BcaT2j3R.mjs} +2 -2
  80. package/dist/{renderer-CYLP8sD6.mjs.map → renderer-BcaT2j3R.mjs.map} +1 -1
  81. package/dist/{renderer-CY_1u6zi.mjs → renderer-Bh7d3RSt.mjs} +3 -3
  82. package/dist/{renderer-CY_1u6zi.mjs.map → renderer-Bh7d3RSt.mjs.map} +1 -1
  83. package/dist/{renderer-DAONCf_3.mjs → renderer-BiH29MS6.mjs} +3 -3
  84. package/dist/{renderer-DAONCf_3.mjs.map → renderer-BiH29MS6.mjs.map} +1 -1
  85. package/dist/{renderer-UArFa4y9.mjs → renderer-BnpMAub0.mjs} +2 -2
  86. package/dist/{renderer-UArFa4y9.mjs.map → renderer-BnpMAub0.mjs.map} +1 -1
  87. package/dist/renderer-Bq_sPaCg.mjs +5 -0
  88. package/dist/renderer-BrkDrvqS.mjs +5 -0
  89. package/dist/{renderer-eyvY4Lq4.mjs → renderer-Bt3F1tmP.mjs} +3 -3
  90. package/dist/{renderer-eyvY4Lq4.mjs.map → renderer-Bt3F1tmP.mjs.map} +1 -1
  91. package/dist/{renderer-BmgyvIC3.mjs → renderer-BwnQRuce.mjs} +3 -3
  92. package/dist/{renderer-BmgyvIC3.mjs.map → renderer-BwnQRuce.mjs.map} +1 -1
  93. package/dist/renderer-C1diVT5Q.mjs +5 -0
  94. package/dist/{renderer-KppAWfmJ.mjs → renderer-C2O4nK9x.mjs} +3 -3
  95. package/dist/{renderer-KppAWfmJ.mjs.map → renderer-C2O4nK9x.mjs.map} +1 -1
  96. package/dist/{renderer-PMjV8x65.mjs → renderer-C4Jfgjm5.mjs} +2 -2
  97. package/dist/{renderer-PMjV8x65.mjs.map → renderer-C4Jfgjm5.mjs.map} +1 -1
  98. package/dist/renderer-C8E7ajTR.mjs +5 -0
  99. package/dist/renderer-CAz8JW5c.mjs +5 -0
  100. package/dist/{renderer-C64g87yU.mjs → renderer-CEvj79Wg.mjs} +3 -3
  101. package/dist/{renderer-C64g87yU.mjs.map → renderer-CEvj79Wg.mjs.map} +1 -1
  102. package/dist/{renderer-yFHP9Zj2.mjs → renderer-CFSh2eG-.mjs} +3 -3
  103. package/dist/{renderer-yFHP9Zj2.mjs.map → renderer-CFSh2eG-.mjs.map} +1 -1
  104. package/dist/{renderer-C6Wb1TZT.mjs → renderer-CHvEgLHy.mjs} +3 -3
  105. package/dist/{renderer-C6Wb1TZT.mjs.map → renderer-CHvEgLHy.mjs.map} +1 -1
  106. package/dist/renderer-CKfrUdGw.mjs +5 -0
  107. package/dist/renderer-CL0rqBA4.mjs +5 -0
  108. package/dist/{renderer-D01RT3Ov.mjs → renderer-CLP6Lm7y.mjs} +2 -2
  109. package/dist/{renderer-D_UPFbei.mjs → renderer-COcFh5bK.mjs} +3 -3
  110. package/dist/{renderer-D_UPFbei.mjs.map → renderer-COcFh5bK.mjs.map} +1 -1
  111. package/dist/renderer-COyavIEv.mjs +5 -0
  112. package/dist/{renderer-CY0BT6ok.mjs → renderer-CPtyQrJI.mjs} +2 -2
  113. package/dist/{renderer-CY0BT6ok.mjs.map → renderer-CPtyQrJI.mjs.map} +1 -1
  114. package/dist/renderer-CUrShvUZ.mjs +5 -0
  115. package/dist/renderer-CWvJ_GaL.mjs +5 -0
  116. package/dist/{renderer-Dj-y-BtT.mjs → renderer-CX4rvqm9.mjs} +3 -3
  117. package/dist/{renderer-Dj-y-BtT.mjs.map → renderer-CX4rvqm9.mjs.map} +1 -1
  118. package/dist/{renderer-CRkgyk08.mjs → renderer-CZGpETnc.mjs} +3 -3
  119. package/dist/{renderer-CRkgyk08.mjs.map → renderer-CZGpETnc.mjs.map} +1 -1
  120. package/dist/{renderer-mu2mYo5w.mjs → renderer-C_-hWBF1.mjs} +3 -3
  121. package/dist/{renderer-mu2mYo5w.mjs.map → renderer-C_-hWBF1.mjs.map} +1 -1
  122. package/dist/{renderer-DJTXhVNh.mjs → renderer-Cb74SQHm.mjs} +2 -2
  123. package/dist/{renderer-DJTXhVNh.mjs.map → renderer-Cb74SQHm.mjs.map} +1 -1
  124. package/dist/{renderer-BFdgbqgW.mjs → renderer-Cba208C9.mjs} +3 -3
  125. package/dist/{renderer-BFdgbqgW.mjs.map → renderer-Cba208C9.mjs.map} +1 -1
  126. package/dist/{renderer-BKssznKn.mjs → renderer-CdJoOfQw.mjs} +2 -2
  127. package/dist/{renderer-BKssznKn.mjs.map → renderer-CdJoOfQw.mjs.map} +1 -1
  128. package/dist/renderer-Ck0mGIo9.mjs +5 -0
  129. package/dist/{renderer-DFYXjAIT.mjs → renderer-CoaDDIS6.mjs} +5 -5
  130. package/dist/{renderer-DFYXjAIT.mjs.map → renderer-CoaDDIS6.mjs.map} +1 -1
  131. package/dist/renderer-CqIXqdf0.mjs +5 -0
  132. package/dist/renderer-Csod6biL.mjs +5 -0
  133. package/dist/{renderer-DNEFYrQ5.mjs → renderer-CsxO_wBG.mjs} +2 -2
  134. package/dist/renderer-CueO924-.mjs +5 -0
  135. package/dist/{renderer-BQdn_qGp.mjs → renderer-Cv6od7Be.mjs} +3 -3
  136. package/dist/{renderer-BQdn_qGp.mjs.map → renderer-Cv6od7Be.mjs.map} +1 -1
  137. package/dist/{renderer-CJRu7lLH.mjs → renderer-Cw7R1U43.mjs} +2 -2
  138. package/dist/{renderer-CJRu7lLH.mjs.map → renderer-Cw7R1U43.mjs.map} +1 -1
  139. package/dist/renderer-D1vM4obC.mjs +5 -0
  140. package/dist/{renderer-BHgYRSu8.mjs → renderer-D36Pjp0B.mjs} +2 -2
  141. package/dist/{renderer-BHgYRSu8.mjs.map → renderer-D36Pjp0B.mjs.map} +1 -1
  142. package/dist/{renderer-EwSSuJXj.mjs → renderer-D52KWsb8.mjs} +3 -3
  143. package/dist/{renderer-EwSSuJXj.mjs.map → renderer-D52KWsb8.mjs.map} +1 -1
  144. package/dist/renderer-DB7QUt90.mjs +5 -0
  145. package/dist/{renderer-Bpve7M6S.mjs → renderer-DGsWlXjl.mjs} +69 -69
  146. package/dist/{renderer-Bpve7M6S.mjs.map → renderer-DGsWlXjl.mjs.map} +1 -1
  147. package/dist/renderer-DLMDnKlA.mjs +6 -0
  148. package/dist/renderer-DNs7yWMr.mjs +5 -0
  149. package/dist/{renderer-CsOLHKFx.mjs → renderer-DORydJHm.mjs} +2 -2
  150. package/dist/{renderer-CsOLHKFx.mjs.map → renderer-DORydJHm.mjs.map} +1 -1
  151. package/dist/renderer-DOrtuoa9.mjs +5 -0
  152. package/dist/{renderer-DJHuPNJx.mjs → renderer-DTKtkgTO.mjs} +2 -2
  153. package/dist/{renderer-DJHuPNJx.mjs.map → renderer-DTKtkgTO.mjs.map} +1 -1
  154. package/dist/{renderer-79mO0b9Y.mjs → renderer-DVdRzDwX.mjs} +3 -3
  155. package/dist/{renderer-79mO0b9Y.mjs.map → renderer-DVdRzDwX.mjs.map} +1 -1
  156. package/dist/renderer-D_JgOawb.mjs +5 -0
  157. package/dist/renderer-DdLo1uoa.mjs +5 -0
  158. package/dist/renderer-DeX3JEZV.mjs +5 -0
  159. package/dist/{renderer-BTjveb1Y.mjs → renderer-Df-rf7RC.mjs} +3 -3
  160. package/dist/{renderer-BTjveb1Y.mjs.map → renderer-Df-rf7RC.mjs.map} +1 -1
  161. package/dist/renderer-DfgZVACG.mjs +5 -0
  162. package/dist/{renderer-DgRJG_l-.mjs → renderer-DmrP4dsn.mjs} +2 -2
  163. package/dist/{renderer-DgRJG_l-.mjs.map → renderer-DmrP4dsn.mjs.map} +1 -1
  164. package/dist/renderer-DoYG7Pn6.mjs +5 -0
  165. package/dist/{renderer-CMWUtfwn.mjs → renderer-DqIrYB0P.mjs} +2 -2
  166. package/dist/{renderer-CMWUtfwn.mjs.map → renderer-DqIrYB0P.mjs.map} +1 -1
  167. package/dist/{renderer-j7aUfyeR.mjs → renderer-DrrWvz8l.mjs} +3 -3
  168. package/dist/{renderer-j7aUfyeR.mjs.map → renderer-DrrWvz8l.mjs.map} +1 -1
  169. package/dist/{renderer-ovkctV5a.mjs → renderer-DuFwDHHF.mjs} +2 -2
  170. package/dist/{renderer-DYR4gFEM.mjs → renderer-DxOJv_G7.mjs} +3 -3
  171. package/dist/{renderer-DYR4gFEM.mjs.map → renderer-DxOJv_G7.mjs.map} +1 -1
  172. package/dist/{renderer-zOK5DYYn.mjs → renderer-E54Vv1_W.mjs} +3 -3
  173. package/dist/{renderer-zOK5DYYn.mjs.map → renderer-E54Vv1_W.mjs.map} +1 -1
  174. package/dist/{renderer-VwKmjuc6.mjs → renderer-FPYVmSf6.mjs} +3 -3
  175. package/dist/{renderer-VwKmjuc6.mjs.map → renderer-FPYVmSf6.mjs.map} +1 -1
  176. package/dist/{renderer-By5xTRqB.mjs → renderer-FgP_1OgD.mjs} +3 -3
  177. package/dist/{renderer-By5xTRqB.mjs.map → renderer-FgP_1OgD.mjs.map} +1 -1
  178. package/dist/{renderer-4v6XYAiX.mjs → renderer-H-Adf8Za.mjs} +3 -3
  179. package/dist/{renderer-4v6XYAiX.mjs.map → renderer-H-Adf8Za.mjs.map} +1 -1
  180. package/dist/{renderer-LW8MfGjd.mjs → renderer-HPBahXjt.mjs} +2 -2
  181. package/dist/{renderer-LW8MfGjd.mjs.map → renderer-HPBahXjt.mjs.map} +1 -1
  182. package/dist/renderer-Jwqa-BUN.mjs +5 -0
  183. package/dist/{renderer-yF40Pb-n.mjs → renderer-KkDYCAkn.mjs} +3 -3
  184. package/dist/{renderer-yF40Pb-n.mjs.map → renderer-KkDYCAkn.mjs.map} +1 -1
  185. package/dist/{renderer-DEeKkljI.mjs → renderer-PDAlUGKG.mjs} +3 -3
  186. package/dist/{renderer-DEeKkljI.mjs.map → renderer-PDAlUGKG.mjs.map} +1 -1
  187. package/dist/{renderer-BsnhAgrB.mjs → renderer-PDs21Gsq.mjs} +2 -2
  188. package/dist/{renderer-BsnhAgrB.mjs.map → renderer-PDs21Gsq.mjs.map} +1 -1
  189. package/dist/{renderer-CcSBjtRa.mjs → renderer-Sdsy27LH.mjs} +2 -2
  190. package/dist/{renderer-Cqp_TUl_.mjs → renderer-YEDoDnsE.mjs} +2 -2
  191. package/dist/{renderer-Cqp_TUl_.mjs.map → renderer-YEDoDnsE.mjs.map} +1 -1
  192. package/dist/renderer-Z2Vs-IqP.mjs +5 -0
  193. package/dist/{renderer-CHPLHbAs.mjs → renderer-ZM2jwJbX.mjs} +3 -3
  194. package/dist/{renderer-CHPLHbAs.mjs.map → renderer-ZM2jwJbX.mjs.map} +1 -1
  195. package/dist/{renderer-ml2LHmRb.mjs → renderer-ZarULMvJ.mjs} +2 -2
  196. package/dist/{renderer-ml2LHmRb.mjs.map → renderer-ZarULMvJ.mjs.map} +1 -1
  197. package/dist/renderer-ZnyCpdWE.mjs +5 -0
  198. package/dist/{renderer-kOlfYLtu.mjs → renderer-aT6MUYPr.mjs} +2 -2
  199. package/dist/{renderer-kOlfYLtu.mjs.map → renderer-aT6MUYPr.mjs.map} +1 -1
  200. package/dist/{renderer-BR35Xp9n.mjs → renderer-dX7Fy1NR.mjs} +3 -3
  201. package/dist/{renderer-BR35Xp9n.mjs.map → renderer-dX7Fy1NR.mjs.map} +1 -1
  202. package/dist/{renderer-JJibsJfb.mjs → renderer-eQP0fvgc.mjs} +2 -2
  203. package/dist/{renderer-JJibsJfb.mjs.map → renderer-eQP0fvgc.mjs.map} +1 -1
  204. package/dist/renderer-emCnsnTH.mjs +5 -0
  205. package/dist/renderer-ioxa4-Dy.mjs +5 -0
  206. package/dist/renderer-iyIwrDWO.mjs +5 -0
  207. package/dist/{renderer-DiD3r9tx.mjs → renderer-lP23pU1s.mjs} +2 -2
  208. package/dist/{renderer-DiD3r9tx.mjs.map → renderer-lP23pU1s.mjs.map} +1 -1
  209. package/dist/{renderer-Cn9tU_s5.mjs → renderer-tYmQUp4d.mjs} +2 -2
  210. package/dist/{renderer-Cn9tU_s5.mjs.map → renderer-tYmQUp4d.mjs.map} +1 -1
  211. package/dist/renderer-tuudA_RZ.mjs +5 -0
  212. package/dist/{renderer-BzEQXAdl.mjs → renderer-wrXFfvpJ.mjs} +2 -2
  213. package/dist/{renderer-BzEQXAdl.mjs.map → renderer-wrXFfvpJ.mjs.map} +1 -1
  214. package/dist/renderer-yyn8S821.mjs +5 -0
  215. package/dist/{renderers-CP8CFWDs-DPLX5EJs.mjs → renderers-CP8CFWDs-CZJ7NRsl.mjs} +2 -2
  216. package/dist/{renderers-CP8CFWDs-DPLX5EJs.mjs.map → renderers-CP8CFWDs-CZJ7NRsl.mjs.map} +1 -1
  217. package/dist/signals/index.mjs +4 -4
  218. package/dist/{src-BnkrNj2W.mjs → src-_l81YkMD.mjs} +7 -7
  219. package/dist/{src-BnkrNj2W.mjs.map → src-_l81YkMD.mjs.map} +1 -1
  220. package/package.json +58 -58
  221. package/dist/dist-CDwWQYg3.mjs.map +0 -1
  222. package/dist/index-E1IrPAm4.d.mts.map +0 -1
  223. package/dist/renderer-4FQmduPw.mjs +0 -5
  224. package/dist/renderer-BBCpRuYU.mjs +0 -5
  225. package/dist/renderer-BBTo_jLO.mjs +0 -5
  226. package/dist/renderer-BLg66ZgG.mjs +0 -5
  227. package/dist/renderer-BScS8AzG.mjs +0 -5
  228. package/dist/renderer-Bb1cS5mJ.mjs +0 -5
  229. package/dist/renderer-Bpwd9zEY.mjs +0 -5
  230. package/dist/renderer-Bzyd9xi5.mjs +0 -5
  231. package/dist/renderer-CXVssx1k.mjs +0 -5
  232. package/dist/renderer-CYFiGLls.mjs +0 -5
  233. package/dist/renderer-C__BvvtP.mjs +0 -5
  234. package/dist/renderer-Ca3YZsoT.mjs +0 -5
  235. package/dist/renderer-CnM5iFj9.mjs +0 -5
  236. package/dist/renderer-D1nZrvQx.mjs +0 -5
  237. package/dist/renderer-D6XjVQME.mjs +0 -5
  238. package/dist/renderer-DIuMnMF0.mjs +0 -5
  239. package/dist/renderer-DUvvM8EF.mjs +0 -5
  240. package/dist/renderer-DWogyuMO.mjs +0 -5
  241. package/dist/renderer-DWsj_LJR.mjs +0 -5
  242. package/dist/renderer-DYun0DJl.mjs +0 -5
  243. package/dist/renderer-D_6YqD-Z.mjs +0 -5
  244. package/dist/renderer-Db9LP86x.mjs +0 -5
  245. package/dist/renderer-DhHiC87m.mjs +0 -5
  246. package/dist/renderer-Dj5jGAkR.mjs +0 -5
  247. package/dist/renderer-DlPUQ7RF.mjs +0 -5
  248. package/dist/renderer-DpIPdgn8.mjs +0 -5
  249. package/dist/renderer-Dv0C9CEt.mjs +0 -6
  250. package/dist/renderer-Iw8fDL-p.mjs +0 -5
  251. package/dist/renderer-SLI69Mju.mjs +0 -5
  252. package/dist/renderer-ZVtbb3-P.mjs +0 -5
  253. package/dist/renderer-gHNCu7H5.mjs +0 -5
  254. package/dist/renderer-gxDNmbtU.mjs +0 -5
  255. package/dist/renderer-hkK4DNRX.mjs +0 -5
  256. package/dist/renderer-oy6SGDRz.mjs +0 -5
  257. package/dist/renderer-rq7UIcuH.mjs +0 -5
  258. package/dist/renderer-xkEJahws.mjs +0 -5
@@ -1,4 +1,4 @@
1
- import{b as v}from"./chunk-2SJ4BBMT.mjs";import{d as U}from"./chunk-6YJP57MZ.mjs";import{c as k,e as G}from"./chunk-2LQCQ3OT.mjs";import{e as P}from"./chunk-BVF64D6H.mjs";P();function j(r,e=180,t=12,a=1,o=0){if(r<=0)return 0;let n=Math.sqrt(Math.max(1e-4,e)/Math.max(1e-4,a)),s=t/(2*Math.sqrt(Math.max(1e-4,e*a)));if(s<1){let l=n*Math.sqrt(1-s*s),m=Math.exp(-s*n*r),i=-1,u=(o-s*n*-1)/Math.max(1e-6,l),p=m*(i*Math.cos(l*r)+u*Math.sin(l*r));return Math.min(2,Math.max(-1,1+p))}else if(Math.abs(s-1)<1e-4){let l=Math.exp(-n*r);return 1+(-1+(o-n)*r)*l}else{let l=-n*(s-Math.sqrt(s*s-1)),m=-n*(s+Math.sqrt(s*s-1)),i=(o+m)/Math.max(1e-6,l-m),u=-1-i;return 1+(i*Math.exp(l*r)+u*Math.exp(m*r))}}function _(r,e=0){if(r===0)return[1,0,0,1];let t=r*Math.PI/180,a=e*Math.PI/180,o=Math.cos(a),n=Math.sin(a),s=Math.tan(t),l=1-s*o*n,m=s*o*o,i=-s*n*n,u=1+s*n*o;return[l,m,i,u]}function B(r,e){let t=e.anchorX,a=e.anchorY;switch(e.preset){case"center":t=.5,a=.5;break;case"baseline":t=.5,a=r.height>0?r.ascender/r.height:.8;break;case"bottom_left":t=0,a=1;break;case"bottom_center":t=.5,a=1;break;case"bottom_right":t=1,a=1;break;case"top_left":t=0,a=0;break;case"top_center":t=.5,a=0;break;case"top_right":t=1,a=0;break;default:t=.5,a=.5;break}let o=(t-.5)*r.width+e.offsetX,n=(a-.5)*r.height+e.offsetY;return{px:o,py:n}}function N(r,e,t,a=0){if(t===0||e<=1)return 0;let o=a*(e-1);return(r-o)*t}function O(r,e){try{let t={textIndex:e.charIndex,textTotal:Math.max(1,e.totalChars),wordIndex:e.wordIndex,wordTotal:Math.max(1,e.totalWords),lineIndex:e.lineIndex,lineTotal:Math.max(1,e.totalLines),time:e.time,frame:e.frame,fps:e.fps,sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,abs:Math.abs,min:Math.min,max:Math.max,sqrt:Math.sqrt,pow:Math.pow,floor:Math.floor,ceil:Math.ceil,round:Math.round,PI:Math.PI,clamp:(l,m,i)=>Math.max(m,Math.min(i,l)),noise:l=>{let m=Math.sin(l*12.9898+e.frame*.1)*43758.5453;return(m-Math.floor(m))*2-1},signals:e.signals??{}},a=Object.keys(t),o=Object.values(t),n=new Function(...a,`return (${r});`),s=Number(n(...o));return Number.isFinite(s)?Math.max(-1,Math.min(1,s)):0}catch{return 0}}function $(r,e,t){let a=Math.max(1,e),o=a>1?r/(a-1):0,n=t.totalAngle*Math.PI/180,s=o*n,l=0,m=0,i=0,u=0,p=0,d=0,y=1;switch(t.mode){case"cylinder":{let c=t.totalAngle<360?(o-.5)*n:s;t.axis==="y"?(l=t.radius*Math.sin(c),i=t.radius*Math.cos(c)-t.radius,p=c*180/Math.PI):t.axis==="x"?(m=t.radius*Math.sin(c),i=t.radius*Math.cos(c)-t.radius,u=c*180/Math.PI):(l=t.radius*Math.sin(c),m=t.radius*Math.cos(c),d=c*180/Math.PI);let M=Math.cos(c);y=Math.max(.25,(M+1)*.5);break}case"vortex":{let M=-Math.PI/2+s,x=t.radius*(1-o*.35);l=x*Math.cos(M),m=x*Math.sin(M),i=-r*t.pitch||0;let g=-.35*t.radius/(n||1),F=g*Math.cos(M)-x*Math.sin(M),C=g*Math.sin(M)+x*Math.cos(M);d=Math.atan2(C,F)*180/Math.PI,y=Math.max(.65,1-o*.35);break}case"helix":{if(t.axis==="x"){let c=t.pitch>10?t.pitch:28;l=(r-(a-1)/2)*c,m=t.radius*Math.sin(s),i=t.radius*Math.cos(s)-t.radius,u=Math.sin(s)*22,y=.75+.25*((Math.cos(s)+1)*.5)}else{let c=(o-.5)*n;l=t.radius*Math.sin(c),m=(r-(a-1)/2)*t.pitch,i=t.radius*Math.cos(c)-t.radius,p=c*180/Math.PI;let M=Math.cos(c);y=Math.max(.65,(M+1)*.5)}break}default:{i=0;break}}let f=Math.max(100,t.perspective??1200),h=f-i,b=h>1?f/h:1;return{x:l*b,y:m*b,z:i,rotX:u,rotY:p,rotZ:d,scaleMult:Math.max(.1,b),depthOpacity:y}}function X(r,e,t,a,o){let s=(e>0?Math.max(e,t):t)+a.repeatGap;if(s<=0)return r;let l=a.velocity*o;if(a.snap?.enabled){let m=a.snap.stopIndex??0,i=a.snap.granularity==="character"?40:120,u=m*i,p=Math.min(1,o*1.5);l=l*(1-p)+u*p}if((a.direction==="right"||a.direction==="down")&&(l=-l),a.loop){let m=(r-l)%s;return m<-t?m+s:m}return r-l}function z(r,e,t,a,o,n){let s=Math.max(1,e),l=s>1?r/(s-1):.5,m=Math.max(20,t.minFreqHz),i=Math.max(m+100,t.maxFreqHz),u=m*(i/m)**l,p=0,d=U.getChannelSamples(t.signalChannel,"primary");if(d&&d.length>0){let f=n>0?n:24,h=Math.max(0,Math.min(d.length-1,Math.round(o/f*24)));p=Number(d[h])||0}else if(a){let f=a[t.signalChannel];if(typeof f=="number")p=f;else if(typeof f=="function")p=Number(f(o,n,u))||0;else if(typeof f=="object"&&f!==null){let h=f;if(typeof h.get=="function")p=Number(h.get({frame:o,fps:n,freq:u}))||0;else if(Array.isArray(h.samples)||ArrayBuffer.isView(h.samples)){let b=h.samples,c=Math.floor(l*(b.length-1));p=Number(b[c])||0}}}let y=Math.max(0,Math.min(1,p));return t.minScale+y*(t.maxScale-t.minScale)}P();function Z(r,e,t,a,o,n=0,s=0){let l=e+a,m=t+a;if(m<=l)return 0;let i=(r-l)/(m-l),u=0;switch(o){case"square":u=i>=0&&i<=1?1:0;break;case"ramp_up":u=Math.max(0,Math.min(1,i));break;case"ramp_down":u=1-Math.max(0,Math.min(1,i));break;case"triangle":{i<0||i>1?u=0:i<.5?u=i*2:u=(1-i)*2;break}case"round":{i<0||i>1?u=0:u=.5-.5*Math.cos(i*2*Math.PI);break}case"smooth":{i<=0?u=0:i>=1?u=1:u=i*i*(3-2*i);break}}if(u>0&&u<1){if(n!==0&&u>.5){let p=(u-.5)*2,d=n>0?1+n*3:1/(1-n*3);u=.5+.5*p**d}if(s!==0&&u<=.5){let p=u*2,d=s>0?1+s*3:1/(1-s*3);u=.5*p**d}}return Math.max(0,Math.min(1,u))}function H(r,e,t,a){let o=(e*(1-a)+a)*12.9898+t+r*78.233,n=Math.sin(o)*43758.5453;return(n-Math.floor(n))*2-1}function J(r,e){let t=e,a=()=>(t=(t*9301+49297)%233280,t/233280),o=Array.from({length:r},(n,s)=>s);for(let n=o.length-1;n>0;n--){let s=Math.floor(a()*(n+1)),l=o[n];o[n]=o[s],o[s]=l}return o}function Q(r,e,t){switch(t){case"add":return Math.max(0,Math.min(1,r+e));case"subtract":return Math.max(0,Math.min(1,r-e));case"intersect":return r*e;case"min":return Math.min(r,e);case"max":return Math.max(r,e);case"difference":return Math.abs(r-e)}}P();var A={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function q(r,e){return r==="custom"&&e&&e.length>0?e:A[r]??A.alphanumeric}function et(r,e,t,a,o={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},n={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},s=2,l="character",m){if(m===void 0&&e<t)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let i=m!==void 0?Math.max(0,Math.min(1,m)):Math.min(1,(e-t)/Math.max(1,a)),u=m!==void 0?i*a:e-t,p=r.length,d=Math.floor(i*p);if(l==="word"){let h=r.split(/(\s+)/),b=[];h.forEach((M,x)=>{M.trim().length>0&&b.push(x)});let c=Math.min(b.length,Math.floor(i*(b.length+1)));if(c<=0)d=0;else{let M=b[Math.min(b.length-1,c-1)];d=h.slice(0,M+1).join("").length}}else if(l==="line"){let h=r.split(`
1
+ import{b as v}from"./chunk-2SJ4BBMT.mjs";import{d as U}from"./chunk-6YJP57MZ.mjs";import{c as k,e as G}from"./chunk-Q6CRERSJ.mjs";import{e as P}from"./chunk-BVF64D6H.mjs";P();function j(r,e=180,t=12,a=1,o=0){if(r<=0)return 0;let n=Math.sqrt(Math.max(1e-4,e)/Math.max(1e-4,a)),s=t/(2*Math.sqrt(Math.max(1e-4,e*a)));if(s<1){let l=n*Math.sqrt(1-s*s),m=Math.exp(-s*n*r),i=-1,u=(o-s*n*-1)/Math.max(1e-6,l),p=m*(i*Math.cos(l*r)+u*Math.sin(l*r));return Math.min(2,Math.max(-1,1+p))}else if(Math.abs(s-1)<1e-4){let l=Math.exp(-n*r);return 1+(-1+(o-n)*r)*l}else{let l=-n*(s-Math.sqrt(s*s-1)),m=-n*(s+Math.sqrt(s*s-1)),i=(o+m)/Math.max(1e-6,l-m),u=-1-i;return 1+(i*Math.exp(l*r)+u*Math.exp(m*r))}}function _(r,e=0){if(r===0)return[1,0,0,1];let t=r*Math.PI/180,a=e*Math.PI/180,o=Math.cos(a),n=Math.sin(a),s=Math.tan(t),l=1-s*o*n,m=s*o*o,i=-s*n*n,u=1+s*n*o;return[l,m,i,u]}function B(r,e){let t=e.anchorX,a=e.anchorY;switch(e.preset){case"center":t=.5,a=.5;break;case"baseline":t=.5,a=r.height>0?r.ascender/r.height:.8;break;case"bottom_left":t=0,a=1;break;case"bottom_center":t=.5,a=1;break;case"bottom_right":t=1,a=1;break;case"top_left":t=0,a=0;break;case"top_center":t=.5,a=0;break;case"top_right":t=1,a=0;break;default:t=.5,a=.5;break}let o=(t-.5)*r.width+e.offsetX,n=(a-.5)*r.height+e.offsetY;return{px:o,py:n}}function N(r,e,t,a=0){if(t===0||e<=1)return 0;let o=a*(e-1);return(r-o)*t}function O(r,e){try{let t={textIndex:e.charIndex,textTotal:Math.max(1,e.totalChars),wordIndex:e.wordIndex,wordTotal:Math.max(1,e.totalWords),lineIndex:e.lineIndex,lineTotal:Math.max(1,e.totalLines),time:e.time,frame:e.frame,fps:e.fps,sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,abs:Math.abs,min:Math.min,max:Math.max,sqrt:Math.sqrt,pow:Math.pow,floor:Math.floor,ceil:Math.ceil,round:Math.round,PI:Math.PI,clamp:(l,m,i)=>Math.max(m,Math.min(i,l)),noise:l=>{let m=Math.sin(l*12.9898+e.frame*.1)*43758.5453;return(m-Math.floor(m))*2-1},signals:e.signals??{}},a=Object.keys(t),o=Object.values(t),n=new Function(...a,`return (${r});`),s=Number(n(...o));return Number.isFinite(s)?Math.max(-1,Math.min(1,s)):0}catch{return 0}}function $(r,e,t){let a=Math.max(1,e),o=a>1?r/(a-1):0,n=t.totalAngle*Math.PI/180,s=o*n,l=0,m=0,i=0,u=0,p=0,d=0,y=1;switch(t.mode){case"cylinder":{let c=t.totalAngle<360?(o-.5)*n:s;t.axis==="y"?(l=t.radius*Math.sin(c),i=t.radius*Math.cos(c)-t.radius,p=c*180/Math.PI):t.axis==="x"?(m=t.radius*Math.sin(c),i=t.radius*Math.cos(c)-t.radius,u=c*180/Math.PI):(l=t.radius*Math.sin(c),m=t.radius*Math.cos(c),d=c*180/Math.PI);let M=Math.cos(c);y=Math.max(.25,(M+1)*.5);break}case"vortex":{let M=-Math.PI/2+s,x=t.radius*(1-o*.35);l=x*Math.cos(M),m=x*Math.sin(M),i=-r*t.pitch||0;let g=-.35*t.radius/(n||1),F=g*Math.cos(M)-x*Math.sin(M),C=g*Math.sin(M)+x*Math.cos(M);d=Math.atan2(C,F)*180/Math.PI,y=Math.max(.65,1-o*.35);break}case"helix":{if(t.axis==="x"){let c=t.pitch>10?t.pitch:28;l=(r-(a-1)/2)*c,m=t.radius*Math.sin(s),i=t.radius*Math.cos(s)-t.radius,u=Math.sin(s)*22,y=.75+.25*((Math.cos(s)+1)*.5)}else{let c=(o-.5)*n;l=t.radius*Math.sin(c),m=(r-(a-1)/2)*t.pitch,i=t.radius*Math.cos(c)-t.radius,p=c*180/Math.PI;let M=Math.cos(c);y=Math.max(.65,(M+1)*.5)}break}default:{i=0;break}}let f=Math.max(100,t.perspective??1200),h=f-i,b=h>1?f/h:1;return{x:l*b,y:m*b,z:i,rotX:u,rotY:p,rotZ:d,scaleMult:Math.max(.1,b),depthOpacity:y}}function X(r,e,t,a,o){let s=(e>0?Math.max(e,t):t)+a.repeatGap;if(s<=0)return r;let l=a.velocity*o;if(a.snap?.enabled){let m=a.snap.stopIndex??0,i=a.snap.granularity==="character"?40:120,u=m*i,p=Math.min(1,o*1.5);l=l*(1-p)+u*p}if((a.direction==="right"||a.direction==="down")&&(l=-l),a.loop){let m=(r-l)%s;return m<-t?m+s:m}return r-l}function z(r,e,t,a,o,n){let s=Math.max(1,e),l=s>1?r/(s-1):.5,m=Math.max(20,t.minFreqHz),i=Math.max(m+100,t.maxFreqHz),u=m*(i/m)**l,p=0,d=U.getChannelSamples(t.signalChannel,"primary");if(d&&d.length>0){let f=n>0?n:24,h=Math.max(0,Math.min(d.length-1,Math.round(o/f*24)));p=Number(d[h])||0}else if(a){let f=a[t.signalChannel];if(typeof f=="number")p=f;else if(typeof f=="function")p=Number(f(o,n,u))||0;else if(typeof f=="object"&&f!==null){let h=f;if(typeof h.get=="function")p=Number(h.get({frame:o,fps:n,freq:u}))||0;else if(Array.isArray(h.samples)||ArrayBuffer.isView(h.samples)){let b=h.samples,c=Math.floor(l*(b.length-1));p=Number(b[c])||0}}}let y=Math.max(0,Math.min(1,p));return t.minScale+y*(t.maxScale-t.minScale)}P();function Z(r,e,t,a,o,n=0,s=0){let l=e+a,m=t+a;if(m<=l)return 0;let i=(r-l)/(m-l),u=0;switch(o){case"square":u=i>=0&&i<=1?1:0;break;case"ramp_up":u=Math.max(0,Math.min(1,i));break;case"ramp_down":u=1-Math.max(0,Math.min(1,i));break;case"triangle":{i<0||i>1?u=0:i<.5?u=i*2:u=(1-i)*2;break}case"round":{i<0||i>1?u=0:u=.5-.5*Math.cos(i*2*Math.PI);break}case"smooth":{i<=0?u=0:i>=1?u=1:u=i*i*(3-2*i);break}}if(u>0&&u<1){if(n!==0&&u>.5){let p=(u-.5)*2,d=n>0?1+n*3:1/(1-n*3);u=.5+.5*p**d}if(s!==0&&u<=.5){let p=u*2,d=s>0?1+s*3:1/(1-s*3);u=.5*p**d}}return Math.max(0,Math.min(1,u))}function H(r,e,t,a){let o=(e*(1-a)+a)*12.9898+t+r*78.233,n=Math.sin(o)*43758.5453;return(n-Math.floor(n))*2-1}function J(r,e){let t=e,a=()=>(t=(t*9301+49297)%233280,t/233280),o=Array.from({length:r},(n,s)=>s);for(let n=o.length-1;n>0;n--){let s=Math.floor(a()*(n+1)),l=o[n];o[n]=o[s],o[s]=l}return o}function Q(r,e,t){switch(t){case"add":return Math.max(0,Math.min(1,r+e));case"subtract":return Math.max(0,Math.min(1,r-e));case"intersect":return r*e;case"min":return Math.min(r,e);case"max":return Math.max(r,e);case"difference":return Math.abs(r-e)}}P();var A={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function q(r,e){return r==="custom"&&e&&e.length>0?e:A[r]??A.alphanumeric}function et(r,e,t,a,o={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},n={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},s=2,l="character",m){if(m===void 0&&e<t)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let i=m!==void 0?Math.max(0,Math.min(1,m)):Math.min(1,(e-t)/Math.max(1,a)),u=m!==void 0?i*a:e-t,p=r.length,d=Math.floor(i*p);if(l==="word"){let h=r.split(/(\s+)/),b=[];h.forEach((M,x)=>{M.trim().length>0&&b.push(x)});let c=Math.min(b.length,Math.floor(i*(b.length+1)));if(c<=0)d=0;else{let M=b[Math.min(b.length-1,c-1)];d=h.slice(0,M+1).join("").length}}else if(l==="line"){let h=r.split(`
2
2
  `),b=Math.min(h.length,Math.floor(i*(h.length+1)));d=h.slice(0,b).join(`
3
3
  `).length}else if(o.mode==="human"&&i<1){let h=0,b=0,c=a/Math.max(1,p);for(let M=0;M<p;M++){let x=r[M],g=1,F=o.commaPauseMultiplier??3,C=o.sentencePauseMultiplier??5.5,I=o.paragraphPauseMultiplier??7,R=o.jitter??.35;x===","||x===";"?g=F:x==="."||x==="!"||x==="?"?g=C:x===`
4
4
  `&&(g=I);let T=1+Math.sin(M*17.3+42)*.5*R,E=c*g*T;if(b+=E,b<=u)h=M+1;else break}d=Math.min(p,h)}let y=r.slice(0,d);if(n.enabled&&d<p&&d>0){let h=q(n.charset,n.customCharset),b=Math.min(d,Math.max(1,n.scrambleFramesPerChar>4?3:2)),c="";for(let M=0;M<b;M++){let x=Math.floor(Math.abs(Math.sin(e*7+M*13))*h.length)%h.length;c+=h[x]}y=y.slice(0,y.length-b)+c}let f=!0;if(s>0){let h=Math.max(1,Math.round(30/(2*s)));f=Math.floor(u/h)%2===0}return{visibleChars:d,currentDisplayString:y,isCursorVisible:f}}P();var L={color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};function nt(r){return r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]})}function st(r,e){let{module:t}=e;return r.createRenderPipeline({label:e.label,layout:r.createPipelineLayout({bindGroupLayouts:[e.uniformLayout]}),vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e.format,blend:e.blend??L}]},primitive:{topology:e.topology}})}P();var w=class{samplers=new Map;lru=[];maxCapacity;constructor(e=32){this.maxCapacity=e}getSampler(e,t={}){let a=Math.max(1,Math.min(16,t.maxAnisotropy??4)),o=`${t.magFilter??"linear"}:${t.minFilter??"linear"}:${t.mipmapFilter??"linear"}:${t.addressModeU??"clamp-to-edge"}:${t.addressModeV??"clamp-to-edge"}:${a}`,n=this.samplers.get(o);if(n)this.lru=this.lru.filter(s=>s!==o);else{if(n=e.createSampler({magFilter:t.magFilter??"linear",minFilter:t.minFilter??"linear",mipmapFilter:t.mipmapFilter??"linear",addressModeU:t.addressModeU??"clamp-to-edge",addressModeV:t.addressModeV??"clamp-to-edge",maxAnisotropy:a}),this.samplers.size>=this.maxCapacity){let s=this.lru.pop();s&&this.samplers.delete(s)}this.samplers.set(o,n)}return this.lru.unshift(o),n}destroy(){this.samplers.clear(),this.lru=[]}};P();function V(r){return G(r)??k(r)??v(r)}function ht(r){let e=V(r);return typeof e=="string"?e:v(r)}export{j as a,_ as b,B as c,N as d,O as e,$ as f,X as g,z as h,Z as i,H as j,J as k,Q as l,q as m,et as n,L as o,nt as p,st as q,w as r,V as s,ht as t};
@@ -1,4 +1,4 @@
1
- import{a as im}from"./chunk-PIAJWALT.mjs";import{K as zi,L as ji,S as Tr,c as Z,d as dt,t as Rs,u as rm,v as Fs,w as Bs}from"./chunk-VY6ST4QX.mjs";import{a as kr,b as Pr}from"./chunk-ZEYUXJIV.mjs";import{a as Ii,b as As}from"./chunk-PJ3DVG45.mjs";import{a as Mr,c as Ds,d as Ns}from"./chunk-AYTP6OGO.mjs";import{o as Os}from"./chunk-BBHRXV75.mjs";import{$ as co,E as ro,G as Ar,I as io,J as qt,K as oo,O as Dr,R as Nr,T as Zt,U as Pt,V as ao,W as so,X as Je,Y as uo,_ as lo,aa as Mt,b as qi,ba as mo,ca as po,da as fo,ea as ho,fa as On,ga as go,ha as bo,ia as yo,ja as xo,ka as wo,l as Zi,la as Rn,m as Ki,ma as mt,n as Qi,na as vo,oa as So,p as Nn,pa as ko,s as Ji,w as eo,x as to,z as no}from"./chunk-NQZRPPUU.mjs";import{P as Es,S as Ui,U as Cr,Y as An,Z as Gi,_ as Is,a as Yt,aa as Wi,ba as Hi,ca as Yi,da as Dn}from"./chunk-AKT4YQWL.mjs";import{a as om}from"./chunk-YQRKT47I.mjs";import{a as $i}from"./chunk-2JKXYG6J.mjs";import{a as _i}from"./chunk-7I7PKKDL.mjs";import{i as Li}from"./chunk-XKO4RYKN.mjs";import{c as Ts}from"./chunk-SYP4AJMF.mjs";import{d as Xi}from"./chunk-CURR5X7D.mjs";import{a as de}from"./chunk-NKGXINCU.mjs";import{a as l}from"./chunk-V3FODTPI.mjs";import{a as Ls}from"./chunk-PJMX2GFY.mjs";import{h as Ps,j as Ms}from"./chunk-24P6DAB3.mjs";import{e as Ei}from"./chunk-KJGNTREI.mjs";import{a as Ht,l as ks,t as Tn}from"./chunk-ALSOO22Q.mjs";import{a as Ie}from"./chunk-ZMMNN77R.mjs";import{j as Xt,y as Vi}from"./chunk-2LQCQ3OT.mjs";import{m as Cn}from"./chunk-4GEWSUX5.mjs";import{r as be}from"./chunk-MTJHQATU.mjs";import{a as Cs}from"./chunk-IQC2I5A5.mjs";import{c as Fi,h as Bi}from"./chunk-IQKIHFNZ.mjs";import{o as G}from"./chunk-YAQFFQPG.mjs";import{a as Ss,c as Mn,d as x,e as h}from"./chunk-BVF64D6H.mjs";var bd=Ss((mM,gd)=>{h();var vi=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":vi(),apply:()=>vi(),construct:()=>vi()});gd.exports=vi()});var Od=Ss((rT,Nd)=>{h();var Ai=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":Ai(),apply:()=>Ai(),construct:()=>Ai()});Nd.exports=Ai()});h();h();h();h();var am=t=>!t.source||t.source.type==="keyframe";function Fn(t){let e=[],n=new Map;for(let r of t){if(!am(r)){e.push(r);continue}let i=n.get(r.prop);if(!i){let a={...r,keyframes:[...r.keyframes??[]]};n.set(r.prop,a),e.push(a);continue}let o=new Map(i.keyframes.map(a=>[a.frame,a]));for(let a of r.keyframes??[])o.set(a.frame,a);i.keyframes=[...o.values()].sort((a,s)=>a.frame-s.frame)}return e}function Vs(t,e){if(!t)return e;let n=Po(t);if(!n||n.name==="none")return e;let{name:r,dir:i,params:o}=n,a=Math.max(0,Math.min(1,e)),s=u=>i==="in"?u(a):i==="out"?1-u(1-a):a<.5?u(a*2)/2:1-u((1-a)*2)/2;switch(r){case"power1":return s(u=>u*u);case"power2":return s(u=>u*u*u);case"power3":return s(u=>u*u*u*u);case"sine":return s(u=>1-Math.cos(u*Math.PI/2));case"circ":return s(u=>1-Math.sqrt(Math.max(0,1-u*u)));case"expo":return s(u=>u===0?0:2**(10*(u-1)));case"back":{let u=o?.[0]??1.70158,c=u+1;return s(m=>c*m*m*m-u*m*m)}case"bounce":{let u=c=>{if(c<.36363636363636365)return 7.5625*c*c;if(c<.7272727272727273){let f=c-.5454545454545454;return 7.5625*f*f+.75}if(c<.9090909090909091){let f=c-.8181818181818182;return 7.5625*f*f+.9375}let p=c-2.625/2.75;return 7.5625*p*p+.984375};return i==="out"?u(a):i==="in"?1-u(1-a):a<.5?(1-u(1-2*a))/2:(1+u(2*a-1))/2}default:return a}}function Po(t){if(t){if(typeof t=="object"&&"name"in t&&"dir"in t)return t;if(typeof t=="string"){let e=t.trim(),n=e.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(n){let u=n[1].toLowerCase(),c=u==="linear"?"none":u,m=(n[2]||"out").toLowerCase(),d="out";m==="in"?d="in":m==="out"?d="out":m==="inout"&&(d="inOut");let p;return n[3]&&(p=n[3].split(",").map(f=>Number.parseFloat(f.trim())).filter(f=>!Number.isNaN(f))),{name:c,dir:d,...p&&p.length>0?{params:p}:{}}}let r=e.indexOf(".");if(r===-1){let u=e.toLowerCase();return{name:u==="linear"?"none":u,dir:"out"}}let i=e.slice(0,r).toLowerCase(),o=i==="linear"?"none":i,a=e.slice(r+1).toLowerCase(),s="out";return a==="in"?s="in":a==="out"?s="out":a==="inout"&&(s="inOut"),{name:o,dir:s}}}}var ne=class t{tracks=[];frameStep;defaultRepeat;defaultYoyo;constructor(e=[]){this.tracks=[...e]}static create(){return new t}static stepped(e=2){return new t().stepped(e)}stepped(e=2){return this.frameStep=Math.max(1,Math.min(24,Math.round(e))),this}static fromTo(e,n,r,i={}){return new t().fromTo(e,n,r,i)}static keys(e,n,r){return new t().keys(e,n,r)}static signal(e,n,r={}){return new t().signal(e,n,r)}static colorSignal(e,n,r){return new t().colorSignal(e,n,r)}static kineticSweep(e=-1,n=1,r=0,i=24,o="power2.out"){return new t().kineticSweep(e,n,r,i,o)}static typewriter(e=0,n=30,r="linear"){return new t().typewriter(e,n,r)}static letterSpacing(e,n,r=0,i=24,o="power2.out"){return new t().letterSpacing(e,n,r,i,o)}static wiggle(e,n={}){return new t().wiggle(e,n)}static spring(e,n={}){return new t().spring(e,n)}static firstMargin(e,n,r={}){return new t().firstMargin(e,n,r)}static strokeWidth(e,n,r={}){return new t().fromTo("strokeWidth",e,n,r)}static rotateX(e,n,r={}){return new t().fromTo("rotateX",e,n,r)}static rotateY(e,n,r={}){return new t().fromTo("rotateY",e,n,r)}static rotateZ(e,n,r={}){return new t().fromTo("rotateZ",e,n,r)}static rotation(e,n,r={}){return new t().fromTo("rotation",e,n,r)}static scale(e,n,r={}){return new t().fromTo("scale",e,n,r)}static scaleX(e,n,r={}){return new t().fromTo("scaleX",e,n,r)}static scaleY(e,n,r={}){return new t().fromTo("scaleY",e,n,r)}addTrack(e){return this.tracks.push(e),this}repeat(e=-1,n){this.defaultRepeat=e;for(let r of this.tracks)(!n||r.prop===n)&&(r.repeat=e);return this}yoyo(e=!0,n){this.defaultYoyo=e;for(let r of this.tracks)(!n||r.prop===n)&&(r.yoyo=e);return this}loop(e={},n){return this.repeat(-1,n),e.yoyo&&this.yoyo(!0,n),this}fromTo(e,n,r,i={}){let o=i.from??i.start??i.fromFrame??0,a=i.to??i.end??i.toFrame??(i.durationFrames!==void 0?o+i.durationFrames:o+24),s=Po(i.ease),u=this.tracks.find(m=>m.prop===e&&(!m.source||m.source.type==="keyframe"));if(!u){let m={id:`${e}_fromTo_${this.tracks.length}`,prop:e,keyframes:[],...this.defaultRepeat!==void 0&&{repeat:this.defaultRepeat},...this.defaultYoyo!==void 0&&{yoyo:this.defaultYoyo}};this.tracks.push(m),u=m}i.repeat!==void 0&&(u.repeat=i.repeat),i.yoyo!==void 0&&(u.yoyo=i.yoyo),i.durationFrames!==void 0&&(u.durationFrames=i.durationFrames);let c=u.id;return u.keyframes.length===0&&o>0&&u.keyframes.push({id:`${c}_k0`,frame:0,value:n}),(u.keyframes.length===0||u.keyframes[u.keyframes.length-1].frame<o)&&u.keyframes.push({id:`${c}_k_${o}`,frame:o,value:n}),u.keyframes.push({id:`${c}_k_${a}`,frame:a,value:r,...s&&{ease:s}}),u.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(e,n,r,i){let o=this.tracks.find(c=>c.prop===e&&(!c.source||c.source.type==="keyframe"));if(!o){let c={id:`${e}_track_${this.tracks.length}`,prop:e,keyframes:[],...this.defaultRepeat!==void 0&&{repeat:this.defaultRepeat},...this.defaultYoyo!==void 0&&{yoyo:this.defaultYoyo}};this.tracks.push(c),o=c}let a=Po(i),s={id:`k_${o.keyframes.length}_f${n}`,frame:n,value:r,...a&&{ease:a}},u=o.keyframes.findIndex(c=>c.frame===n);return u>=0?o.keyframes[u]=s:o.keyframes.push(s),o.keyframes.sort((c,m)=>c.frame-m.frame),this}keys(e,n,r){for(let[i,o,a]of n)this.keyframe(e,Math.round(i),o,a);if(r){let i=this.tracks.find(o=>o.prop===e&&(!o.source||o.source.type==="keyframe"));i&&(r.repeat!==void 0&&(i.repeat=r.repeat),r.yoyo!==void 0&&(i.yoyo=r.yoyo),r.durationFrames!==void 0&&(i.durationFrames=r.durationFrames))}return this}fadeIn(e=0,n=20,r="power2.out"){return this.fromTo("opacity",0,1,{from:e,to:n,ease:r})}fadeOut(e,n,r="power2.in"){return this.fromTo("opacity",1,0,{from:e,to:n,ease:r})}slideInY(e,n,r=0,i=24,o="power2.out"){return this.fromTo("y",e,n,{from:r,to:i,ease:o})}slideInX(e,n,r=0,i=24,o="power2.out"){return this.fromTo("x",e,n,{from:r,to:i,ease:o})}kineticSweep(e=-1,n=1,r=0,i=24,o="power2.out"){return this.fromTo("offset",e,n,{from:r,to:i,ease:o})}typewriter(e=0,n=30,r="linear"){return this.fromTo("text",0,1,{from:e,to:n,ease:r})}letterSpacing(e,n,r=0,i=24,o="power2.out"){return this.fromTo("letterSpacing",e,n,{from:r,to:i,ease:o})}firstMargin(e,n,r={}){return this.fromTo("firstMargin",e,n,r)}lastMargin(e,n,r={}){return this.fromTo("lastMargin",e,n,r)}baselineShift(e,n,r={}){return this.fromTo("baselineShift",e,n,r)}rotateX(e,n,r={}){return this.fromTo("rotateX",e,n,r)}rotateY(e,n,r={}){return this.fromTo("rotateY",e,n,r)}rotateZ(e,n,r={}){return this.fromTo("rotateZ",e,n,r)}scaleX(e,n,r={}){return this.fromTo("scaleX",e,n,r)}scaleY(e,n,r={}){return this.fromTo("scaleY",e,n,r)}scale(e,n,r={}){return this.fromTo("scale",e,n,r)}perspective(e,n,r={}){return this.fromTo("perspective",e,n,r)}translateZ(e,n,r={}){return this.fromTo("translateZ",e,n,r)}tilt3D(e){let n=e.start??e.fromFrame,r=e.end??e.toFrame,i=e.ease,o=e.from??{},a=e.to,s=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let u of s){let c=a[u];if(c!==void 0){let m=o[u]??0;this.fromTo(u,m,c,{from:n,to:r,fromFrame:n,toFrame:r,ease:i})}}return this}signal(e,n,r={}){let{handleId:i,inline:o}=zi(n),a=`${e}_sig_${i}_${this.tracks.length}`,s={type:"signal",inputHandleId:i,multiplier:r.multiplier??1,offset:r.offset??0,smoothingWindowFrames:r.smoothing??0,signalMode:r.mode??"continuous",threshold:r.threshold??.15,accumulateThreshold:r.threshold??.15,debounceFrames:r.debounceFrames??2,channel:r.channel??"primary"};return o&&ji(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}colorSignal(e,n,r){let{handleId:i,inline:o}=zi(n),a=`${e}_colorSig_${i}_${this.tracks.length}`,s={type:"signal",inputHandleId:i,multiplier:r.multiplier??1,offset:r.offset??0,smoothingWindowFrames:r.smoothing??0,colorMode:r.colorMode??"interpolate",colorA:r.colorA,colorB:r.colorB,colorThreshold:r.threshold,channel:"primary"};return o&&ji(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}wiggle(e,n={}){let r=`${e}_wiggle_${this.tracks.length}`,i={type:"wiggle",frequency:n.frequency??2,amplitude:n.amplitude??20,octaves:n.octaves??1,seed:n.seed??1234};return this.tracks.push({id:r,prop:e,source:i,keyframes:[]}),this}spring(e,n={}){let r=`${e}_spring_${this.tracks.length}`,i={type:"springOvershoot",damping:n.damping??12,stiffness:n.stiffness??180,mass:n.mass??1};return this.tracks.push({id:r,prop:e,source:i,keyframes:[]}),this}followPath(e,n={}){let r=n.start??n.fromFrame??0,i=n.end??n.toFrame??60,o=Math.max(1,i-r),a=n.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=e.totalLength??1,u=n.fromProgress??0,c=n.toProgress??1;n.fromDistance!==void 0&&s>0&&(u=n.fromDistance/s),n.toDistance!==void 0&&s>0&&(c=n.toDistance/s);let m=n.autoOrient??!0,d=n.banking??0,p=n.pitchOffset??0,f=n.yawOffset??0,b=n.rollOffset??0,g=!1,y=!1,k=!1,S=[];for(let P=0;P<=a;P++){let w=P/a,A=Vs(n.ease,w),v=u+A*(c-u),O=Math.round(r+w*o),C=[0,0,0],B=[1,0,0],_=[0,0,0];if(typeof e.getFrameAt=="function"){let M=e.getFrameAt(v);C=M.position,B=M.tangent,_=M.rotation??[0,0,0]}else{let M=e.getPointAt(v);C=M.position,M.tangent&&(B=M.tangent);let H=Math.asin(Math.max(-1,Math.min(1,-B[1])))*(180/Math.PI),Y=Math.atan2(B[0],B[2])*(180/Math.PI),$=Math.atan2(B[1],B[0])*(180/Math.PI);_=[H,Y,$]}let z=_[0]+p,F=_[1]+f,T=(Math.abs(B[2])<1e-4?Math.atan2(B[1],B[0])*(180/Math.PI):_[2])+b;if(d!==0){let M=Math.min(1,v+.02),H=Math.max(0,v-.02),Y=e.getPointAt(M),$=e.getPointAt(H),V=Y.tangent??[1,0,0],ee=$.tangent??[1,0,0],oe=Math.atan2(V[0],V[2]),ge=Math.atan2(ee[0],ee[2]),le=oe-ge;T-=le*d*57.2958}Math.abs(C[2])>1e-4&&(g=!0),Math.abs(z)>1e-4&&(y=!0),Math.abs(F)>1e-4&&(k=!0),S.push({f:O,x:C[0],y:C[1],z:C[2],rx:z,ry:F,rz:T})}for(let P of S)this.keyframe("x",P.f,P.x),this.keyframe("y",P.f,P.y),g&&this.keyframe("z",P.f,P.z),m&&(this.keyframe("rotateZ",P.f,P.rz),y&&this.keyframe("rotateX",P.f,P.rx),k&&this.keyframe("rotateY",P.f,P.ry));return this}applyTo(e){return e.animation=this.toSpec(),e}merge(...e){return this.tracks=Fn([...this.tracks,...e.flatMap(n=>n.tracks)]),this}static merge(...e){let n=new t;return n.tracks=Fn(e.flatMap(r=>r.tracks)),n}toSpec(){return{tracks:this.tracks,...this.frameStep!==void 0&&{frameStep:this.frameStep}}}toJSON(){return this.toSpec()}},Mo=class t extends ne{static camera(){return new t}dolly(e,n,r={}){if(typeof e=="object"){let i=e,o=i.start??i.fromFrame??0,a=i.end??i.toFrame??0;return this.fromTo("cameraZ",i.fromDistance,i.toDistance,{from:o,to:a,ease:i.ease})}return this.fromTo("cameraZ",e,n??e,r)}orbit(e){let n=e.start??e.fromFrame??0,r=e.end??e.toFrame??0;return e.azimuth&&this.fromTo("orbitAzimuth",e.azimuth.from??0,e.azimuth.to,{from:n,to:r,ease:e.ease}),e.elevation&&this.fromTo("orbitElevation",e.elevation.from??0,e.elevation.to,{from:n,to:r,ease:e.ease}),e.radius&&this.fromTo("orbitRadius",e.radius.from??1500,e.radius.to,{from:n,to:r,ease:e.ease}),this}truck(e,n,r={}){return this.fromTo("cameraX",e,n,r)}pedestal(e,n,r={}){return this.fromTo("cameraY",e,n,r)}pan(e,n,r={}){return this.fromTo("cameraYaw",e,n,r)}tilt(e,n,r={}){return this.fromTo("cameraPitch",e,n,r)}roll(e,n,r={}){return this.fromTo("cameraRoll",e,n,r)}rackFocus(e){let n=e.start??e.fromFrame??0,r=e.end??e.toFrame??0;return this.fromTo("focusDistance",e.fromDistance,e.toDistance,{from:n,to:r,ease:e.ease??"power2.inOut"}),e.toFStop!==void 0&&this.fromTo("fStop",e.fromFStop??2.8,e.toFStop,{from:n,to:r,ease:e.ease??"power2.inOut"}),this}handheld(e){let n=e.start??e.fromFrame??0,r=e.end??e.toFrame??0;return this.fromTo("shakeTranslation",0,e.translationAmplitude,{from:n,to:r}),this.fromTo("shakeRotation",0,e.rotationAmplitude,{from:n,to:r}),this}followPath3D(e,n={}){let r=n.start??n.fromFrame??0,i=n.end??n.toFrame??60,o=Math.max(1,i-r),a=n.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=n.mode??(n.target?"lookAtTarget":"leadTarget"),u=n.fromProgress??0,c=n.toProgress??1,m=n.lookAhead??.05;for(let d=0;d<=a;d++){let p=d/a,f=Vs(n.ease,p),b=u+f*(c-u),g=Math.round(r+p*o),y=[0,0,0],k=[0,0,0];if(typeof e.getFrameAt=="function"){let S=e.getFrameAt(b);y=S.position,k=S.rotation??[0,0,0]}else y=e.getPointAt(b).position;if(this.keyframe("cameraX",g,y[0]),this.keyframe("cameraY",g,y[1]),this.keyframe("cameraZ",g,y[2]),s==="lookAtTarget"){let S=n.target??[y[0],y[1],0];this.keyframe("targetX",g,S[0]),this.keyframe("targetY",g,S[1]),this.keyframe("targetZ",g,S[2])}else if(s==="leadTarget"){let S=Math.min(1,b+m),P=e.getPointAt(S);this.keyframe("targetX",g,P.position[0]),this.keyframe("targetY",g,P.position[1]),this.keyframe("targetZ",g,P.position[2])}else s==="orientAlongPath"&&(this.keyframe("cameraPitch",g,k[0]),this.keyframe("cameraYaw",g,k[1]),this.keyframe("cameraRoll",g,k[2]))}return this}};h();var To=class t{samples=[];frames=[];totalLength=0;constructor(e){if(e.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=e,this.totalLength=e[e.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let e=this.samples.length;this.frames=new Array(e);let n=this.samples[0].tangent,r=[0,-1,0];Math.abs(Z.dot(n,r))>.95&&(r=[0,0,1]);let i=Z.normalize(Z.subtract(r,Z.multiplyScalar(n,Z.dot(r,n))));Z.lengthSq(i)<1e-4&&(i=[1,0,0]);let o=Z.normalize(Z.cross(n,i));this.frames[0]={normal:i,binormal:o,rotation:this.eulerFromFrame(n,i,o)};for(let a=0;a<e-1;a++){let s=this.samples[a].position,u=this.samples[a+1].position,c=this.samples[a].tangent,m=this.samples[a+1].tangent,d=this.frames[a].normal,p=Z.subtract(u,s),f=Z.dot(p,p),b;if(f>1e-8){let y=Z.subtract(c,Z.multiplyScalar(p,2*Z.dot(p,c)/f)),k=Z.subtract(d,Z.multiplyScalar(p,2*Z.dot(p,d)/f)),S=Z.subtract(m,y),P=Z.dot(S,S);P>1e-8?b=Z.subtract(k,Z.multiplyScalar(S,2*Z.dot(S,k)/P)):b=k}else b=d;b=Z.normalize(Z.subtract(b,Z.multiplyScalar(m,Z.dot(m,b))));let g=Z.normalize(Z.cross(m,b));this.frames[a+1]={normal:b,binormal:g,rotation:this.eulerFromFrame(m,b,g)}}}eulerFromFrame(e,n,r){let i=Math.asin(Math.max(-1,Math.min(1,-e[1])))*(180/Math.PI),o=Math.atan2(e[0],e[2])*(180/Math.PI),a=Math.atan2(n[0],n[1])*(180/Math.PI);return[i,o,a]}getPointAt(e){let r=Math.max(0,Math.min(1,e))*this.totalLength;return this.getPointAtDistance(r)}getPointAtDistance(e){let n=Math.max(0,Math.min(this.totalLength,e)),r=this.samples.length,i=0,o=r-1;for(;i<o;){let P=i+o>>1;this.samples[P].distance<n?i=P+1:o=P}let a=Math.max(1,i),s=a-1,u=this.samples[s],c=this.samples[a],m=c.distance-u.distance,d=m>1e-6?(n-u.distance)/m:0,p=Z.lerp(u.position,c.position,d),f=Z.normalize(Z.lerp(u.tangent,c.tangent,d)),b=this.frames[s],g=this.frames[a],y=Z.normalize(Z.lerp(b.normal,g.normal,d)),k=Z.normalize(Z.cross(f,y)),S=[b.rotation[0]+(g.rotation[0]-b.rotation[0])*d,b.rotation[1]+(g.rotation[1]-b.rotation[1])*d,b.rotation[2]+(g.rotation[2]-b.rotation[2])*d];return{position:p,tangent:f,normal:y,binormal:k,distance:n,t:this.totalLength>0?n/this.totalLength:0,rotation:S}}static catmullRom(e,n={}){if(e.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let r=!!n.closed,i=n.samplesPerSegment??40,o=[];if(r)o.push(e[e.length-1]),o.push(...e),o.push(e[0]),o.push(e[1]);else{let u=e[0],c=e[1],m=e[e.length-1],d=e[e.length-2];o.push(Z.subtract(u,Z.subtract(c,u))),o.push(...e),o.push(Z.add(m,Z.subtract(m,d)))}let a=r?e.length:e.length-1,s=[];for(let u=0;u<a;u++){let c=o[u],m=o[u+1],d=o[u+2],p=o[u+3],f=u===a-1?i:i-1;for(let b=0;b<=f;b++){let g=b/i,y=g*g,k=y*g,S=-.5*k+y-.5*g,P=1.5*k-2.5*y+1,w=-1.5*k+2*y+.5*g,A=.5*k-.5*y,v=[S*c[0]+P*m[0]+w*d[0]+A*p[0],S*c[1]+P*m[1]+w*d[1]+A*p[1],S*c[2]+P*m[2]+w*d[2]+A*p[2]],O=-1.5*y+2*g-.5,C=4.5*y-5*g,B=-4.5*y+4*g+.5,_=1.5*y-1*g,z=[O*c[0]+C*m[0]+B*d[0]+_*p[0],O*c[1]+C*m[1]+B*d[1]+_*p[1],O*c[2]+C*m[2]+B*d[2]+_*p[2]],F=Z.normalize(z);s.push({position:v,tangent:F})}}return t.fromRawSamples(s)}static fromRawSamples(e){let n=0,r=e.map((i,o)=>(o>0&&(n+=Z.distance(i.position,e[o-1].position)),{position:i.position,tangent:i.tangent,distance:n}));if(r.length===0)throw new TypeError("Path3D needs samples");return new t(r)}static bezier(e,n=50){if(e.length===0)throw new Error("Bezier path requires at least 1 segment");let r=[];for(let i=0;i<e.length;i++){let o=e[i],a=i===e.length-1?n:n-1;for(let s=0;s<=a;s++){let u=s/n,c=1-u,m=c*c,d=m*c,p=u*u,f=p*u,b=[d*o.p0[0]+3*m*u*o.p1[0]+3*c*p*o.p2[0]+f*o.p3[0],d*o.p0[1]+3*m*u*o.p1[1]+3*c*p*o.p2[1]+f*o.p3[1],d*o.p0[2]+3*m*u*o.p1[2]+3*c*p*o.p2[2]+f*o.p3[2]],g=[3*m*(o.p1[0]-o.p0[0])+6*c*u*(o.p2[0]-o.p1[0])+3*p*(o.p3[0]-o.p2[0]),3*m*(o.p1[1]-o.p0[1])+6*c*u*(o.p2[1]-o.p1[1])+3*p*(o.p3[1]-o.p2[1]),3*m*(o.p1[2]-o.p0[2])+6*c*u*(o.p2[2]-o.p1[2])+3*p*(o.p3[2]-o.p2[2])],y=Z.normalize(g);r.push({position:b,tangent:y})}}return t.fromRawSamples(r)}static helix(e){let{center:n,radius:r,pitch:i,turns:o,axis:a="z",samplesPerTurn:s=60}=e,u=Math.max(10,Math.round(o*s)),c=[];for(let m=0;m<=u;m++){let d=m/u,p=d*o*Math.PI*2,f=(d-.5)*i*o,b=Math.cos(p),g=Math.sin(p),y,k;a==="z"?(y=[n[0]+r*b,n[1]+r*g,n[2]+f],k=[-r*g,r*b,i*o/(o*Math.PI*2)]):a==="y"?(y=[n[0]+r*b,n[1]+f,n[2]+r*g],k=[-r*g,i*o/(o*Math.PI*2),r*b]):(y=[n[0]+f,n[1]+r*b,n[2]+r*g],k=[i*o/(o*Math.PI*2),-r*g,r*b]),c.push({position:y,tangent:Z.normalize(k)})}return t.fromRawSamples(c)}static circle(e){let{center:n,radius:r,startAngleDeg:i=0,endAngleDeg:o=360,samples:a=128}=e,s=i*Math.PI/180,u=o*Math.PI/180,c=[];for(let m=0;m<=a;m++){let d=s+(u-s)*(m/a),p=Math.cos(d),f=Math.sin(d),b=[n[0]+r*p,n[1],n[2]+r*f],g=[-r*f,0,r*p];c.push({position:b,tangent:Z.normalize(g)})}return t.fromRawSamples(c)}};h();var Co=class t{name;props={};selectors=[];constructor(e){this.name=e}static create(e){return new t(e)}skew(e,n=0){return this.props.skew=e,this.props.skewAxis=n,this}anchor(e,n="character",r=0,i=0){return this.props.anchor={grouping:n,preset:e,anchorX:.5,anchorY:.5,offsetX:r,offsetY:i},this}anchorNormalized(e,n,r="character"){return this.props.anchor={grouping:r,preset:"custom",anchorX:e,anchorY:n,offsetX:0,offsetY:0},this}translateZ(e){return this.props.translateZ=e,this}tilt3D(e=0,n=0,r=0){return this.props.rotationX=e,this.props.rotationY=n,this.props.rotationZ=r,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}rotationZ(e){return this.props.rotationZ=e,this}volumetricFormation(e="cylinder",n=300,r=120,i=360,o=1200,a="y"){return this.props.formation={mode:e,radius:n,pitch:r,totalAngle:i,perspective:o,axis:a},this}lineSpacing(e,n=0){return this.props.lineSpacing=e,this.props.lineAnchor=n,this}lineAnchor(e){return this.props.lineAnchor=e,this}spring(e=180,n=12,r=1,i=0){return this.props.spring={stiffness:e,damping:n,mass:r,initialVelocity:i,overshootMultiplier:1},this}stroke(e,n="#ffffff",r=1){return this.props.stroke={strokeWidth:e,strokeColor:n,strokeAlign:"center",fillOpacity:r,dashOffset:0},this}variableFont(e){return this.props.variableAxes=e,this}chromaticGlitch(e,n=0,r=-e,i=0){return this.props.chromaticGlitch={redShiftX:e,redShiftY:n,blueShiftX:r,blueShiftY:i,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(e,n=60,r=16e3,i=2.5){return this.props.audioSpectrum={signalChannel:e,minFreqHz:n,maxFreqHz:r,scaleAxis:"scaleY",minScale:.2,maxScale:i,peakDecay:.8},this}longShadow(e=45,n=40,r="#000000",i=.8,o=0,a=16){return this.props.longShadow={angle:e,length:n,color:r,startOpacity:i,endOpacity:o,steps:a},this}particleDissolve(e=0,n=90,r=120){return this.props.particleDissolve={progress:e,dispersalAngle:n,maxDisplacement:r,turbulence:.5,particleSize:2},this}addExpressionSelector(e,n="add"){return this.selectors.push({type:"expression",expression:e,mode:n,amount:1}),this}expressionSelector(e,n="add"){return this.addExpressionSelector(e,n)}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fillColor(e){return this.props.fillColor=e,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};h();var zs=l.enum(["character","word","line","all"]),js=l.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),_s=l.object({grouping:zs.default("character"),preset:js.default("center"),anchorX:l.number().default(.5),anchorY:l.number().default(.5),offsetX:l.number().default(0),offsetY:l.number().default(0)}),sm=l.object({skew:l.number().min(-90).max(90),skewAxis:l.number().default(0)}),um=l.object({lineSpacing:l.number(),lineAnchor:l.number().min(0).max(1).default(0)}),$s=l.enum(["planar","vortex","cylinder","helix"]),Ao=l.object({mode:$s.default("planar"),radius:l.number().default(300),pitch:l.number().default(120),totalAngle:l.number().default(360),axis:l.enum(["x","y","z"]).default("y"),perspective:l.number().positive().default(1200)}),lm=l.object({translateZ:l.number().optional(),rotationX:l.number().optional(),rotationY:l.number().optional(),rotationZ:l.number().optional(),formation:Ao.optional()}),Us=l.object({stiffness:l.number().positive().default(180),damping:l.number().positive().default(12),mass:l.number().positive().default(1),initialVelocity:l.number().default(0),overshootMultiplier:l.number().min(.5).max(3).default(1)}),cm=l.object({type:l.literal("expression"),name:l.string().optional(),expression:l.string(),mode:l.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:l.number().default(1)}),Gs=l.object({strokeWidth:l.number().min(0).default(0),strokeColor:l.string().default("#ffffff"),strokeAlign:l.enum(["center","inside","outside"]).default("center"),fillOpacity:l.number().min(0).max(1).default(1),dashArray:l.tuple([l.number(),l.number()]).optional(),dashOffset:l.number().default(0)}),Do=l.object({direction:l.enum(["left","right","up","down"]).default("left"),velocity:l.number().default(120),loop:l.boolean().default(!0),repeatGap:l.number().default(80),snap:l.object({enabled:l.boolean().default(!1),granularity:l.enum(["character","word","line"]).default("word"),stopIndex:l.number().default(0),decelEase:l.string().default("cubic.out")}).optional()}),Ws=l.object({weight:l.number().min(100).max(1e3).optional(),width:l.number().min(50).max(200).optional(),slant:l.number().min(-25).max(25).optional(),italic:l.number().min(0).max(1).optional(),opticalSize:l.number().min(6).max(144).optional()}),Hs=l.object({redShiftX:l.number().default(0),redShiftY:l.number().default(0),blueShiftX:l.number().default(0),blueShiftY:l.number().default(0),sliceProbability:l.number().min(0).max(1).default(0),sliceAmplitude:l.number().default(0)}),Ys=l.object({signalChannel:l.string(),minFreqHz:l.number().default(60),maxFreqHz:l.number().default(16e3),scaleAxis:l.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:l.number().default(.2),maxScale:l.number().default(2.5),peakDecay:l.number().min(0).max(.99).default(.8)}),Xs=l.object({angle:l.number().default(45),length:l.number().min(0).default(0),color:l.string().default("#000000"),startOpacity:l.number().min(0).max(1).default(.8),endOpacity:l.number().min(0).max(1).default(0),steps:l.number().int().min(4).max(64).default(16)}),qs=l.object({progress:l.number().min(0).max(1).default(0),dispersalAngle:l.number().default(90),maxDisplacement:l.number().default(120),turbulence:l.number().default(.5),particleSize:l.number().default(2)}),Zs=l.object({x:l.number().optional(),y:l.number().optional(),translateZ:l.number().optional(),scale:l.number().optional(),scaleX:l.number().optional(),scaleY:l.number().optional(),rotation:l.number().optional(),rotationX:l.number().optional(),rotationY:l.number().optional(),rotationZ:l.number().optional(),formation:Ao.optional(),skew:l.number().optional(),skewAxis:l.number().optional(),tracking:l.number().optional(),lineSpacing:l.number().optional(),lineAnchor:l.number().optional(),anchor:_s.optional(),opacity:l.number().optional(),blur:l.number().optional(),fillColor:l.string().optional(),stroke:Gs.optional(),variableAxes:Ws.optional(),chromaticGlitch:Hs.optional(),longShadow:Xs.optional(),particleDissolve:qs.optional(),audioSpectrum:Ys.optional(),spring:Us.optional()}),No=l.object({name:l.string().default("AdvancedAnimator"),selectors:l.array(l.record(l.string(),l.unknown())).default([]),props:Zs});h();h();var Bn=l.object({x:l.number(),y:l.number()}),Ks=l.object({p0:Bn,p1:Bn,p2:Bn,p3:Bn}),Qs=l.discriminatedUnion("type",[l.object({type:l.literal("svg"),d:l.string().min(1,"SVG path string cannot be empty")}),l.object({type:l.literal("bezier"),segments:l.array(Ks).min(1)}),l.object({type:l.literal("ellipse"),cx:l.number(),cy:l.number(),rx:l.number().positive(),ry:l.number().positive(),startAngleDeg:l.number().default(0),endAngleDeg:l.number().default(360)}),l.object({type:l.literal("wave"),startX:l.number(),startY:l.number(),length:l.number().positive(),amplitude:l.number(),frequency:l.number().positive(),phaseDeg:l.number().default(0)})]),Kt=l.object({path:Qs,firstMargin:l.number().default(0),lastMargin:l.number().default(0),reversePath:l.boolean().default(!1),perpendicularToPath:l.boolean().default(!0),forceAlignment:l.boolean().default(!1),loop:l.boolean().default(!1),baselineOffset:l.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:l.number().default(0)}),Js=l.enum(["bar","underscore","block","custom"]),eu=l.object({enabled:l.boolean().default(!0),style:Js.default("bar"),customChar:l.string().default("|"),color:l.string().optional(),blinkFrequency:l.number().min(0).default(2),hideOnComplete:l.boolean().default(!1),width:l.number().positive().default(2.5),spacing:l.number().default(3)}),tu=l.discriminatedUnion("mode",[l.object({mode:l.literal("constant")}),l.object({mode:l.literal("human"),jitter:l.number().min(0).max(1).default(.35),commaPauseMultiplier:l.number().min(1).default(3),sentencePauseMultiplier:l.number().min(1).default(5.5),paragraphPauseMultiplier:l.number().min(1).default(7)})]),nu=l.object({enabled:l.boolean().default(!1),charset:l.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:l.string().optional(),scrambleFramesPerChar:l.number().int().min(1).default(8),highlightProbability:l.number().min(0).max(1).default(.25),scrambleColor:l.string().optional()}),Or=l.object({granularity:l.enum(["character","word","line"]).default("character"),cursor:eu.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:tu.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:nu.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:l.boolean().default(!1)}),Rr=l.enum(["characters","characters_excluding_spaces","words","lines"]),ru=l.enum(["percentage","index"]),iu=l.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),Fr=l.enum(["add","subtract","intersect","min","max","difference"]),ou=l.object({type:l.literal("range"),start:l.number().default(0),end:l.number().default(1),offset:l.number().default(0),units:ru.default("percentage"),basedOn:Rr.default("characters"),shape:iu.default("square"),mode:Fr.default("add"),amount:l.number().min(-1).max(1).default(1),easeHigh:l.number().min(-1).max(1).default(0),easeLow:l.number().min(-1).max(1).default(0),randomizeOrder:l.boolean().default(!1),randomSeed:l.number().int().default(12345)}),au=l.object({type:l.literal("wiggly"),wigglesPerSecond:l.number().positive().default(2),correlation:l.number().min(0).max(1).default(.5),temporalPhaseDeg:l.number().default(0),spatialPhaseDeg:l.number().default(0),minAmount:l.number().min(-1).max(1).default(-1),maxAmount:l.number().min(-1).max(1).default(1),randomSeed:l.number().int().default(42),basedOn:Rr.default("characters"),mode:Fr.default("intersect")}),su=l.object({type:l.literal("signal"),signalId:l.string(),multiplier:l.number().default(1),offset:l.number().default(0),phaseSpread:l.number().default(0),basedOn:Rr.default("characters"),mode:Fr.default("add")}),uu=l.discriminatedUnion("type",[ou,au,su]),lu=l.object({x:l.number().optional(),y:l.number().optional(),z:l.number().optional(),scale:l.number().optional(),scaleX:l.number().optional(),scaleY:l.number().optional(),rotation:l.number().optional(),rotationX:l.number().optional(),rotationY:l.number().optional(),skew:l.number().optional(),skewAxis:l.number().optional(),tracking:l.number().optional(),lineSpacing:l.number().optional(),opacity:l.number().min(0).max(1).optional(),fillColor:l.string().optional(),strokeColor:l.string().optional(),strokeWidth:l.number().min(0).optional(),blur:l.number().min(0).optional(),characterOffset:l.number().int().optional()}),cu=l.enum(["character","word","line","all"]),du=l.object({grouping:cu.default("character"),anchorX:l.number().default(.5),anchorY:l.number().default(.8)}),Qt=l.object({name:l.string().default("Animator"),selectors:l.array(uu).min(1),props:lu,anchor:du.default({grouping:"character",anchorX:.5,anchorY:.8})}),dm=l.object({text:l.string(),fontFamily:l.string().default("Inter"),fontSize:l.number().positive().default(24),fontWeight:l.union([l.number(),l.string()]).default(400),fill:l.string().default("#ffffff"),letterSpacing:l.number().default(0),lineHeight:l.number().positive().default(1.2),textAlign:l.enum(["left","center","right"]).default("left"),pathOptions:Kt.optional(),typewriter:Or.optional(),animators:l.array(Qt).default([])});var Oo=class t{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(e){let n=new t;return n.options.path={type:"svg",d:e},n}static fromBezier(e){let n=new t;return n.options.path={type:"bezier",segments:e},n}static fromCurve(e){return t.fromBezier([e])}static circularBadge(e,n,r){let i=new t;return i.options.path={type:"ellipse",cx:e,cy:n,rx:r,ry:r,startAngleDeg:0,endAngleDeg:360},i.options.loop=!0,i}static ellipse(e,n,r,i,o=0,a=360){let s=new t;return s.options.path={type:"ellipse",cx:e,cy:n,rx:r,ry:i,startAngleDeg:o,endAngleDeg:a},s.options.loop=Math.abs(a-o)>=360,s}static wave(e,n,r,i,o,a=0){let s=new t;return s.options.path={type:"wave",startX:e,startY:n,length:r,amplitude:i,frequency:o,phaseDeg:a},s}firstMargin(e){return this.options.firstMargin=e,this}lastMargin(e){return this.options.lastMargin=e,this}reversePath(e){return this.options.reversePath=e,this}perpendicularToPath(e){return this.options.perpendicularToPath=e,this}forceAlignment(e){return this.options.forceAlignment=e,this}loop(e){return this.options.loop=e,this}baselineOffset(e){return this.options.baselineOffset=e,this}baselineShift(e){return this.options.baselineShift=e,this}build(){return Kt.parse(this.options)}},Ro=class t{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(e){let n=new t;return n.name=e,n}addRangeSelector(e){let n=e.easeHigh??0,r=Math.abs(n)>1?n/100:n,i=e.easeLow??0,o=Math.abs(i)>1?i/100:i;return this.selectors.push({type:"range",start:e.start??0,end:e.end??1,offset:e.offset??0,units:"percentage",basedOn:e.basedOn??"characters",shape:e.shape??"smooth",mode:e.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,r)),easeLow:Math.max(-1,Math.min(1,o)),randomizeOrder:e.randomizeOrder??!1,randomSeed:e.randomSeed??12345}),this}addWigglySelector(e){return this.selectors.push({type:"wiggly",wigglesPerSecond:e.wigglesPerSecond??2,correlation:e.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:e.minAmount??-1,maxAmount:e.maxAmount??1,randomSeed:e.randomSeed??42,basedOn:"characters",mode:e.mode??"intersect"}),this}addSignalSelector(e,n=1,r=0,i=0,o="add"){return this.selectors.push({type:"signal",signalId:e,multiplier:n,offset:i,phaseSpread:r,basedOn:"characters",mode:o}),this}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}z(e){return this.props.z=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}skew(e){return this.props.skew=e,this}skewAxis(e){return this.props.skewAxis=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fill(e){return this.fillColor(e)}fillColor(e){return this.props.fillColor=e,this}strokeColor(e){return this.props.strokeColor=e,this}strokeWidth(e){return this.props.strokeWidth=e,this}tracking(e){return this.props.tracking=e,this}lineSpacing(e){return this.props.lineSpacing=e,this}characterOffset(e){return this.props.characterOffset=e,this}anchorGrouping(e,n=.5,r=.8){return this.anchor={grouping:e,anchorX:n,anchorY:r},this}build(){return Qt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};h();h();var mu=`
1
+ import{a as im}from"./chunk-PIAJWALT.mjs";import{K as zi,L as ji,S as Tr,c as Z,d as dt,t as Rs,u as rm,v as Fs,w as Bs}from"./chunk-AGLAJGQJ.mjs";import{a as kr,b as Pr}from"./chunk-ZEYUXJIV.mjs";import{a as Ii,b as As}from"./chunk-PJ3DVG45.mjs";import{a as Mr,c as Ds,d as Ns}from"./chunk-K3IMPV6T.mjs";import{o as Os}from"./chunk-4C26NVQY.mjs";import{$ as co,E as ro,G as Ar,I as io,J as qt,K as oo,O as Dr,R as Nr,T as Zt,U as Pt,V as ao,W as so,X as Je,Y as uo,_ as lo,aa as Mt,b as qi,ba as mo,ca as po,da as fo,ea as ho,fa as On,ga as go,ha as bo,ia as yo,ja as xo,ka as wo,l as Zi,la as Rn,m as Ki,ma as mt,n as Qi,na as vo,oa as So,p as Nn,pa as ko,s as Ji,w as eo,x as to,z as no}from"./chunk-NQZRPPUU.mjs";import{P as Es,S as Ui,U as Cr,Y as An,Z as Gi,_ as Is,a as Yt,aa as Wi,ba as Hi,ca as Yi,da as Dn}from"./chunk-AKT4YQWL.mjs";import{a as om}from"./chunk-YQRKT47I.mjs";import{a as $i}from"./chunk-2JKXYG6J.mjs";import{a as _i}from"./chunk-7I7PKKDL.mjs";import{i as Li}from"./chunk-XKO4RYKN.mjs";import{c as Ts}from"./chunk-SYP4AJMF.mjs";import{d as Xi}from"./chunk-CURR5X7D.mjs";import{a as de}from"./chunk-NKGXINCU.mjs";import{a as l}from"./chunk-V3FODTPI.mjs";import{a as Ls}from"./chunk-PJMX2GFY.mjs";import{h as Ps,j as Ms}from"./chunk-24P6DAB3.mjs";import{e as Ei}from"./chunk-KJGNTREI.mjs";import{a as Ht,l as ks,t as Tn}from"./chunk-ALSOO22Q.mjs";import{a as Ie}from"./chunk-ZGMA27IG.mjs";import{j as Xt,y as Vi}from"./chunk-Q6CRERSJ.mjs";import{m as Cn}from"./chunk-4GEWSUX5.mjs";import{r as be}from"./chunk-MTJHQATU.mjs";import{a as Cs}from"./chunk-IQC2I5A5.mjs";import{c as Fi,h as Bi}from"./chunk-IQKIHFNZ.mjs";import{o as G}from"./chunk-YAQFFQPG.mjs";import{a as Ss,c as Mn,d as x,e as h}from"./chunk-BVF64D6H.mjs";var bd=Ss((mM,gd)=>{h();var vi=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":vi(),apply:()=>vi(),construct:()=>vi()});gd.exports=vi()});var Od=Ss((rT,Nd)=>{h();var Ai=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":Ai(),apply:()=>Ai(),construct:()=>Ai()});Nd.exports=Ai()});h();h();h();h();var am=t=>!t.source||t.source.type==="keyframe";function Fn(t){let e=[],n=new Map;for(let r of t){if(!am(r)){e.push(r);continue}let i=n.get(r.prop);if(!i){let a={...r,keyframes:[...r.keyframes??[]]};n.set(r.prop,a),e.push(a);continue}let o=new Map(i.keyframes.map(a=>[a.frame,a]));for(let a of r.keyframes??[])o.set(a.frame,a);i.keyframes=[...o.values()].sort((a,s)=>a.frame-s.frame)}return e}function Vs(t,e){if(!t)return e;let n=Po(t);if(!n||n.name==="none")return e;let{name:r,dir:i,params:o}=n,a=Math.max(0,Math.min(1,e)),s=u=>i==="in"?u(a):i==="out"?1-u(1-a):a<.5?u(a*2)/2:1-u((1-a)*2)/2;switch(r){case"power1":return s(u=>u*u);case"power2":return s(u=>u*u*u);case"power3":return s(u=>u*u*u*u);case"sine":return s(u=>1-Math.cos(u*Math.PI/2));case"circ":return s(u=>1-Math.sqrt(Math.max(0,1-u*u)));case"expo":return s(u=>u===0?0:2**(10*(u-1)));case"back":{let u=o?.[0]??1.70158,c=u+1;return s(m=>c*m*m*m-u*m*m)}case"bounce":{let u=c=>{if(c<.36363636363636365)return 7.5625*c*c;if(c<.7272727272727273){let f=c-.5454545454545454;return 7.5625*f*f+.75}if(c<.9090909090909091){let f=c-.8181818181818182;return 7.5625*f*f+.9375}let p=c-2.625/2.75;return 7.5625*p*p+.984375};return i==="out"?u(a):i==="in"?1-u(1-a):a<.5?(1-u(1-2*a))/2:(1+u(2*a-1))/2}default:return a}}function Po(t){if(t){if(typeof t=="object"&&"name"in t&&"dir"in t)return t;if(typeof t=="string"){let e=t.trim(),n=e.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(n){let u=n[1].toLowerCase(),c=u==="linear"?"none":u,m=(n[2]||"out").toLowerCase(),d="out";m==="in"?d="in":m==="out"?d="out":m==="inout"&&(d="inOut");let p;return n[3]&&(p=n[3].split(",").map(f=>Number.parseFloat(f.trim())).filter(f=>!Number.isNaN(f))),{name:c,dir:d,...p&&p.length>0?{params:p}:{}}}let r=e.indexOf(".");if(r===-1){let u=e.toLowerCase();return{name:u==="linear"?"none":u,dir:"out"}}let i=e.slice(0,r).toLowerCase(),o=i==="linear"?"none":i,a=e.slice(r+1).toLowerCase(),s="out";return a==="in"?s="in":a==="out"?s="out":a==="inout"&&(s="inOut"),{name:o,dir:s}}}}var ne=class t{tracks=[];frameStep;defaultRepeat;defaultYoyo;constructor(e=[]){this.tracks=[...e]}static create(){return new t}static stepped(e=2){return new t().stepped(e)}stepped(e=2){return this.frameStep=Math.max(1,Math.min(24,Math.round(e))),this}static fromTo(e,n,r,i={}){return new t().fromTo(e,n,r,i)}static keys(e,n,r){return new t().keys(e,n,r)}static signal(e,n,r={}){return new t().signal(e,n,r)}static colorSignal(e,n,r){return new t().colorSignal(e,n,r)}static kineticSweep(e=-1,n=1,r=0,i=24,o="power2.out"){return new t().kineticSweep(e,n,r,i,o)}static typewriter(e=0,n=30,r="linear"){return new t().typewriter(e,n,r)}static letterSpacing(e,n,r=0,i=24,o="power2.out"){return new t().letterSpacing(e,n,r,i,o)}static wiggle(e,n={}){return new t().wiggle(e,n)}static spring(e,n={}){return new t().spring(e,n)}static firstMargin(e,n,r={}){return new t().firstMargin(e,n,r)}static strokeWidth(e,n,r={}){return new t().fromTo("strokeWidth",e,n,r)}static rotateX(e,n,r={}){return new t().fromTo("rotateX",e,n,r)}static rotateY(e,n,r={}){return new t().fromTo("rotateY",e,n,r)}static rotateZ(e,n,r={}){return new t().fromTo("rotateZ",e,n,r)}static rotation(e,n,r={}){return new t().fromTo("rotation",e,n,r)}static scale(e,n,r={}){return new t().fromTo("scale",e,n,r)}static scaleX(e,n,r={}){return new t().fromTo("scaleX",e,n,r)}static scaleY(e,n,r={}){return new t().fromTo("scaleY",e,n,r)}addTrack(e){return this.tracks.push(e),this}repeat(e=-1,n){this.defaultRepeat=e;for(let r of this.tracks)(!n||r.prop===n)&&(r.repeat=e);return this}yoyo(e=!0,n){this.defaultYoyo=e;for(let r of this.tracks)(!n||r.prop===n)&&(r.yoyo=e);return this}loop(e={},n){return this.repeat(-1,n),e.yoyo&&this.yoyo(!0,n),this}fromTo(e,n,r,i={}){let o=i.from??i.start??i.fromFrame??0,a=i.to??i.end??i.toFrame??(i.durationFrames!==void 0?o+i.durationFrames:o+24),s=Po(i.ease),u=this.tracks.find(m=>m.prop===e&&(!m.source||m.source.type==="keyframe"));if(!u){let m={id:`${e}_fromTo_${this.tracks.length}`,prop:e,keyframes:[],...this.defaultRepeat!==void 0&&{repeat:this.defaultRepeat},...this.defaultYoyo!==void 0&&{yoyo:this.defaultYoyo}};this.tracks.push(m),u=m}i.repeat!==void 0&&(u.repeat=i.repeat),i.yoyo!==void 0&&(u.yoyo=i.yoyo),i.durationFrames!==void 0&&(u.durationFrames=i.durationFrames);let c=u.id;return u.keyframes.length===0&&o>0&&u.keyframes.push({id:`${c}_k0`,frame:0,value:n}),(u.keyframes.length===0||u.keyframes[u.keyframes.length-1].frame<o)&&u.keyframes.push({id:`${c}_k_${o}`,frame:o,value:n}),u.keyframes.push({id:`${c}_k_${a}`,frame:a,value:r,...s&&{ease:s}}),u.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(e,n,r,i){let o=this.tracks.find(c=>c.prop===e&&(!c.source||c.source.type==="keyframe"));if(!o){let c={id:`${e}_track_${this.tracks.length}`,prop:e,keyframes:[],...this.defaultRepeat!==void 0&&{repeat:this.defaultRepeat},...this.defaultYoyo!==void 0&&{yoyo:this.defaultYoyo}};this.tracks.push(c),o=c}let a=Po(i),s={id:`k_${o.keyframes.length}_f${n}`,frame:n,value:r,...a&&{ease:a}},u=o.keyframes.findIndex(c=>c.frame===n);return u>=0?o.keyframes[u]=s:o.keyframes.push(s),o.keyframes.sort((c,m)=>c.frame-m.frame),this}keys(e,n,r){for(let[i,o,a]of n)this.keyframe(e,Math.round(i),o,a);if(r){let i=this.tracks.find(o=>o.prop===e&&(!o.source||o.source.type==="keyframe"));i&&(r.repeat!==void 0&&(i.repeat=r.repeat),r.yoyo!==void 0&&(i.yoyo=r.yoyo),r.durationFrames!==void 0&&(i.durationFrames=r.durationFrames))}return this}fadeIn(e=0,n=20,r="power2.out"){return this.fromTo("opacity",0,1,{from:e,to:n,ease:r})}fadeOut(e,n,r="power2.in"){return this.fromTo("opacity",1,0,{from:e,to:n,ease:r})}slideInY(e,n,r=0,i=24,o="power2.out"){return this.fromTo("y",e,n,{from:r,to:i,ease:o})}slideInX(e,n,r=0,i=24,o="power2.out"){return this.fromTo("x",e,n,{from:r,to:i,ease:o})}kineticSweep(e=-1,n=1,r=0,i=24,o="power2.out"){return this.fromTo("offset",e,n,{from:r,to:i,ease:o})}typewriter(e=0,n=30,r="linear"){return this.fromTo("text",0,1,{from:e,to:n,ease:r})}letterSpacing(e,n,r=0,i=24,o="power2.out"){return this.fromTo("letterSpacing",e,n,{from:r,to:i,ease:o})}firstMargin(e,n,r={}){return this.fromTo("firstMargin",e,n,r)}lastMargin(e,n,r={}){return this.fromTo("lastMargin",e,n,r)}baselineShift(e,n,r={}){return this.fromTo("baselineShift",e,n,r)}rotateX(e,n,r={}){return this.fromTo("rotateX",e,n,r)}rotateY(e,n,r={}){return this.fromTo("rotateY",e,n,r)}rotateZ(e,n,r={}){return this.fromTo("rotateZ",e,n,r)}scaleX(e,n,r={}){return this.fromTo("scaleX",e,n,r)}scaleY(e,n,r={}){return this.fromTo("scaleY",e,n,r)}scale(e,n,r={}){return this.fromTo("scale",e,n,r)}perspective(e,n,r={}){return this.fromTo("perspective",e,n,r)}translateZ(e,n,r={}){return this.fromTo("translateZ",e,n,r)}tilt3D(e){let n=e.start??e.fromFrame,r=e.end??e.toFrame,i=e.ease,o=e.from??{},a=e.to,s=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let u of s){let c=a[u];if(c!==void 0){let m=o[u]??0;this.fromTo(u,m,c,{from:n,to:r,fromFrame:n,toFrame:r,ease:i})}}return this}signal(e,n,r={}){let{handleId:i,inline:o}=zi(n),a=`${e}_sig_${i}_${this.tracks.length}`,s={type:"signal",inputHandleId:i,multiplier:r.multiplier??1,offset:r.offset??0,smoothingWindowFrames:r.smoothing??0,signalMode:r.mode??"continuous",threshold:r.threshold??.15,accumulateThreshold:r.threshold??.15,debounceFrames:r.debounceFrames??2,channel:r.channel??"primary"};return o&&ji(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}colorSignal(e,n,r){let{handleId:i,inline:o}=zi(n),a=`${e}_colorSig_${i}_${this.tracks.length}`,s={type:"signal",inputHandleId:i,multiplier:r.multiplier??1,offset:r.offset??0,smoothingWindowFrames:r.smoothing??0,colorMode:r.colorMode??"interpolate",colorA:r.colorA,colorB:r.colorB,colorThreshold:r.threshold,channel:"primary"};return o&&ji(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}wiggle(e,n={}){let r=`${e}_wiggle_${this.tracks.length}`,i={type:"wiggle",frequency:n.frequency??2,amplitude:n.amplitude??20,octaves:n.octaves??1,seed:n.seed??1234};return this.tracks.push({id:r,prop:e,source:i,keyframes:[]}),this}spring(e,n={}){let r=`${e}_spring_${this.tracks.length}`,i={type:"springOvershoot",damping:n.damping??12,stiffness:n.stiffness??180,mass:n.mass??1};return this.tracks.push({id:r,prop:e,source:i,keyframes:[]}),this}followPath(e,n={}){let r=n.start??n.fromFrame??0,i=n.end??n.toFrame??60,o=Math.max(1,i-r),a=n.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=e.totalLength??1,u=n.fromProgress??0,c=n.toProgress??1;n.fromDistance!==void 0&&s>0&&(u=n.fromDistance/s),n.toDistance!==void 0&&s>0&&(c=n.toDistance/s);let m=n.autoOrient??!0,d=n.banking??0,p=n.pitchOffset??0,f=n.yawOffset??0,b=n.rollOffset??0,g=!1,y=!1,k=!1,S=[];for(let P=0;P<=a;P++){let w=P/a,A=Vs(n.ease,w),v=u+A*(c-u),O=Math.round(r+w*o),C=[0,0,0],B=[1,0,0],_=[0,0,0];if(typeof e.getFrameAt=="function"){let M=e.getFrameAt(v);C=M.position,B=M.tangent,_=M.rotation??[0,0,0]}else{let M=e.getPointAt(v);C=M.position,M.tangent&&(B=M.tangent);let H=Math.asin(Math.max(-1,Math.min(1,-B[1])))*(180/Math.PI),Y=Math.atan2(B[0],B[2])*(180/Math.PI),$=Math.atan2(B[1],B[0])*(180/Math.PI);_=[H,Y,$]}let z=_[0]+p,F=_[1]+f,T=(Math.abs(B[2])<1e-4?Math.atan2(B[1],B[0])*(180/Math.PI):_[2])+b;if(d!==0){let M=Math.min(1,v+.02),H=Math.max(0,v-.02),Y=e.getPointAt(M),$=e.getPointAt(H),V=Y.tangent??[1,0,0],ee=$.tangent??[1,0,0],oe=Math.atan2(V[0],V[2]),ge=Math.atan2(ee[0],ee[2]),le=oe-ge;T-=le*d*57.2958}Math.abs(C[2])>1e-4&&(g=!0),Math.abs(z)>1e-4&&(y=!0),Math.abs(F)>1e-4&&(k=!0),S.push({f:O,x:C[0],y:C[1],z:C[2],rx:z,ry:F,rz:T})}for(let P of S)this.keyframe("x",P.f,P.x),this.keyframe("y",P.f,P.y),g&&this.keyframe("z",P.f,P.z),m&&(this.keyframe("rotateZ",P.f,P.rz),y&&this.keyframe("rotateX",P.f,P.rx),k&&this.keyframe("rotateY",P.f,P.ry));return this}applyTo(e){return e.animation=this.toSpec(),e}merge(...e){return this.tracks=Fn([...this.tracks,...e.flatMap(n=>n.tracks)]),this}static merge(...e){let n=new t;return n.tracks=Fn(e.flatMap(r=>r.tracks)),n}toSpec(){return{tracks:this.tracks,...this.frameStep!==void 0&&{frameStep:this.frameStep}}}toJSON(){return this.toSpec()}},Mo=class t extends ne{static camera(){return new t}dolly(e,n,r={}){if(typeof e=="object"){let i=e,o=i.start??i.fromFrame??0,a=i.end??i.toFrame??0;return this.fromTo("cameraZ",i.fromDistance,i.toDistance,{from:o,to:a,ease:i.ease})}return this.fromTo("cameraZ",e,n??e,r)}orbit(e){let n=e.start??e.fromFrame??0,r=e.end??e.toFrame??0;return e.azimuth&&this.fromTo("orbitAzimuth",e.azimuth.from??0,e.azimuth.to,{from:n,to:r,ease:e.ease}),e.elevation&&this.fromTo("orbitElevation",e.elevation.from??0,e.elevation.to,{from:n,to:r,ease:e.ease}),e.radius&&this.fromTo("orbitRadius",e.radius.from??1500,e.radius.to,{from:n,to:r,ease:e.ease}),this}truck(e,n,r={}){return this.fromTo("cameraX",e,n,r)}pedestal(e,n,r={}){return this.fromTo("cameraY",e,n,r)}pan(e,n,r={}){return this.fromTo("cameraYaw",e,n,r)}tilt(e,n,r={}){return this.fromTo("cameraPitch",e,n,r)}roll(e,n,r={}){return this.fromTo("cameraRoll",e,n,r)}rackFocus(e){let n=e.start??e.fromFrame??0,r=e.end??e.toFrame??0;return this.fromTo("focusDistance",e.fromDistance,e.toDistance,{from:n,to:r,ease:e.ease??"power2.inOut"}),e.toFStop!==void 0&&this.fromTo("fStop",e.fromFStop??2.8,e.toFStop,{from:n,to:r,ease:e.ease??"power2.inOut"}),this}handheld(e){let n=e.start??e.fromFrame??0,r=e.end??e.toFrame??0;return this.fromTo("shakeTranslation",0,e.translationAmplitude,{from:n,to:r}),this.fromTo("shakeRotation",0,e.rotationAmplitude,{from:n,to:r}),this}followPath3D(e,n={}){let r=n.start??n.fromFrame??0,i=n.end??n.toFrame??60,o=Math.max(1,i-r),a=n.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=n.mode??(n.target?"lookAtTarget":"leadTarget"),u=n.fromProgress??0,c=n.toProgress??1,m=n.lookAhead??.05;for(let d=0;d<=a;d++){let p=d/a,f=Vs(n.ease,p),b=u+f*(c-u),g=Math.round(r+p*o),y=[0,0,0],k=[0,0,0];if(typeof e.getFrameAt=="function"){let S=e.getFrameAt(b);y=S.position,k=S.rotation??[0,0,0]}else y=e.getPointAt(b).position;if(this.keyframe("cameraX",g,y[0]),this.keyframe("cameraY",g,y[1]),this.keyframe("cameraZ",g,y[2]),s==="lookAtTarget"){let S=n.target??[y[0],y[1],0];this.keyframe("targetX",g,S[0]),this.keyframe("targetY",g,S[1]),this.keyframe("targetZ",g,S[2])}else if(s==="leadTarget"){let S=Math.min(1,b+m),P=e.getPointAt(S);this.keyframe("targetX",g,P.position[0]),this.keyframe("targetY",g,P.position[1]),this.keyframe("targetZ",g,P.position[2])}else s==="orientAlongPath"&&(this.keyframe("cameraPitch",g,k[0]),this.keyframe("cameraYaw",g,k[1]),this.keyframe("cameraRoll",g,k[2]))}return this}};h();var To=class t{samples=[];frames=[];totalLength=0;constructor(e){if(e.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=e,this.totalLength=e[e.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let e=this.samples.length;this.frames=new Array(e);let n=this.samples[0].tangent,r=[0,-1,0];Math.abs(Z.dot(n,r))>.95&&(r=[0,0,1]);let i=Z.normalize(Z.subtract(r,Z.multiplyScalar(n,Z.dot(r,n))));Z.lengthSq(i)<1e-4&&(i=[1,0,0]);let o=Z.normalize(Z.cross(n,i));this.frames[0]={normal:i,binormal:o,rotation:this.eulerFromFrame(n,i,o)};for(let a=0;a<e-1;a++){let s=this.samples[a].position,u=this.samples[a+1].position,c=this.samples[a].tangent,m=this.samples[a+1].tangent,d=this.frames[a].normal,p=Z.subtract(u,s),f=Z.dot(p,p),b;if(f>1e-8){let y=Z.subtract(c,Z.multiplyScalar(p,2*Z.dot(p,c)/f)),k=Z.subtract(d,Z.multiplyScalar(p,2*Z.dot(p,d)/f)),S=Z.subtract(m,y),P=Z.dot(S,S);P>1e-8?b=Z.subtract(k,Z.multiplyScalar(S,2*Z.dot(S,k)/P)):b=k}else b=d;b=Z.normalize(Z.subtract(b,Z.multiplyScalar(m,Z.dot(m,b))));let g=Z.normalize(Z.cross(m,b));this.frames[a+1]={normal:b,binormal:g,rotation:this.eulerFromFrame(m,b,g)}}}eulerFromFrame(e,n,r){let i=Math.asin(Math.max(-1,Math.min(1,-e[1])))*(180/Math.PI),o=Math.atan2(e[0],e[2])*(180/Math.PI),a=Math.atan2(n[0],n[1])*(180/Math.PI);return[i,o,a]}getPointAt(e){let r=Math.max(0,Math.min(1,e))*this.totalLength;return this.getPointAtDistance(r)}getPointAtDistance(e){let n=Math.max(0,Math.min(this.totalLength,e)),r=this.samples.length,i=0,o=r-1;for(;i<o;){let P=i+o>>1;this.samples[P].distance<n?i=P+1:o=P}let a=Math.max(1,i),s=a-1,u=this.samples[s],c=this.samples[a],m=c.distance-u.distance,d=m>1e-6?(n-u.distance)/m:0,p=Z.lerp(u.position,c.position,d),f=Z.normalize(Z.lerp(u.tangent,c.tangent,d)),b=this.frames[s],g=this.frames[a],y=Z.normalize(Z.lerp(b.normal,g.normal,d)),k=Z.normalize(Z.cross(f,y)),S=[b.rotation[0]+(g.rotation[0]-b.rotation[0])*d,b.rotation[1]+(g.rotation[1]-b.rotation[1])*d,b.rotation[2]+(g.rotation[2]-b.rotation[2])*d];return{position:p,tangent:f,normal:y,binormal:k,distance:n,t:this.totalLength>0?n/this.totalLength:0,rotation:S}}static catmullRom(e,n={}){if(e.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let r=!!n.closed,i=n.samplesPerSegment??40,o=[];if(r)o.push(e[e.length-1]),o.push(...e),o.push(e[0]),o.push(e[1]);else{let u=e[0],c=e[1],m=e[e.length-1],d=e[e.length-2];o.push(Z.subtract(u,Z.subtract(c,u))),o.push(...e),o.push(Z.add(m,Z.subtract(m,d)))}let a=r?e.length:e.length-1,s=[];for(let u=0;u<a;u++){let c=o[u],m=o[u+1],d=o[u+2],p=o[u+3],f=u===a-1?i:i-1;for(let b=0;b<=f;b++){let g=b/i,y=g*g,k=y*g,S=-.5*k+y-.5*g,P=1.5*k-2.5*y+1,w=-1.5*k+2*y+.5*g,A=.5*k-.5*y,v=[S*c[0]+P*m[0]+w*d[0]+A*p[0],S*c[1]+P*m[1]+w*d[1]+A*p[1],S*c[2]+P*m[2]+w*d[2]+A*p[2]],O=-1.5*y+2*g-.5,C=4.5*y-5*g,B=-4.5*y+4*g+.5,_=1.5*y-1*g,z=[O*c[0]+C*m[0]+B*d[0]+_*p[0],O*c[1]+C*m[1]+B*d[1]+_*p[1],O*c[2]+C*m[2]+B*d[2]+_*p[2]],F=Z.normalize(z);s.push({position:v,tangent:F})}}return t.fromRawSamples(s)}static fromRawSamples(e){let n=0,r=e.map((i,o)=>(o>0&&(n+=Z.distance(i.position,e[o-1].position)),{position:i.position,tangent:i.tangent,distance:n}));if(r.length===0)throw new TypeError("Path3D needs samples");return new t(r)}static bezier(e,n=50){if(e.length===0)throw new Error("Bezier path requires at least 1 segment");let r=[];for(let i=0;i<e.length;i++){let o=e[i],a=i===e.length-1?n:n-1;for(let s=0;s<=a;s++){let u=s/n,c=1-u,m=c*c,d=m*c,p=u*u,f=p*u,b=[d*o.p0[0]+3*m*u*o.p1[0]+3*c*p*o.p2[0]+f*o.p3[0],d*o.p0[1]+3*m*u*o.p1[1]+3*c*p*o.p2[1]+f*o.p3[1],d*o.p0[2]+3*m*u*o.p1[2]+3*c*p*o.p2[2]+f*o.p3[2]],g=[3*m*(o.p1[0]-o.p0[0])+6*c*u*(o.p2[0]-o.p1[0])+3*p*(o.p3[0]-o.p2[0]),3*m*(o.p1[1]-o.p0[1])+6*c*u*(o.p2[1]-o.p1[1])+3*p*(o.p3[1]-o.p2[1]),3*m*(o.p1[2]-o.p0[2])+6*c*u*(o.p2[2]-o.p1[2])+3*p*(o.p3[2]-o.p2[2])],y=Z.normalize(g);r.push({position:b,tangent:y})}}return t.fromRawSamples(r)}static helix(e){let{center:n,radius:r,pitch:i,turns:o,axis:a="z",samplesPerTurn:s=60}=e,u=Math.max(10,Math.round(o*s)),c=[];for(let m=0;m<=u;m++){let d=m/u,p=d*o*Math.PI*2,f=(d-.5)*i*o,b=Math.cos(p),g=Math.sin(p),y,k;a==="z"?(y=[n[0]+r*b,n[1]+r*g,n[2]+f],k=[-r*g,r*b,i*o/(o*Math.PI*2)]):a==="y"?(y=[n[0]+r*b,n[1]+f,n[2]+r*g],k=[-r*g,i*o/(o*Math.PI*2),r*b]):(y=[n[0]+f,n[1]+r*b,n[2]+r*g],k=[i*o/(o*Math.PI*2),-r*g,r*b]),c.push({position:y,tangent:Z.normalize(k)})}return t.fromRawSamples(c)}static circle(e){let{center:n,radius:r,startAngleDeg:i=0,endAngleDeg:o=360,samples:a=128}=e,s=i*Math.PI/180,u=o*Math.PI/180,c=[];for(let m=0;m<=a;m++){let d=s+(u-s)*(m/a),p=Math.cos(d),f=Math.sin(d),b=[n[0]+r*p,n[1],n[2]+r*f],g=[-r*f,0,r*p];c.push({position:b,tangent:Z.normalize(g)})}return t.fromRawSamples(c)}};h();var Co=class t{name;props={};selectors=[];constructor(e){this.name=e}static create(e){return new t(e)}skew(e,n=0){return this.props.skew=e,this.props.skewAxis=n,this}anchor(e,n="character",r=0,i=0){return this.props.anchor={grouping:n,preset:e,anchorX:.5,anchorY:.5,offsetX:r,offsetY:i},this}anchorNormalized(e,n,r="character"){return this.props.anchor={grouping:r,preset:"custom",anchorX:e,anchorY:n,offsetX:0,offsetY:0},this}translateZ(e){return this.props.translateZ=e,this}tilt3D(e=0,n=0,r=0){return this.props.rotationX=e,this.props.rotationY=n,this.props.rotationZ=r,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}rotationZ(e){return this.props.rotationZ=e,this}volumetricFormation(e="cylinder",n=300,r=120,i=360,o=1200,a="y"){return this.props.formation={mode:e,radius:n,pitch:r,totalAngle:i,perspective:o,axis:a},this}lineSpacing(e,n=0){return this.props.lineSpacing=e,this.props.lineAnchor=n,this}lineAnchor(e){return this.props.lineAnchor=e,this}spring(e=180,n=12,r=1,i=0){return this.props.spring={stiffness:e,damping:n,mass:r,initialVelocity:i,overshootMultiplier:1},this}stroke(e,n="#ffffff",r=1){return this.props.stroke={strokeWidth:e,strokeColor:n,strokeAlign:"center",fillOpacity:r,dashOffset:0},this}variableFont(e){return this.props.variableAxes=e,this}chromaticGlitch(e,n=0,r=-e,i=0){return this.props.chromaticGlitch={redShiftX:e,redShiftY:n,blueShiftX:r,blueShiftY:i,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(e,n=60,r=16e3,i=2.5){return this.props.audioSpectrum={signalChannel:e,minFreqHz:n,maxFreqHz:r,scaleAxis:"scaleY",minScale:.2,maxScale:i,peakDecay:.8},this}longShadow(e=45,n=40,r="#000000",i=.8,o=0,a=16){return this.props.longShadow={angle:e,length:n,color:r,startOpacity:i,endOpacity:o,steps:a},this}particleDissolve(e=0,n=90,r=120){return this.props.particleDissolve={progress:e,dispersalAngle:n,maxDisplacement:r,turbulence:.5,particleSize:2},this}addExpressionSelector(e,n="add"){return this.selectors.push({type:"expression",expression:e,mode:n,amount:1}),this}expressionSelector(e,n="add"){return this.addExpressionSelector(e,n)}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fillColor(e){return this.props.fillColor=e,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};h();var zs=l.enum(["character","word","line","all"]),js=l.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),_s=l.object({grouping:zs.default("character"),preset:js.default("center"),anchorX:l.number().default(.5),anchorY:l.number().default(.5),offsetX:l.number().default(0),offsetY:l.number().default(0)}),sm=l.object({skew:l.number().min(-90).max(90),skewAxis:l.number().default(0)}),um=l.object({lineSpacing:l.number(),lineAnchor:l.number().min(0).max(1).default(0)}),$s=l.enum(["planar","vortex","cylinder","helix"]),Ao=l.object({mode:$s.default("planar"),radius:l.number().default(300),pitch:l.number().default(120),totalAngle:l.number().default(360),axis:l.enum(["x","y","z"]).default("y"),perspective:l.number().positive().default(1200)}),lm=l.object({translateZ:l.number().optional(),rotationX:l.number().optional(),rotationY:l.number().optional(),rotationZ:l.number().optional(),formation:Ao.optional()}),Us=l.object({stiffness:l.number().positive().default(180),damping:l.number().positive().default(12),mass:l.number().positive().default(1),initialVelocity:l.number().default(0),overshootMultiplier:l.number().min(.5).max(3).default(1)}),cm=l.object({type:l.literal("expression"),name:l.string().optional(),expression:l.string(),mode:l.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:l.number().default(1)}),Gs=l.object({strokeWidth:l.number().min(0).default(0),strokeColor:l.string().default("#ffffff"),strokeAlign:l.enum(["center","inside","outside"]).default("center"),fillOpacity:l.number().min(0).max(1).default(1),dashArray:l.tuple([l.number(),l.number()]).optional(),dashOffset:l.number().default(0)}),Do=l.object({direction:l.enum(["left","right","up","down"]).default("left"),velocity:l.number().default(120),loop:l.boolean().default(!0),repeatGap:l.number().default(80),snap:l.object({enabled:l.boolean().default(!1),granularity:l.enum(["character","word","line"]).default("word"),stopIndex:l.number().default(0),decelEase:l.string().default("cubic.out")}).optional()}),Ws=l.object({weight:l.number().min(100).max(1e3).optional(),width:l.number().min(50).max(200).optional(),slant:l.number().min(-25).max(25).optional(),italic:l.number().min(0).max(1).optional(),opticalSize:l.number().min(6).max(144).optional()}),Hs=l.object({redShiftX:l.number().default(0),redShiftY:l.number().default(0),blueShiftX:l.number().default(0),blueShiftY:l.number().default(0),sliceProbability:l.number().min(0).max(1).default(0),sliceAmplitude:l.number().default(0)}),Ys=l.object({signalChannel:l.string(),minFreqHz:l.number().default(60),maxFreqHz:l.number().default(16e3),scaleAxis:l.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:l.number().default(.2),maxScale:l.number().default(2.5),peakDecay:l.number().min(0).max(.99).default(.8)}),Xs=l.object({angle:l.number().default(45),length:l.number().min(0).default(0),color:l.string().default("#000000"),startOpacity:l.number().min(0).max(1).default(.8),endOpacity:l.number().min(0).max(1).default(0),steps:l.number().int().min(4).max(64).default(16)}),qs=l.object({progress:l.number().min(0).max(1).default(0),dispersalAngle:l.number().default(90),maxDisplacement:l.number().default(120),turbulence:l.number().default(.5),particleSize:l.number().default(2)}),Zs=l.object({x:l.number().optional(),y:l.number().optional(),translateZ:l.number().optional(),scale:l.number().optional(),scaleX:l.number().optional(),scaleY:l.number().optional(),rotation:l.number().optional(),rotationX:l.number().optional(),rotationY:l.number().optional(),rotationZ:l.number().optional(),formation:Ao.optional(),skew:l.number().optional(),skewAxis:l.number().optional(),tracking:l.number().optional(),lineSpacing:l.number().optional(),lineAnchor:l.number().optional(),anchor:_s.optional(),opacity:l.number().optional(),blur:l.number().optional(),fillColor:l.string().optional(),stroke:Gs.optional(),variableAxes:Ws.optional(),chromaticGlitch:Hs.optional(),longShadow:Xs.optional(),particleDissolve:qs.optional(),audioSpectrum:Ys.optional(),spring:Us.optional()}),No=l.object({name:l.string().default("AdvancedAnimator"),selectors:l.array(l.record(l.string(),l.unknown())).default([]),props:Zs});h();h();var Bn=l.object({x:l.number(),y:l.number()}),Ks=l.object({p0:Bn,p1:Bn,p2:Bn,p3:Bn}),Qs=l.discriminatedUnion("type",[l.object({type:l.literal("svg"),d:l.string().min(1,"SVG path string cannot be empty")}),l.object({type:l.literal("bezier"),segments:l.array(Ks).min(1)}),l.object({type:l.literal("ellipse"),cx:l.number(),cy:l.number(),rx:l.number().positive(),ry:l.number().positive(),startAngleDeg:l.number().default(0),endAngleDeg:l.number().default(360)}),l.object({type:l.literal("wave"),startX:l.number(),startY:l.number(),length:l.number().positive(),amplitude:l.number(),frequency:l.number().positive(),phaseDeg:l.number().default(0)})]),Kt=l.object({path:Qs,firstMargin:l.number().default(0),lastMargin:l.number().default(0),reversePath:l.boolean().default(!1),perpendicularToPath:l.boolean().default(!0),forceAlignment:l.boolean().default(!1),loop:l.boolean().default(!1),baselineOffset:l.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:l.number().default(0)}),Js=l.enum(["bar","underscore","block","custom"]),eu=l.object({enabled:l.boolean().default(!0),style:Js.default("bar"),customChar:l.string().default("|"),color:l.string().optional(),blinkFrequency:l.number().min(0).default(2),hideOnComplete:l.boolean().default(!1),width:l.number().positive().default(2.5),spacing:l.number().default(3)}),tu=l.discriminatedUnion("mode",[l.object({mode:l.literal("constant")}),l.object({mode:l.literal("human"),jitter:l.number().min(0).max(1).default(.35),commaPauseMultiplier:l.number().min(1).default(3),sentencePauseMultiplier:l.number().min(1).default(5.5),paragraphPauseMultiplier:l.number().min(1).default(7)})]),nu=l.object({enabled:l.boolean().default(!1),charset:l.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:l.string().optional(),scrambleFramesPerChar:l.number().int().min(1).default(8),highlightProbability:l.number().min(0).max(1).default(.25),scrambleColor:l.string().optional()}),Or=l.object({granularity:l.enum(["character","word","line"]).default("character"),cursor:eu.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:tu.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:nu.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:l.boolean().default(!1)}),Rr=l.enum(["characters","characters_excluding_spaces","words","lines"]),ru=l.enum(["percentage","index"]),iu=l.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),Fr=l.enum(["add","subtract","intersect","min","max","difference"]),ou=l.object({type:l.literal("range"),start:l.number().default(0),end:l.number().default(1),offset:l.number().default(0),units:ru.default("percentage"),basedOn:Rr.default("characters"),shape:iu.default("square"),mode:Fr.default("add"),amount:l.number().min(-1).max(1).default(1),easeHigh:l.number().min(-1).max(1).default(0),easeLow:l.number().min(-1).max(1).default(0),randomizeOrder:l.boolean().default(!1),randomSeed:l.number().int().default(12345)}),au=l.object({type:l.literal("wiggly"),wigglesPerSecond:l.number().positive().default(2),correlation:l.number().min(0).max(1).default(.5),temporalPhaseDeg:l.number().default(0),spatialPhaseDeg:l.number().default(0),minAmount:l.number().min(-1).max(1).default(-1),maxAmount:l.number().min(-1).max(1).default(1),randomSeed:l.number().int().default(42),basedOn:Rr.default("characters"),mode:Fr.default("intersect")}),su=l.object({type:l.literal("signal"),signalId:l.string(),multiplier:l.number().default(1),offset:l.number().default(0),phaseSpread:l.number().default(0),basedOn:Rr.default("characters"),mode:Fr.default("add")}),uu=l.discriminatedUnion("type",[ou,au,su]),lu=l.object({x:l.number().optional(),y:l.number().optional(),z:l.number().optional(),scale:l.number().optional(),scaleX:l.number().optional(),scaleY:l.number().optional(),rotation:l.number().optional(),rotationX:l.number().optional(),rotationY:l.number().optional(),skew:l.number().optional(),skewAxis:l.number().optional(),tracking:l.number().optional(),lineSpacing:l.number().optional(),opacity:l.number().min(0).max(1).optional(),fillColor:l.string().optional(),strokeColor:l.string().optional(),strokeWidth:l.number().min(0).optional(),blur:l.number().min(0).optional(),characterOffset:l.number().int().optional()}),cu=l.enum(["character","word","line","all"]),du=l.object({grouping:cu.default("character"),anchorX:l.number().default(.5),anchorY:l.number().default(.8)}),Qt=l.object({name:l.string().default("Animator"),selectors:l.array(uu).min(1),props:lu,anchor:du.default({grouping:"character",anchorX:.5,anchorY:.8})}),dm=l.object({text:l.string(),fontFamily:l.string().default("Inter"),fontSize:l.number().positive().default(24),fontWeight:l.union([l.number(),l.string()]).default(400),fill:l.string().default("#ffffff"),letterSpacing:l.number().default(0),lineHeight:l.number().positive().default(1.2),textAlign:l.enum(["left","center","right"]).default("left"),pathOptions:Kt.optional(),typewriter:Or.optional(),animators:l.array(Qt).default([])});var Oo=class t{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(e){let n=new t;return n.options.path={type:"svg",d:e},n}static fromBezier(e){let n=new t;return n.options.path={type:"bezier",segments:e},n}static fromCurve(e){return t.fromBezier([e])}static circularBadge(e,n,r){let i=new t;return i.options.path={type:"ellipse",cx:e,cy:n,rx:r,ry:r,startAngleDeg:0,endAngleDeg:360},i.options.loop=!0,i}static ellipse(e,n,r,i,o=0,a=360){let s=new t;return s.options.path={type:"ellipse",cx:e,cy:n,rx:r,ry:i,startAngleDeg:o,endAngleDeg:a},s.options.loop=Math.abs(a-o)>=360,s}static wave(e,n,r,i,o,a=0){let s=new t;return s.options.path={type:"wave",startX:e,startY:n,length:r,amplitude:i,frequency:o,phaseDeg:a},s}firstMargin(e){return this.options.firstMargin=e,this}lastMargin(e){return this.options.lastMargin=e,this}reversePath(e){return this.options.reversePath=e,this}perpendicularToPath(e){return this.options.perpendicularToPath=e,this}forceAlignment(e){return this.options.forceAlignment=e,this}loop(e){return this.options.loop=e,this}baselineOffset(e){return this.options.baselineOffset=e,this}baselineShift(e){return this.options.baselineShift=e,this}build(){return Kt.parse(this.options)}},Ro=class t{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(e){let n=new t;return n.name=e,n}addRangeSelector(e){let n=e.easeHigh??0,r=Math.abs(n)>1?n/100:n,i=e.easeLow??0,o=Math.abs(i)>1?i/100:i;return this.selectors.push({type:"range",start:e.start??0,end:e.end??1,offset:e.offset??0,units:"percentage",basedOn:e.basedOn??"characters",shape:e.shape??"smooth",mode:e.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,r)),easeLow:Math.max(-1,Math.min(1,o)),randomizeOrder:e.randomizeOrder??!1,randomSeed:e.randomSeed??12345}),this}addWigglySelector(e){return this.selectors.push({type:"wiggly",wigglesPerSecond:e.wigglesPerSecond??2,correlation:e.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:e.minAmount??-1,maxAmount:e.maxAmount??1,randomSeed:e.randomSeed??42,basedOn:"characters",mode:e.mode??"intersect"}),this}addSignalSelector(e,n=1,r=0,i=0,o="add"){return this.selectors.push({type:"signal",signalId:e,multiplier:n,offset:i,phaseSpread:r,basedOn:"characters",mode:o}),this}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}z(e){return this.props.z=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}skew(e){return this.props.skew=e,this}skewAxis(e){return this.props.skewAxis=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fill(e){return this.fillColor(e)}fillColor(e){return this.props.fillColor=e,this}strokeColor(e){return this.props.strokeColor=e,this}strokeWidth(e){return this.props.strokeWidth=e,this}tracking(e){return this.props.tracking=e,this}lineSpacing(e){return this.props.lineSpacing=e,this}characterOffset(e){return this.props.characterOffset=e,this}anchorGrouping(e,n=.5,r=.8){return this.anchor={grouping:e,anchorX:n,anchorY:r},this}build(){return Qt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};h();h();var mu=`
2
2
  struct CameraUniforms {
3
3
  viewMatrix: mat4x4<f32>,
4
4
  projMatrix: mat4x4<f32>,
@@ -1,4 +1,4 @@
1
- import{o as at,r as sr,t as _t}from"./chunk-BBHRXV75.mjs";import{c as Ar}from"./chunk-OLLY3Q7M.mjs";import{h as jn,l as $n}from"./chunk-24P6DAB3.mjs";import{d as nr}from"./chunk-6YJP57MZ.mjs";import{A as ar,j as te,w as rr,x as ir,y as NA,z as or}from"./chunk-2LQCQ3OT.mjs";import{r as cA}from"./chunk-MTJHQATU.mjs";import{a as ot}from"./chunk-IQC2I5A5.mjs";import{c as er,e as tr}from"./chunk-IQKIHFNZ.mjs";import{o as MA}from"./chunk-YAQFFQPG.mjs";import{a as qn,c as _n,e as k}from"./chunk-BVF64D6H.mjs";var Er=qn((Ms,fr)=>{k();var ct=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":ct(),apply:()=>ct(),construct:()=>ct()});fr.exports=ct()});var qr=qn((ru,Zr)=>{k();var St=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":St(),apply:()=>St(),construct:()=>St()});Zr.exports=St()});k();var lr=new Float32Array(2048);for(let A=0;A<2048;A++)lr[A]=.5*(1-Math.cos(2*Math.PI*A/2047));var ur=new Uint16Array(2048);for(let A=0;A<2048;A++){let e=0,t=A;for(let n=0;n<11;n++)e=e<<1|t&1,t>>=1;ur[A]=e}var cr=new Float32Array(2048/2),Ir=new Float32Array(2048/2);for(let A=0;A<2048/2;A++){let e=-2*Math.PI*A/2048;cr[A]=Math.cos(e),Ir[A]=Math.sin(e)}function Yi(A,e){for(let t=0;t<2048;t++){let n=ur[t]??0;if(n>t){let r=A[t]??0;A[t]=A[n]??0,A[n]=r;let i=e[t]??0;e[t]=e[n]??0,e[n]=i}}for(let t=2;t<=2048;t<<=1){let n=t>>1,r=2048/t;for(let i=0;i<2048;i+=t)for(let o=0;o<n;o++){let a=o*r,s=cr[a]??1,g=Ir[a]??0,l=A[i+o]??0,u=e[i+o]??0,c=A[i+o+n]??0,I=e[i+o+n]??0,E=c*s-I*g,d=c*g+I*s;A[i+o]=l+E,e[i+o]=u+d,A[i+o+n]=l-E,e[i+o+n]=u-d}}}var st=class A{tempReal=new Float32Array(2048);tempImag=new Float32Array(2048);previousBins=new Float32Array(1024);extractAtTime(e,t,n){let r=e.length,i=r>0?e[0]?.length??0:0,a=Math.round(n*t)-1024;for(let G=0;G<2048;G++){let N=a+G,w=0;N>=0&&N<i&&(r===1?w=e[0]?.[N]??0:r>=2&&(w=((e[0]?.[N]??0)+(e[1]?.[N]??0))*.5)),this.tempReal[G]=w*(lr[G]??1),this.tempImag[G]=0}Yi(this.tempReal,this.tempImag);let s=new Float32Array(1024),g=2/2048;for(let G=0;G<1024;G++){let N=this.tempReal[G]??0,w=this.tempImag[G]??0;s[G]=Math.sqrt(N*N+w*w)*g*2}let l=t/2048,u=Math.max(1,Math.round(20/l)),c=Math.max(u+1,Math.round(150/l)),I=0;for(let G=u;G<=c&&G<1024;G++)I+=(s[G]??0)*(s[G]??0);let E=Math.min(1,Math.sqrt(I/(c-u+1))*4),d=0;for(let G=0;G<1024;G++){let N=(s[G]??0)-(this.previousBins[G]??0);N>0&&(d+=N),this.previousBins[G]=s[G]??0}let h=Math.min(1,d*.15),Q=Math.round(300/l),m=Math.min(1023,Math.round(3400/l)),D=0;for(let G=Q;G<=m;G++)D+=(s[G]??0)*(s[G]??0);let p=Math.min(1,Math.sqrt(D/(m-Q+1))*3.5);return{fftBins:s,bassEnergy:E,drumTransient:h,vocalEnergy:p,timeMs:n*1e3}}static packBufferData(e){let t=new Float32Array(1028);return t.set(e.fftBins,0),t[1024]=e.bassEnergy,t[1025]=e.drumTransient,t[1026]=e.vocalEnergy,t[1027]=e.timeMs,t}static createGpuBuffer(e,t){let n=t?A.packBufferData(t):new Float32Array(1028),r=e.createBuffer({label:"AudioLatentBuffer",size:4112,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});return new Float32Array(r.getMappedRange()).set(n),r.unmap(),r}static updateGpuBuffer(e,t,n){let r=A.packBufferData(n);e.queue.writeBuffer(t,0,r)}},gr=class{constructor(e,t,n,r){this.channels=e;this.sampleRate=t;this.fps=n;this.totalFrames=r;let i=new st,o=t||48e3,a=n||30,s=e[0]?.length??0,g=Math.max(10,Math.ceil(s/o*a)+10),l=typeof r=="number"&&Number.isFinite(r)&&r>0?Math.round(r):g;this.frames=new Array(l);for(let u=0;u<l;u++){let c=u/a;this.frames[u]=i.extractAtTime(e,o,c)}}channels;sampleRate;fps;totalFrames;frames=[];gpuBuffers=new WeakMap;getFrameData(e){let t=Math.max(0,Math.min(this.totalFrames-1,Math.round(e)));return this.frames[t]??{fftBins:new Float32Array(1024),bassEnergy:0,drumTransient:0,vocalEnergy:0,timeMs:t/this.fps*1e3}}getGpuBuffer(e,t){let n=this.gpuBuffers.get(e);n||(n=new Map,this.gpuBuffers.set(e,n));let r=Math.max(0,Math.min(this.totalFrames-1,Math.round(t))),i=n.get(r);if(!i){let o=this.getFrameData(r);i=st.createGpuBuffer(e,o),n.set(r,i)}return i}};k();var H={create(A=0,e=0,t=0){return[A,e,t]},copy(A){return[A[0],A[1],A[2]]},set(A,e,t,n){return A[0]=e,A[1]=t,A[2]=n,A},add(A,e){return[A[0]+e[0],A[1]+e[1],A[2]+e[2]]},subtract(A,e){return[A[0]-e[0],A[1]-e[1],A[2]-e[2]]},multiplyScalar(A,e){return[A[0]*e,A[1]*e,A[2]*e]},dot(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]},cross(A,e){return[A[1]*e[2]-A[2]*e[1],A[2]*e[0]-A[0]*e[2],A[0]*e[1]-A[1]*e[0]]},lengthSq(A){return A[0]*A[0]+A[1]*A[1]+A[2]*A[2]},length(A){return Math.hypot(A[0],A[1],A[2])},distance(A,e){return Math.hypot(A[0]-e[0],A[1]-e[1],A[2]-e[2])},normalize(A){let e=Math.hypot(A[0],A[1],A[2]);if(e===0)return[0,0,0];let t=1/e;return[A[0]*t,A[1]*t,A[2]*t]},lerp(A,e,t){return[A[0]+(e[0]-A[0])*t,A[1]+(e[1]-A[1])*t,A[2]+(e[2]-A[2])*t]},equals(A,e,t=1e-6){return Math.abs(A[0]-e[0])<=t&&Math.abs(A[1]-e[1])<=t&&Math.abs(A[2]-e[2])<=t}};k();var _={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(A){return[...A]},multiply(A,e){let t=new Array(16);for(let n=0;n<4;n++)for(let r=0;r<4;r++)t[r*4+n]=A[0+n]*e[r*4+0]+A[4+n]*e[r*4+1]+A[8+n]*e[r*4+2]+A[12+n]*e[r*4+3];return t},translate(A,e,t=0){return[1,0,0,0,0,1,0,0,0,0,1,0,A,e,t,1]},scale(A,e,t=1){return[A,0,0,0,0,e,0,0,0,0,t,0,0,0,0,1]},rotateX(A){let e=Math.cos(A),t=Math.sin(A);return[1,0,0,0,0,e,t,0,0,-t,e,0,0,0,0,1]},rotateY(A){let e=Math.cos(A),t=Math.sin(A);return[e,0,-t,0,0,1,0,0,t,0,e,0,0,0,0,1]},rotateZ(A){let e=Math.cos(A),t=Math.sin(A);return[e,t,0,0,-t,e,0,0,0,0,1,0,0,0,0,1]},rotateAxis(A,e){let t=H.normalize(A),n=t[0],r=t[1],i=t[2],o=Math.cos(e),a=Math.sin(e),s=1-o;return[s*n*n+o,s*n*r+a*i,s*n*i-a*r,0,s*n*r-a*i,s*r*r+o,s*r*i+a*n,0,s*n*i+a*r,s*r*i-a*n,s*i*i+o,0,0,0,0,1]},lookAt(A,e,t=[0,-1,0]){let n=H.subtract(e,A);H.lengthSq(n)===0?n=[0,0,1]:n=H.normalize(n);let r=H.cross(n,t);H.lengthSq(r)===0?r=[1,0,0]:r=H.normalize(r);let i=H.cross(r,n);return[r[0],i[0],n[0],0,r[1],i[1],n[1],0,r[2],i[2],n[2],0,-H.dot(r,A),-H.dot(i,A),-H.dot(n,A),1]},perspective(A,e,t,n){let r=1/Math.tan(A/2),i=1/(n-t);return[r/e,0,0,0,0,r,0,0,0,0,n*i,1,0,0,-t*n*i,0]},orthographic(A,e,t,n,r,i){let o=1/(e-A),a=1/(n-t),s=1/(i-r);return[2*o,0,0,0,0,2*a,0,0,0,0,s,0,-(e+A)*o,-(n+t)*a,-r*s,1]},invert(A){let e=new Array(16);e[0]=A[5]*A[10]*A[15]-A[5]*A[11]*A[14]-A[9]*A[6]*A[15]+A[9]*A[7]*A[14]+A[13]*A[6]*A[11]-A[13]*A[7]*A[10],e[4]=-A[4]*A[10]*A[15]+A[4]*A[11]*A[14]+A[8]*A[6]*A[15]-A[8]*A[7]*A[14]-A[12]*A[6]*A[11]+A[12]*A[7]*A[10],e[8]=A[4]*A[9]*A[15]-A[4]*A[11]*A[13]-A[8]*A[5]*A[15]+A[8]*A[7]*A[13]+A[12]*A[5]*A[11]-A[12]*A[7]*A[9],e[12]=-A[4]*A[9]*A[14]+A[4]*A[10]*A[13]+A[8]*A[5]*A[14]-A[8]*A[6]*A[13]-A[12]*A[5]*A[10]+A[12]*A[6]*A[9],e[1]=-A[1]*A[10]*A[15]+A[1]*A[11]*A[14]+A[9]*A[2]*A[15]-A[9]*A[3]*A[14]-A[13]*A[2]*A[11]+A[13]*A[3]*A[10],e[5]=A[0]*A[10]*A[15]-A[0]*A[11]*A[14]-A[8]*A[2]*A[15]+A[8]*A[3]*A[14]+A[12]*A[2]*A[11]-A[12]*A[3]*A[10],e[9]=-A[0]*A[9]*A[15]+A[0]*A[11]*A[13]+A[8]*A[1]*A[15]-A[8]*A[3]*A[13]-A[12]*A[1]*A[11]+A[12]*A[3]*A[9],e[13]=A[0]*A[9]*A[14]-A[0]*A[10]*A[13]-A[8]*A[1]*A[14]+A[8]*A[2]*A[13]+A[12]*A[1]*A[10]-A[12]*A[2]*A[9],e[2]=A[1]*A[6]*A[15]-A[1]*A[7]*A[14]-A[5]*A[2]*A[15]+A[5]*A[3]*A[14]+A[13]*A[2]*A[7]-A[13]*A[3]*A[6],e[6]=-A[0]*A[6]*A[15]+A[0]*A[7]*A[14]+A[4]*A[2]*A[15]-A[4]*A[3]*A[14]-A[12]*A[2]*A[7]+A[12]*A[3]*A[6],e[10]=A[0]*A[5]*A[15]-A[0]*A[7]*A[13]-A[4]*A[1]*A[15]+A[4]*A[3]*A[13]+A[12]*A[1]*A[7]-A[12]*A[3]*A[5],e[14]=-A[0]*A[5]*A[14]+A[0]*A[6]*A[13]+A[4]*A[1]*A[14]-A[4]*A[2]*A[13]-A[12]*A[1]*A[6]+A[12]*A[2]*A[5],e[3]=-A[1]*A[6]*A[11]+A[1]*A[7]*A[10]+A[5]*A[2]*A[11]-A[5]*A[3]*A[10]-A[9]*A[2]*A[7]+A[9]*A[3]*A[6],e[7]=A[0]*A[6]*A[11]-A[0]*A[7]*A[10]-A[4]*A[2]*A[11]+A[4]*A[3]*A[10]+A[8]*A[2]*A[7]-A[8]*A[3]*A[6],e[11]=-A[0]*A[5]*A[11]+A[0]*A[7]*A[9]+A[4]*A[1]*A[11]-A[4]*A[3]*A[9]-A[8]*A[1]*A[7]+A[8]*A[3]*A[5],e[15]=A[0]*A[5]*A[10]-A[0]*A[6]*A[9]-A[4]*A[1]*A[10]+A[4]*A[2]*A[9]+A[8]*A[1]*A[6]-A[8]*A[2]*A[5];let t=A[0]*e[0]+A[1]*e[4]+A[2]*e[8]+A[3]*e[12];if(Math.abs(t)<1e-12)return null;t=1/t;for(let n=0;n<16;n++)e[n]*=t;return e},transpose(A){return[A[0],A[4],A[8],A[12],A[1],A[5],A[9],A[13],A[2],A[6],A[10],A[14],A[3],A[7],A[11],A[15]]},projectPoint(A,e){let t=e[0],n=e[1],r=e[2],i=A[0]*t+A[4]*n+A[8]*r+A[12],o=A[1]*t+A[5]*n+A[9]*r+A[13],a=A[2]*t+A[6]*n+A[10]*r+A[14],s=A[3]*t+A[7]*n+A[11]*r+A[15],g=Math.abs(s)>1e-6?1/s:1;return[i*g,o*g,a*g]},projectRectangle(A,e,t){return[_.projectPoint(A,[0,0,0]),_.projectPoint(A,[e,0,0]),_.projectPoint(A,[e,t,0]),_.projectPoint(A,[0,t,0])]},toFloat32Array(A){return new Float32Array(A)}};k();function Se(A,e,t=3){let n=0,r=1,i=1,o=0;for(let a=0;a<t;a++){let s=Math.sin(A*r*2*Math.PI+e+a*1.7),g=Math.cos(A*r*1.414*Math.PI+e*2.1+a*.9);n+=(s*.6+g*.4)*i,o+=i,r*=2,i*=.5}return o>0?n/o:0}var fe={createDefaultCamera(A,e,t=50){let n=t*Math.PI/180,r=e/2/Math.tan(n/2);return{eye:[A/2,e/2,-r],target:[A/2,e/2,0],up:[0,-1,0],fov:t,aspect:Math.max(1e-4,A/e),near:1,far:5e4,zoom:1,focusDistance:r,fStop:2.8,maxBlurRadius:32}},computeViewMatrix(A){return _.lookAt(A.eye,A.target,A.up)},computeProjectionMatrix(A){let e=A.fov*Math.PI/180,t=_.perspective(e,A.aspect,A.near,A.far);return A.zoom!==1&&A.zoom>0&&(t[0]*=A.zoom,t[5]*=A.zoom),t},computeViewProjectionMatrix(A){let e=fe.computeViewMatrix(A),t=fe.computeProjectionMatrix(A);return _.multiply(t,e)},dolly(A,e,t){let n=H.normalize(H.subtract(e,A)),r=H.multiplyScalar(n,t);return{eye:H.add(A,r),target:e}},truckPedestal(A,e,t,n,r){let i=H.normalize(H.subtract(e,A)),o=H.normalize(H.cross(i,t)),a=H.cross(o,i),s=H.multiplyScalar(o,n),g=H.multiplyScalar(a,r),l=H.add(s,g);return{eye:H.add(A,l),target:H.add(e,l)}},orbit(A,e,t,n){let r=t*Math.PI/180,i=n*Math.PI/180,o=Math.cos(i),a=Math.sin(i),s=Math.cos(r),g=Math.sin(r),l=A[0]+e*o*g,u=A[1]-e*a,c=A[2]-e*o*s;return[l,u,c]},applyOrientation(A,e,t,n){if(e===0&&t===0&&n===0)return A;let r=H.normalize(H.subtract(A.target,A.eye)),i=H.normalize(H.cross(r,A.up)),o=H.cross(i,r),a=H.distance(A.eye,A.target),s=r,g=o;if(t!==0){let c=t*Math.PI/180,I=Math.cos(c),E=Math.sin(c);s=H.normalize(H.subtract(H.multiplyScalar(s,I),H.multiplyScalar(i,E)))}let l=H.normalize(H.cross(s,g));if(e!==0){let c=e*Math.PI/180,I=Math.cos(c),E=Math.sin(c);s=H.normalize(H.add(H.multiplyScalar(s,I),H.multiplyScalar(g,E))),g=H.normalize(H.cross(l,s))}if(n!==0){let c=n*Math.PI/180,I=Math.cos(c),E=Math.sin(c);g=H.normalize(H.add(H.multiplyScalar(g,I),H.multiplyScalar(l,E)))}let u=H.add(A.eye,H.multiplyScalar(s,a));return{...A,target:u,up:g}},applyCameraShake(A,e,t){let{translationAmplitude:n,rotationAmplitude:r,frequency:i=2.5,octaves:o=3,seed:a=42}=t;if(n<=0&&r<=0)return A;let s=e*i,g=Se(s,a,o)*n,l=Se(s,a+101.5,o)*n,u=Se(s,a+203.7,o)*(n*.5),c=Se(s,a+307.1,o)*r,I=Se(s,a+409.3,o)*r,E=H.normalize(H.subtract(A.target,A.eye)),d=H.normalize(H.cross(E,A.up)),h=H.cross(d,E),Q=H.add(H.multiplyScalar(d,g),H.add(H.multiplyScalar(h,l),H.multiplyScalar(E,u))),m=H.add(A.eye,Q),D=H.add(A.target,H.add(H.multiplyScalar(d,I*10),H.multiplyScalar(h,c*10)));return{...A,eye:m,target:D}},computeCircleOfConfusion(A,e,t,n,r=32){if(e<=0||n<=0||A<=0)return 0;let i=Math.abs(A-e),o=t/n,a=i/A*o*.5;return Math.min(r,Math.max(0,a))},computeCameraFrustumPlanes(A){let e=t=>{let n=Math.hypot(t[0],t[1],t[2]);return n===0?t:[t[0]/n,t[1]/n,t[2]/n,t[3]/n]};return{left:e([A[3]+A[0],A[7]+A[4],A[11]+A[8],A[15]+A[12]]),right:e([A[3]-A[0],A[7]-A[4],A[11]-A[8],A[15]-A[12]]),bottom:e([A[3]+A[1],A[7]+A[5],A[11]+A[9],A[15]+A[13]]),top:e([A[3]-A[1],A[7]-A[5],A[11]-A[9],A[15]-A[13]]),near:e([A[2],A[6],A[10],A[14]]),far:e([A[3]-A[2],A[7]-A[6],A[11]-A[10],A[15]-A[14]])}},isBoxInFrustum(A,e,t){let n=[t.left,t.right,t.bottom,t.top,t.near,t.far];for(let r of n){let i=r[0]>0?e[0]:A[0],o=r[1]>0?e[1]:A[1],a=r[2]>0?e[2]:A[2];if(r[0]*i+r[1]*o+r[2]*a+r[3]<0)return!1}return!0}};k();var Wi={studio:{top:"#9da3ad",horizon:"#5d626b",bottom:"#202226",softboxes:3.5},soft:{top:"#f1efea",horizon:"#cfcac1",bottom:"#77726a",softboxes:1.2},sunset:{top:"#4d63a3",horizon:"#ff9a5c",bottom:"#3b2a28",softboxes:1},night:{top:"#121a3a",horizon:"#1f2950",bottom:"#05060b",softboxes:.5},neutral:{top:"#9a9a9a",horizon:"#808080",bottom:"#5c5c5c",softboxes:0}},zi={none:0,aces:1,agx:2,neutral:3};function gt(A){let e=er(A)??[0,0,0,1],t=n=>n<=.04045?n/12.92:((n+.055)/1.055)**2.4;return[t(e[0]),t(e[1]),t(e[2])]}function Br(A){let e=Wi[A.preset??"studio"],t=A.intensity??1,n=r=>[r[0]*t,r[1]*t,r[2]*t];return{top:n(gt(A.top??e.top)),horizon:n(gt(A.horizon??e.horizon)),bottom:n(gt(A.bottom??e.bottom)),softboxes:(A.softboxes??e.softboxes)*t,rotationRad:(A.rotation??0)*Math.PI/180,exposureMultiplier:2**(A.exposure??0),toneMapping:zi[A.toneMapping??"neutral"],fog:A.fog?{color:gt(A.fog.color),start:A.fog.start,end:A.fog.end,opacity:Math.max(0,Math.min(1,A.fog.opacity??1))}:void 0}}k();var lt=8,$t=736;function jt(A){if(!A)return[1,1,1];if(Array.isArray(A)){let r=A[0]??1,i=A[1]??1,o=A[2]??1;return[r>1?r/255:r,i>1?i/255:i,o>1?o/255:o]}if(typeof A=="object"&&A!==null){let r=A.r??1,i=A.g??1,o=A.b??1;return[r>1?r/255:r,i>1?i/255:i,o>1?o/255:o]}if(typeof A!="string")return[1,1,1];let e=A.trim().toLowerCase();if(e.startsWith("#")){let r=e.slice(1);if(r.length===3){let i=Number.parseInt(r[0]+r[0],16)/255,o=Number.parseInt(r[1]+r[1],16)/255,a=Number.parseInt(r[2]+r[2],16)/255;return[i,o,a]}if(r.length>=6){let i=Number.parseInt(r.slice(0,2),16)/255,o=Number.parseInt(r.slice(2,4),16)/255,a=Number.parseInt(r.slice(4,6),16)/255;return[i,o,a]}}let t=e.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(t){let r=Number.parseFloat(t[1])/255,i=Number.parseFloat(t[2])/255,o=Number.parseFloat(t[3])/255;return[Math.max(0,Math.min(1,r)),Math.max(0,Math.min(1,i)),Math.max(0,Math.min(1,o))]}let n=e.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(n){let r=Number.parseFloat(n[1])/360,i=Number.parseFloat(n[2])/100,o=Number.parseFloat(n[3])/100;return Xi(r,i,o)}return[1,1,1]}function Xi(A,e,t){if(e===0)return[t,t,t];let n=(o,a,s)=>{let g=s;return g<0&&(g+=1),g>1&&(g-=1),g<1/6?o+(a-o)*6*g:g<1/2?a:g<2/3?o+(a-o)*(2/3-g)*6:o},r=t<.5?t*(1+e):t+e-t*e,i=2*t-r;return[n(i,r,A+1/3),n(i,r,A),n(i,r,A-1/3)]}var qA={computeNormalMatrix(A){let e=_.invert(A);return e?[e[0],e[4],e[8],0,e[1],e[5],e[9],0,e[2],e[6],e[10],0,0,0,0,1]:_.identity()},processLight(A){let e=jt(A.color),t=A.intensity??1,n=A.position?A.position[0]:A.x??0,r=A.position?A.position[1]:A.y??0,i=A.position?A.position[2]:A.z??0,o=A.lightType??A.type??"directional",a=1;o==="ambient"?a=0:o==="directional"?a=1:o==="point"?a=2:o==="spot"&&(a=3);let s=[0,0,-1];if(A.direction)s=H.normalize(A.direction);else if(A.target||A.targetX!==void 0||A.targetY!==void 0||A.targetZ!==void 0){let Q=A.target?A.target[0]:A.targetX??n,m=A.target?A.target[1]:A.targetY??r,D=A.target?A.target[2]:A.targetZ??i,p=[Q,m,D],G=H.subtract(p,[n,r,i]);H.length(G)>1e-4&&(s=H.normalize(G))}let g=Math.max(1,A.radius??1e3),l=A.decay??2,u=Math.max(.1,Math.min(180,A.angle??45)),c=Math.max(0,Math.min(1,A.penumbra??.2)),I=u*Math.PI/180,E=I*(1-c),d=Math.cos(I),h=Math.cos(E);return{posType:[n,r,i,a],dirRadius:[s[0],s[1],s[2],g],colorIntensity:[e[0],e[1],e[2],t],spotParams:[d,h,l,0]}},packLightsUniforms(A,e,t){let n=new Float32Array($t/4);if(qA.packPhysicalBlock(n,A??[],e,t),(!A||A.length===0)&&!e)return n[4]=0,n[5]=0,n;let r=0,i=0,o=0,a=[];for(let g of A)if((g.lightType??g.type)==="ambient"){let u=jt(g.color),c=g.intensity??1;r+=u[0]*c,i+=u[1]*c,o+=u[2]*c}else a.length<lt&&a.push(qA.processLight(g));n[0]=r,n[1]=i,n[2]=o,n[3]=1,n[4]=a.length,n[5]=1;let s=8;for(let g=0;g<lt;g++){if(g<a.length){let l=a[g];n[s+0]=l.posType[0],n[s+1]=l.posType[1],n[s+2]=l.posType[2],n[s+3]=l.posType[3],n[s+4]=l.dirRadius[0],n[s+5]=l.dirRadius[1],n[s+6]=l.dirRadius[2],n[s+7]=l.dirRadius[3],n[s+8]=l.colorIntensity[0],n[s+9]=l.colorIntensity[1],n[s+10]=l.colorIntensity[2],n[s+11]=l.colorIntensity[3],n[s+12]=l.spotParams[0],n[s+13]=l.spotParams[1],n[s+14]=l.spotParams[2],n[s+15]=l.spotParams[3]}else for(let l=0;l<16;l++)n[s+l]=0;s+=16}return n},shadowCasterIndex(A){let e=0;for(let t of A){let n=t.lightType??t.type;if(n!=="ambient"){if(e>=lt)break;if(t.castShadow&&(n==="directional"||n==="spot"))return e;e++}}return-1},packPhysicalBlock(A,e,t,n){let r=8+lt*16,i=0,o=0,a=0;for(let s of e){if((s.lightType??s.type)!=="ambient")continue;let[g,l,u]=jt(s.color),c=s.intensity??1,I=E=>E<=.04045?E/12.92:((E+.055)/1.055)**2.4;i+=I(g)*c,o+=I(l)*c,a+=I(u)*c}if(A[r+0]=i,A[r+1]=o,A[r+2]=a,A[r+3]=1,t){let s=Br(t);A[6]=1,A[7]=s.toneMapping,A[r+3]=s.exposureMultiplier,A.set([...s.top,s.rotationRad],r+4),A.set([...s.horizon,s.softboxes],r+8),A.set([...s.bottom,1],r+12),s.fog&&(A.set([...s.fog.color,1],r+16),A.set([s.fog.start,s.fog.end,s.fog.opacity,0],r+20))}if(n&&n.lightIndex>=0){A.set([1,n.lightIndex,n.softness,n.mapSize],r+24),A.set([n.bias,n.normalOffset,n.darkness,0],r+28);for(let s=0;s<16;s++)A[r+32+s]=n.matrix[s]??0}}};k();k();var An={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".tif":"image/tiff",".tiff":"image/tiff",".avif":"image/avif"};function Ue(A){return An[MA.extname(A).toLowerCase()]??"image/png"}function ut(A){let e=MA.extname(A.replace(/\\/g,"/")).toLowerCase();return!e||e in An}function ve(A,e){if(!A||typeof cA>"u"||!cA.existsSync||!ut(A))return;let t=A.trim().replace(/^file:\/\//,"");try{t=decodeURIComponent(t)}catch{}let n=t.replace(/\\/g,"/"),r=n.split("/").pop()??n,i=[];if(MA.isAbsolute(n)&&i.push(n),e){i.push(MA.resolve(e,n)),i.push(MA.join(e,r)),i.push(MA.join(e,"textures",r));try{for(let o of cA.readdirSync(e))o.toLowerCase().endsWith(".fbm")&&i.push(MA.join(e,o,r))}catch{}}for(let o of i)try{if(cA.existsSync(o)&&cA.statSync(o).isFile())return{bytes:new Uint8Array(cA.readFileSync(o)),mime:Ue(o)}}catch{}}function Ee(A,e,t){let n=ut(t)?"was not found":`is in an unsupported format (use ${Object.keys(An).join(", ")})`;console.warn(`[${A}] Texture "${t}" for material "${e}" ${n}; the material renders without it.`)}var Re=class A{static parse(e,t,n){let r=typeof t=="object"&&t!==null?t:n??{},i=typeof t=="string"?t:r.mtlText,o=[],a=[],s=[],g=[],l={materialName:"default",faces:[]};g.push(l);let u={};i&&Object.assign(u,A.loadTextures(A.parseMtl(i),r.basePath));let c=e.split(/\r?\n/);for(let P=0;P<c.length;P++){let nA=c[P]?.trim();if(!nA||nA.startsWith("#"))continue;let tA=nA.split(/\s+/),rA=tA[0]?.toLowerCase();if(rA==="mtllib"){let AA=tA.slice(1).join(" ").trim();if(r.basePath&&typeof cA<"u"&&cA.existsSync)try{let eA=MA.resolve(r.basePath,AA);if(cA.existsSync(eA)){let gA=cA.readFileSync(eA,"utf-8");Object.assign(u,A.loadTextures(A.parseMtl(gA),MA.dirname(eA)))}}catch{}}else if(rA==="v"){let AA=Number.parseFloat(tA[1]??"0"),eA=Number.parseFloat(tA[2]??"0"),gA=Number.parseFloat(tA[3]??"0");o.push([AA,eA,gA])}else if(rA==="vn"){let AA=Number.parseFloat(tA[1]??"0"),eA=Number.parseFloat(tA[2]??"0"),gA=Number.parseFloat(tA[3]??"0");a.push([AA,eA,gA])}else if(rA==="vt"){let AA=Number.parseFloat(tA[1]??"0"),eA=tA[2]!==void 0?Number.parseFloat(tA[2]):0;s.push([AA,eA])}else if(rA==="usemtl"){let AA=tA[1]??"default";l.faces.length>0?(l={materialName:AA,faces:[]},g.push(l)):l.materialName=AA}else if(rA==="f"){let AA=[];for(let eA=1;eA<tA.length;eA++){let gA=tA[eA];if(!gA)continue;let lA=gA.split("/"),BA=Number.parseInt(lA[0]??"0",10),EA=lA[1]&&lA[1].length>0?Number.parseInt(lA[1],10):0,QA=lA[2]&&lA[2].length>0?Number.parseInt(lA[2],10):0;BA<0&&(BA=o.length+BA+1),EA<0&&(EA=s.length+EA+1),QA<0&&(QA=a.length+QA+1),AA.push({v:BA-1,vt:EA-1,vn:QA-1})}if(AA.length>=3)for(let eA=1;eA<AA.length-1;eA++){let gA=AA[0],lA=AA[eA],BA=AA[eA+1];gA&&lA&&BA&&l.faces.push([gA,lA,BA])}}}let I=1/0,E=1/0,d=1/0,h=-1/0,Q=-1/0,m=-1/0;for(let P of o){let[nA,tA,rA]=P;nA===void 0||tA===void 0||rA===void 0||(nA<I&&(I=nA),tA<E&&(E=tA),rA<d&&(d=rA),nA>h&&(h=nA),tA>Q&&(Q=tA),rA>m&&(m=rA))}Number.isFinite(I)||(I=-1,E=-1,d=-1,h=1,Q=1,m=1);let D=(I+h)*.5,p=(E+Q)*.5,G=(d+m)*.5,N=Math.max(1e-4,h-I),w=Math.max(1e-4,Q-E),U=Math.max(1e-4,m-d),b=Math.max(N,w,U),M=1;r.normalizeSize&&r.normalizeSize>0&&(M=r.normalizeSize/b),typeof r.scale=="number"&&(M*=r.scale);let v=r.center??!1,R=v?D:0,S=v?p:0,K=v?G:0,F=[];for(let P=0;P<g.length;P++){let nA=g[P];if(!nA||nA.faces.length===0)continue;let tA=new Map,rA=[],AA=[],eA=[],gA=[],lA=!1;for(let QA of nA.faces)for(let sA of QA){let yA=`${sA.v}_${sA.vt}_${sA.vn}`,bA=tA.get(yA);if(bA===void 0){bA=rA.length/3,tA.set(yA,bA);let wA=o[sA.v]??[0,0,0],hA=((wA[0]??0)-R)*M,VA=((wA[1]??0)-S)*M,YA=((wA[2]??0)-K)*M;if(rA.push(hA,VA,YA),sA.vt>=0&&s[sA.vt]){let FA=s[sA.vt];eA.push(FA[0]??0,1-(FA[1]??0))}else eA.push(0,0);if(sA.vn>=0&&a[sA.vn]){lA=!0;let FA=a[sA.vn];AA.push(FA[0]??0,FA[1]??0,FA[2]??0)}else AA.push(0,0,0)}gA.push(bA)}if(!lA||r.smoothNormals){let QA=new Float32Array(rA.length);for(let sA=0;sA<gA.length;sA+=3){let yA=gA[sA],bA=gA[sA+1],wA=gA[sA+2],hA=[rA[yA*3],rA[yA*3+1],rA[yA*3+2]],VA=[rA[bA*3],rA[bA*3+1],rA[bA*3+2]],YA=[rA[wA*3],rA[wA*3+1],rA[wA*3+2]],FA=H.subtract(VA,hA),Ht=H.subtract(YA,hA),vA=H.cross(FA,Ht);QA[yA*3]+=vA[0],QA[yA*3+1]+=vA[1],QA[yA*3+2]+=vA[2],QA[bA*3]+=vA[0],QA[bA*3+1]+=vA[1],QA[bA*3+2]+=vA[2],QA[wA*3]+=vA[0],QA[wA*3+1]+=vA[1],QA[wA*3+2]+=vA[2]}for(let sA=0;sA<rA.length/3;sA++){let yA=QA[sA*3],bA=QA[sA*3+1],wA=QA[sA*3+2],hA=Math.hypot(yA,bA,wA)||1;AA[sA*3]=yA/hA,AA[sA*3+1]=bA/hA,AA[sA*3+2]=wA/hA}}let EA=rA.length/3>65535?new Uint32Array(gA):new Uint16Array(gA);F.push({id:`mesh_${P}`,name:nA.materialName,positions:new Float32Array(rA),normals:new Float32Array(AA),uvs:new Float32Array(eA),indices:EA,materialName:nA.materialName})}let z=(I-R)*M,Z=(E-S)*M,$=(d-K)*M,aA=(h-R)*M,W=(Q-S)*M,Y=(m-K)*M,j=aA-z,IA=W-Z,dA=Y-$,uA=(z+aA)*.5,mA=(Z+W)*.5,pA=($+Y)*.5,X=Math.hypot(j,IA,dA)*.5;return{meshes:F,materials:u,animations:[],bounds:{min:[z,Z,$],max:[aA,W,Y],center:[uA,mA,pA],size:[j,IA,dA],boundingSphereRadius:X}}}static parseMtl(e){let t={},n=null,r=e.split(/\r?\n/);for(let i of r){let o=i.trim();if(!o||o.startsWith("#"))continue;let a=o.split(/\s+/),s=a[0]?.toLowerCase();if(s==="newmtl"){let g=a[1]??"default";n={name:g,diffuseColor:[1,1,1,1],specularColor:[1,1,1],ambientColor:[.2,.2,.2],shininess:32,opacity:1},t[g]=n}else if(n)if(s==="kd"){let g=Number.parseFloat(a[1]??"1"),l=Number.parseFloat(a[2]??"1"),u=Number.parseFloat(a[3]??"1");n.diffuseColor=[g,l,u,n.diffuseColor?.[3]??1]}else if(s==="ks"){let g=Number.parseFloat(a[1]??"1"),l=Number.parseFloat(a[2]??"1"),u=Number.parseFloat(a[3]??"1");n.specularColor=[g,l,u],n.specularIntensity=(g+l+u)/3}else if(s==="ka"){let g=Number.parseFloat(a[1]??"0.2"),l=Number.parseFloat(a[2]??"0.2"),u=Number.parseFloat(a[3]??"0.2");n.ambientColor=[g,l,u]}else if(s==="ns")n.shininess=Number.parseFloat(a[1]??"32");else if(s==="d"||s==="tr"){let g=Number.parseFloat(a[1]??"1");n.opacity=s==="d"?g:1-g,n.diffuseColor&&(n.diffuseColor[3]=n.opacity)}else if(s==="map_kd"){n.diffuseTexture=A.mapFileName(a);let g=a.findIndex(l=>l.toLowerCase()==="-clamp");n.textureWrap=g>0&&a[g+1]?.toLowerCase()==="on"?"clamp":"repeat"}else(s==="norm"||s==="map_kn")&&(n.normalTexture=A.mapFileName(a))}return t}static MAP_OPTION_ARGS={"-blendu":1,"-blendv":1,"-cc":1,"-clamp":1,"-texres":1,"-bm":1,"-boost":1,"-imfchan":1,"-type":1,"-mm":2};static mapFileName(e){let t=1;for(;t<e.length&&e[t]?.startsWith("-");){let n=e[t].toLowerCase();if(t++,n==="-o"||n==="-s"||n==="-t")for(let r=0;r<3&&t<e.length&&!Number.isNaN(Number(e[t]));r++)t++;else t+=A.MAP_OPTION_ARGS[n]??0}return e.slice(t).join(" ")}static loadTextures(e,t){if(!t)return e;for(let n of Object.values(e)){if(n.diffuseTexture&&!n.diffuseTextureBuffer){let r=ve(n.diffuseTexture,t);r?(n.diffuseTextureBuffer=r.bytes,n.diffuseTextureMime=r.mime):Ee("ObjLoader",n.name,n.diffuseTexture)}if(n.normalTexture&&!n.normalTextureBuffer){let r=ve(n.normalTexture,t);r?n.normalTextureBuffer=r.bytes:Ee("ObjLoader",n.name,n.normalTexture)}}return e}};function bs(A,e,t={}){return Re.parse(A,e,t)}function Ds(A){return Re.parseMtl(A)}function Le(A,e,t={}){let n;if(typeof A!="string")n=new TextDecoder().decode(A);else{let r=A.trim();if(!(r.startsWith("v ")||r.startsWith("#")||r.includes(`
1
+ import{o as at,r as sr,t as _t}from"./chunk-4C26NVQY.mjs";import{c as Ar}from"./chunk-OLLY3Q7M.mjs";import{h as jn,l as $n}from"./chunk-24P6DAB3.mjs";import{d as nr}from"./chunk-6YJP57MZ.mjs";import{A as ar,j as te,w as rr,x as ir,y as NA,z as or}from"./chunk-Q6CRERSJ.mjs";import{r as cA}from"./chunk-MTJHQATU.mjs";import{a as ot}from"./chunk-IQC2I5A5.mjs";import{c as er,e as tr}from"./chunk-IQKIHFNZ.mjs";import{o as MA}from"./chunk-YAQFFQPG.mjs";import{a as qn,c as _n,e as k}from"./chunk-BVF64D6H.mjs";var Er=qn((Ms,fr)=>{k();var ct=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":ct(),apply:()=>ct(),construct:()=>ct()});fr.exports=ct()});var qr=qn((ru,Zr)=>{k();var St=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":St(),apply:()=>St(),construct:()=>St()});Zr.exports=St()});k();var lr=new Float32Array(2048);for(let A=0;A<2048;A++)lr[A]=.5*(1-Math.cos(2*Math.PI*A/2047));var ur=new Uint16Array(2048);for(let A=0;A<2048;A++){let e=0,t=A;for(let n=0;n<11;n++)e=e<<1|t&1,t>>=1;ur[A]=e}var cr=new Float32Array(2048/2),Ir=new Float32Array(2048/2);for(let A=0;A<2048/2;A++){let e=-2*Math.PI*A/2048;cr[A]=Math.cos(e),Ir[A]=Math.sin(e)}function Yi(A,e){for(let t=0;t<2048;t++){let n=ur[t]??0;if(n>t){let r=A[t]??0;A[t]=A[n]??0,A[n]=r;let i=e[t]??0;e[t]=e[n]??0,e[n]=i}}for(let t=2;t<=2048;t<<=1){let n=t>>1,r=2048/t;for(let i=0;i<2048;i+=t)for(let o=0;o<n;o++){let a=o*r,s=cr[a]??1,g=Ir[a]??0,l=A[i+o]??0,u=e[i+o]??0,c=A[i+o+n]??0,I=e[i+o+n]??0,E=c*s-I*g,d=c*g+I*s;A[i+o]=l+E,e[i+o]=u+d,A[i+o+n]=l-E,e[i+o+n]=u-d}}}var st=class A{tempReal=new Float32Array(2048);tempImag=new Float32Array(2048);previousBins=new Float32Array(1024);extractAtTime(e,t,n){let r=e.length,i=r>0?e[0]?.length??0:0,a=Math.round(n*t)-1024;for(let G=0;G<2048;G++){let N=a+G,w=0;N>=0&&N<i&&(r===1?w=e[0]?.[N]??0:r>=2&&(w=((e[0]?.[N]??0)+(e[1]?.[N]??0))*.5)),this.tempReal[G]=w*(lr[G]??1),this.tempImag[G]=0}Yi(this.tempReal,this.tempImag);let s=new Float32Array(1024),g=2/2048;for(let G=0;G<1024;G++){let N=this.tempReal[G]??0,w=this.tempImag[G]??0;s[G]=Math.sqrt(N*N+w*w)*g*2}let l=t/2048,u=Math.max(1,Math.round(20/l)),c=Math.max(u+1,Math.round(150/l)),I=0;for(let G=u;G<=c&&G<1024;G++)I+=(s[G]??0)*(s[G]??0);let E=Math.min(1,Math.sqrt(I/(c-u+1))*4),d=0;for(let G=0;G<1024;G++){let N=(s[G]??0)-(this.previousBins[G]??0);N>0&&(d+=N),this.previousBins[G]=s[G]??0}let h=Math.min(1,d*.15),Q=Math.round(300/l),m=Math.min(1023,Math.round(3400/l)),D=0;for(let G=Q;G<=m;G++)D+=(s[G]??0)*(s[G]??0);let p=Math.min(1,Math.sqrt(D/(m-Q+1))*3.5);return{fftBins:s,bassEnergy:E,drumTransient:h,vocalEnergy:p,timeMs:n*1e3}}static packBufferData(e){let t=new Float32Array(1028);return t.set(e.fftBins,0),t[1024]=e.bassEnergy,t[1025]=e.drumTransient,t[1026]=e.vocalEnergy,t[1027]=e.timeMs,t}static createGpuBuffer(e,t){let n=t?A.packBufferData(t):new Float32Array(1028),r=e.createBuffer({label:"AudioLatentBuffer",size:4112,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});return new Float32Array(r.getMappedRange()).set(n),r.unmap(),r}static updateGpuBuffer(e,t,n){let r=A.packBufferData(n);e.queue.writeBuffer(t,0,r)}},gr=class{constructor(e,t,n,r){this.channels=e;this.sampleRate=t;this.fps=n;this.totalFrames=r;let i=new st,o=t||48e3,a=n||30,s=e[0]?.length??0,g=Math.max(10,Math.ceil(s/o*a)+10),l=typeof r=="number"&&Number.isFinite(r)&&r>0?Math.round(r):g;this.frames=new Array(l);for(let u=0;u<l;u++){let c=u/a;this.frames[u]=i.extractAtTime(e,o,c)}}channels;sampleRate;fps;totalFrames;frames=[];gpuBuffers=new WeakMap;getFrameData(e){let t=Math.max(0,Math.min(this.totalFrames-1,Math.round(e)));return this.frames[t]??{fftBins:new Float32Array(1024),bassEnergy:0,drumTransient:0,vocalEnergy:0,timeMs:t/this.fps*1e3}}getGpuBuffer(e,t){let n=this.gpuBuffers.get(e);n||(n=new Map,this.gpuBuffers.set(e,n));let r=Math.max(0,Math.min(this.totalFrames-1,Math.round(t))),i=n.get(r);if(!i){let o=this.getFrameData(r);i=st.createGpuBuffer(e,o),n.set(r,i)}return i}};k();var H={create(A=0,e=0,t=0){return[A,e,t]},copy(A){return[A[0],A[1],A[2]]},set(A,e,t,n){return A[0]=e,A[1]=t,A[2]=n,A},add(A,e){return[A[0]+e[0],A[1]+e[1],A[2]+e[2]]},subtract(A,e){return[A[0]-e[0],A[1]-e[1],A[2]-e[2]]},multiplyScalar(A,e){return[A[0]*e,A[1]*e,A[2]*e]},dot(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]},cross(A,e){return[A[1]*e[2]-A[2]*e[1],A[2]*e[0]-A[0]*e[2],A[0]*e[1]-A[1]*e[0]]},lengthSq(A){return A[0]*A[0]+A[1]*A[1]+A[2]*A[2]},length(A){return Math.hypot(A[0],A[1],A[2])},distance(A,e){return Math.hypot(A[0]-e[0],A[1]-e[1],A[2]-e[2])},normalize(A){let e=Math.hypot(A[0],A[1],A[2]);if(e===0)return[0,0,0];let t=1/e;return[A[0]*t,A[1]*t,A[2]*t]},lerp(A,e,t){return[A[0]+(e[0]-A[0])*t,A[1]+(e[1]-A[1])*t,A[2]+(e[2]-A[2])*t]},equals(A,e,t=1e-6){return Math.abs(A[0]-e[0])<=t&&Math.abs(A[1]-e[1])<=t&&Math.abs(A[2]-e[2])<=t}};k();var _={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(A){return[...A]},multiply(A,e){let t=new Array(16);for(let n=0;n<4;n++)for(let r=0;r<4;r++)t[r*4+n]=A[0+n]*e[r*4+0]+A[4+n]*e[r*4+1]+A[8+n]*e[r*4+2]+A[12+n]*e[r*4+3];return t},translate(A,e,t=0){return[1,0,0,0,0,1,0,0,0,0,1,0,A,e,t,1]},scale(A,e,t=1){return[A,0,0,0,0,e,0,0,0,0,t,0,0,0,0,1]},rotateX(A){let e=Math.cos(A),t=Math.sin(A);return[1,0,0,0,0,e,t,0,0,-t,e,0,0,0,0,1]},rotateY(A){let e=Math.cos(A),t=Math.sin(A);return[e,0,-t,0,0,1,0,0,t,0,e,0,0,0,0,1]},rotateZ(A){let e=Math.cos(A),t=Math.sin(A);return[e,t,0,0,-t,e,0,0,0,0,1,0,0,0,0,1]},rotateAxis(A,e){let t=H.normalize(A),n=t[0],r=t[1],i=t[2],o=Math.cos(e),a=Math.sin(e),s=1-o;return[s*n*n+o,s*n*r+a*i,s*n*i-a*r,0,s*n*r-a*i,s*r*r+o,s*r*i+a*n,0,s*n*i+a*r,s*r*i-a*n,s*i*i+o,0,0,0,0,1]},lookAt(A,e,t=[0,-1,0]){let n=H.subtract(e,A);H.lengthSq(n)===0?n=[0,0,1]:n=H.normalize(n);let r=H.cross(n,t);H.lengthSq(r)===0?r=[1,0,0]:r=H.normalize(r);let i=H.cross(r,n);return[r[0],i[0],n[0],0,r[1],i[1],n[1],0,r[2],i[2],n[2],0,-H.dot(r,A),-H.dot(i,A),-H.dot(n,A),1]},perspective(A,e,t,n){let r=1/Math.tan(A/2),i=1/(n-t);return[r/e,0,0,0,0,r,0,0,0,0,n*i,1,0,0,-t*n*i,0]},orthographic(A,e,t,n,r,i){let o=1/(e-A),a=1/(n-t),s=1/(i-r);return[2*o,0,0,0,0,2*a,0,0,0,0,s,0,-(e+A)*o,-(n+t)*a,-r*s,1]},invert(A){let e=new Array(16);e[0]=A[5]*A[10]*A[15]-A[5]*A[11]*A[14]-A[9]*A[6]*A[15]+A[9]*A[7]*A[14]+A[13]*A[6]*A[11]-A[13]*A[7]*A[10],e[4]=-A[4]*A[10]*A[15]+A[4]*A[11]*A[14]+A[8]*A[6]*A[15]-A[8]*A[7]*A[14]-A[12]*A[6]*A[11]+A[12]*A[7]*A[10],e[8]=A[4]*A[9]*A[15]-A[4]*A[11]*A[13]-A[8]*A[5]*A[15]+A[8]*A[7]*A[13]+A[12]*A[5]*A[11]-A[12]*A[7]*A[9],e[12]=-A[4]*A[9]*A[14]+A[4]*A[10]*A[13]+A[8]*A[5]*A[14]-A[8]*A[6]*A[13]-A[12]*A[5]*A[10]+A[12]*A[6]*A[9],e[1]=-A[1]*A[10]*A[15]+A[1]*A[11]*A[14]+A[9]*A[2]*A[15]-A[9]*A[3]*A[14]-A[13]*A[2]*A[11]+A[13]*A[3]*A[10],e[5]=A[0]*A[10]*A[15]-A[0]*A[11]*A[14]-A[8]*A[2]*A[15]+A[8]*A[3]*A[14]+A[12]*A[2]*A[11]-A[12]*A[3]*A[10],e[9]=-A[0]*A[9]*A[15]+A[0]*A[11]*A[13]+A[8]*A[1]*A[15]-A[8]*A[3]*A[13]-A[12]*A[1]*A[11]+A[12]*A[3]*A[9],e[13]=A[0]*A[9]*A[14]-A[0]*A[10]*A[13]-A[8]*A[1]*A[14]+A[8]*A[2]*A[13]+A[12]*A[1]*A[10]-A[12]*A[2]*A[9],e[2]=A[1]*A[6]*A[15]-A[1]*A[7]*A[14]-A[5]*A[2]*A[15]+A[5]*A[3]*A[14]+A[13]*A[2]*A[7]-A[13]*A[3]*A[6],e[6]=-A[0]*A[6]*A[15]+A[0]*A[7]*A[14]+A[4]*A[2]*A[15]-A[4]*A[3]*A[14]-A[12]*A[2]*A[7]+A[12]*A[3]*A[6],e[10]=A[0]*A[5]*A[15]-A[0]*A[7]*A[13]-A[4]*A[1]*A[15]+A[4]*A[3]*A[13]+A[12]*A[1]*A[7]-A[12]*A[3]*A[5],e[14]=-A[0]*A[5]*A[14]+A[0]*A[6]*A[13]+A[4]*A[1]*A[14]-A[4]*A[2]*A[13]-A[12]*A[1]*A[6]+A[12]*A[2]*A[5],e[3]=-A[1]*A[6]*A[11]+A[1]*A[7]*A[10]+A[5]*A[2]*A[11]-A[5]*A[3]*A[10]-A[9]*A[2]*A[7]+A[9]*A[3]*A[6],e[7]=A[0]*A[6]*A[11]-A[0]*A[7]*A[10]-A[4]*A[2]*A[11]+A[4]*A[3]*A[10]+A[8]*A[2]*A[7]-A[8]*A[3]*A[6],e[11]=-A[0]*A[5]*A[11]+A[0]*A[7]*A[9]+A[4]*A[1]*A[11]-A[4]*A[3]*A[9]-A[8]*A[1]*A[7]+A[8]*A[3]*A[5],e[15]=A[0]*A[5]*A[10]-A[0]*A[6]*A[9]-A[4]*A[1]*A[10]+A[4]*A[2]*A[9]+A[8]*A[1]*A[6]-A[8]*A[2]*A[5];let t=A[0]*e[0]+A[1]*e[4]+A[2]*e[8]+A[3]*e[12];if(Math.abs(t)<1e-12)return null;t=1/t;for(let n=0;n<16;n++)e[n]*=t;return e},transpose(A){return[A[0],A[4],A[8],A[12],A[1],A[5],A[9],A[13],A[2],A[6],A[10],A[14],A[3],A[7],A[11],A[15]]},projectPoint(A,e){let t=e[0],n=e[1],r=e[2],i=A[0]*t+A[4]*n+A[8]*r+A[12],o=A[1]*t+A[5]*n+A[9]*r+A[13],a=A[2]*t+A[6]*n+A[10]*r+A[14],s=A[3]*t+A[7]*n+A[11]*r+A[15],g=Math.abs(s)>1e-6?1/s:1;return[i*g,o*g,a*g]},projectRectangle(A,e,t){return[_.projectPoint(A,[0,0,0]),_.projectPoint(A,[e,0,0]),_.projectPoint(A,[e,t,0]),_.projectPoint(A,[0,t,0])]},toFloat32Array(A){return new Float32Array(A)}};k();function Se(A,e,t=3){let n=0,r=1,i=1,o=0;for(let a=0;a<t;a++){let s=Math.sin(A*r*2*Math.PI+e+a*1.7),g=Math.cos(A*r*1.414*Math.PI+e*2.1+a*.9);n+=(s*.6+g*.4)*i,o+=i,r*=2,i*=.5}return o>0?n/o:0}var fe={createDefaultCamera(A,e,t=50){let n=t*Math.PI/180,r=e/2/Math.tan(n/2);return{eye:[A/2,e/2,-r],target:[A/2,e/2,0],up:[0,-1,0],fov:t,aspect:Math.max(1e-4,A/e),near:1,far:5e4,zoom:1,focusDistance:r,fStop:2.8,maxBlurRadius:32}},computeViewMatrix(A){return _.lookAt(A.eye,A.target,A.up)},computeProjectionMatrix(A){let e=A.fov*Math.PI/180,t=_.perspective(e,A.aspect,A.near,A.far);return A.zoom!==1&&A.zoom>0&&(t[0]*=A.zoom,t[5]*=A.zoom),t},computeViewProjectionMatrix(A){let e=fe.computeViewMatrix(A),t=fe.computeProjectionMatrix(A);return _.multiply(t,e)},dolly(A,e,t){let n=H.normalize(H.subtract(e,A)),r=H.multiplyScalar(n,t);return{eye:H.add(A,r),target:e}},truckPedestal(A,e,t,n,r){let i=H.normalize(H.subtract(e,A)),o=H.normalize(H.cross(i,t)),a=H.cross(o,i),s=H.multiplyScalar(o,n),g=H.multiplyScalar(a,r),l=H.add(s,g);return{eye:H.add(A,l),target:H.add(e,l)}},orbit(A,e,t,n){let r=t*Math.PI/180,i=n*Math.PI/180,o=Math.cos(i),a=Math.sin(i),s=Math.cos(r),g=Math.sin(r),l=A[0]+e*o*g,u=A[1]-e*a,c=A[2]-e*o*s;return[l,u,c]},applyOrientation(A,e,t,n){if(e===0&&t===0&&n===0)return A;let r=H.normalize(H.subtract(A.target,A.eye)),i=H.normalize(H.cross(r,A.up)),o=H.cross(i,r),a=H.distance(A.eye,A.target),s=r,g=o;if(t!==0){let c=t*Math.PI/180,I=Math.cos(c),E=Math.sin(c);s=H.normalize(H.subtract(H.multiplyScalar(s,I),H.multiplyScalar(i,E)))}let l=H.normalize(H.cross(s,g));if(e!==0){let c=e*Math.PI/180,I=Math.cos(c),E=Math.sin(c);s=H.normalize(H.add(H.multiplyScalar(s,I),H.multiplyScalar(g,E))),g=H.normalize(H.cross(l,s))}if(n!==0){let c=n*Math.PI/180,I=Math.cos(c),E=Math.sin(c);g=H.normalize(H.add(H.multiplyScalar(g,I),H.multiplyScalar(l,E)))}let u=H.add(A.eye,H.multiplyScalar(s,a));return{...A,target:u,up:g}},applyCameraShake(A,e,t){let{translationAmplitude:n,rotationAmplitude:r,frequency:i=2.5,octaves:o=3,seed:a=42}=t;if(n<=0&&r<=0)return A;let s=e*i,g=Se(s,a,o)*n,l=Se(s,a+101.5,o)*n,u=Se(s,a+203.7,o)*(n*.5),c=Se(s,a+307.1,o)*r,I=Se(s,a+409.3,o)*r,E=H.normalize(H.subtract(A.target,A.eye)),d=H.normalize(H.cross(E,A.up)),h=H.cross(d,E),Q=H.add(H.multiplyScalar(d,g),H.add(H.multiplyScalar(h,l),H.multiplyScalar(E,u))),m=H.add(A.eye,Q),D=H.add(A.target,H.add(H.multiplyScalar(d,I*10),H.multiplyScalar(h,c*10)));return{...A,eye:m,target:D}},computeCircleOfConfusion(A,e,t,n,r=32){if(e<=0||n<=0||A<=0)return 0;let i=Math.abs(A-e),o=t/n,a=i/A*o*.5;return Math.min(r,Math.max(0,a))},computeCameraFrustumPlanes(A){let e=t=>{let n=Math.hypot(t[0],t[1],t[2]);return n===0?t:[t[0]/n,t[1]/n,t[2]/n,t[3]/n]};return{left:e([A[3]+A[0],A[7]+A[4],A[11]+A[8],A[15]+A[12]]),right:e([A[3]-A[0],A[7]-A[4],A[11]-A[8],A[15]-A[12]]),bottom:e([A[3]+A[1],A[7]+A[5],A[11]+A[9],A[15]+A[13]]),top:e([A[3]-A[1],A[7]-A[5],A[11]-A[9],A[15]-A[13]]),near:e([A[2],A[6],A[10],A[14]]),far:e([A[3]-A[2],A[7]-A[6],A[11]-A[10],A[15]-A[14]])}},isBoxInFrustum(A,e,t){let n=[t.left,t.right,t.bottom,t.top,t.near,t.far];for(let r of n){let i=r[0]>0?e[0]:A[0],o=r[1]>0?e[1]:A[1],a=r[2]>0?e[2]:A[2];if(r[0]*i+r[1]*o+r[2]*a+r[3]<0)return!1}return!0}};k();var Wi={studio:{top:"#9da3ad",horizon:"#5d626b",bottom:"#202226",softboxes:3.5},soft:{top:"#f1efea",horizon:"#cfcac1",bottom:"#77726a",softboxes:1.2},sunset:{top:"#4d63a3",horizon:"#ff9a5c",bottom:"#3b2a28",softboxes:1},night:{top:"#121a3a",horizon:"#1f2950",bottom:"#05060b",softboxes:.5},neutral:{top:"#9a9a9a",horizon:"#808080",bottom:"#5c5c5c",softboxes:0}},zi={none:0,aces:1,agx:2,neutral:3};function gt(A){let e=er(A)??[0,0,0,1],t=n=>n<=.04045?n/12.92:((n+.055)/1.055)**2.4;return[t(e[0]),t(e[1]),t(e[2])]}function Br(A){let e=Wi[A.preset??"studio"],t=A.intensity??1,n=r=>[r[0]*t,r[1]*t,r[2]*t];return{top:n(gt(A.top??e.top)),horizon:n(gt(A.horizon??e.horizon)),bottom:n(gt(A.bottom??e.bottom)),softboxes:(A.softboxes??e.softboxes)*t,rotationRad:(A.rotation??0)*Math.PI/180,exposureMultiplier:2**(A.exposure??0),toneMapping:zi[A.toneMapping??"neutral"],fog:A.fog?{color:gt(A.fog.color),start:A.fog.start,end:A.fog.end,opacity:Math.max(0,Math.min(1,A.fog.opacity??1))}:void 0}}k();var lt=8,$t=736;function jt(A){if(!A)return[1,1,1];if(Array.isArray(A)){let r=A[0]??1,i=A[1]??1,o=A[2]??1;return[r>1?r/255:r,i>1?i/255:i,o>1?o/255:o]}if(typeof A=="object"&&A!==null){let r=A.r??1,i=A.g??1,o=A.b??1;return[r>1?r/255:r,i>1?i/255:i,o>1?o/255:o]}if(typeof A!="string")return[1,1,1];let e=A.trim().toLowerCase();if(e.startsWith("#")){let r=e.slice(1);if(r.length===3){let i=Number.parseInt(r[0]+r[0],16)/255,o=Number.parseInt(r[1]+r[1],16)/255,a=Number.parseInt(r[2]+r[2],16)/255;return[i,o,a]}if(r.length>=6){let i=Number.parseInt(r.slice(0,2),16)/255,o=Number.parseInt(r.slice(2,4),16)/255,a=Number.parseInt(r.slice(4,6),16)/255;return[i,o,a]}}let t=e.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(t){let r=Number.parseFloat(t[1])/255,i=Number.parseFloat(t[2])/255,o=Number.parseFloat(t[3])/255;return[Math.max(0,Math.min(1,r)),Math.max(0,Math.min(1,i)),Math.max(0,Math.min(1,o))]}let n=e.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(n){let r=Number.parseFloat(n[1])/360,i=Number.parseFloat(n[2])/100,o=Number.parseFloat(n[3])/100;return Xi(r,i,o)}return[1,1,1]}function Xi(A,e,t){if(e===0)return[t,t,t];let n=(o,a,s)=>{let g=s;return g<0&&(g+=1),g>1&&(g-=1),g<1/6?o+(a-o)*6*g:g<1/2?a:g<2/3?o+(a-o)*(2/3-g)*6:o},r=t<.5?t*(1+e):t+e-t*e,i=2*t-r;return[n(i,r,A+1/3),n(i,r,A),n(i,r,A-1/3)]}var qA={computeNormalMatrix(A){let e=_.invert(A);return e?[e[0],e[4],e[8],0,e[1],e[5],e[9],0,e[2],e[6],e[10],0,0,0,0,1]:_.identity()},processLight(A){let e=jt(A.color),t=A.intensity??1,n=A.position?A.position[0]:A.x??0,r=A.position?A.position[1]:A.y??0,i=A.position?A.position[2]:A.z??0,o=A.lightType??A.type??"directional",a=1;o==="ambient"?a=0:o==="directional"?a=1:o==="point"?a=2:o==="spot"&&(a=3);let s=[0,0,-1];if(A.direction)s=H.normalize(A.direction);else if(A.target||A.targetX!==void 0||A.targetY!==void 0||A.targetZ!==void 0){let Q=A.target?A.target[0]:A.targetX??n,m=A.target?A.target[1]:A.targetY??r,D=A.target?A.target[2]:A.targetZ??i,p=[Q,m,D],G=H.subtract(p,[n,r,i]);H.length(G)>1e-4&&(s=H.normalize(G))}let g=Math.max(1,A.radius??1e3),l=A.decay??2,u=Math.max(.1,Math.min(180,A.angle??45)),c=Math.max(0,Math.min(1,A.penumbra??.2)),I=u*Math.PI/180,E=I*(1-c),d=Math.cos(I),h=Math.cos(E);return{posType:[n,r,i,a],dirRadius:[s[0],s[1],s[2],g],colorIntensity:[e[0],e[1],e[2],t],spotParams:[d,h,l,0]}},packLightsUniforms(A,e,t){let n=new Float32Array($t/4);if(qA.packPhysicalBlock(n,A??[],e,t),(!A||A.length===0)&&!e)return n[4]=0,n[5]=0,n;let r=0,i=0,o=0,a=[];for(let g of A)if((g.lightType??g.type)==="ambient"){let u=jt(g.color),c=g.intensity??1;r+=u[0]*c,i+=u[1]*c,o+=u[2]*c}else a.length<lt&&a.push(qA.processLight(g));n[0]=r,n[1]=i,n[2]=o,n[3]=1,n[4]=a.length,n[5]=1;let s=8;for(let g=0;g<lt;g++){if(g<a.length){let l=a[g];n[s+0]=l.posType[0],n[s+1]=l.posType[1],n[s+2]=l.posType[2],n[s+3]=l.posType[3],n[s+4]=l.dirRadius[0],n[s+5]=l.dirRadius[1],n[s+6]=l.dirRadius[2],n[s+7]=l.dirRadius[3],n[s+8]=l.colorIntensity[0],n[s+9]=l.colorIntensity[1],n[s+10]=l.colorIntensity[2],n[s+11]=l.colorIntensity[3],n[s+12]=l.spotParams[0],n[s+13]=l.spotParams[1],n[s+14]=l.spotParams[2],n[s+15]=l.spotParams[3]}else for(let l=0;l<16;l++)n[s+l]=0;s+=16}return n},shadowCasterIndex(A){let e=0;for(let t of A){let n=t.lightType??t.type;if(n!=="ambient"){if(e>=lt)break;if(t.castShadow&&(n==="directional"||n==="spot"))return e;e++}}return-1},packPhysicalBlock(A,e,t,n){let r=8+lt*16,i=0,o=0,a=0;for(let s of e){if((s.lightType??s.type)!=="ambient")continue;let[g,l,u]=jt(s.color),c=s.intensity??1,I=E=>E<=.04045?E/12.92:((E+.055)/1.055)**2.4;i+=I(g)*c,o+=I(l)*c,a+=I(u)*c}if(A[r+0]=i,A[r+1]=o,A[r+2]=a,A[r+3]=1,t){let s=Br(t);A[6]=1,A[7]=s.toneMapping,A[r+3]=s.exposureMultiplier,A.set([...s.top,s.rotationRad],r+4),A.set([...s.horizon,s.softboxes],r+8),A.set([...s.bottom,1],r+12),s.fog&&(A.set([...s.fog.color,1],r+16),A.set([s.fog.start,s.fog.end,s.fog.opacity,0],r+20))}if(n&&n.lightIndex>=0){A.set([1,n.lightIndex,n.softness,n.mapSize],r+24),A.set([n.bias,n.normalOffset,n.darkness,0],r+28);for(let s=0;s<16;s++)A[r+32+s]=n.matrix[s]??0}}};k();k();var An={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".tif":"image/tiff",".tiff":"image/tiff",".avif":"image/avif"};function Ue(A){return An[MA.extname(A).toLowerCase()]??"image/png"}function ut(A){let e=MA.extname(A.replace(/\\/g,"/")).toLowerCase();return!e||e in An}function ve(A,e){if(!A||typeof cA>"u"||!cA.existsSync||!ut(A))return;let t=A.trim().replace(/^file:\/\//,"");try{t=decodeURIComponent(t)}catch{}let n=t.replace(/\\/g,"/"),r=n.split("/").pop()??n,i=[];if(MA.isAbsolute(n)&&i.push(n),e){i.push(MA.resolve(e,n)),i.push(MA.join(e,r)),i.push(MA.join(e,"textures",r));try{for(let o of cA.readdirSync(e))o.toLowerCase().endsWith(".fbm")&&i.push(MA.join(e,o,r))}catch{}}for(let o of i)try{if(cA.existsSync(o)&&cA.statSync(o).isFile())return{bytes:new Uint8Array(cA.readFileSync(o)),mime:Ue(o)}}catch{}}function Ee(A,e,t){let n=ut(t)?"was not found":`is in an unsupported format (use ${Object.keys(An).join(", ")})`;console.warn(`[${A}] Texture "${t}" for material "${e}" ${n}; the material renders without it.`)}var Re=class A{static parse(e,t,n){let r=typeof t=="object"&&t!==null?t:n??{},i=typeof t=="string"?t:r.mtlText,o=[],a=[],s=[],g=[],l={materialName:"default",faces:[]};g.push(l);let u={};i&&Object.assign(u,A.loadTextures(A.parseMtl(i),r.basePath));let c=e.split(/\r?\n/);for(let P=0;P<c.length;P++){let nA=c[P]?.trim();if(!nA||nA.startsWith("#"))continue;let tA=nA.split(/\s+/),rA=tA[0]?.toLowerCase();if(rA==="mtllib"){let AA=tA.slice(1).join(" ").trim();if(r.basePath&&typeof cA<"u"&&cA.existsSync)try{let eA=MA.resolve(r.basePath,AA);if(cA.existsSync(eA)){let gA=cA.readFileSync(eA,"utf-8");Object.assign(u,A.loadTextures(A.parseMtl(gA),MA.dirname(eA)))}}catch{}}else if(rA==="v"){let AA=Number.parseFloat(tA[1]??"0"),eA=Number.parseFloat(tA[2]??"0"),gA=Number.parseFloat(tA[3]??"0");o.push([AA,eA,gA])}else if(rA==="vn"){let AA=Number.parseFloat(tA[1]??"0"),eA=Number.parseFloat(tA[2]??"0"),gA=Number.parseFloat(tA[3]??"0");a.push([AA,eA,gA])}else if(rA==="vt"){let AA=Number.parseFloat(tA[1]??"0"),eA=tA[2]!==void 0?Number.parseFloat(tA[2]):0;s.push([AA,eA])}else if(rA==="usemtl"){let AA=tA[1]??"default";l.faces.length>0?(l={materialName:AA,faces:[]},g.push(l)):l.materialName=AA}else if(rA==="f"){let AA=[];for(let eA=1;eA<tA.length;eA++){let gA=tA[eA];if(!gA)continue;let lA=gA.split("/"),BA=Number.parseInt(lA[0]??"0",10),EA=lA[1]&&lA[1].length>0?Number.parseInt(lA[1],10):0,QA=lA[2]&&lA[2].length>0?Number.parseInt(lA[2],10):0;BA<0&&(BA=o.length+BA+1),EA<0&&(EA=s.length+EA+1),QA<0&&(QA=a.length+QA+1),AA.push({v:BA-1,vt:EA-1,vn:QA-1})}if(AA.length>=3)for(let eA=1;eA<AA.length-1;eA++){let gA=AA[0],lA=AA[eA],BA=AA[eA+1];gA&&lA&&BA&&l.faces.push([gA,lA,BA])}}}let I=1/0,E=1/0,d=1/0,h=-1/0,Q=-1/0,m=-1/0;for(let P of o){let[nA,tA,rA]=P;nA===void 0||tA===void 0||rA===void 0||(nA<I&&(I=nA),tA<E&&(E=tA),rA<d&&(d=rA),nA>h&&(h=nA),tA>Q&&(Q=tA),rA>m&&(m=rA))}Number.isFinite(I)||(I=-1,E=-1,d=-1,h=1,Q=1,m=1);let D=(I+h)*.5,p=(E+Q)*.5,G=(d+m)*.5,N=Math.max(1e-4,h-I),w=Math.max(1e-4,Q-E),U=Math.max(1e-4,m-d),b=Math.max(N,w,U),M=1;r.normalizeSize&&r.normalizeSize>0&&(M=r.normalizeSize/b),typeof r.scale=="number"&&(M*=r.scale);let v=r.center??!1,R=v?D:0,S=v?p:0,K=v?G:0,F=[];for(let P=0;P<g.length;P++){let nA=g[P];if(!nA||nA.faces.length===0)continue;let tA=new Map,rA=[],AA=[],eA=[],gA=[],lA=!1;for(let QA of nA.faces)for(let sA of QA){let yA=`${sA.v}_${sA.vt}_${sA.vn}`,bA=tA.get(yA);if(bA===void 0){bA=rA.length/3,tA.set(yA,bA);let wA=o[sA.v]??[0,0,0],hA=((wA[0]??0)-R)*M,VA=((wA[1]??0)-S)*M,YA=((wA[2]??0)-K)*M;if(rA.push(hA,VA,YA),sA.vt>=0&&s[sA.vt]){let FA=s[sA.vt];eA.push(FA[0]??0,1-(FA[1]??0))}else eA.push(0,0);if(sA.vn>=0&&a[sA.vn]){lA=!0;let FA=a[sA.vn];AA.push(FA[0]??0,FA[1]??0,FA[2]??0)}else AA.push(0,0,0)}gA.push(bA)}if(!lA||r.smoothNormals){let QA=new Float32Array(rA.length);for(let sA=0;sA<gA.length;sA+=3){let yA=gA[sA],bA=gA[sA+1],wA=gA[sA+2],hA=[rA[yA*3],rA[yA*3+1],rA[yA*3+2]],VA=[rA[bA*3],rA[bA*3+1],rA[bA*3+2]],YA=[rA[wA*3],rA[wA*3+1],rA[wA*3+2]],FA=H.subtract(VA,hA),Ht=H.subtract(YA,hA),vA=H.cross(FA,Ht);QA[yA*3]+=vA[0],QA[yA*3+1]+=vA[1],QA[yA*3+2]+=vA[2],QA[bA*3]+=vA[0],QA[bA*3+1]+=vA[1],QA[bA*3+2]+=vA[2],QA[wA*3]+=vA[0],QA[wA*3+1]+=vA[1],QA[wA*3+2]+=vA[2]}for(let sA=0;sA<rA.length/3;sA++){let yA=QA[sA*3],bA=QA[sA*3+1],wA=QA[sA*3+2],hA=Math.hypot(yA,bA,wA)||1;AA[sA*3]=yA/hA,AA[sA*3+1]=bA/hA,AA[sA*3+2]=wA/hA}}let EA=rA.length/3>65535?new Uint32Array(gA):new Uint16Array(gA);F.push({id:`mesh_${P}`,name:nA.materialName,positions:new Float32Array(rA),normals:new Float32Array(AA),uvs:new Float32Array(eA),indices:EA,materialName:nA.materialName})}let z=(I-R)*M,Z=(E-S)*M,$=(d-K)*M,aA=(h-R)*M,W=(Q-S)*M,Y=(m-K)*M,j=aA-z,IA=W-Z,dA=Y-$,uA=(z+aA)*.5,mA=(Z+W)*.5,pA=($+Y)*.5,X=Math.hypot(j,IA,dA)*.5;return{meshes:F,materials:u,animations:[],bounds:{min:[z,Z,$],max:[aA,W,Y],center:[uA,mA,pA],size:[j,IA,dA],boundingSphereRadius:X}}}static parseMtl(e){let t={},n=null,r=e.split(/\r?\n/);for(let i of r){let o=i.trim();if(!o||o.startsWith("#"))continue;let a=o.split(/\s+/),s=a[0]?.toLowerCase();if(s==="newmtl"){let g=a[1]??"default";n={name:g,diffuseColor:[1,1,1,1],specularColor:[1,1,1],ambientColor:[.2,.2,.2],shininess:32,opacity:1},t[g]=n}else if(n)if(s==="kd"){let g=Number.parseFloat(a[1]??"1"),l=Number.parseFloat(a[2]??"1"),u=Number.parseFloat(a[3]??"1");n.diffuseColor=[g,l,u,n.diffuseColor?.[3]??1]}else if(s==="ks"){let g=Number.parseFloat(a[1]??"1"),l=Number.parseFloat(a[2]??"1"),u=Number.parseFloat(a[3]??"1");n.specularColor=[g,l,u],n.specularIntensity=(g+l+u)/3}else if(s==="ka"){let g=Number.parseFloat(a[1]??"0.2"),l=Number.parseFloat(a[2]??"0.2"),u=Number.parseFloat(a[3]??"0.2");n.ambientColor=[g,l,u]}else if(s==="ns")n.shininess=Number.parseFloat(a[1]??"32");else if(s==="d"||s==="tr"){let g=Number.parseFloat(a[1]??"1");n.opacity=s==="d"?g:1-g,n.diffuseColor&&(n.diffuseColor[3]=n.opacity)}else if(s==="map_kd"){n.diffuseTexture=A.mapFileName(a);let g=a.findIndex(l=>l.toLowerCase()==="-clamp");n.textureWrap=g>0&&a[g+1]?.toLowerCase()==="on"?"clamp":"repeat"}else(s==="norm"||s==="map_kn")&&(n.normalTexture=A.mapFileName(a))}return t}static MAP_OPTION_ARGS={"-blendu":1,"-blendv":1,"-cc":1,"-clamp":1,"-texres":1,"-bm":1,"-boost":1,"-imfchan":1,"-type":1,"-mm":2};static mapFileName(e){let t=1;for(;t<e.length&&e[t]?.startsWith("-");){let n=e[t].toLowerCase();if(t++,n==="-o"||n==="-s"||n==="-t")for(let r=0;r<3&&t<e.length&&!Number.isNaN(Number(e[t]));r++)t++;else t+=A.MAP_OPTION_ARGS[n]??0}return e.slice(t).join(" ")}static loadTextures(e,t){if(!t)return e;for(let n of Object.values(e)){if(n.diffuseTexture&&!n.diffuseTextureBuffer){let r=ve(n.diffuseTexture,t);r?(n.diffuseTextureBuffer=r.bytes,n.diffuseTextureMime=r.mime):Ee("ObjLoader",n.name,n.diffuseTexture)}if(n.normalTexture&&!n.normalTextureBuffer){let r=ve(n.normalTexture,t);r?n.normalTextureBuffer=r.bytes:Ee("ObjLoader",n.name,n.normalTexture)}}return e}};function bs(A,e,t={}){return Re.parse(A,e,t)}function Ds(A){return Re.parseMtl(A)}function Le(A,e,t={}){let n;if(typeof A!="string")n=new TextDecoder().decode(A);else{let r=A.trim();if(!(r.startsWith("v ")||r.startsWith("#")||r.includes(`
2
2
  v `)||r.includes("\rv "))&&typeof cA<"u"&&cA.existsSync)try{let o=A.startsWith("file://")?A.slice(7):A;try{o=decodeURIComponent(o)}catch{}cA.existsSync(o)?(n=cA.readFileSync(o,"utf-8"),t={basePath:t.basePath??MA.dirname(o),...t}):n=A}catch{n=A}else n=A}return Re.parse(n,e,t)}k();var pr=_n(Er(),1);k();function ne(A,e,t){let n=r=>[A[r*3],A[r*3+1],A[r*3+2]];for(let r=0;r<e.length;r+=3){let i=e[r],o=e[r+1],a=e[r+2],s=n(i),g=H.cross(H.subtract(n(o),s),H.subtract(n(a),s));for(let l of[i,o,a])t[l*3]+=g[0],t[l*3+1]+=g[1],t[l*3+2]+=g[2]}for(let r=0;r<t.length;r+=3){let i=t[r],o=t[r+1],a=t[r+2],s=Math.hypot(i,o,a)||1;t[r]=i/s,t[r+1]=o/s,t[r+2]=a/s}}function HA(...A){let e=1/0,t=1/0,n=1/0,r=-1/0,i=-1/0,o=-1/0;for(let a of A)for(let s=0;s<a.length;s+=3){let g=a[s],l=a[s+1],u=a[s+2];g<e&&(e=g),g>r&&(r=g),l<t&&(t=l),l>i&&(i=l),u<n&&(n=u),u>o&&(o=u)}return Number.isFinite(e)||(e=t=n=0,r=i=o=0),{min:[e,t,n],max:[r,i,o],center:[(e+r)*.5,(t+i)*.5,(n+o)*.5],size:[r-e,i-t,o-n]}}function RA(A,e){let t=Math.max(...A.size,1e-4),n=1;e.normalizeSize&&e.normalizeSize>0&&(n=e.normalizeSize/t);let r=[n,n,n];return typeof e.scale=="number"?(r[0]*=e.scale,r[1]*=e.scale,r[2]*=e.scale):Array.isArray(e.scale)&&(r[0]*=e.scale[0],r[1]*=e.scale[1],r[2]*=e.scale[2]),{offset:e.center?A.center:[0,0,0],scale:r}}function JA(A,{offset:e,scale:t}){let n=new Float32Array(A.length);for(let r=0;r<A.length;r+=3)n[r]=(A[r]-e[0])*t[0],n[r+1]=(A[r+1]-e[1])*t[1],n[r+2]=(A[r+2]-e[2])*t[2];return n}function OA(A,e){return e>65535?new Uint32Array(A):new Uint16Array(A)}function KA(A,{offset:e,scale:t}){let n=[(A.min[0]-e[0])*t[0],(A.min[1]-e[1])*t[1],(A.min[2]-e[2])*t[2]],r=[(A.max[0]-e[0])*t[0],(A.max[1]-e[1])*t[1],(A.max[2]-e[2])*t[2]];return{min:n,max:r,center:[(n[0]+r[0])*.5,(n[1]+r[1])*.5,(n[2]+r[2])*.5],size:[r[0]-n[0],r[1]-n[1],r[2]-n[2]],boundingSphereRadius:Math.hypot(r[0]-n[0],r[1]-n[1],r[2]-n[2])*.5}}k();var re=128;function Zi(A,e,t){let[n,r,i,o]=e,a=n*n,s=r*r,g=i*i,l=n*r,u=n*i,c=r*i,I=o*n,E=o*r,d=o*i;return[(1-2*(s+g))*t[0],2*(l+d)*t[0],2*(u-E)*t[0],0,2*(l-d)*t[1],(1-2*(a+g))*t[1],2*(c+I)*t[1],0,2*(u+E)*t[2],2*(c-I)*t[2],(1-2*(a+s))*t[2],0,A[0],A[1],A[2],1]}function dr(A){let e=Math.hypot(A[0],A[1],A[2],A[3])||1;return[A[0]/e,A[1]/e,A[2]/e,A[3]/e]}function qi(A,e,t){let n=A[0]*e[0]+A[1]*e[1]+A[2]*e[2]+A[3]*e[3],r=n<0?-1:1;if(n*=r,n>.9995)return dr([A[0]+(r*e[0]-A[0])*t,A[1]+(r*e[1]-A[1])*t,A[2]+(r*e[2]-A[2])*t,A[3]+(r*e[3]-A[3])*t]);let i=Math.acos(n),o=Math.sin(i),a=Math.sin((1-t)*i)/o,s=r*Math.sin(t*i)/o;return[A[0]*a+e[0]*s,A[1]*a+e[1]*s,A[2]*a+e[2]*s,A[3]*a+e[3]*s]}function _i(A,e){let t=0,n=A.length-1;for(;t<n;){let r=t+n+1>>1;(A[r]??0)<=e?t=r:n=r-1}return t}function oe(A,e,t,n,r=1){let i=n?(e*3+r)*t:e*t;return Array.from(A.subarray(i,i+t))}function en(A,e,t,n){let{times:r}=A,i=A.interpolation==="cubic",o=r.length-1;if(n<=(r[0]??0))return oe(e,0,t,i);if(n>=(r[o]??0))return oe(e,o,t,i);let a=_i(r,n);if(A.interpolation==="step")return oe(e,a,t,i);let s=r[a]??0,g=(r[a+1]??s)-s,l=g>0?(n-s)/g:0,u=oe(e,a,t,i),c=oe(e,a+1,t,i);if(i){let I=oe(e,a,t,!0,2),E=oe(e,a+1,t,!0,0),d=l*l,h=d*l,Q=u.map((m,D)=>(2*h-3*d+1)*m+(h-2*d+l)*g*(I[D]??0)+(-2*h+3*d)*(c[D]??0)+(h-d)*g*(E[D]??0));return t===4?dr(Q):Q}return t===4?qi(u,c,l):u.map((I,E)=>I+((c[E]??I)-I)*l)}function ji(A,e,t){let n=A.map(a=>[...a.translation]),r=A.map(a=>[...a.rotation]),i=A.map(a=>[...a.scale]),o=new Map(A.map((a,s)=>[a.name,s]));for(let a of e?.tracks??[]){let s=a.node??o.get(a.nodeName);s===void 0||!a.times.length||(a.translations&&(n[s]=en(a,a.translations,3,t)),a.rotations&&(r[s]=en(a,a.rotations,4,t)),a.scales&&(i[s]=en(a,a.scales,3,t)))}return A.map((a,s)=>a.matrix??Zi(n[s],r[s],i[s]))}function It(A,e,t){let n=A.nodes??[],r=ji(n,e,t),i=new Array(n.length),o=a=>{let s=i[a];if(s)return s;let g=n[a].parent,l=g<0?r[a]:_.multiply(o(g),r[a]);return i[a]=l,l};return n.map((a,s)=>o(s))}function vs(A,e,t){let n=A.skins?.[e];if(!n)throw new Error(`model has no skin ${e}`);let r=new Float32Array(re*16);for(let i=0;i<re;i++){let o=n.joints[i];if(o===void 0){r.set(_.identity(),i*16);continue}let a=Array.from(n.inverseBindMatrices.subarray(i*16,i*16+16));r.set(_.multiply(t[o],a),i*16)}return r}var ae=class A{static FBX_KTIME=46186158e3;static parse(e,t={}){let n=typeof e=="string"?A.parseAscii(e):A.isBinary(e)?A.parseBinary(e):A.parseAscii(new TextDecoder().decode(e));return A.buildModelFromTree(n,t)}static isBinary(e){let t=e instanceof Uint8Array?e:new Uint8Array(e);if(t.length<27)return!1;let n="Kaydara FBX Binary \0\0";for(let r=0;r<n.length;r++)if(t[r]!==n.charCodeAt(r))return!1;return!0}static parseBinary(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=new DataView(t.buffer,t.byteOffset,t.byteLength),i=n.getUint32(23,!0)>=7500,o=27,a={name:"Root",props:[],children:[]},s=()=>{if(o>=t.byteLength)return null;let g,l,u;if(i){if(o+25>t.byteLength)return null;g=Number(n.getBigUint64(o,!0)),l=Number(n.getBigUint64(o+8,!0)),u=n.getUint8(o+24),o+=25}else{if(o+13>t.byteLength)return null;g=n.getUint32(o,!0),l=n.getUint32(o+4,!0),u=n.getUint8(o+12),o+=13}if(g===0)return null;let c=new TextDecoder().decode(t.subarray(o,o+u));o+=u;let I=[];for(let d=0;d<l;d++){let h=String.fromCharCode(t[o]);switch(o+=1,h){case"Y":{I.push(n.getInt16(o,!0)),o+=2;break}case"C":case"B":{I.push(n.getUint8(o)!==0),o+=1;break}case"I":{I.push(n.getInt32(o,!0)),o+=4;break}case"F":{I.push(n.getFloat32(o,!0)),o+=4;break}case"D":{I.push(n.getFloat64(o,!0)),o+=8;break}case"L":{I.push(Number(n.getBigInt64(o,!0))),o+=8;break}case"S":{let Q=n.getUint32(o,!0);o+=4;let m=new TextDecoder().decode(t.subarray(o,o+Q));I.push(m),o+=Q;break}case"R":{let Q=n.getUint32(o,!0);o+=4;let m=t.subarray(o,o+Q);I.push(m),o+=Q;break}case"f":case"d":case"i":case"l":case"b":case"c":{let Q=n.getUint32(o,!0),m=n.getUint32(o+4,!0),D=n.getUint32(o+8,!0);o+=12;let p;if(m===1){let N=t.subarray(o,o+D);p=(0,pr.inflateSync)(N),o+=D}else{let w=Q*(h==="d"||h==="l"?8:h==="f"||h==="i"?4:1);p=t.subarray(o,o+w),o+=w}let G=new DataView(p.buffer,p.byteOffset,p.byteLength);if(h==="f"){let N=new Float32Array(Q);for(let w=0;w<Q;w++)N[w]=G.getFloat32(w*4,!0);I.push(N)}else if(h==="d"){let N=new Float64Array(Q);for(let w=0;w<Q;w++)N[w]=G.getFloat64(w*8,!0);I.push(N)}else if(h==="i"){let N=new Int32Array(Q);for(let w=0;w<Q;w++)N[w]=G.getInt32(w*4,!0);I.push(N)}else if(h==="l"){let N=new Float64Array(Q);for(let w=0;w<Q;w++)N[w]=Number(G.getBigInt64(w*8,!0));I.push(N)}else if(h==="b"){let N=new Uint8Array(Q);for(let w=0;w<Q;w++)N[w]=G.getUint8(w);I.push(N)}else I.push(p);break}default:break}}let E=[];for(;o<g;){let d=s();if(d)E.push(d);else break}return o=g,{name:c,props:I,children:E}};for(;o<t.byteLength-(i?25:13);){let g=s();if(g)a.children.push(g);else break}return a}static parseAscii(e){let t={name:"Root",props:[],children:[]},n=[t],r=e.split(/\r?\n/);for(let i=0;i<r.length;i++){let o=r[i]?.trim();if(!o||o.startsWith(";"))continue;if(o==="}"){n.length>1&&n.pop();continue}let a=o.indexOf(":");if(a===-1)continue;let s=o.substring(0,a).trim(),g=o.substring(a+1).trim(),l=g.endsWith("{"),u=l?g.slice(0,-1).trim():g,c=[];if(u){let d=u.split(",").map(h=>h.trim());for(let h of d)h.startsWith('"')&&h.endsWith('"')?c.push(h.slice(1,-1)):Number.isNaN(Number(h))?c.push(h):c.push(Number(h))}let I={name:s,props:c,children:[]},E=n[n.length-1];E&&E.children.push(I),l&&n.push(I)}return t}static textureSlot(e){let t=e.toLowerCase();if(t==="diffusecolor"||t==="diffuse"||t.endsWith("|basecolor")||t.endsWith("|base_color")||t==="basecolor")return"diffuse";if(t==="normalmap"||t.endsWith("|normalcamera")||t.endsWith("|bump_map"))return"normal"}static attachTextures(e,t,n,r,i){let o=(a,s)=>{let g=a?.children.find(l=>l.name===s)?.props[0];return typeof g=="string"&&g?g:void 0};for(let a of r){if(a.parentId!==t||!a.propName)continue;let s=A.textureSlot(a.propName),g=n.get(a.childId);if(!s||g?.node.name!=="Texture"||(s==="diffuse"?e.diffuseTextureBuffer:e.normalTextureBuffer))continue;let l=r.filter(E=>E.parentId===a.childId&&!E.propName).map(E=>n.get(E.childId)?.node).find(E=>E?.name==="Video"),u=o(g.node,"RelativeFilename")??o(g.node,"FileName")??o(l,"RelativeFilename")??o(l,"Filename");if(u&&!ut(u)){Ee("FbxLoader",e.name,u);continue}let c,I=l?.children.find(E=>E.name==="Content")?.props[0];if(I instanceof Uint8Array&&I.length>0?c=I:u&&(c=ve(u,i)?.bytes),!c){u&&Ee("FbxLoader",e.name,u);continue}s==="diffuse"?(e.diffuseTextureBuffer=c,e.diffuseTextureMime=Ue(u??""),u&&(e.diffuseTexture=u),e.textureWrap="repeat"):(e.normalTextureBuffer=c,u&&(e.normalTexture=u))}}static buildModelFromTree(e,t={}){let n=e.children.find(b=>b.name==="Objects"),r=e.children.find(b=>b.name==="Connections"),i=new Map;if(n)for(let b of n.children){let M=b.props[0]??0,R=String(b.props[1]??"").split("::"),S=R.length>1?R[1]:R[0],K=String(b.props[2]??b.name);i.set(M,{id:M,name:S,type:K,node:b})}let o=[];if(r){for(let b of r.children)if(b.name==="C"||b.name==="Connect"){let M=String(b.props[0]),v=b.props[1]??0,R=b.props[2]??0,S=M==="OP"?String(b.props[3]):void 0;o.push({childId:v,parentId:R,propName:S})}}let a=b=>{for(let M of o){let v=M.parentId===b?i.get(M.childId):void 0;if(v?.node.name==="Material"&&!M.propName)return v.name}for(let M of o)if(!(M.childId!==b||M.propName))for(let v of o){if(v.parentId!==M.parentId||v.propName)continue;let R=i.get(v.childId);if(R?.node.name==="Material")return R.name}},s=[],g={};function l(b){if(!b)return[];if(b.props[0]instanceof Float32Array||b.props[0]instanceof Float64Array||b.props[0]instanceof Int32Array||Array.isArray(b.props[0]))return b.props[0];let M=b.children.find(v=>v.name==="a");return M&&M.props.length>0?M.props:Array.isArray(b.props)&&b.props.length>0&&typeof b.props[0]=="number"?b.props:[]}let u=[...i.values()].filter(b=>b.node.name==="Model").map(b=>b.id),c=new Map(u.map((b,M)=>[b,M])),I=u.map(b=>{let M=i.get(b),v=o.find(R=>R.childId===b&&!R.propName&&c.has(R.parentId));return{name:M.name,parent:v?c.get(v.parentId):-1,translation:ke(M.node,"Lcl Translation",0),rotation:Qr(M.node,Bt(ke(M.node,"Lcl Rotation",0),yr(M.node))),scale:ke(M.node,"Lcl Scaling",1)}}),E=b=>o.find(M=>M.childId===b&&!M.propName&&c.has(M.parentId))?.parentId,d=[];for(let[b,M]of i)if(M.node.name==="Geometry"&&(M.type==="Mesh"||M.node.props[2]==="Mesh"||M.type==="")){let v=M.node,R=v.children.find(AA=>AA.name==="Vertices"),S=v.children.find(AA=>AA.name==="PolygonVertexIndex");if(!R||!S)continue;let K=l(R),F=l(S),z=(AA,eA,gA,lA)=>{let BA=v.children.find(EA=>EA.name===AA);if(BA)return $i(BA,l(BA.children.find(EA=>EA.name===eA)),l(BA.children.find(EA=>EA.name===gA)),lA)},Z=z("LayerElementNormal","Normals","NormalsIndex",3),$=z("LayerElementUV","UV","UVIndex",2),aA=[],W=[],Y=0;for(let AA=0;AA<F.length;AA++){let eA=F[AA];if(W.push({cp:eA<0?-(eA+1):eA,pv:AA}),!(eA>=0)){for(let gA=1;gA<W.length-1;gA++)for(let lA of[W[0],W[gA],W[gA+1]])aA.push({...lA,poly:Y});W=[],Y++}}let j=aA.length,IA=new Float32Array(j*3),dA=new Float32Array(j*3),uA=new Float32Array(j*2),mA=new Array(j);aA.forEach(({cp:AA,pv:eA,poly:gA},lA)=>{IA[lA*3]=K[AA*3]??0,IA[lA*3+1]=K[AA*3+1]??0,IA[lA*3+2]=K[AA*3+2]??0;let BA=Z?.(AA,eA,gA);dA.set(BA??[0,0,1],lA*3);let EA=$?.(AA,eA,gA);uA[lA*2]=EA?.[0]??0,uA[lA*2+1]=1-(EA?.[1]??0),mA[lA]=lA}),(!Z||t.smoothNormals)&&(dA.fill(0),ne(IA,mA,dA));let pA=o.find(AA=>AA.parentId===b&&i.get(AA.childId)?.node.name==="Deformer"&&i.get(AA.childId)?.node.props[2]==="Skin"),X,P,nA;if(pA){let AA=[],eA=[],gA=new Map;for(let lA of o){let BA=i.get(lA.childId);if(lA.parentId!==pA.childId||BA?.node.name!=="Deformer"||BA.node.props[2]!=="Cluster")continue;let EA=o.find(hA=>hA.parentId===BA.id&&c.has(hA.childId))?.childId;if(EA===void 0)continue;let QA=AA.length;AA.push(c.get(EA));let sA=mr(BA.node,"Transform"),yA=mr(BA.node,"TransformLink");eA.push(..._.multiply(_.invert(yA)??_.identity(),sA));let bA=l(BA.node.children.find(hA=>hA.name==="Indexes")),wA=l(BA.node.children.find(hA=>hA.name==="Weights"));for(let hA=0;hA<bA.length;hA++){let VA=Number(wA[hA]??0);if(!(VA>0))continue;let YA=Number(bA[hA]),FA=gA.get(YA)??[];FA.push([QA,VA]),gA.set(YA,FA)}}if(AA.length>re)throw new Error(`FBX skin has ${AA.length} bones; the mesh shader holds ${re}`);AA.length>0&&(nA=d.length,d.push({joints:AA,inverseBindMatrices:new Float32Array(eA)}),X=new Float32Array(j*4),P=new Float32Array(j*4),aA.forEach(({cp:lA},BA)=>{let EA=(gA.get(lA)??[]).sort((sA,yA)=>yA[1]-sA[1]).slice(0,4),QA=EA.reduce((sA,[,yA])=>sA+yA,0);EA.forEach(([sA,yA],bA)=>{X[BA*4+bA]=sA,P[BA*4+bA]=QA>0?yA/QA:0})}))}let tA=E(b),rA=j>65535;s.push({id:`fbx_mesh_${b}`,name:M.name,positions:IA,normals:dA,uvs:uA,indices:rA?new Uint32Array(mA):new Uint16Array(mA),jointIndices:X,jointWeights:P,materialName:a(b)??M.name,node:tA!==void 0?c.get(tA):void 0,skin:nA})}for(let[,b]of i)if(b.node.name==="Material"){let v=b.node.children.find(z=>z.name==="Properties70"),R=[1,1,1,1],S=32,K=1;if(v){for(let z of v.children)if(z.name==="P"){let Z=String(z.props[0]);if(Z==="DiffuseColor"||Z==="Color"){let $=Number(z.props[4]??1),aA=Number(z.props[5]??1),W=Number(z.props[6]??1);R=[$,aA,W,1]}else Z==="Shininess"||Z==="ShininessExponent"?S=Number(z.props[4]??32):Z==="Opacity"&&(K=Number(z.props[4]??1),R[3]=K)}}let F={name:b.name,diffuseColor:R,shininess:S,opacity:K};A.attachTextures(F,b.id,i,o,t.basePath),g[b.name]=F}let h=[];for(let[b,M]of i)if(M.node.name==="AnimationStack"){let v=M.name||"Take 001",R=[],S=o.find(F=>F.parentId===b&&i.get(F.childId)?.node.name==="AnimationLayer");if(S){let F=o.filter(Z=>Z.parentId===S.childId&&i.get(Z.childId)?.node.name==="AnimationCurveNode"),z=new Map;for(let Z of F){let $=i.get(Z.childId);if(!$)continue;let aA=o.find(uA=>uA.childId===$.id&&i.get(uA.parentId)?.node.name==="Model"),W=aA?i.get(aA.parentId):void 0,Y=hr(aA?.propName)??hr($.name);if(!Y)continue;let j=`${W?.id??$.id}|${Y}`,IA=z.get(j);if(!IA){let uA=W?.node;IA={nodeName:W?.name??$.name,modelId:W?.id,model:uA,kind:Y,defaults:eo(uA,$.node,Y),channels:[void 0,void 0,void 0]},z.set(j,IA)}o.filter(uA=>uA.parentId===$.id&&i.get(uA.childId)?.node.name==="AnimationCurve").forEach((uA,mA)=>{let pA=Ao(uA.propName)??mA;if(pA>2)return;let X=i.get(uA.childId)?.node,P=l(X?.children.find(rA=>rA.name==="KeyTime")),nA=l(X?.children.find(rA=>rA.name==="KeyValueFloat")),tA=Math.min(P.length,nA.length);tA!==0&&(IA.channels[pA]={times:Array.from(P.slice(0,tA),rA=>Number(rA)),values:Array.from(nA.slice(0,tA),rA=>Number(rA))})})}for(let Z of z.values()){let $=ro(Z);if($){if(Z.modelId!==void 0&&($.node=c.get(Z.modelId)),$.rotations&&Z.model)for(let aA=0;aA<$.rotations.length;aA+=4){let W=Array.from($.rotations.subarray(aA,aA+4));$.rotations.set(Qr(Z.model,W),aA)}R.push($)}}}let K=1;for(let F of R)if(F.times.length>0){let z=F.times[F.times.length-1]??0;z>K&&(K=z)}h.push({name:v,duration:K,fps:30,tracks:R})}let Q={meshes:s,materials:g,animations:h,nodes:I,skins:d,bounds:{min:[0,0,0],max:[0,0,0],center:[0,0,0],size:[0,0,0],boundingSphereRadius:0}},m=It(Q,void 0,0),D=[1/0,1/0,1/0],p=[-1/0,-1/0,-1/0];for(let b of s){let M=b.node!==void 0?m[b.node]:void 0;for(let v=0;v<b.positions.length;v+=3){let R=[b.positions[v],b.positions[v+1],b.positions[v+2]],S=M?_.projectPoint(M,R):R;for(let K=0;K<3;K++)S[K]<D[K]&&(D[K]=S[K]),S[K]>p[K]&&(p[K]=S[K])}}Number.isFinite(D[0])||(D.fill(-1),p.fill(1));let{offset:G,scale:N}=RA({min:D,max:p,center:[(D[0]+p[0])*.5,(D[1]+p[1])*.5,(D[2]+p[2])*.5],size:[p[0]-D[0],p[1]-D[1],p[2]-D[2]]},t);Q.rootTransform=_.multiply(_.scale(N[0],N[1],N[2]),_.translate(-G[0],-G[1],-G[2]));let w=[0,1,2].map(b=>(D[b]-G[b])*N[b]),U=[0,1,2].map(b=>(p[b]-G[b])*N[b]);return Q.bounds={min:w,max:U,center:[(w[0]+U[0])*.5,(w[1]+U[1])*.5,(w[2]+U[2])*.5],size:[U[0]-w[0],U[1]-w[1],U[2]-w[2]],boundingSphereRadius:Math.hypot(U[0]-w[0],U[1]-w[1],U[2]-w[2])*.5},Q}};function ke(A,e,t){let n=de(A,e);return[0,1,2].map(r=>{let i=n?.[r];return i!==void 0&&Number.isFinite(i)?i:t})}function Cr(A,e){return[A[3]*e[0]+A[0]*e[3]+A[1]*e[2]-A[2]*e[1],A[3]*e[1]-A[0]*e[2]+A[1]*e[3]+A[2]*e[0],A[3]*e[2]+A[0]*e[1]-A[1]*e[0]+A[2]*e[3],A[3]*e[3]-A[0]*e[0]-A[1]*e[1]-A[2]*e[2]]}function Qr(A,e){let t=de(A,"PreRotation"),n=de(A,"PostRotation"),r=e;if(t&&(r=Cr(Bt(ke(A,"PreRotation",0)),r)),n){let i=Bt(ke(A,"PostRotation",0));r=Cr(r,[-i[0],-i[1],-i[2],i[3]])}return r}function mr(A,e){let t=A.children.find(i=>i.name===e),n=t?.children.find(i=>i.name==="a")?.props??t?.props,r=n?.[0]instanceof Float64Array||n?.[0]instanceof Float32Array?Array.from(n[0]):(n??[]).map(Number);return r.length===16?r:_.identity()}function $i(A,e,t,n){if(e.length===0)return;let r=a=>String(A.children.find(s=>s.name===a)?.props[0]??""),i=r("MappingInformationType"),o=/^Index/.test(r("ReferenceInformationType"))&&t.length>0;return(a,s,g)=>{let l=i==="ByPolygonVertex"?s:i==="ByPolygon"?g:i==="AllSame"?0:a;return o&&(l=Number(t[l]??l)),Array.from({length:n},(u,c)=>Number(e[l*n+c]??0))}}function hr(A){switch(A){case"Lcl Translation":case"T":return"T";case"Lcl Rotation":case"R":return"R";case"Lcl Scaling":case"S":return"S";default:return}}function Ao(A){switch(A){case"d|X":return 0;case"d|Y":return 1;case"d|Z":return 2;default:return}}function de(A,e){let n=A?.children.find(r=>r.name==="Properties70")?.children.find(r=>r.name==="P"&&r.props[0]===e);if(n)return n.props.slice(4).map(r=>Number(r))}function eo(A,e,t){let n=t==="S"?1:0,r=de(A,t==="T"?"Lcl Translation":t==="R"?"Lcl Rotation":"Lcl Scaling"),i=[n,n,n];for(let o=0;o<3;o++){let a=r?.[o],s=de(e,`d|${"XYZ"[o]}`)?.[0],g=a??s;g!==void 0&&Number.isFinite(g)&&(i[o]=g)}return i}var to=["XYZ","XZY","YZX","YXZ","ZXY","ZYX"];function yr(A){let e=de(A,"RotationOrder")?.[0]??0;return to[e]??"XYZ"}function Bt(A,e="XYZ"){let t=[0,0,0,1];for(let n of e){let r="XYZ".indexOf(n),i=(A[r]??0)*Math.PI/360,o=Math.sin(i),a=[0,0,0,Math.cos(i)];a[r]=o,t=[a[3]*t[0]+a[0]*t[3]+a[1]*t[2]-a[2]*t[1],a[3]*t[1]-a[0]*t[2]+a[1]*t[3]+a[2]*t[0],a[3]*t[2]+a[0]*t[1]-a[1]*t[0]+a[2]*t[3],a[3]*t[3]-a[0]*t[0]-a[1]*t[1]-a[2]*t[2]]}return t}function no(A,e){let{times:t,values:n}=A,r=t.length-1;if(e<=t[0])return n[0];if(e>=t[r])return n[r];let i=0;for(;i<r-1&&t[i+1]<=e;)i++;let o=t[i],a=t[i+1],s=a>o?(e-o)/(a-o):0;return n[i]+(n[i+1]-n[i])*s}function ro(A){let e=new Set;for(let s of A.channels)for(let g of s?.times??[])e.add(g);if(e.size===0)return;let t=[...e].sort((s,g)=>s-g),n=new Float32Array(t.length),r=A.kind==="R",i=new Float32Array(t.length*(r?4:3)),o=r?yr(A.model):"XYZ",a;return t.forEach((s,g)=>{n[g]=s/ae.FBX_KTIME;let l=[0,1,2].map(c=>{let I=A.channels[c];return I?no(I,s):A.defaults[c]});if(!r){i.set(l,g*3);return}let u=Bt(l,o);if(a&&a[0]*u[0]+a[1]*u[1]+a[2]*u[2]+a[3]*u[3]<0)for(let c=0;c<4;c++)u[c]=-u[c];a=u,i.set(u,g*4)}),{nodeName:A.nodeName,times:n,translations:A.kind==="T"?i:void 0,rotations:r?i:void 0,scales:A.kind==="S"?i:void 0}}function Ks(A,e={}){return ae.parse(A,e)}function Pe(A,e={}){let t=A;if(typeof A=="string"){let n=A.trim();if(!(n.includes("FBXHeaderExtension")||n.includes("Kaydara FBX"))&&typeof cA<"u"&&cA.existsSync)try{let i=A.startsWith("file://")?A.slice(7):A;try{i=decodeURIComponent(i)}catch{}if(cA.existsSync(i)){let o=cA.readFileSync(i);t=new Uint8Array(o.buffer,o.byteOffset,o.byteLength),e={basePath:MA.dirname(i),...e}}}catch{}}return ae.parse(t,e)}k();k();var br=`
3
3
  struct AudioLatentBuffer {
4
4
  fftBins : array<f32, 1024>,
@@ -1,4 +1,4 @@
1
- import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Gt,p as C,q as T,r as Mt,s as Ut,t as Bt}from"./chunk-BBHRXV75.mjs";import{c as yt,d as xt,e as $}from"./chunk-SYP4AJMF.mjs";import{a as vt,b as it,d as bt,e as A}from"./chunk-KJGNTREI.mjs";import{B as wt,b as Pt,j as O,v as St,y as G,z as U}from"./chunk-2LQCQ3OT.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 vt(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,u=this.decodeBuffer;return(!u||u.length!==c)&&(u=new Uint8Array(c),this.decodeBuffer=u),await s.copyTo(u,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(u),{width:a,height:o,buffer:u})}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 bt(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)}},ee=new at;x();x();var Dt=`
1
+ import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Gt,p as C,q as T,r as Mt,s as Ut,t as Bt}from"./chunk-4C26NVQY.mjs";import{c as yt,d as xt,e as $}from"./chunk-SYP4AJMF.mjs";import{a as vt,b as it,d as bt,e as A}from"./chunk-KJGNTREI.mjs";import{B as wt,b as Pt,j as O,v as St,y as G,z as U}from"./chunk-Q6CRERSJ.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 vt(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,u=this.decodeBuffer;return(!u||u.length!==c)&&(u=new Uint8Array(c),this.decodeBuffer=u),await s.copyTo(u,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(u),{width:a,height:o,buffer:u})}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 bt(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)}},ee=new at;x();x();var Dt=`
2
2
  struct CompositeUniforms {
3
3
  blendMode : u32,
4
4
  padding1 : u32,
@@ -1,4 +1,4 @@
1
- import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-BBHRXV75.mjs";import{b as Ge}from"./chunk-2SJ4BBMT.mjs";import{d as at}from"./chunk-6YJP57MZ.mjs";import{h as st,i as ct,j as L,x as be}from"./chunk-2LQCQ3OT.mjs";import{a as de}from"./chunk-IQC2I5A5.mjs";import{d as Re,e as we}from"./chunk-BVF64D6H.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function Fe(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(Fe(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(Fe(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(Fe(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(Fe(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(Fe(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return L.hasEmojiFont()&&console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),L.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,We=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-We)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=e.fontSize??48,c=L.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);L.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),We=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(We=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:We,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let F of I){let O=x.glyphs[F].charIndex,$=T.get(O);$?$.push(F):T.set(O,[F])}let M=Array.from(T.values()),g=F=>{let O=x.glyphs[F[0]];return O.clusterX??O.x};M.sort((F,O)=>g(F)-g(O));let _=[];for(let F of M){let O=x.glyphs[F[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let F=0;F<M.length-1;F++)G+=y*_[F];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let F=0;F<M.length;F++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xe[$]+=O;F<M.length-1&&(N+=y*_[F])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,F=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:W,p_out:E}=je(z,K,ae,ne,F,q,!0),B=_e(W,E,f,ie,l,te,z,K,ae,ne,F,e.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,se=B.rot,V=B.scale,I===void 0&&(Ce=B.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let W=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=W.transX,J=W.transY,se=W.rot,V=W.scale,Me=W.scaleX,Ue=W.scaleY,O=W.opacity,I===void 0&&(Ce=W.blurAmount),W.color&&(tt=W.color),W.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),De=W.transZ??0,nt=W.chromaticShift??0,it=W.dissolveProgress??0,ot=W.vfxParam??0,Ne=W.skewM01??0,Le=W.skewM10??0,Be=W.anchorConfig,rt=W.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let W=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,W)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Ft=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Ft??D);(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Ie=R.width*B/2*Me,Ae=R.height*B/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*B+Ie,ce=-R.bearingY*B+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+W,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*B+Ie+e.dstRect.x+a+y+W,Te=p.y-R.bearingY*B+Ae+re.y+a+S;if(Be){let ve={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Wt=p.opacity??1;g[E+19]=Ye.a*O*rt*Wt,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&L.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;N=N.translate(F,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-F,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
1
+ import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-4C26NVQY.mjs";import{b as Ge}from"./chunk-2SJ4BBMT.mjs";import{d as at}from"./chunk-6YJP57MZ.mjs";import{h as st,i as ct,j as L,x as be}from"./chunk-Q6CRERSJ.mjs";import{a as de}from"./chunk-IQC2I5A5.mjs";import{d as Re,e as we}from"./chunk-BVF64D6H.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function Fe(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(Fe(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(Fe(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(Fe(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(Fe(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(Fe(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return L.hasEmojiFont()&&console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),L.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,We=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-We)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=e.fontSize??48,c=L.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);L.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),We=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(We=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:We,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let F of I){let O=x.glyphs[F].charIndex,$=T.get(O);$?$.push(F):T.set(O,[F])}let M=Array.from(T.values()),g=F=>{let O=x.glyphs[F[0]];return O.clusterX??O.x};M.sort((F,O)=>g(F)-g(O));let _=[];for(let F of M){let O=x.glyphs[F[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let F=0;F<M.length-1;F++)G+=y*_[F];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let F=0;F<M.length;F++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xe[$]+=O;F<M.length-1&&(N+=y*_[F])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,F=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:W,p_out:E}=je(z,K,ae,ne,F,q,!0),B=_e(W,E,f,ie,l,te,z,K,ae,ne,F,e.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,se=B.rot,V=B.scale,I===void 0&&(Ce=B.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let W=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=W.transX,J=W.transY,se=W.rot,V=W.scale,Me=W.scaleX,Ue=W.scaleY,O=W.opacity,I===void 0&&(Ce=W.blurAmount),W.color&&(tt=W.color),W.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),De=W.transZ??0,nt=W.chromaticShift??0,it=W.dissolveProgress??0,ot=W.vfxParam??0,Ne=W.skewM01??0,Le=W.skewM10??0,Be=W.anchorConfig,rt=W.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let W=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,W)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Ft=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Ft??D);(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Ie=R.width*B/2*Me,Ae=R.height*B/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*B+Ie,ce=-R.bearingY*B+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+W,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*B+Ie+e.dstRect.x+a+y+W,Te=p.y-R.bearingY*B+Ae+re.y+a+S;if(Be){let ve={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Wt=p.opacity??1;g[E+19]=Ye.a*O*rt*Wt,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&L.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;N=N.translate(F,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-F,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
2
2
  `).split(`
3
3
  `),e=[];for(let i=0;i<n.length;i++){let r=n[i],c=n[i+1];if(r?.match(/([0-9]+)/)&&c?.includes(" --> ")){let d=c.split(" --> "),u=Tt(d[0]),m=Tt(d[1]);e.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?e.length>0&&(e[e.length-1].text=e[e.length-1].text.trim()):e.length>0&&(e[e.length-1].text+=r+`
4
4
  `))}return{captions:e.map(i=>({...i,text:i.text.trimEnd()}))}}function Dt(t,n,e=!0){if(!t||t.length===0)return null;let i=t.find(r=>n>=r.startMs&&n<r.endMs);return i||(!e&&t.length>0?t[0]:null)}function un(t,n,e){if(!t||t.length===0)return 160;let i=n.fontSize??48,r=n.letterSpacing??0,c=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*i:n.lineHeight??i*1.2,d=n.padding??(n.background?12:0),u=e?Math.max(10,e-d*2):void 0,m=n.fontFamily??"Inter";L.isFailed(m)&&(m="Inter");let C=L.getFont(m,n.fontWeight,null,void 0,i),h=0;for(let k of t){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=be.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`