framefields 2.2.0-beta.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-1QquqDJs.d.mts → audio-BvYmTu5T.d.mts} +3 -3
- package/dist/{audio-1QquqDJs.d.mts.map → audio-BvYmTu5T.d.mts.map} +1 -1
- package/dist/{audio-BYqbtdH8.mjs → audio-DMUr01vS.mjs} +3 -3
- package/dist/{audio-BYqbtdH8.mjs.map → audio-DMUr01vS.mjs.map} +1 -1
- package/dist/{dist-BLbXEC6V.mjs → dist-CT___nEU.mjs} +3 -5
- package/dist/dist-CT___nEU.mjs.map +1 -0
- package/dist/{dist-DQlYw4eG.mjs → dist-cjxDXQdx.mjs} +49 -48
- package/dist/dist-cjxDXQdx.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +34 -34
- package/dist/{effects-DgpPr38s.mjs → effects-C06-AOge.mjs} +2 -2
- package/dist/{effects-DgpPr38s.mjs.map → effects-C06-AOge.mjs.map} +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-DakFEiDw.mjs → fonts-C0UuLQvr.mjs} +2 -2
- package/dist/{fonts-DakFEiDw.mjs.map → fonts-C0UuLQvr.mjs.map} +1 -1
- package/dist/{gpu-AbcLcr1f.mjs → gpu-Du7GpVFW.mjs} +2 -2
- package/dist/{gpu-AbcLcr1f.mjs.map → gpu-Du7GpVFW.mjs.map} +1 -1
- package/dist/{index--1jnkoBj.d.mts → index-B-oUlLoO.d.mts} +7 -1
- package/dist/index-B-oUlLoO.d.mts.map +1 -0
- package/dist/{index-CaZfxDXx.d.mts → index-CdyE1tst.d.mts} +3 -3
- package/dist/{index-CaZfxDXx.d.mts.map → index-CdyE1tst.d.mts.map} +1 -1
- package/dist/{index-YSmPWdZw.d.mts → index-CwbszPDG.d.mts} +4 -4
- package/dist/{index-YSmPWdZw.d.mts.map → index-CwbszPDG.d.mts.map} +1 -1
- package/dist/{index-BqzHDFkU.d.mts → index-D-Iek5sq.d.mts} +3 -3
- package/dist/{index-BqzHDFkU.d.mts.map → index-D-Iek5sq.d.mts.map} +1 -1
- package/dist/{index-D6_KcajH.d.mts → index-DXfp_T-3.d.mts} +2 -2
- package/dist/{index-D6_KcajH.d.mts.map → index-DXfp_T-3.d.mts.map} +1 -1
- package/dist/{index-DgJIBC_N.d.mts → index-XdQPNJnq.d.mts} +3 -3
- package/dist/index-XdQPNJnq.d.mts.map +1 -0
- package/dist/index.d.mts +8 -8
- package/dist/index.mjs +48 -48
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-QjhWe5QE.mjs → preview-M0TsUzC6.mjs} +2 -2
- package/dist/{preview-QjhWe5QE.mjs.map → preview-M0TsUzC6.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/chunk-2SJ4BBMT.mjs +1 -0
- package/dist/preview-engine/{chunk-N4OG2BHX.mjs → chunk-3T4LB4ZH.mjs} +1 -1
- package/dist/preview-engine/{chunk-FJH5A2PV.mjs → chunk-7B5S5D4N.mjs} +1 -1
- package/dist/preview-engine/{chunk-2W4BMOAZ.mjs → chunk-G4K6TLNA.mjs} +1 -1
- package/dist/preview-engine/{chunk-XHDUZY7Y.mjs → chunk-HVCAOHNI.mjs} +1 -1
- package/dist/preview-engine/{chunk-5MSAA3DL.mjs → chunk-KBO6EX3M.mjs} +1 -1
- package/dist/preview-engine/{chunk-AKMCLVJ6.mjs → chunk-LQBDZSQD.mjs} +1 -1
- package/dist/preview-engine/chunk-NIRW77QA.mjs +58 -0
- package/dist/preview-engine/{chunk-MOW55DX2.mjs → chunk-QXCY2ATH.mjs} +1 -1
- package/dist/preview-engine/chunk-XN56POGE.mjs +1 -0
- package/dist/preview-engine/{chunk-3NXJVSZY.mjs → chunk-ZTHWCQ2A.mjs} +2 -2
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/{renderers-UHYNEWQD.mjs → renderers-3SRG77SC.mjs} +1 -1
- package/dist/preview-engine/{renderers-OZYUGZG7.mjs → renderers-VUL4HBX3.mjs} +2 -2
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-Cc_2_YXn.mjs → program-DzknMiY0.mjs} +2 -2
- package/dist/{program-Cc_2_YXn.mjs.map → program-DzknMiY0.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/renderer--IDyGdqT.mjs +5 -0
- package/dist/{renderer-CZ9gHx-4.mjs → renderer-0gY4IQhM.mjs} +2 -2
- package/dist/{renderer-CZ9gHx-4.mjs.map → renderer-0gY4IQhM.mjs.map} +1 -1
- package/dist/renderer-17K4tjid.mjs +5 -0
- package/dist/{renderer-CivH0UuT.mjs → renderer-1vhaKMeg.mjs} +55 -54
- package/dist/{renderer-CivH0UuT.mjs.map → renderer-1vhaKMeg.mjs.map} +1 -1
- package/dist/{renderer-Bfrwo_It.mjs → renderer-57ATc_mQ.mjs} +2 -2
- package/dist/{renderer-Bfrwo_It.mjs.map → renderer-57ATc_mQ.mjs.map} +1 -1
- package/dist/{renderer-CSfLMXN8.mjs → renderer-AF884a7T.mjs} +3 -3
- package/dist/{renderer-CSfLMXN8.mjs.map → renderer-AF884a7T.mjs.map} +1 -1
- package/dist/renderer-Ab9Ttn_m.mjs +5 -0
- package/dist/renderer-B-roDBBo.mjs +5 -0
- package/dist/renderer-B03uwoUX.mjs +5 -0
- package/dist/renderer-B3BI_7YJ.mjs +5 -0
- package/dist/{renderer-B4cnT3ce.mjs → renderer-BC8XOVl5.mjs} +3 -3
- package/dist/{renderer-B4cnT3ce.mjs.map → renderer-BC8XOVl5.mjs.map} +1 -1
- package/dist/renderer-BGD4lQ74.mjs +5 -0
- package/dist/renderer-BHXhYfeC.mjs +5 -0
- package/dist/{renderer-ClWgdN2v.mjs → renderer-BHskWZNG.mjs} +2 -2
- package/dist/{renderer-C4UqxwcT.mjs → renderer-BNqwn0gZ.mjs} +2 -2
- package/dist/{renderer-C4UqxwcT.mjs.map → renderer-BNqwn0gZ.mjs.map} +1 -1
- package/dist/renderer-BRsTIMFa.mjs +5 -0
- package/dist/{renderer-BO-7bYa5.d.mts → renderer-BT-_EoXw.d.mts} +2 -2
- package/dist/{renderer-BO-7bYa5.d.mts.map → renderer-BT-_EoXw.d.mts.map} +1 -1
- package/dist/{renderer-CB87_0vL.mjs → renderer-BbdZ0YHR.mjs} +3 -3
- package/dist/{renderer-CB87_0vL.mjs.map → renderer-BbdZ0YHR.mjs.map} +1 -1
- package/dist/{renderer-sHDPBywo.mjs → renderer-BeIUgp1r.mjs} +2 -2
- package/dist/{renderer-sHDPBywo.mjs.map → renderer-BeIUgp1r.mjs.map} +1 -1
- package/dist/{renderer-FgcNOe1R.mjs → renderer-Beg7FLt2.mjs} +5 -5
- package/dist/{renderer-FgcNOe1R.mjs.map → renderer-Beg7FLt2.mjs.map} +1 -1
- package/dist/{renderer-Cv1wmjhA.mjs → renderer-BerD3T-X.mjs} +2 -2
- package/dist/{renderer-Cv1wmjhA.mjs.map → renderer-BerD3T-X.mjs.map} +1 -1
- package/dist/{renderer-CK0u3Psf.mjs → renderer-BiwIh_w4.mjs} +3 -3
- package/dist/{renderer-CK0u3Psf.mjs.map → renderer-BiwIh_w4.mjs.map} +1 -1
- package/dist/renderer-BjMTtYZw.mjs +5 -0
- package/dist/{renderer-dwTzrQ2G.mjs → renderer-BmGPTWwV.mjs} +3 -3
- package/dist/{renderer-dwTzrQ2G.mjs.map → renderer-BmGPTWwV.mjs.map} +1 -1
- package/dist/{renderer-DfSRmz7q.mjs → renderer-Bn2eQE-t.mjs} +3 -3
- package/dist/{renderer-DfSRmz7q.mjs.map → renderer-Bn2eQE-t.mjs.map} +1 -1
- package/dist/renderer-BoCh3Yts.mjs +5 -0
- package/dist/renderer-BqPbR8c4.mjs +5 -0
- package/dist/{renderer-BPMywsr4.mjs → renderer-Br6KyRO_.mjs} +3 -3
- package/dist/{renderer-BPMywsr4.mjs.map → renderer-Br6KyRO_.mjs.map} +1 -1
- package/dist/{renderer-DU3216cx.mjs → renderer-BteUC_7n.mjs} +3 -3
- package/dist/{renderer-DU3216cx.mjs.map → renderer-BteUC_7n.mjs.map} +1 -1
- package/dist/{renderer-DwCg5pXn.mjs → renderer-Bvx56GR6.mjs} +2 -2
- package/dist/{renderer-DwCg5pXn.mjs.map → renderer-Bvx56GR6.mjs.map} +1 -1
- package/dist/{renderer-4GYrnTfw.mjs → renderer-BzDjy1_x.mjs} +2 -2
- package/dist/{renderer-4GYrnTfw.mjs.map → renderer-BzDjy1_x.mjs.map} +1 -1
- package/dist/renderer-C4Da2I1-.mjs +5 -0
- package/dist/{renderer-CD38wGmN.mjs → renderer-C6md3msE.mjs} +2 -2
- package/dist/{renderer-CD38wGmN.mjs.map → renderer-C6md3msE.mjs.map} +1 -1
- package/dist/{renderer-CHkqgIOL.mjs → renderer-C8uKdelk.mjs} +2 -2
- package/dist/{renderer-CHkqgIOL.mjs.map → renderer-C8uKdelk.mjs.map} +1 -1
- package/dist/renderer-C93X6dgl.mjs +5 -0
- package/dist/{renderer-CciB_sav.mjs → renderer-CJB9nU1x.mjs} +3 -3
- package/dist/{renderer-CciB_sav.mjs.map → renderer-CJB9nU1x.mjs.map} +1 -1
- package/dist/renderer-CMAwFfGx.mjs +6 -0
- package/dist/{renderer-CPW9o3Lc.mjs → renderer-CMT4QcpV.mjs} +3 -3
- package/dist/{renderer-CPW9o3Lc.mjs.map → renderer-CMT4QcpV.mjs.map} +1 -1
- package/dist/renderer-CRXeSuX2.mjs +5 -0
- package/dist/renderer-CSp6WYBN.mjs +5 -0
- package/dist/renderer-CUXX7HTL.mjs +5 -0
- package/dist/renderer-CUgThpka.mjs +5 -0
- package/dist/{renderer-BKd2nRnO.mjs → renderer-CWBHVCvA.mjs} +2 -2
- package/dist/{renderer-BKd2nRnO.mjs.map → renderer-CWBHVCvA.mjs.map} +1 -1
- package/dist/{renderer-B5PFBOjv.mjs → renderer-Cce2fgpX.mjs} +3 -3
- package/dist/{renderer-B5PFBOjv.mjs.map → renderer-Cce2fgpX.mjs.map} +1 -1
- package/dist/renderer-CeVtufiT.mjs +5 -0
- package/dist/{renderer-egZPy7vq.mjs → renderer-CebB0v1y.mjs} +2 -2
- package/dist/{renderer-egZPy7vq.mjs.map → renderer-CebB0v1y.mjs.map} +1 -1
- package/dist/renderer-CespkZUk.mjs +5 -0
- package/dist/{renderer-Dyh8c41v.mjs → renderer-CeyAgJnw.mjs} +2 -2
- package/dist/{renderer-CGZqCmf2.mjs → renderer-CrABA3lB.mjs} +2 -2
- package/dist/{renderer-CGZqCmf2.mjs.map → renderer-CrABA3lB.mjs.map} +1 -1
- package/dist/{renderer-DU6i7shO.mjs → renderer-CuVPo-wP.mjs} +2 -2
- package/dist/{renderer-DU6i7shO.mjs.map → renderer-CuVPo-wP.mjs.map} +1 -1
- package/dist/{renderer-DEQ09sg7.mjs → renderer-CursFKUf.mjs} +2 -2
- package/dist/{renderer-DEQ09sg7.mjs.map → renderer-CursFKUf.mjs.map} +1 -1
- package/dist/{renderer-DT3QVVht.mjs → renderer-D-vRKssW.mjs} +2 -2
- package/dist/{renderer-DT3QVVht.mjs.map → renderer-D-vRKssW.mjs.map} +1 -1
- package/dist/{renderer-DqhZTIiC.mjs → renderer-D1Cm21eq.mjs} +2 -2
- package/dist/{renderer-DqhZTIiC.mjs.map → renderer-D1Cm21eq.mjs.map} +1 -1
- package/dist/renderer-D1l47xhL.mjs +5 -0
- package/dist/{renderer-PbJk25JW.mjs → renderer-D8thCpS7.mjs} +3 -3
- package/dist/{renderer-PbJk25JW.mjs.map → renderer-D8thCpS7.mjs.map} +1 -1
- package/dist/{renderer-BNcsS03m.mjs → renderer-DD8napek.mjs} +2 -2
- package/dist/{renderer-BNcsS03m.mjs.map → renderer-DD8napek.mjs.map} +1 -1
- package/dist/renderer-DDuG18J8.mjs +5 -0
- package/dist/{renderer-gwV6hyYm.mjs → renderer-DEuIwr-t.mjs} +2 -2
- package/dist/{renderer-gwV6hyYm.mjs.map → renderer-DEuIwr-t.mjs.map} +1 -1
- package/dist/renderer-DFhrFSMn.mjs +5 -0
- package/dist/{renderer-DlqDnh-8.mjs → renderer-DHGTzype.mjs} +2 -2
- package/dist/{renderer-DlqDnh-8.mjs.map → renderer-DHGTzype.mjs.map} +1 -1
- package/dist/{renderer-DkGODUgE.mjs → renderer-DJfFc-XW.mjs} +3 -3
- package/dist/{renderer-DkGODUgE.mjs.map → renderer-DJfFc-XW.mjs.map} +1 -1
- package/dist/renderer-DO48vQ7Y.mjs +5 -0
- package/dist/renderer-DTC39B_n.mjs +5 -0
- package/dist/{renderer-L7UTxwZT.mjs → renderer-DXqIslFk.mjs} +2 -2
- package/dist/{renderer-L7UTxwZT.mjs.map → renderer-DXqIslFk.mjs.map} +1 -1
- package/dist/{renderer-C2eBC0FB.mjs → renderer-DZXbgVMK.mjs} +3 -3
- package/dist/{renderer-C2eBC0FB.mjs.map → renderer-DZXbgVMK.mjs.map} +1 -1
- package/dist/{renderer-Cxh7j423.mjs → renderer-Db3JIF1K.mjs} +3 -3
- package/dist/{renderer-Cxh7j423.mjs.map → renderer-Db3JIF1K.mjs.map} +1 -1
- package/dist/renderer-DbyU3hNF.mjs +5 -0
- package/dist/renderer-DftVpmfu.mjs +5 -0
- package/dist/renderer-Dj5jm63K.mjs +5 -0
- package/dist/renderer-Dju57ZaF.mjs +5 -0
- package/dist/renderer-Dn8TQCw7.mjs +5 -0
- package/dist/{renderer-C6u-XrH-.mjs → renderer-DpW_LxLO.mjs} +3 -3
- package/dist/{renderer-C6u-XrH-.mjs.map → renderer-DpW_LxLO.mjs.map} +1 -1
- package/dist/{renderer-CSoyJ8GH.mjs → renderer-DqdhsSwS.mjs} +2 -2
- package/dist/{renderer-CSoyJ8GH.mjs.map → renderer-DqdhsSwS.mjs.map} +1 -1
- package/dist/{renderer-2DjggBBS.mjs → renderer-DtgMsjyL.mjs} +2 -2
- package/dist/{renderer-2DjggBBS.mjs.map → renderer-DtgMsjyL.mjs.map} +1 -1
- package/dist/{renderer-DppnY7RT.mjs → renderer-DupsdRIw.mjs} +3 -3
- package/dist/{renderer-DppnY7RT.mjs.map → renderer-DupsdRIw.mjs.map} +1 -1
- package/dist/{renderer-BN0CzoG_.mjs → renderer-DvFaC_-7.mjs} +2 -2
- package/dist/{renderer-BN0CzoG_.mjs.map → renderer-DvFaC_-7.mjs.map} +1 -1
- package/dist/renderer-ETF46K0D.mjs +5 -0
- package/dist/{renderer-dj3f8cMg.mjs → renderer-EemDpvv3.mjs} +3 -3
- package/dist/{renderer-dj3f8cMg.mjs.map → renderer-EemDpvv3.mjs.map} +1 -1
- package/dist/{renderer-n2kYIGtb.mjs → renderer-KnCcN_Nz.mjs} +2 -2
- package/dist/{renderer-n2kYIGtb.mjs.map → renderer-KnCcN_Nz.mjs.map} +1 -1
- package/dist/{renderer-scbJx-Dx.mjs → renderer-PKQNH21k.mjs} +2 -2
- package/dist/{renderer-CO4theVJ.mjs → renderer-YbaCzPcG.mjs} +2 -2
- package/dist/{renderer-BhxQzrHF.mjs → renderer-aArb4RwJ.mjs} +2 -2
- package/dist/{renderer-BhxQzrHF.mjs.map → renderer-aArb4RwJ.mjs.map} +1 -1
- package/dist/renderer-azYzWGC3.mjs +5 -0
- package/dist/renderer-dxNoRW59.mjs +5 -0
- package/dist/renderer-fdfelx_I.mjs +5 -0
- package/dist/{renderer-BEzUirF0.mjs → renderer-id8TbKBY.mjs} +2 -2
- package/dist/{renderer-BEzUirF0.mjs.map → renderer-id8TbKBY.mjs.map} +1 -1
- package/dist/{renderer-Dnm_SVy6.mjs → renderer-jYxN4mHn.mjs} +3 -3
- package/dist/{renderer-Dnm_SVy6.mjs.map → renderer-jYxN4mHn.mjs.map} +1 -1
- package/dist/{renderer-lXmtdrdI.mjs → renderer-jqByPgkD.mjs} +2 -2
- package/dist/{renderer-lXmtdrdI.mjs.map → renderer-jqByPgkD.mjs.map} +1 -1
- package/dist/{renderer-DRpIQFAK.mjs → renderer-p_C_T9Kn.mjs} +2 -2
- package/dist/{renderer-DRpIQFAK.mjs.map → renderer-p_C_T9Kn.mjs.map} +1 -1
- package/dist/renderer-snwEKwMw.mjs +5 -0
- package/dist/{renderer-D0enmulV.mjs → renderer-u8ynJtAC.mjs} +2 -2
- package/dist/{renderer-D0enmulV.mjs.map → renderer-u8ynJtAC.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-B8HIr3kj.mjs → renderers-CP8CFWDs-BA-4l6By.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-B8HIr3kj.mjs.map → renderers-CP8CFWDs-BA-4l6By.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +4 -4
- package/package.json +58 -58
- package/dist/dist-BLbXEC6V.mjs.map +0 -1
- package/dist/dist-DQlYw4eG.mjs.map +0 -1
- package/dist/index--1jnkoBj.d.mts.map +0 -1
- package/dist/index-DgJIBC_N.d.mts.map +0 -1
- package/dist/preview-engine/chunk-4VOHF3FF.mjs +0 -1
- package/dist/preview-engine/chunk-ATLWPS6N.mjs +0 -1
- package/dist/preview-engine/chunk-HYBAPT6I.mjs +0 -1
- package/dist/preview-engine/chunk-XETMNJVV.mjs +0 -58
- package/dist/renderer-9ETXaINw.mjs +0 -5
- package/dist/renderer-B3MVDN_e.mjs +0 -5
- package/dist/renderer-B6iUuWcx.mjs +0 -6
- package/dist/renderer-B8IdU-7S.mjs +0 -5
- package/dist/renderer-BEGJCxuL.mjs +0 -5
- package/dist/renderer-BLAkNFx7.mjs +0 -5
- package/dist/renderer-BVNhv2ft.mjs +0 -5
- package/dist/renderer-BaXTEIe0.mjs +0 -5
- package/dist/renderer-BjeA7s36.mjs +0 -5
- package/dist/renderer-BtGNxEay.mjs +0 -5
- package/dist/renderer-BvZg2RJG.mjs +0 -5
- package/dist/renderer-CLW6tUUn.mjs +0 -5
- package/dist/renderer-CS-ojgJk.mjs +0 -5
- package/dist/renderer-CUQtKECw.mjs +0 -5
- package/dist/renderer-CV-l8wMq.mjs +0 -5
- package/dist/renderer-CV7_ALA5.mjs +0 -5
- package/dist/renderer-CVR6T6Lp.mjs +0 -5
- package/dist/renderer-CtUF95UW.mjs +0 -5
- package/dist/renderer-D8ymQoTB.mjs +0 -5
- package/dist/renderer-D9x3UE1Y.mjs +0 -5
- package/dist/renderer-DAEXqa2Q.mjs +0 -5
- package/dist/renderer-DDhU9Goq.mjs +0 -5
- package/dist/renderer-DcCKath2.mjs +0 -5
- package/dist/renderer-DiBphLzn.mjs +0 -5
- package/dist/renderer-Diq9Z7gZ.mjs +0 -5
- package/dist/renderer-DjZiO7iA.mjs +0 -5
- package/dist/renderer-Dtj6o-74.mjs +0 -5
- package/dist/renderer-Duaam6bJ.mjs +0 -5
- package/dist/renderer-FHqZe3K1.mjs +0 -5
- package/dist/renderer-FTKfOejk.mjs +0 -5
- package/dist/renderer-LmbkN82X.mjs +0 -5
- package/dist/renderer-SDspl6p-.mjs +0 -5
- package/dist/renderer-SWVUDypd.mjs +0 -5
- package/dist/renderer-WhpTBwDM.mjs +0 -5
- package/dist/renderer-WrpQEVdv.mjs +0 -5
- package/dist/renderer-r4ney0FZ.mjs +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k,b as l,c as m,d as n}from"./chunk-CURR5X7D.mjs";import{a as j}from"./chunk-O2RNIQXT.mjs";import{a as b}from"./chunk-FPRXK2WD.mjs";import{a as c}from"./chunk-VO2R3DWV.mjs";import{a as d}from"./chunk-Q2DPNVIA.mjs";import{a as e}from"./chunk-ZNL4W4DK.mjs";import{a as f}from"./chunk-NEE3KQTX.mjs";import{a as g}from"./chunk-K773AOF3.mjs";import{a}from"./chunk-ZH5MZQTZ.mjs";import{a as h}from"./chunk-PR2BUYCL.mjs";import{b as i}from"./chunk-
|
|
1
|
+
import{a as k,b as l,c as m,d as n}from"./chunk-CURR5X7D.mjs";import{a as j}from"./chunk-O2RNIQXT.mjs";import{a as b}from"./chunk-FPRXK2WD.mjs";import{a as c}from"./chunk-VO2R3DWV.mjs";import{a as d}from"./chunk-Q2DPNVIA.mjs";import{a as e}from"./chunk-ZNL4W4DK.mjs";import{a as f}from"./chunk-NEE3KQTX.mjs";import{a as g}from"./chunk-K773AOF3.mjs";import{a}from"./chunk-ZH5MZQTZ.mjs";import{a as h}from"./chunk-PR2BUYCL.mjs";import{b as i}from"./chunk-G4K6TLNA.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-NIRW77QA.mjs";import"./chunk-Q4Z54DQ7.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-63SFBHEH.mjs";import"./chunk-BVF64D6H.mjs";export{a as WebGPUAudioProcessor,d as audioFadeRenderer,h as audioSignalExtractorRenderer,b as compressorRenderer,c as delayRenderer,n as encodeStereoWav,i as mixAudioTracks,l as mixSfxInto,e as noiseGateRenderer,f as parametricEqRenderer,k as renderSfx,g as reverbRenderer,m as softLimit,j as stereoPanningRenderer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as y,l as g}from"./chunk-24P6DAB3.mjs";import{d as f,e as l}from"./chunk-BVF64D6H.mjs";l();var d=()=>typeof f<"u"&&!!f.versions?.node||!!globalThis.__IS_HEADLESS_RENDERER__;function s(t){if(!t||d()||typeof window>"u")return t;let n=t.replace(/^file:\/\//,"");return n.startsWith("/")&&!n.startsWith("/@fs/")&&!n.startsWith("/api/")?`/@fs${n}`:t}function c(t){if(!t)return;if(t?.sourceUrl&&typeof t.sourceUrl=="string")return s(t.sourceUrl);if(t?.url&&typeof t.url=="string")return s(t.url);let n=t?.entity;if(n)return typeof n=="string"?s(n):n.url&&typeof n.url=="string"?s(n.url):b(n);if(t.operation?.op==="source"){let e=t.operation.source;if(typeof e=="string")return s(e);if(e?.url&&typeof e.url=="string")return s(e.url);if(e?.entity)return b(e.entity);if(t.operation.sourceUrl&&typeof t.operation.sourceUrl=="string")return s(t.operation.sourceUrl);if(t.operation.url&&typeof t.operation.url=="string")return s(t.operation.url);let a=t.operation.srtText;if(a)return`data:text/srt;base64,${typeof Buffer<"u"?Buffer.from(a).toString("base64"):btoa(unescape(encodeURIComponent(a)))}`;let p=t.operation.svgContent;if(p)return`data:image/svg+xml;base64,${typeof Buffer<"u"?Buffer.from(p).toString("base64"):btoa(unescape(encodeURIComponent(p)))}`}let r=t.operation?.svgDataUrl;if(r&&typeof r=="string")return r;let i=t.operation?.svgContent;if(i&&typeof i=="string")return`data:image/svg+xml;base64,${typeof Buffer<"u"?Buffer.from(i).toString("base64"):btoa(unescape(encodeURIComponent(i)))}`;let u=t.operation?.lutUrl;if(u&&typeof u=="string")return u;if(t.operation?.op==="ExtractLUT")return;if(Array.isArray(t.children))for(let e of t.children){let a=c(e);if(a)return a}let o=t.operation?.inputs;if(o&&typeof o=="object"){for(let e of Object.values(o))if(e?.outputItem?.data&&typeof e.outputItem.data=="object"){let a=c(e.outputItem.data);if(a)return a}}}function b(t){if(!t)return"";if(t.url&&typeof t.url=="string"){let o=t.url;if(typeof window<"u"&&!d()){let e=o.replace(/^file:\/\//,"");if(e.startsWith("/")&&!e.startsWith("/@fs/")&&!e.startsWith("/api/"))return`/@fs${e}`}return o}let{id:n,key:r}=t;if(r&&(r.startsWith("file://")||r.startsWith("/")||r.startsWith("http://")||r.startsWith("https://"))){if(typeof window<"u"&&!d()){let o=r.replace(/^file:\/\//,"");if(o.startsWith("/")&&!o.startsWith("/@fs/")&&!o.startsWith("/api/"))return`/@fs${o}`}return r.startsWith("/")?`file://${r}`:r}let i=r.includes(".")?r.split(".").pop():null,u=i?`.${i}`:"";return`/api/v1/assets/${n}${u}`}function h(t){return`assets/fonts/${t}.ttf`}l();function W(t){let n=t.operation,r=g(t),i={sourceUrl:void 0,trimStartSec:0,trimEndSec:null,speed:1,cropRegion:null,flipH:!1,flipV:!1,rotation:0,effectiveDurationSec:0,mimeType:y(t)||null};n.op==="text"?i.sourceUrl=void 0:i.sourceUrl=c(t);let u=(r?.durationMs??0)/1e3;return i.effectiveDurationSec=((i.trimEndSec??u)-i.trimStartSec)/i.speed,i}export{c as a,h as b,W as c};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as E}from"./chunk-
|
|
1
|
+
import{a as E}from"./chunk-XN56POGE.mjs";import{b as R,e as x,r as A}from"./chunk-LQENNFBA.mjs";import{m as P}from"./chunk-4GEWSUX5.mjs";import{o as g}from"./chunk-YAQFFQPG.mjs";import{d as m,e as F}from"./chunk-BVF64D6H.mjs";F();F();var I=65536,S=1953658213,$=1954115633,N=1330926671,k=1953784678;function U(r,t){if(r.length<12)throw new Error(`Invalid font binary for "${t}": File size (${r.length} bytes) is too small to be a valid TrueType or OpenType font.`);let e=(r[0]??0)<<24|(r[1]??0)<<16|(r[2]??0)<<8|(r[3]??0);if(e===I||e===S||e===$||e===k)return"truetype";if(e===N)return"opentype";let i=(e>>>0).toString(16).padStart(8,"0");throw new Error(`Invalid font format for "${t}": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${i}.`)}async function M(r){if(r instanceof Uint8Array)return{buffer:r};if(typeof r!="string")throw new TypeError(`Font source must be a file path string or Uint8Array, received: ${typeof r}`);let t=r;if(t.startsWith("http://")||t.startsWith("https://")){let s=await fetch(t);if(!s.ok)throw new Error(`Failed to download font from "${t}": HTTP ${s.status} ${s.statusText}`);let c=await s.arrayBuffer();return{buffer:new Uint8Array(c),filePath:t}}if(t.startsWith("file://"))try{t=new URL(t).pathname}catch{t=t.replace(/^file:\/\//,"")}let e=[t,g.resolve(m.cwd(),t),g.resolve(m.cwd(),"assets/fonts",t),g.resolve(m.cwd(),"assets/fonts",g.basename(t))],i=m.cwd();for(let s=0;s<5;s++){e.push(g.resolve(i,t)),e.push(g.resolve(i,"assets/fonts",g.basename(t)));let c=g.dirname(i);if(c===i)break;i=c}let a=null,f=null;for(let s of e)try{if((await P.stat(s)).isFile()){a=s,f=await P.readFile(s);break}}catch{}if(!a||!f)throw new Error(`Font file not found: "${r}". Checked candidate locations:
|
|
2
2
|
- ${e.join(`
|
|
3
3
|
- `)}`);return{buffer:new Uint8Array(f.buffer,f.byteOffset,f.byteLength),filePath:a}}var v=class r{static instance=null;fonts=new Map;constructor(){}static getInstance(){return r.instance||(r.instance=new r),r.instance}static async register(t,e){return r.getInstance().register(t,e)}static async registerEmojiFont(t){let{buffer:e,filePath:i}=await M(t);U(e,i??(typeof t=="string"?t:"Uint8Array")),x.setEmojiFont(e,i)}static measure(t,e){let i=e.fontSize??48,a=x.getFont(e.fontFamily,e.fontWeight,null,void 0,i);if(!a)throw new Error(`FontManager.measure: font "${e.fontFamily}" is not registered. Call \`await FontManager.register(...)\` first.`);let f=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*i:e.lineHeight??i*1.2,s=e.letterSpacing??0,{width:c,height:p,layout:y}=A.measure(t,a,i,s,f,e.width,void 0,e.direction),T=i/a.unitsPerEm,o=[],w=new Set,d=0;for(let n of y.glyphs){let l=n.textIndex;if(l===void 0){let u=t.indexOf(n.char,d);l=u>=0?u:d}if(w.has(l))continue;w.add(l),d=l+n.char.length;let h=n.clusterAdvance??n.cp.advanceWidth*(n.fontScale??T);o.push({char:n.char,index:l,x:n.clusterX??n.x,y:n.y,width:h+s,line:n.lineIndex,...n.rtl&&{rtl:!0}})}let b=n=>{if(n<=0||o.length===0){let u=o[0];return u?u.rtl?u.x+u.width-s:u.x:0}let l=o.filter(u=>u.index<n),h=l[l.length-1];return h?h.rtl?h.x:h.x+h.width-s:0};return{width:c,height:p,lines:y.linesCount,lineHeight:f,glyphs:o,caretX:b,widthOf:n=>b(n)-(o[0]?.x??0)}}static get(t){return r.getInstance().get(t)}static has(t){return r.getInstance().has(t)}static getAll(){return r.getInstance().getAll()}static getRegisteredFontPaths(){return r.getInstance().getRegisteredFontPaths()}static clear(){r.getInstance().clear()}async register(t,e){let i,a,f,s;if(typeof t=="object"&&t!==null)i=t.family,a=t.source,f=t.weight,s=t.style;else if(typeof t=="string"&&e!==void 0)i=t,a=e;else if(typeof t=="string")i=void 0,a=t;else throw new TypeError("Invalid arguments passed to FontManager.register");let{buffer:c,filePath:p}=await M(a),y=p??(typeof a=="string"?a:"Uint8Array"),T=U(c,y),o;try{let n=R(c);n&&"fonts"in n&&Array.isArray(n.fonts)&&n.fonts.length>0?o=n.fonts[0]:o=n}catch(n){let l=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse TrueType/OpenType font binary for "${y}": ${l}`)}let w=o.familyName||o.postscriptName||g.parse(y).name,d=i?.trim()||w,b={family:d,source:a,filePath:p,format:T,postscriptName:o.postscriptName,unitsPerEm:o.unitsPerEm,weight:f,style:s};return this.fonts.set(d,b),p&&await E(d,p),x.setParsed(d,o),b}get(t){return this.fonts.get(t)}has(t){return this.fonts.has(t)}getAll(){return Array.from(this.fonts.values())}getRegisteredFontPaths(){let t=[];for(let e of this.fonts.values())e.filePath?t.push(e.filePath):typeof e.source=="string"&&t.push(e.source);return t}clear(){this.fonts.clear()}};export{v as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as b}from"./chunk-VUFDQJ2B.mjs";import{a as l}from"./chunk-
|
|
1
|
+
import{c as b}from"./chunk-VUFDQJ2B.mjs";import{a as l}from"./chunk-G4K6TLNA.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{k as n}from"./chunk-63SFBHEH.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as dt}from"./chunk-37EFVZWT.mjs";import{
|
|
1
|
+
import{a as dt}from"./chunk-37EFVZWT.mjs";import{c as ft}from"./chunk-2SJ4BBMT.mjs";import{i as lt,l as N}from"./chunk-24P6DAB3.mjs";import{c as mt,e as et}from"./chunk-NIRW77QA.mjs";import{C as ut}from"./chunk-63SFBHEH.mjs";import{d as L,e as j}from"./chunk-BVF64D6H.mjs";j();j();j();function ht(e,n){return Math.round(e*n)}function X(e,n,s={timeOffsetSec:0}){if(!e)return e;let{operation:u,metadata:d={},children:c=[]}=e,{timeOffsetSec:p,durationLimitMs:i}=s;if(!u)return{...e,children:(c||[]).map(t=>X(t,n,s))};let m=u.timeline,y=m?.segments||[],f=N(e)?.durationMs??0;if(y.length>0){let t=y.reduce((a,A)=>{let z=A.endSec!=null?A.endSec-A.startSec:0,v=Math.max(1,Math.round(z*n));return a+v},0);t>0&&(f=t/n*1e3)}let h={...u},o=m?.startFrame??h.startFrame;if(typeof o=="number"){let t=ht(p,n);h.startFrame=o-t}let F={...d,durationMs:f},r=typeof o=="number"||h.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:p,durationLimitMs:i},g=(c||[]).map(t=>X(t,n,r));return{metadata:F,operation:h,children:g}}var Ft=typeof L<"u"&&/^(debug|trace)$/i.test(L.env?.LOG_LEVEL??""),b={debug:(e,...n)=>{Ft&&(typeof e=="object"&&e!==null?console.info("[AudioExtractor]",e,...n):console.info(`[AudioExtractor] ${e}`,...n))},warn:(e,...n)=>{typeof e=="object"&&e!==null?console.warn("[AudioExtractor]",e,...n):console.warn(`[AudioExtractor] ${e}`,...n)},error:(e,...n)=>{typeof e=="object"&&e!==null?console.error("[AudioExtractor]",e,...n):console.error(`[AudioExtractor] ${e}`,...n)}},yt=()=>{if(typeof window>"u")return Promise.resolve();let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))},Mt=async(e=3e4)=>{await new Promise(s=>setTimeout(s,100));let n=Date.now();return new Promise(s=>{let u=()=>{let d=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],c=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,p=d.length>0,i=c instanceof Set&&c.size>0;if(!p&&!i){s();return}if(Date.now()-n>e){b.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:d,globalDelays:c?Array.from(c):[]})}`),s();return}setTimeout(u,50)};u()})};async function xt(e){b.debug(`[AudioExtractor] decodeAudioSource started for url: ${e}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof L<"u"&&L.versions&&L.versions.node)){b.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${e}...`);let u=window.AudioContext||window.webkitAudioContext;if(!u)throw new Error("AudioContext is not supported in this browser");let d=new u;try{let c=await fetch(e);if(b.debug(`[AudioExtractor] Fetch response status for ${e}: ${c.status} (${c.statusText})`),!c.ok)throw new Error(`Failed to fetch audio source: ${c.statusText}`);let p=await c.arrayBuffer();b.debug(`[AudioExtractor] Fetched ${p.byteLength} bytes. Decoding audio data...`);let i=await d.decodeAudioData(p);b.debug(`[AudioExtractor] Decoded successfully: ${i.numberOfChannels} channels, sampleRate: ${i.sampleRate}, duration: ${i.duration}s`);let m=[];for(let y=0;y<i.numberOfChannels;y++)m.push(new Float32Array(i.getChannelData(y)));return{channels:m,sampleRate:i.sampleRate}}finally{d.close(),b.debug(`[AudioExtractor] AudioContext closed for ${e}`)}}let s=!1;try{b.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${e}...`);let u=await et.acquire(e);s=!0,b.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let d=await u.getPrimaryAudioTrack();if(!d)return b.warn(`[AudioExtractor] No primary audio track found in input for ${e}`),null;let p=new mt(d).samples(0),i=[],m=0,y=48e3,f=1;b.debug(`[AudioExtractor] Starting mediabunny generator loop for ${e}...`);for await(let o of p){y=o.sampleRate,f=o.numberOfChannels;let F=o.numberOfFrames;if(i.length===0)for(let l=0;l<f;l++)i.push([]);for(let l=0;l<f;l++){let r;try{let g=o.allocationSize({planeIndex:l,format:"f32-planar"});r=new Float32Array(g/4),o.copyTo(r,{planeIndex:l,format:"f32-planar"})}catch{let g=o.allocationSize({planeIndex:l});if(o.format==="s16"||o.format==="s16-planar"){let t=new Int16Array(g/2);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/32768}else if(o.format==="s32"||o.format==="s32-planar"){let t=new Int32Array(g/4);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/2147483648}else if(o.format==="u8"||o.format==="u8-planar"){let t=new Uint8Array(g);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=((t[a]??128)-128)/128}else r=new Float32Array(g/4),o.copyTo(r,{planeIndex:l})}i[l].push(r)}m+=F,o.close()}return b.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${m}`),m===0||i.length===0?null:{channels:i.map(o=>{let F=new Float32Array(m),l=0;for(let r of o)F.set(r,l),l+=r.length;return F}),sampleRate:y}}catch(u){if(u instanceof Error&&u.message.includes("Cannot open local media file"))throw u;if(typeof L<"u"&&L.versions?.node)try{let{execSync:d}=await import("./child_process-AIL2NBWS.mjs"),c=d(`ffmpeg -v error -i "${e}" -f f32le -ar 48000 -ac 2 pipe:1`,{maxBuffer:100*1024*1024}),p=c.byteLength/4,i=p/2,m=new Float32Array(c.buffer,c.byteOffset,p),y=new Float32Array(i),f=new Float32Array(i);for(let h=0;h<i;h++)y[h]=m[h*2],f[h]=m[h*2+1];return{channels:[y,f],sampleRate:48e3}}catch(d){b.warn({ffmpegErr:d},`[AudioExtractor] ffmpeg fallback decode failed for ${e}`)}return b.error({err:u},`[AudioExtractor] Failed to decode source ${e}`),null}finally{s&&et.release(e)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return b.error({err:n},`[AudioExtractor] Failed to decode source ${e}`),null}}async function pt(e,n,s,u,d,c){let p=new Float32Array(d),m=n/s*u,y=1e5;for(let f=0;f<d;f++){f>0&&f%y===0&&await yt();let h=c+f*m,o=Math.floor(h),F=Math.ceil(h);if(o<0){p[f]=0;continue}if(o>=e.length)break;let l=h-o,r=e[o]??0,g=F>=0&&F<e.length?e[F]??r:r,t=r+l*(g-r);p[f]=Number.isFinite(t)?t:0}return p}async function It(e,n,s=48e3,u,d){b.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${n}, targetSampleRate: ${s}`),await Mt(),dt.registerSignalsFromComposition(d,e);let c=N(e)?.durationMs||1e3,p=c/1e3,i=Math.ceil(p*s);b.debug(`[AudioExtractor] Composition total duration: ${c}ms (${p}s). Total mixed samples to allocate: ${i}`);let m=new Float32Array(i),y=new Float32Array(i),f=[m,y],h=new Map;async function o(t,a,A,z,v,B){if(!t)return null;let C=t.operation;if(!C){let k=N(t)?.durationMs??0,D=Math.round(k/1e3*n),U=B!==null?D>0?Math.min(B,D):B:D,O=Math.ceil(U/n*s);if(O<=0)return null;let q=new Float32Array(O),G=new Float32Array(O),H=[q,G];for(let M of t.children){let Y=await o(M,a,A,z,v,U);if(Y){let x=M.operation,S=x?.startFrame??x?.timeline?.startFrame??0,E=Math.round(S/n*s);for(let P=0;P<2;P++){let w=H[P],R=Y[P],T=Math.min(R.length,w.length-E);for(let $=0;$<T;$++)E+$>=0&&(w[E+$]+=R[$])}}}return H}let W=z*(C.volume??1)*(C.opacity===0?0:1)*(C.muted?0:1),nt=v,wt=C.startFrame??C.timeline?.startFrame??0,bt=A+wt,ot=C.timeline?.segments||[],V=C,rt=V.op==="CompositorLayer"?(V.mediaStartFrame??V.trimStartFrames??null)!==null?(V.mediaStartFrame??V.trimStartFrames??0)/n:Math.round((V.trimStartSec??0)*n)/n:0,At=N(t)?.durationMs??0,K=Math.round(At/1e3*n),St=B!==null?K>0?Math.min(B,K):B:K,I=Math.ceil(St/n*s);if(I<=0)return null;let at=new Float32Array(I),it=new Float32Array(I),Z=[at,it],st=async(k,D)=>{let U=k?k.startSec:0,O=a+rt+U,q=bt+D,G=0;k?G=Math.max(1,Math.round(((k.endSec??0)-k.startSec)*n)):G=K;let H=B!==null?Math.min(B,G):G,M=Math.round(D/n*s);if(C.op==="source"){let x=lt(t),S=ft(t);if(S.sourceUrl&&(x==="Audio"||x==="Video")&&W>0){let E=Math.max(.5,nt*(Number(S.speed)||1)),P=Math.max(0,(Number(S.trimStartSec)||0)+O),w=h.get(S.sourceUrl);if(w===void 0&&(w=await xt(S.sourceUrl),h.set(S.sourceUrl,w)),w){let R=H/n,T=Math.min(I-M,Math.ceil(R*s));if(T>0&&M<I){let $=Math.round(P*w.sampleRate),Q=w.channels[0],tt=w.channels.length>1?w.channels[1]:w.channels[0],_=await pt(Q,w.sampleRate,s,E,T,$),gt=await pt(tt,w.sampleRate,s,E,T,$);for(let J=0;J<T;J++){let ct=M+J;at[ct]+=_[J]*W,it[ct]+=gt[J]*W}}}await yt()}}if(t.children)for(let x of t.children){let S=await o(x,O,q,W,nt,H);if(S){let E=x.operation,P=E?.startFrame??E?.timeline?.startFrame??0,w=Math.round(P/n*s),R=M+w;for(let T=0;T<2;T++){let $=Z[T],Q=S[T],tt=Math.min(Q.length,$.length-R);for(let _=0;_<tt;_++)R+_>=0&&($[R+_]+=Q[_])}}}let Y=ut.get(C.op);if(Y)try{let x=H/n,S=Math.min(I-M,Math.ceil(x*s));if(S>0&&M<I&&M>=0){let E=Z.map(R=>R.subarray(M,M+S)),P=(q/n+O-rt)*1e3,w=N(t)?.durationMs??void 0;await Y(E,s,t,{device:u,frame:q,fps:n,renderId:d,elapsedMs:P,durationMs:w})}}catch(x){b.error({err:x},`[AudioExtractor] Custom plugin for operation '${C.op}' failed`)}};if(ot.length>0){let k=0;for(let D of ot){let U=(D.endSec??0)-D.startSec,O=Math.max(1,Math.round(U*n));await st(D,k),k+=O}}else await st(null,0);return Z}let F=X(e,n),l=await o(F,0,0,1,1,null);if(l)for(let t=0;t<2;t++){let a=f[t],A=l[t],z=Math.min(A.length,a.length);for(let v=0;v<z;v++)a[v]=A[v]}h.clear();let r=0;for(let t=0;t<i;t++){let a=Math.abs(m[t]??0),A=Math.abs(y[t]??0);a>r&&(r=a),A>r&&(r=A)}let g=r>.95?.92/r:1;for(let t=0;t<i;t++){let a=(m[t]??0)*g,A=(y[t]??0)*g;m[t]=Number.isFinite(a)?Math.tanh(a):0,y[t]=Number.isFinite(A)?Math.tanh(A):0}return{channels:f,sampleRate:s}}export{xt as a,It as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t}from"./chunk-NECOKNHA.mjs";import{a as $}from"./chunk-FJH5A2PV.mjs";import{h as j}from"./chunk-63SFBHEH.mjs";import{d,e as c}from"./chunk-BVF64D6H.mjs";c();c();c();c();c();c();function _(r){return typeof d<"u"?d.env?.[r]:void 0}function J(){let r=_("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function Ee(){return J()||_("NODE_ENV")!=="production"}var Z=new Set;function K(r){if(J())throw new Error(r);Z.has(r)||(Z.add(r),console.warn(`[framefields] ${r}`))}function U(r){if(typeof r!="object"||r===null||Array.isArray(r)||j(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function we(r,e){let n=Array.from({length:e.length+1},(l,i)=>i);for(let l=1;l<=r.length;l++){let i=n[0];n[0]=l;for(let s=1;s<=e.length;s++){let u=n[s];n[s]=Math.min(n[s]+1,n[s-1]+1,i+(r[l-1]===e[s-1]?0:1)),i=u}}return n[e.length]}function ve(r,e){let n,l=Number.POSITIVE_INFINITY,i=r.toLowerCase();for(let u of e){let p=u.toLowerCase(),m=p.includes(i)||i.includes(p)?1:we(i,p);m<l&&(l=m,n=u)}return n&&l<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${n}"?`:` Known props: ${e.join(", ")}.`}function Me(r,e,n){if(typeof e=="number"){let{min:l,max:i}=n,s=l!==void 0&&e<l,u=i!==void 0&&e>i;if(s||u||Number.isNaN(e)){let p=l!==void 0&&i!==void 0?`${l} to ${i}`:l!==void 0?`\u2265 ${l}`:`\u2264 ${i}`;K(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${p}`)}return}n.enum&&(typeof e=="string"||typeof e=="boolean")&&!n.enum.includes(e)&&K(`${r} = ${JSON.stringify(e)} is not one of ${n.enum.map(l=>JSON.stringify(l)).join(", ")}`)}function Q(r,e,n){let l=Object.keys(n);for(let[i,s]of Object.entries(e)){if(s===void 0)continue;let u=n[i];if(!u){K(`${r}: unknown prop "${i}".${ve(i,l)}`);continue}j(s)||typeof s=="function"||(u.props&&U(s)?Q(`${r}.${i}`,s,u.props):Me(`${r}.${i}`,s,u))}}function Re(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function o(r,e,n,l){let i=n;Ee()&&Q(r,i,l);let s={};for(let[u,p]of Object.entries(e))s[u]=Re(p);for(let[u,p]of Object.entries(i)){if(p===void 0)continue;let m=s[u];s[u]=U(m)&&U(p)?{...m,...Object.fromEntries(Object.entries(p).filter(([,Ce])=>Ce!==void 0))}:p}return s}c();var a={AudioCompressor:{threshold:{min:-60,max:0},ratio:{min:1,max:100},attack:{min:1e-4,max:1},release:{min:.01,max:5},knee:{min:0,max:24},makeupGain:{min:0,max:24}},AudioDelay:{delayTime:{min:.001,max:5},feedback:{min:0,max:.95},wet:{min:0,max:1},dry:{min:0,max:1},pingPong:{}},AudioFade:{fadeInDuration:{min:0,max:60},fadeOutDuration:{min:0,max:60},fadeInCurve:{enum:["linear","exponential","scurve"]},fadeOutCurve:{enum:["linear","exponential","scurve"]}},AudioNoiseGate:{threshold:{min:-120,max:0},attack:{min:1e-4,max:1},hold:{min:.001,max:5},release:{min:.01,max:5},range:{min:-120,max:0}},AudioParametricEq:{type:{enum:["lowShelf","highShelf","peak","lowPass","highPass","notch"]},frequency:{min:20,max:2e4},gain:{min:-24,max:24},q:{min:.01,max:10}},AudioReverb:{roomSize:{min:0,max:.98},damping:{min:0,max:1},wet:{min:0,max:1},dry:{min:0,max:1},width:{min:0,max:1}},Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},CameraParallax3D:{motionPreset:{enum:["Custom","DollyZoom","Orbit","FlyThrough","HandheldShake","RackFocus"]},panX:{min:-1,max:1},panY:{min:-1,max:1},dollyZ:{min:-1,max:1},fov:{min:15,max:120},parallaxAmount:{min:0,max:2},dofAperture:{min:0,max:1},focusPlane:{min:0,max:1},edgeDilation:{min:0,max:1},depthInvert:{}},ChannelMerger:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]},defaultChannel4:{min:0,max:1}},ChannelSplitter:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},CornerPin:{points:{}},DisplacementMap:{strengthX:{min:0,max:500},strengthY:{min:0,max:500},xChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},yChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},wrapMode:{enum:["Clamp","Repeat","Mirror"]}},ExtractLUT:{strategy:{enum:["deterministic","statistical"]},samplePoints:{min:10,max:500}},Flip:{horizontal:{},vertical:{},diagonal:{},mode:{enum:["horizontal","vertical","both","diagonal","antiDiagonal","custom"]},symmetry:{enum:["none","leftToRight","rightToLeft","topToBottom","bottomToTop","quadrant"]}},KenBurns:{keyframes:{},motionBlurSize:{min:0,max:10},movementStyle:{enum:["spline","direct"]},aspectRatio:{enum:["input","16:9","9:16","21:9","9:21","1:1","4:3","3:2","2:3","4:5","5:4"]}},LayerStyle:{dropShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},spread:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},innerShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},choke:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},outerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},innerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},stroke:{props:{enabled:{},size:{min:0,max:100},position:{enum:["inside","center","outside"]},color:{},opacity:{min:0,max:1},blendMode:{}}},bevelEmboss:{props:{enabled:{},style:{enum:["InnerBevel","OuterBevel","Emboss","PillowEmboss"]},technique:{enum:["Smooth","ChiselHard","ChiselSoft"]},depth:{min:1,max:1e3},direction:{enum:["Up","Down"]},size:{min:0,max:250},soften:{min:0,max:50},angle:{min:0,max:360},altitude:{min:0,max:90},highlightColor:{},highlightOpacity:{min:0,max:1},shadowColor:{},shadowOpacity:{min:0,max:1}}},colorOverlay:{props:{enabled:{},color:{},opacity:{min:0,max:1},blendMode:{}}},dropShadowAngleHandleId:{},dropShadowDistanceHandleId:{},dropShadowSpreadHandleId:{},dropShadowSizeHandleId:{},dropShadowOpacityHandleId:{},innerShadowAngleHandleId:{},innerShadowDistanceHandleId:{},innerShadowChokeHandleId:{},innerShadowSizeHandleId:{},innerShadowOpacityHandleId:{},outerGlowSizeHandleId:{},outerGlowSpreadHandleId:{},outerGlowOpacityHandleId:{},innerGlowSizeHandleId:{},innerGlowSpreadHandleId:{},innerGlowOpacityHandleId:{},strokeSizeHandleId:{},strokeOpacityHandleId:{},bevelEmbossDepthHandleId:{},bevelEmbossSizeHandleId:{},bevelEmbossSoftenHandleId:{},bevelEmbossAngleHandleId:{},bevelEmbossAltitudeHandleId:{},bevelEmbossHighlightOpacityHandleId:{},bevelEmbossShadowOpacityHandleId:{},colorOverlayOpacityHandleId:{}},Liquify:{operations:{}},MaskMath:{operation:{enum:["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]},radius:{min:0,max:200},threshold:{min:0,max:1},clampMin:{min:0,max:1},clampMax:{min:0,max:1},channelA:{enum:["Alpha","Luminance","Red","Green","Blue"]},channelB:{enum:["Alpha","Luminance","Red","Green","Blue"]},binarize:{},invertResult:{},outputFormat:{enum:["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]}},MeshWarp:{cols:{min:2,max:12},rows:{min:2,max:12},points:{}},NoiseGenerator:{noiseType:{enum:["Perlin","Simplex","Voronoi"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},scale:{min:.1,max:100},octaves:{min:1,max:8},persistence:{min:0,max:1},lacunarity:{min:1,max:4},speed:{min:0,max:10},colorStart:{},colorEnd:{},durationMs:{min:1,max:6e4},fps:{min:1,max:120}},Paint:{width:{min:1,max:16384},height:{min:1,max:16384},maintainAspect:{},aspectRatio:{},backgroundColor:{},strokes:{}},PatchHeal:{patches:{},centerX:{min:0,max:1},centerY:{min:0,max:1},offsetX:{min:-4096,max:4096},offsetY:{min:-4096,max:4096},radius:{min:1,max:500},sourceRadius:{min:1,max:500},feather:{min:0,max:100},opacity:{min:0,max:1},mode:{enum:["Clone","SeamlessHeal","TextureTransfer"]}},ProceduralVFX:{effectType:{enum:["Smoke","Fire","Rain","Sparks","Snow","Dust","Lightning","Magic","LensFlare","Embers","EnergyBeam"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},density:{min:0,max:1},scale:{min:.001,max:10},speed:{min:0,max:10},intensity:{min:0,max:1},seed:{min:0,max:1e6},colorStart:{},colorEnd:{},durationMs:{min:100,max:1e5},fps:{min:1,max:120}},RefineEdge:{decontaminateAmount:{min:0,max:1},radius:{min:.5,max:50},smooth:{min:0,max:100},feather:{min:0,max:50},shiftEdge:{min:-100,max:100},matteChannel:{enum:["Alpha","Luminance","Red","Green","Blue"]},outputMode:{enum:["Composite","MatteOnly","DecontaminatedRGB"]}},RefractionCaustics3D:{ior:{min:1,max:2.5},dispersion:{min:0,max:.2},refractionScale:{min:0,max:2},causticBrightness:{min:0,max:2},causticScale:{min:.1,max:5},fluidRipples:{min:0,max:1},rippleSpeed:{min:0,max:5},roughness:{min:0,max:1},specularIntensity:{min:0,max:2},lightPosX:{min:0,max:1},lightPosY:{min:0,max:1},tintColor:{},tintStrength:{min:0,max:1},depthInvert:{},depthScale:{min:.1,max:5}},ResizerScaler:{aspectRatioPreset:{enum:["9:16","16:9","1:1","4:5","21:9","custom"]},resolutionPreset:{enum:["4k","1080p","720p","480p","custom"]},targetWidth:{min:1,max:8192},targetHeight:{min:1,max:8192},fitMode:{enum:["cover","contain","stretch","manual"]},zoom:{min:1,max:1e3},offsetX:{min:-8192,max:8192},offsetY:{min:-8192,max:8192},backgroundMode:{enum:["solid","blurred","gradient","transparent"]},backgroundColor:{},backgroundColor2:{},blurRadius:{min:0,max:100},backgroundBrightness:{min:0,max:1},anchorX:{enum:["left","center","right"]},anchorY:{enum:["top","center","bottom"]}},Rotate:{angle:{},fit:{enum:["cover","contain","fill"]},scale:{min:.01,max:20}},StereoPanning:{pan:{min:-1,max:1}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var Ae={threshold:-24,ratio:4,attack:.003,release:.25,knee:6,makeupGain:0},b=class extends t{op="AudioCompressor";constructor(e={}){super(o("AudioCompressor",Ae,e,a.AudioCompressor))}},ke={delayTime:.25,feedback:.4,wet:.3,dry:1,pingPong:!1},f=class extends t{op="AudioDelay";constructor(e={}){super(o("AudioDelay",ke,e,a.AudioDelay))}},De={fadeInDuration:0,fadeOutDuration:0,fadeInCurve:"linear",fadeOutCurve:"linear"},h=class extends t{op="AudioFade";constructor(e={}){super(o("AudioFade",De,e,a.AudioFade))}},Be={threshold:-40,attack:.005,hold:.05,release:.1,range:-80},P=class extends t{op="AudioNoiseGate";constructor(e={}){super(o("AudioNoiseGate",Be,e,a.AudioNoiseGate))}},Ie={type:"peak",frequency:1e3,gain:0,q:1},y=class extends t{op="AudioParametricEq";constructor(e={}){super(o("AudioParametricEq",Ie,e,a.AudioParametricEq))}},Te={roomSize:.5,damping:.5,wet:.3,dry:1,width:1},g=class extends t{op="AudioReverb";constructor(e={}){super(o("AudioReverb",Te,e,a.AudioReverb))}},He={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},N=class extends t{op="Blur";constructor(e={}){super(o("Blur",He,e,a.Blur))}},Le={motionPreset:"DollyZoom",panX:0,panY:0,dollyZ:0,fov:50,parallaxAmount:.6,dofAperture:.3,focusPlane:.4,edgeDilation:.5,depthInvert:!1},x=class extends t{op="CameraParallax3D";constructor(e={}){super(o("CameraParallax3D",Le,e,a.CameraParallax3D))}},Ge={colorSpace:"RGBA",defaultChannel4:1},S=class extends t{op="ChannelMerger";constructor(e={}){super(o("ChannelMerger",Ge,e,a.ChannelMerger))}},Oe={colorSpace:"RGBA"},C=class extends t{op="ChannelSplitter";constructor(e={}){super(o("ChannelSplitter",Oe,e,a.ChannelSplitter))}},ze={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},E=class extends t{op="ColorBalance";constructor(e={}){super(o("ColorBalance",ze,e,a.ColorBalance))}},Fe={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},w=class extends t{op="ColorKey";constructor(e={}){super(o("ColorKey",Fe,e,a.ColorKey))}},Ve={},v=class extends t{op="CornerPin";constructor(e={}){super(o("CornerPin",Ve,e,a.CornerPin))}},Ye={strengthX:50,strengthY:50,xChannel:"Red",yChannel:"Green",wrapMode:"Clamp"},M=class extends t{op="DisplacementMap";constructor(e={}){super(o("DisplacementMap",Ye,e,a.DisplacementMap))}},Xe={strategy:"deterministic",samplePoints:150},R=class extends t{op="ExtractLUT";constructor(e={}){super(o("ExtractLUT",Xe,e,a.ExtractLUT))}},qe={horizontal:!0,vertical:!1,diagonal:!1,mode:"horizontal",symmetry:"none"},A=class extends t{op="Flip";constructor(e={}){super(o("Flip",qe,e,a.Flip))}},We={keyframes:[],motionBlurSize:1.5,movementStyle:"spline",aspectRatio:"input"},k=class extends t{op="KenBurns";constructor(e={}){super(o("KenBurns",We,e,a.KenBurns))}},Ne={dropShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},innerShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},outerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},innerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},stroke:{enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},bevelEmboss:{enabled:!1,style:"InnerBevel",technique:"Smooth",depth:100,direction:"Up",size:5,soften:0,angle:120,altitude:30,highlightColor:"#ffffff",highlightOpacity:.75,shadowColor:"#000000",shadowOpacity:.75},colorOverlay:{enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"}},D=class extends t{op="LayerStyle";constructor(e={}){super(o("LayerStyle",Ne,e,a.LayerStyle))}},je={operations:[]},B=class extends t{op="Liquify";constructor(e={}){super(o("Liquify",je,e,a.Liquify))}},Ke={operation:"Union",radius:0,threshold:.5,clampMin:0,clampMax:1,channelA:"Alpha",channelB:"Alpha",binarize:!1,invertResult:!1,outputFormat:"WhiteWithAlpha"},I=class extends t{op="MaskMath";constructor(e={}){super(o("MaskMath",Ke,e,a.MaskMath))}},Ue={cols:3,rows:3},T=class extends t{op="MeshWarp";constructor(e={}){super(o("MeshWarp",Ue,e,a.MeshWarp))}},$e={noiseType:"Perlin",outputType:"Image",width:512,height:512,scale:10,octaves:4,persistence:.5,lacunarity:2,speed:1,colorStart:"#000000",colorEnd:"#ffffff",durationMs:5e3,fps:30},H=class extends t{op="NoiseGenerator";constructor(e={}){super(o("NoiseGenerator",$e,e,a.NoiseGenerator))}},Ze={width:1080,height:1080,maintainAspect:!0,backgroundColor:"#ffffff"},L=class extends t{op="Paint";constructor(e={}){super(o("Paint",Ze,e,a.Paint))}},_e={centerX:.5,centerY:.5,offsetX:50,offsetY:0,radius:25,sourceRadius:25,feather:50,opacity:1,mode:"SeamlessHeal"},G=class extends t{op="PatchHeal";constructor(e={}){super(o("PatchHeal",_e,e,a.PatchHeal))}},Je={effectType:"Smoke",outputType:"Video",width:1080,height:1080,density:.6,scale:.01,speed:1,intensity:.8,seed:1234,colorStart:"#ffffff",colorEnd:"#ff5500",durationMs:5e3,fps:30},O=class extends t{op="ProceduralVFX";constructor(e={}){super(o("ProceduralVFX",Je,e,a.ProceduralVFX))}},Qe={decontaminateAmount:.7,radius:2,smooth:5,feather:.5,shiftEdge:0,matteChannel:"Alpha",outputMode:"Composite"},z=class extends t{op="RefineEdge";constructor(e={}){super(o("RefineEdge",Qe,e,a.RefineEdge))}},er={ior:1.52,dispersion:.04,refractionScale:.5,causticBrightness:.6,causticScale:1,fluidRipples:0,rippleSpeed:1,roughness:0,specularIntensity:.8,lightPosX:.5,lightPosY:.2,tintColor:"#ffffff",tintStrength:0,depthInvert:!1,depthScale:1},F=class extends t{op="RefractionCaustics3D";constructor(e={}){super(o("RefractionCaustics3D",er,e,a.RefractionCaustics3D))}},rr={aspectRatioPreset:"16:9",resolutionPreset:"1080p",targetWidth:1920,targetHeight:1080,fitMode:"contain",zoom:100,offsetX:0,offsetY:0,backgroundMode:"solid",backgroundColor:"#000000FF",backgroundColor2:"#000000FF",blurRadius:40,backgroundBrightness:.6,anchorX:"center",anchorY:"center"},V=class extends t{op="ResizerScaler";constructor(e={}){super(o("ResizerScaler",rr,e,a.ResizerScaler))}},tr={angle:90,fit:"cover",scale:1},Y=class extends t{op="Rotate";constructor(e={}){super(o("Rotate",tr,e,a.Rotate))}},nr={pan:0},X=class extends t{op="StereoPanning";constructor(e={}){super(o("StereoPanning",nr,e,a.StereoPanning))}},ar={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},q=class extends t{op="Vignette";constructor(e={}){super(o("Vignette",ar,e,a.Vignette))}};function or(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var W=class extends N{constructor(e={}){let{track:n,...l}=e;super(n?{...or(n),...lr(l)}:l)}};function lr(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}c();var ir={audioCompressor:r=>new b(r),audioDelay:r=>new f(r),audioFade:r=>new h(r),audioNoiseGate:r=>new P(r),audioParametricEq:r=>new y(r),audioReverb:r=>new g(r),blur:r=>new W(r),cameraParallax3D:r=>new x(r),channelMerger:r=>new S(r),channelSplitter:r=>new C(r),colorBalance:r=>new E(r),colorKey:r=>new w(r),cornerPin:r=>new v(r),displacementMap:r=>new M(r),extractLUT:r=>new R(r),flip:r=>new A(r),kenBurns:r=>new k(r),layerStyle:r=>new D(r),liquify:r=>new B(r),maskMath:r=>new I(r),meshWarp:r=>new T(r),noiseGenerator:r=>new H(r),paint:r=>new L(r),patchHeal:r=>new G(r),proceduralVFX:r=>new O(r),refineEdge:r=>new z(r),refractionCaustics3D:r=>new F(r),resizerScaler:r=>new V(r),rotate:r=>new Y(r),stereoPanning:r=>new X(r),vignette:r=>new q(r)};var ee=class extends t{op="Levels";constructor(e={}){let n={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...n},red:e.red??{...n},green:e.green??{...n},blue:e.blue??{...n},...e})}},re=class extends t{op="FilmGrain";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},te=class extends t{op;constructor(e,n={}){super(n),this.op=e}},ne=class extends t{op="AudioSignalExtractor";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,n={}){return $.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...n})}},ae=class extends t{op="Curves";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},oe=class extends t{op="SelectiveColor";constructor(e={}){let n={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...n,...e.reds},yellows:{...n,...e.yellows},greens:{...n,...e.greens},cyans:{...n,...e.cyans},blues:{...n,...e.blues},magentas:{...n,...e.magentas},whites:{...n,...e.whites},neutrals:{...n,...e.neutrals},blacks:{...n,...e.blacks}})}},le=class extends t{op="GradientMap";constructor(e={}){let n=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??n,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},ie=class extends t{op="ShadowsHighlights";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},se=class extends t{op="ApplyLUT";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},ue=class extends t{op="UnsharpMask";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},ce=class extends t{op="HighPass";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},pe=class extends t{op="HalftoneScreen";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},de=class extends t{op="TileOffset";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},me=class extends t{op="MotionBlur";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},be=class extends t{op="SSAO";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},fe=class extends t{op="PBRGlass";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},he=class extends t{op="DepthOfField";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},Pe=class extends t{op="Crop";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},ye=class extends t{op="Vision";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},ge=class extends t{op="Relight3D";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},xe=class extends t{op="TemporalDeflicker";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},Se=class extends t{op="Modulate";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{a,b,f as c,h as d,P as e,y as f,g,x as h,S as i,C as j,E as k,w as l,v as m,M as n,R as o,A as p,k as q,D as r,B as s,I as t,T as u,H as v,L as w,G as x,O as y,z,F as A,V as B,Y as C,X as D,q as E,W as F,ir as G,ee as H,re as I,te as J,ne as K,ae as L,oe as M,le as N,ie as O,se as P,ue as Q,ce as R,pe as S,de as T,me as U,be as V,fe as W,he as X,Pe as Y,ye as Z,ge as _,xe as $,Se as aa};
|
|
1
|
+
import{a as t}from"./chunk-NECOKNHA.mjs";import{a as $}from"./chunk-7B5S5D4N.mjs";import{h as j}from"./chunk-63SFBHEH.mjs";import{d,e as c}from"./chunk-BVF64D6H.mjs";c();c();c();c();c();c();function _(r){return typeof d<"u"?d.env?.[r]:void 0}function J(){let r=_("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function Ee(){return J()||_("NODE_ENV")!=="production"}var Z=new Set;function K(r){if(J())throw new Error(r);Z.has(r)||(Z.add(r),console.warn(`[framefields] ${r}`))}function U(r){if(typeof r!="object"||r===null||Array.isArray(r)||j(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function we(r,e){let n=Array.from({length:e.length+1},(l,i)=>i);for(let l=1;l<=r.length;l++){let i=n[0];n[0]=l;for(let s=1;s<=e.length;s++){let u=n[s];n[s]=Math.min(n[s]+1,n[s-1]+1,i+(r[l-1]===e[s-1]?0:1)),i=u}}return n[e.length]}function ve(r,e){let n,l=Number.POSITIVE_INFINITY,i=r.toLowerCase();for(let u of e){let p=u.toLowerCase(),m=p.includes(i)||i.includes(p)?1:we(i,p);m<l&&(l=m,n=u)}return n&&l<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${n}"?`:` Known props: ${e.join(", ")}.`}function Me(r,e,n){if(typeof e=="number"){let{min:l,max:i}=n,s=l!==void 0&&e<l,u=i!==void 0&&e>i;if(s||u||Number.isNaN(e)){let p=l!==void 0&&i!==void 0?`${l} to ${i}`:l!==void 0?`\u2265 ${l}`:`\u2264 ${i}`;K(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${p}`)}return}n.enum&&(typeof e=="string"||typeof e=="boolean")&&!n.enum.includes(e)&&K(`${r} = ${JSON.stringify(e)} is not one of ${n.enum.map(l=>JSON.stringify(l)).join(", ")}`)}function Q(r,e,n){let l=Object.keys(n);for(let[i,s]of Object.entries(e)){if(s===void 0)continue;let u=n[i];if(!u){K(`${r}: unknown prop "${i}".${ve(i,l)}`);continue}j(s)||typeof s=="function"||(u.props&&U(s)?Q(`${r}.${i}`,s,u.props):Me(`${r}.${i}`,s,u))}}function Re(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function o(r,e,n,l){let i=n;Ee()&&Q(r,i,l);let s={};for(let[u,p]of Object.entries(e))s[u]=Re(p);for(let[u,p]of Object.entries(i)){if(p===void 0)continue;let m=s[u];s[u]=U(m)&&U(p)?{...m,...Object.fromEntries(Object.entries(p).filter(([,Ce])=>Ce!==void 0))}:p}return s}c();var a={AudioCompressor:{threshold:{min:-60,max:0},ratio:{min:1,max:100},attack:{min:1e-4,max:1},release:{min:.01,max:5},knee:{min:0,max:24},makeupGain:{min:0,max:24}},AudioDelay:{delayTime:{min:.001,max:5},feedback:{min:0,max:.95},wet:{min:0,max:1},dry:{min:0,max:1},pingPong:{}},AudioFade:{fadeInDuration:{min:0,max:60},fadeOutDuration:{min:0,max:60},fadeInCurve:{enum:["linear","exponential","scurve"]},fadeOutCurve:{enum:["linear","exponential","scurve"]}},AudioNoiseGate:{threshold:{min:-120,max:0},attack:{min:1e-4,max:1},hold:{min:.001,max:5},release:{min:.01,max:5},range:{min:-120,max:0}},AudioParametricEq:{type:{enum:["lowShelf","highShelf","peak","lowPass","highPass","notch"]},frequency:{min:20,max:2e4},gain:{min:-24,max:24},q:{min:.01,max:10}},AudioReverb:{roomSize:{min:0,max:.98},damping:{min:0,max:1},wet:{min:0,max:1},dry:{min:0,max:1},width:{min:0,max:1}},Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},CameraParallax3D:{motionPreset:{enum:["Custom","DollyZoom","Orbit","FlyThrough","HandheldShake","RackFocus"]},panX:{min:-1,max:1},panY:{min:-1,max:1},dollyZ:{min:-1,max:1},fov:{min:15,max:120},parallaxAmount:{min:0,max:2},dofAperture:{min:0,max:1},focusPlane:{min:0,max:1},edgeDilation:{min:0,max:1},depthInvert:{}},ChannelMerger:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]},defaultChannel4:{min:0,max:1}},ChannelSplitter:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},CornerPin:{points:{}},DisplacementMap:{strengthX:{min:0,max:500},strengthY:{min:0,max:500},xChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},yChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},wrapMode:{enum:["Clamp","Repeat","Mirror"]}},ExtractLUT:{strategy:{enum:["deterministic","statistical"]},samplePoints:{min:10,max:500}},Flip:{horizontal:{},vertical:{},diagonal:{},mode:{enum:["horizontal","vertical","both","diagonal","antiDiagonal","custom"]},symmetry:{enum:["none","leftToRight","rightToLeft","topToBottom","bottomToTop","quadrant"]}},KenBurns:{keyframes:{},motionBlurSize:{min:0,max:10},movementStyle:{enum:["spline","direct"]},aspectRatio:{enum:["input","16:9","9:16","21:9","9:21","1:1","4:3","3:2","2:3","4:5","5:4"]}},LayerStyle:{dropShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},spread:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},innerShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},choke:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},outerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},innerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},stroke:{props:{enabled:{},size:{min:0,max:100},position:{enum:["inside","center","outside"]},color:{},opacity:{min:0,max:1},blendMode:{}}},bevelEmboss:{props:{enabled:{},style:{enum:["InnerBevel","OuterBevel","Emboss","PillowEmboss"]},technique:{enum:["Smooth","ChiselHard","ChiselSoft"]},depth:{min:1,max:1e3},direction:{enum:["Up","Down"]},size:{min:0,max:250},soften:{min:0,max:50},angle:{min:0,max:360},altitude:{min:0,max:90},highlightColor:{},highlightOpacity:{min:0,max:1},shadowColor:{},shadowOpacity:{min:0,max:1}}},colorOverlay:{props:{enabled:{},color:{},opacity:{min:0,max:1},blendMode:{}}},dropShadowAngleHandleId:{},dropShadowDistanceHandleId:{},dropShadowSpreadHandleId:{},dropShadowSizeHandleId:{},dropShadowOpacityHandleId:{},innerShadowAngleHandleId:{},innerShadowDistanceHandleId:{},innerShadowChokeHandleId:{},innerShadowSizeHandleId:{},innerShadowOpacityHandleId:{},outerGlowSizeHandleId:{},outerGlowSpreadHandleId:{},outerGlowOpacityHandleId:{},innerGlowSizeHandleId:{},innerGlowSpreadHandleId:{},innerGlowOpacityHandleId:{},strokeSizeHandleId:{},strokeOpacityHandleId:{},bevelEmbossDepthHandleId:{},bevelEmbossSizeHandleId:{},bevelEmbossSoftenHandleId:{},bevelEmbossAngleHandleId:{},bevelEmbossAltitudeHandleId:{},bevelEmbossHighlightOpacityHandleId:{},bevelEmbossShadowOpacityHandleId:{},colorOverlayOpacityHandleId:{}},Liquify:{operations:{}},MaskMath:{operation:{enum:["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]},radius:{min:0,max:200},threshold:{min:0,max:1},clampMin:{min:0,max:1},clampMax:{min:0,max:1},channelA:{enum:["Alpha","Luminance","Red","Green","Blue"]},channelB:{enum:["Alpha","Luminance","Red","Green","Blue"]},binarize:{},invertResult:{},outputFormat:{enum:["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]}},MeshWarp:{cols:{min:2,max:12},rows:{min:2,max:12},points:{}},NoiseGenerator:{noiseType:{enum:["Perlin","Simplex","Voronoi"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},scale:{min:.1,max:100},octaves:{min:1,max:8},persistence:{min:0,max:1},lacunarity:{min:1,max:4},speed:{min:0,max:10},colorStart:{},colorEnd:{},durationMs:{min:1,max:6e4},fps:{min:1,max:120}},Paint:{width:{min:1,max:16384},height:{min:1,max:16384},maintainAspect:{},aspectRatio:{},backgroundColor:{},strokes:{}},PatchHeal:{patches:{},centerX:{min:0,max:1},centerY:{min:0,max:1},offsetX:{min:-4096,max:4096},offsetY:{min:-4096,max:4096},radius:{min:1,max:500},sourceRadius:{min:1,max:500},feather:{min:0,max:100},opacity:{min:0,max:1},mode:{enum:["Clone","SeamlessHeal","TextureTransfer"]}},ProceduralVFX:{effectType:{enum:["Smoke","Fire","Rain","Sparks","Snow","Dust","Lightning","Magic","LensFlare","Embers","EnergyBeam"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},density:{min:0,max:1},scale:{min:.001,max:10},speed:{min:0,max:10},intensity:{min:0,max:1},seed:{min:0,max:1e6},colorStart:{},colorEnd:{},durationMs:{min:100,max:1e5},fps:{min:1,max:120}},RefineEdge:{decontaminateAmount:{min:0,max:1},radius:{min:.5,max:50},smooth:{min:0,max:100},feather:{min:0,max:50},shiftEdge:{min:-100,max:100},matteChannel:{enum:["Alpha","Luminance","Red","Green","Blue"]},outputMode:{enum:["Composite","MatteOnly","DecontaminatedRGB"]}},RefractionCaustics3D:{ior:{min:1,max:2.5},dispersion:{min:0,max:.2},refractionScale:{min:0,max:2},causticBrightness:{min:0,max:2},causticScale:{min:.1,max:5},fluidRipples:{min:0,max:1},rippleSpeed:{min:0,max:5},roughness:{min:0,max:1},specularIntensity:{min:0,max:2},lightPosX:{min:0,max:1},lightPosY:{min:0,max:1},tintColor:{},tintStrength:{min:0,max:1},depthInvert:{},depthScale:{min:.1,max:5}},ResizerScaler:{aspectRatioPreset:{enum:["9:16","16:9","1:1","4:5","21:9","custom"]},resolutionPreset:{enum:["4k","1080p","720p","480p","custom"]},targetWidth:{min:1,max:8192},targetHeight:{min:1,max:8192},fitMode:{enum:["cover","contain","stretch","manual"]},zoom:{min:1,max:1e3},offsetX:{min:-8192,max:8192},offsetY:{min:-8192,max:8192},backgroundMode:{enum:["solid","blurred","gradient","transparent"]},backgroundColor:{},backgroundColor2:{},blurRadius:{min:0,max:100},backgroundBrightness:{min:0,max:1},anchorX:{enum:["left","center","right"]},anchorY:{enum:["top","center","bottom"]}},Rotate:{angle:{},fit:{enum:["cover","contain","fill"]},scale:{min:.01,max:20}},StereoPanning:{pan:{min:-1,max:1}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var Ae={threshold:-24,ratio:4,attack:.003,release:.25,knee:6,makeupGain:0},b=class extends t{op="AudioCompressor";constructor(e={}){super(o("AudioCompressor",Ae,e,a.AudioCompressor))}},ke={delayTime:.25,feedback:.4,wet:.3,dry:1,pingPong:!1},f=class extends t{op="AudioDelay";constructor(e={}){super(o("AudioDelay",ke,e,a.AudioDelay))}},De={fadeInDuration:0,fadeOutDuration:0,fadeInCurve:"linear",fadeOutCurve:"linear"},h=class extends t{op="AudioFade";constructor(e={}){super(o("AudioFade",De,e,a.AudioFade))}},Be={threshold:-40,attack:.005,hold:.05,release:.1,range:-80},P=class extends t{op="AudioNoiseGate";constructor(e={}){super(o("AudioNoiseGate",Be,e,a.AudioNoiseGate))}},Ie={type:"peak",frequency:1e3,gain:0,q:1},y=class extends t{op="AudioParametricEq";constructor(e={}){super(o("AudioParametricEq",Ie,e,a.AudioParametricEq))}},Te={roomSize:.5,damping:.5,wet:.3,dry:1,width:1},g=class extends t{op="AudioReverb";constructor(e={}){super(o("AudioReverb",Te,e,a.AudioReverb))}},He={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},N=class extends t{op="Blur";constructor(e={}){super(o("Blur",He,e,a.Blur))}},Le={motionPreset:"DollyZoom",panX:0,panY:0,dollyZ:0,fov:50,parallaxAmount:.6,dofAperture:.3,focusPlane:.4,edgeDilation:.5,depthInvert:!1},x=class extends t{op="CameraParallax3D";constructor(e={}){super(o("CameraParallax3D",Le,e,a.CameraParallax3D))}},Ge={colorSpace:"RGBA",defaultChannel4:1},S=class extends t{op="ChannelMerger";constructor(e={}){super(o("ChannelMerger",Ge,e,a.ChannelMerger))}},Oe={colorSpace:"RGBA"},C=class extends t{op="ChannelSplitter";constructor(e={}){super(o("ChannelSplitter",Oe,e,a.ChannelSplitter))}},ze={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},E=class extends t{op="ColorBalance";constructor(e={}){super(o("ColorBalance",ze,e,a.ColorBalance))}},Fe={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},w=class extends t{op="ColorKey";constructor(e={}){super(o("ColorKey",Fe,e,a.ColorKey))}},Ve={},v=class extends t{op="CornerPin";constructor(e={}){super(o("CornerPin",Ve,e,a.CornerPin))}},Ye={strengthX:50,strengthY:50,xChannel:"Red",yChannel:"Green",wrapMode:"Clamp"},M=class extends t{op="DisplacementMap";constructor(e={}){super(o("DisplacementMap",Ye,e,a.DisplacementMap))}},Xe={strategy:"deterministic",samplePoints:150},R=class extends t{op="ExtractLUT";constructor(e={}){super(o("ExtractLUT",Xe,e,a.ExtractLUT))}},qe={horizontal:!0,vertical:!1,diagonal:!1,mode:"horizontal",symmetry:"none"},A=class extends t{op="Flip";constructor(e={}){super(o("Flip",qe,e,a.Flip))}},We={keyframes:[],motionBlurSize:1.5,movementStyle:"spline",aspectRatio:"input"},k=class extends t{op="KenBurns";constructor(e={}){super(o("KenBurns",We,e,a.KenBurns))}},Ne={dropShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},innerShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},outerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},innerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},stroke:{enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},bevelEmboss:{enabled:!1,style:"InnerBevel",technique:"Smooth",depth:100,direction:"Up",size:5,soften:0,angle:120,altitude:30,highlightColor:"#ffffff",highlightOpacity:.75,shadowColor:"#000000",shadowOpacity:.75},colorOverlay:{enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"}},D=class extends t{op="LayerStyle";constructor(e={}){super(o("LayerStyle",Ne,e,a.LayerStyle))}},je={operations:[]},B=class extends t{op="Liquify";constructor(e={}){super(o("Liquify",je,e,a.Liquify))}},Ke={operation:"Union",radius:0,threshold:.5,clampMin:0,clampMax:1,channelA:"Alpha",channelB:"Alpha",binarize:!1,invertResult:!1,outputFormat:"WhiteWithAlpha"},I=class extends t{op="MaskMath";constructor(e={}){super(o("MaskMath",Ke,e,a.MaskMath))}},Ue={cols:3,rows:3},T=class extends t{op="MeshWarp";constructor(e={}){super(o("MeshWarp",Ue,e,a.MeshWarp))}},$e={noiseType:"Perlin",outputType:"Image",width:512,height:512,scale:10,octaves:4,persistence:.5,lacunarity:2,speed:1,colorStart:"#000000",colorEnd:"#ffffff",durationMs:5e3,fps:30},H=class extends t{op="NoiseGenerator";constructor(e={}){super(o("NoiseGenerator",$e,e,a.NoiseGenerator))}},Ze={width:1080,height:1080,maintainAspect:!0,backgroundColor:"#ffffff"},L=class extends t{op="Paint";constructor(e={}){super(o("Paint",Ze,e,a.Paint))}},_e={centerX:.5,centerY:.5,offsetX:50,offsetY:0,radius:25,sourceRadius:25,feather:50,opacity:1,mode:"SeamlessHeal"},G=class extends t{op="PatchHeal";constructor(e={}){super(o("PatchHeal",_e,e,a.PatchHeal))}},Je={effectType:"Smoke",outputType:"Video",width:1080,height:1080,density:.6,scale:.01,speed:1,intensity:.8,seed:1234,colorStart:"#ffffff",colorEnd:"#ff5500",durationMs:5e3,fps:30},O=class extends t{op="ProceduralVFX";constructor(e={}){super(o("ProceduralVFX",Je,e,a.ProceduralVFX))}},Qe={decontaminateAmount:.7,radius:2,smooth:5,feather:.5,shiftEdge:0,matteChannel:"Alpha",outputMode:"Composite"},z=class extends t{op="RefineEdge";constructor(e={}){super(o("RefineEdge",Qe,e,a.RefineEdge))}},er={ior:1.52,dispersion:.04,refractionScale:.5,causticBrightness:.6,causticScale:1,fluidRipples:0,rippleSpeed:1,roughness:0,specularIntensity:.8,lightPosX:.5,lightPosY:.2,tintColor:"#ffffff",tintStrength:0,depthInvert:!1,depthScale:1},F=class extends t{op="RefractionCaustics3D";constructor(e={}){super(o("RefractionCaustics3D",er,e,a.RefractionCaustics3D))}},rr={aspectRatioPreset:"16:9",resolutionPreset:"1080p",targetWidth:1920,targetHeight:1080,fitMode:"contain",zoom:100,offsetX:0,offsetY:0,backgroundMode:"solid",backgroundColor:"#000000FF",backgroundColor2:"#000000FF",blurRadius:40,backgroundBrightness:.6,anchorX:"center",anchorY:"center"},V=class extends t{op="ResizerScaler";constructor(e={}){super(o("ResizerScaler",rr,e,a.ResizerScaler))}},tr={angle:90,fit:"cover",scale:1},Y=class extends t{op="Rotate";constructor(e={}){super(o("Rotate",tr,e,a.Rotate))}},nr={pan:0},X=class extends t{op="StereoPanning";constructor(e={}){super(o("StereoPanning",nr,e,a.StereoPanning))}},ar={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},q=class extends t{op="Vignette";constructor(e={}){super(o("Vignette",ar,e,a.Vignette))}};function or(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var W=class extends N{constructor(e={}){let{track:n,...l}=e;super(n?{...or(n),...lr(l)}:l)}};function lr(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}c();var ir={audioCompressor:r=>new b(r),audioDelay:r=>new f(r),audioFade:r=>new h(r),audioNoiseGate:r=>new P(r),audioParametricEq:r=>new y(r),audioReverb:r=>new g(r),blur:r=>new W(r),cameraParallax3D:r=>new x(r),channelMerger:r=>new S(r),channelSplitter:r=>new C(r),colorBalance:r=>new E(r),colorKey:r=>new w(r),cornerPin:r=>new v(r),displacementMap:r=>new M(r),extractLUT:r=>new R(r),flip:r=>new A(r),kenBurns:r=>new k(r),layerStyle:r=>new D(r),liquify:r=>new B(r),maskMath:r=>new I(r),meshWarp:r=>new T(r),noiseGenerator:r=>new H(r),paint:r=>new L(r),patchHeal:r=>new G(r),proceduralVFX:r=>new O(r),refineEdge:r=>new z(r),refractionCaustics3D:r=>new F(r),resizerScaler:r=>new V(r),rotate:r=>new Y(r),stereoPanning:r=>new X(r),vignette:r=>new q(r)};var ee=class extends t{op="Levels";constructor(e={}){let n={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...n},red:e.red??{...n},green:e.green??{...n},blue:e.blue??{...n},...e})}},re=class extends t{op="FilmGrain";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},te=class extends t{op;constructor(e,n={}){super(n),this.op=e}},ne=class extends t{op="AudioSignalExtractor";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,n={}){return $.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...n})}},ae=class extends t{op="Curves";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},oe=class extends t{op="SelectiveColor";constructor(e={}){let n={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...n,...e.reds},yellows:{...n,...e.yellows},greens:{...n,...e.greens},cyans:{...n,...e.cyans},blues:{...n,...e.blues},magentas:{...n,...e.magentas},whites:{...n,...e.whites},neutrals:{...n,...e.neutrals},blacks:{...n,...e.blacks}})}},le=class extends t{op="GradientMap";constructor(e={}){let n=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??n,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},ie=class extends t{op="ShadowsHighlights";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},se=class extends t{op="ApplyLUT";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},ue=class extends t{op="UnsharpMask";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},ce=class extends t{op="HighPass";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},pe=class extends t{op="HalftoneScreen";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},de=class extends t{op="TileOffset";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},me=class extends t{op="MotionBlur";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},be=class extends t{op="SSAO";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},fe=class extends t{op="PBRGlass";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},he=class extends t{op="DepthOfField";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},Pe=class extends t{op="Crop";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},ye=class extends t{op="Vision";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},ge=class extends t{op="Relight3D";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},xe=class extends t{op="TemporalDeflicker";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},Se=class extends t{op="Modulate";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{a,b,f as c,h as d,P as e,y as f,g,x as h,S as i,C as j,E as k,w as l,v as m,M as n,R as o,A as p,k as q,D as r,B as s,I as t,T as u,H as v,L as w,G as x,O as y,z,F as A,V as B,Y as C,X as D,q as E,W as F,ir as G,ee as H,re as I,te as J,ne as K,ae as L,oe as M,le as N,ie as O,se as P,ue as Q,ce as R,pe as S,de as T,me as U,be as V,fe as W,he as X,Pe as Y,ye as Z,ge as _,xe as $,Se as aa};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as mi}from"./chunk-OCX5AD23.mjs";import{o as tt,r as Zn}from"./chunk-RQLMW6MA.mjs";import{h as Tn,l as Jn}from"./chunk-24P6DAB3.mjs";import{d as Yn}from"./chunk-6YJP57MZ.mjs";import{e as te,q as Vn,r as Wn,s as GA,t as zn,u as Xn}from"./chunk-LQENNFBA.mjs";import{r as CA}from"./chunk-MTJHQATU.mjs";import{a as et}from"./chunk-IQC2I5A5.mjs";import{c as On,e as Kn}from"./chunk-IQKIHFNZ.mjs";import{d as Jt}from"./chunk-HYBAPT6I.mjs";import{o as TA}from"./chunk-YAQFFQPG.mjs";import{a as di,c as Hn,e as v}from"./chunk-BVF64D6H.mjs";var nr=di((Oa,tr)=>{v();var ot=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":ot(),apply:()=>ot(),construct:()=>ot()});tr.exports=ot()});v();var _n=new Float32Array(2048);for(let A=0;A<2048;A++)_n[A]=.5*(1-Math.cos(2*Math.PI*A/2047));var jn=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;jn[A]=e}var $n=new Float32Array(2048/2),Ar=new Float32Array(2048/2);for(let A=0;A<2048/2;A++){let e=-2*Math.PI*A/2048;$n[A]=Math.cos(e),Ar[A]=Math.sin(e)}function hi(A,e){for(let t=0;t<2048;t++){let n=jn[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=$n[a]??1,g=Ar[a]??0,l=A[i+o]??0,I=e[i+o]??0,B=A[i+o+n]??0,E=e[i+o+n]??0,Q=B*s-E*g,C=B*g+E*s;A[i+o]=l+Q,e[i+o]=I+C,A[i+o+n]=l-Q,e[i+o+n]=I-C}}}var nt=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 M=a+G,w=0;M>=0&&M<i&&(r===1?w=e[0]?.[M]??0:r>=2&&(w=((e[0]?.[M]??0)+(e[1]?.[M]??0))*.5)),this.tempReal[G]=w*(_n[G]??1),this.tempImag[G]=0}hi(this.tempReal,this.tempImag);let s=new Float32Array(1024),g=2/2048;for(let G=0;G<1024;G++){let M=this.tempReal[G]??0,w=this.tempImag[G]??0;s[G]=Math.sqrt(M*M+w*w)*g*2}let l=t/2048,I=Math.max(1,Math.round(20/l)),B=Math.max(I+1,Math.round(150/l)),E=0;for(let G=I;G<=B&&G<1024;G++)E+=(s[G]??0)*(s[G]??0);let Q=Math.min(1,Math.sqrt(E/(B-I+1))*4),C=0;for(let G=0;G<1024;G++){let M=(s[G]??0)-(this.previousBins[G]??0);M>0&&(C+=M),this.previousBins[G]=s[G]??0}let p=Math.min(1,C*.15),h=Math.round(300/l),d=Math.min(1023,Math.round(3400/l)),D=0;for(let G=h;G<=d;G++)D+=(s[G]??0)*(s[G]??0);let x=Math.min(1,Math.sqrt(D/(d-h+1))*3.5);return{fftBins:s,bassEnergy:Q,drumTransient:p,vocalEnergy:x,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)}},qn=class{constructor(e,t,n,r){this.channels=e;this.sampleRate=t;this.fps=n;this.totalFrames=r;let i=new nt,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 I=0;I<l;I++){let B=I/a;this.frames[I]=i.extractAtTime(e,o,B)}}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=nt.createGpuBuffer(e,o),n.set(r,i)}return i}};v();var R={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}};v();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=R.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=R.subtract(e,A);R.lengthSq(n)===0?n=[0,0,1]:n=R.normalize(n);let r=R.cross(n,t);R.lengthSq(r)===0?r=[1,0,0]:r=R.normalize(r);let i=R.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,-R.dot(r,A),-R.dot(i,A),-R.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)}};v();function Me(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 Ie={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=Ie.computeViewMatrix(A),t=Ie.computeProjectionMatrix(A);return _.multiply(t,e)},dolly(A,e,t){let n=R.normalize(R.subtract(e,A)),r=R.multiplyScalar(n,t);return{eye:R.add(A,r),target:e}},truckPedestal(A,e,t,n,r){let i=R.normalize(R.subtract(e,A)),o=R.normalize(R.cross(i,t)),a=R.cross(o,i),s=R.multiplyScalar(o,n),g=R.multiplyScalar(a,r),l=R.add(s,g);return{eye:R.add(A,l),target:R.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,I=A[1]-e*a,B=A[2]-e*o*s;return[l,I,B]},applyOrientation(A,e,t,n){if(e===0&&t===0&&n===0)return A;let r=R.normalize(R.subtract(A.target,A.eye)),i=R.normalize(R.cross(r,A.up)),o=R.cross(i,r),a=R.distance(A.eye,A.target),s=r,g=o;if(t!==0){let B=t*Math.PI/180,E=Math.cos(B),Q=Math.sin(B);s=R.normalize(R.subtract(R.multiplyScalar(s,E),R.multiplyScalar(i,Q)))}let l=R.normalize(R.cross(s,g));if(e!==0){let B=e*Math.PI/180,E=Math.cos(B),Q=Math.sin(B);s=R.normalize(R.add(R.multiplyScalar(s,E),R.multiplyScalar(g,Q))),g=R.normalize(R.cross(l,s))}if(n!==0){let B=n*Math.PI/180,E=Math.cos(B),Q=Math.sin(B);g=R.normalize(R.add(R.multiplyScalar(g,E),R.multiplyScalar(l,Q)))}let I=R.add(A.eye,R.multiplyScalar(s,a));return{...A,target:I,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=Me(s,a,o)*n,l=Me(s,a+101.5,o)*n,I=Me(s,a+203.7,o)*(n*.5),B=Me(s,a+307.1,o)*r,E=Me(s,a+409.3,o)*r,Q=R.normalize(R.subtract(A.target,A.eye)),C=R.normalize(R.cross(Q,A.up)),p=R.cross(C,Q),h=R.add(R.multiplyScalar(C,g),R.add(R.multiplyScalar(p,l),R.multiplyScalar(Q,I))),d=R.add(A.eye,h),D=R.add(A.target,R.add(R.multiplyScalar(C,E*10),R.multiplyScalar(p,B*10)));return{...A,eye:d,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}};v();var pi={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}},yi={none:0,aces:1,agx:2,neutral:3};function rt(A){let e=On(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 er(A){let e=pi[A.preset??"studio"],t=A.intensity??1,n=r=>[r[0]*t,r[1]*t,r[2]*t];return{top:n(rt(A.top??e.top)),horizon:n(rt(A.horizon??e.horizon)),bottom:n(rt(A.bottom??e.bottom)),softboxes:(A.softboxes??e.softboxes)*t,rotationRad:(A.rotation??0)*Math.PI/180,exposureMultiplier:2**(A.exposure??0),toneMapping:yi[A.toneMapping??"neutral"],fog:A.fog?{color:rt(A.fog.color),start:A.fog.start,end:A.fog.end,opacity:Math.max(0,Math.min(1,A.fog.opacity??1))}:void 0}}v();var it=8,Kt=736;function Ot(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 Di(r,i,o)}return[1,1,1]}function Di(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=Ot(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=R.normalize(A.direction);else if(A.target||A.targetX!==void 0||A.targetY!==void 0||A.targetZ!==void 0){let h=A.target?A.target[0]:A.targetX??n,d=A.target?A.target[1]:A.targetY??r,D=A.target?A.target[2]:A.targetZ??i,x=[h,d,D],G=R.subtract(x,[n,r,i]);R.length(G)>1e-4&&(s=R.normalize(G))}let g=Math.max(1,A.radius??1e3),l=A.decay??2,I=Math.max(.1,Math.min(180,A.angle??45)),B=Math.max(0,Math.min(1,A.penumbra??.2)),E=I*Math.PI/180,Q=E*(1-B),C=Math.cos(E),p=Math.cos(Q);return{posType:[n,r,i,a],dirRadius:[s[0],s[1],s[2],g],colorIntensity:[e[0],e[1],e[2],t],spotParams:[C,p,l,0]}},packLightsUniforms(A,e,t){let n=new Float32Array(Kt/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 I=Ot(g.color),B=g.intensity??1;r+=I[0]*B,i+=I[1]*B,o+=I[2]*B}else a.length<it&&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<it;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>=it)break;if(t.castShadow&&(n==="directional"||n==="spot"))return e;e++}}return-1},packPhysicalBlock(A,e,t,n){let r=8+it*16,i=0,o=0,a=0;for(let s of e){if((s.lightType??s.type)!=="ambient")continue;let[g,l,I]=Ot(s.color),B=s.intensity??1,E=Q=>Q<=.04045?Q/12.92:((Q+.055)/1.055)**2.4;i+=E(g)*B,o+=E(l)*B,a+=E(I)*B}if(A[r+0]=i,A[r+1]=o,A[r+2]=a,A[r+3]=1,t){let s=er(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}}};v();var Ge=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 I={};i&&Object.assign(I,A.parseMtl(i));let B=e.split(/\r?\n/);for(let k=0;k<B.length;k++){let eA=B[k]?.trim();if(!eA||eA.startsWith("#"))continue;let q=eA.split(/\s+/),sA=q[0]?.toLowerCase();if(sA==="mtllib"){let BA=q.slice(1).join(" ").trim();if(r.basePath&&typeof CA<"u"&&CA.existsSync)try{let T=TA.resolve(r.basePath,BA);if(CA.existsSync(T)){let iA=CA.readFileSync(T,"utf-8");Object.assign(I,A.parseMtl(iA))}}catch{}}else if(sA==="v"){let BA=Number.parseFloat(q[1]??"0"),T=Number.parseFloat(q[2]??"0"),iA=Number.parseFloat(q[3]??"0");o.push([BA,T,iA])}else if(sA==="vn"){let BA=Number.parseFloat(q[1]??"0"),T=Number.parseFloat(q[2]??"0"),iA=Number.parseFloat(q[3]??"0");a.push([BA,T,iA])}else if(sA==="vt"){let BA=Number.parseFloat(q[1]??"0"),T=q[2]!==void 0?Number.parseFloat(q[2]):0;s.push([BA,T])}else if(sA==="usemtl"){let BA=q[1]??"default";l.faces.length>0?(l={materialName:BA,faces:[]},g.push(l)):l.materialName=BA}else if(sA==="f"){let BA=[];for(let T=1;T<q.length;T++){let iA=q[T];if(!iA)continue;let oA=iA.split("/"),uA=Number.parseInt(oA[0]??"0",10),QA=oA[1]&&oA[1].length>0?Number.parseInt(oA[1],10):0,cA=oA[2]&&oA[2].length>0?Number.parseInt(oA[2],10):0;uA<0&&(uA=o.length+uA+1),QA<0&&(QA=s.length+QA+1),cA<0&&(cA=a.length+cA+1),BA.push({v:uA-1,vt:QA-1,vn:cA-1})}if(BA.length>=3)for(let T=1;T<BA.length-1;T++){let iA=BA[0],oA=BA[T],uA=BA[T+1];iA&&oA&&uA&&l.faces.push([iA,oA,uA])}}}let E=1/0,Q=1/0,C=1/0,p=-1/0,h=-1/0,d=-1/0;for(let k of o){let[eA,q,sA]=k;eA===void 0||q===void 0||sA===void 0||(eA<E&&(E=eA),q<Q&&(Q=q),sA<C&&(C=sA),eA>p&&(p=eA),q>h&&(h=q),sA>d&&(d=sA))}Number.isFinite(E)||(E=-1,Q=-1,C=-1,p=1,h=1,d=1);let D=(E+p)*.5,x=(Q+h)*.5,G=(C+d)*.5,M=Math.max(1e-4,p-E),w=Math.max(1e-4,h-Q),b=Math.max(1e-4,d-C),N=Math.max(M,w,b),U=1;r.normalizeSize&&r.normalizeSize>0&&(U=r.normalizeSize/N),typeof r.scale=="number"&&(U*=r.scale);let L=r.center??!1,F=L?D:0,J=L?x:0,W=L?G:0,K=[];for(let k=0;k<g.length;k++){let eA=g[k];if(!eA||eA.faces.length===0)continue;let q=new Map,sA=[],BA=[],T=[],iA=[],oA=!1;for(let cA of eA.faces)for(let gA of cA){let bA=`${gA.v}_${gA.vt}_${gA.vn}`,DA=q.get(bA);if(DA===void 0){DA=sA.length/3,q.set(bA,DA);let hA=o[gA.v]??[0,0,0],pA=((hA[0]??0)-F)*U,UA=((hA[1]??0)-J)*U,SA=((hA[2]??0)-W)*U;if(sA.push(pA,UA,SA),gA.vt>=0&&s[gA.vt]){let LA=s[gA.vt];T.push(LA[0]??0,1-(LA[1]??0))}else T.push(0,0);if(gA.vn>=0&&a[gA.vn]){oA=!0;let LA=a[gA.vn];BA.push(LA[0]??0,LA[1]??0,LA[2]??0)}else BA.push(0,0,0)}iA.push(DA)}if(!oA||r.smoothNormals){let cA=new Float32Array(sA.length);for(let gA=0;gA<iA.length;gA+=3){let bA=iA[gA],DA=iA[gA+1],hA=iA[gA+2],pA=[sA[bA*3],sA[bA*3+1],sA[bA*3+2]],UA=[sA[DA*3],sA[DA*3+1],sA[DA*3+2]],SA=[sA[hA*3],sA[hA*3+1],sA[hA*3+2]],LA=R.subtract(UA,pA),Nt=R.subtract(SA,pA),vA=R.cross(LA,Nt);cA[bA*3]+=vA[0],cA[bA*3+1]+=vA[1],cA[bA*3+2]+=vA[2],cA[DA*3]+=vA[0],cA[DA*3+1]+=vA[1],cA[DA*3+2]+=vA[2],cA[hA*3]+=vA[0],cA[hA*3+1]+=vA[1],cA[hA*3+2]+=vA[2]}for(let gA=0;gA<sA.length/3;gA++){let bA=cA[gA*3],DA=cA[gA*3+1],hA=cA[gA*3+2],pA=Math.hypot(bA,DA,hA)||1;BA[gA*3]=bA/pA,BA[gA*3+1]=DA/pA,BA[gA*3+2]=hA/pA}}let QA=sA.length/3>65535?new Uint32Array(iA):new Uint16Array(iA);K.push({id:`mesh_${k}`,name:eA.materialName,positions:new Float32Array(sA),normals:new Float32Array(BA),uvs:new Float32Array(T),indices:QA,materialName:eA.materialName})}let aA=(E-F)*U,j=(Q-J)*U,rA=(C-W)*U,fA=(p-F)*U,X=(h-J)*U,V=(d-W)*U,Z=fA-aA,mA=X-j,$=V-rA,lA=(aA+fA)*.5,IA=(j+X)*.5,yA=(rA+V)*.5,AA=Math.hypot(Z,mA,$)*.5;return{meshes:K,materials:I,animations:[],bounds:{min:[aA,j,rA],max:[fA,X,V],center:[lA,IA,yA],size:[Z,mA,$],boundingSphereRadius:AA}}}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"),I=Number.parseFloat(a[3]??"1");n.diffuseColor=[g,l,I,n.diffuseColor?.[3]??1]}else if(s==="ks"){let g=Number.parseFloat(a[1]??"1"),l=Number.parseFloat(a[2]??"1"),I=Number.parseFloat(a[3]??"1");n.specularColor=[g,l,I],n.specularIntensity=(g+l+I)/3}else if(s==="ka"){let g=Number.parseFloat(a[1]??"0.2"),l=Number.parseFloat(a[2]??"0.2"),I=Number.parseFloat(a[3]??"0.2");n.ambientColor=[g,l,I]}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 s==="map_kd"?n.diffuseTexture=a.slice(1).join(" "):(s==="map_bump"||s==="bump")&&(n.normalTexture=a.slice(1).join(" "))}return t}};function Pa(A,e,t={}){return Ge.parse(A,e,t)}function Ha(A){return Ge.parseMtl(A)}function Ne(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{a as mi}from"./chunk-OCX5AD23.mjs";import{o as tt,r as Zn}from"./chunk-RQLMW6MA.mjs";import{b as Jt}from"./chunk-2SJ4BBMT.mjs";import{h as Tn,l as Jn}from"./chunk-24P6DAB3.mjs";import{d as Yn}from"./chunk-6YJP57MZ.mjs";import{e as te,q as Vn,r as Wn,s as GA,t as zn,u as Xn}from"./chunk-LQENNFBA.mjs";import{r as CA}from"./chunk-MTJHQATU.mjs";import{a as et}from"./chunk-IQC2I5A5.mjs";import{c as On,e as Kn}from"./chunk-IQKIHFNZ.mjs";import{o as TA}from"./chunk-YAQFFQPG.mjs";import{a as di,c as Hn,e as v}from"./chunk-BVF64D6H.mjs";var nr=di((Oa,tr)=>{v();var ot=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":ot(),apply:()=>ot(),construct:()=>ot()});tr.exports=ot()});v();var _n=new Float32Array(2048);for(let A=0;A<2048;A++)_n[A]=.5*(1-Math.cos(2*Math.PI*A/2047));var jn=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;jn[A]=e}var $n=new Float32Array(2048/2),Ar=new Float32Array(2048/2);for(let A=0;A<2048/2;A++){let e=-2*Math.PI*A/2048;$n[A]=Math.cos(e),Ar[A]=Math.sin(e)}function hi(A,e){for(let t=0;t<2048;t++){let n=jn[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=$n[a]??1,g=Ar[a]??0,l=A[i+o]??0,I=e[i+o]??0,B=A[i+o+n]??0,E=e[i+o+n]??0,Q=B*s-E*g,C=B*g+E*s;A[i+o]=l+Q,e[i+o]=I+C,A[i+o+n]=l-Q,e[i+o+n]=I-C}}}var nt=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 M=a+G,w=0;M>=0&&M<i&&(r===1?w=e[0]?.[M]??0:r>=2&&(w=((e[0]?.[M]??0)+(e[1]?.[M]??0))*.5)),this.tempReal[G]=w*(_n[G]??1),this.tempImag[G]=0}hi(this.tempReal,this.tempImag);let s=new Float32Array(1024),g=2/2048;for(let G=0;G<1024;G++){let M=this.tempReal[G]??0,w=this.tempImag[G]??0;s[G]=Math.sqrt(M*M+w*w)*g*2}let l=t/2048,I=Math.max(1,Math.round(20/l)),B=Math.max(I+1,Math.round(150/l)),E=0;for(let G=I;G<=B&&G<1024;G++)E+=(s[G]??0)*(s[G]??0);let Q=Math.min(1,Math.sqrt(E/(B-I+1))*4),C=0;for(let G=0;G<1024;G++){let M=(s[G]??0)-(this.previousBins[G]??0);M>0&&(C+=M),this.previousBins[G]=s[G]??0}let p=Math.min(1,C*.15),h=Math.round(300/l),d=Math.min(1023,Math.round(3400/l)),D=0;for(let G=h;G<=d;G++)D+=(s[G]??0)*(s[G]??0);let x=Math.min(1,Math.sqrt(D/(d-h+1))*3.5);return{fftBins:s,bassEnergy:Q,drumTransient:p,vocalEnergy:x,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)}},qn=class{constructor(e,t,n,r){this.channels=e;this.sampleRate=t;this.fps=n;this.totalFrames=r;let i=new nt,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 I=0;I<l;I++){let B=I/a;this.frames[I]=i.extractAtTime(e,o,B)}}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=nt.createGpuBuffer(e,o),n.set(r,i)}return i}};v();var R={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}};v();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=R.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=R.subtract(e,A);R.lengthSq(n)===0?n=[0,0,1]:n=R.normalize(n);let r=R.cross(n,t);R.lengthSq(r)===0?r=[1,0,0]:r=R.normalize(r);let i=R.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,-R.dot(r,A),-R.dot(i,A),-R.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)}};v();function Me(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 Ie={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=Ie.computeViewMatrix(A),t=Ie.computeProjectionMatrix(A);return _.multiply(t,e)},dolly(A,e,t){let n=R.normalize(R.subtract(e,A)),r=R.multiplyScalar(n,t);return{eye:R.add(A,r),target:e}},truckPedestal(A,e,t,n,r){let i=R.normalize(R.subtract(e,A)),o=R.normalize(R.cross(i,t)),a=R.cross(o,i),s=R.multiplyScalar(o,n),g=R.multiplyScalar(a,r),l=R.add(s,g);return{eye:R.add(A,l),target:R.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,I=A[1]-e*a,B=A[2]-e*o*s;return[l,I,B]},applyOrientation(A,e,t,n){if(e===0&&t===0&&n===0)return A;let r=R.normalize(R.subtract(A.target,A.eye)),i=R.normalize(R.cross(r,A.up)),o=R.cross(i,r),a=R.distance(A.eye,A.target),s=r,g=o;if(t!==0){let B=t*Math.PI/180,E=Math.cos(B),Q=Math.sin(B);s=R.normalize(R.subtract(R.multiplyScalar(s,E),R.multiplyScalar(i,Q)))}let l=R.normalize(R.cross(s,g));if(e!==0){let B=e*Math.PI/180,E=Math.cos(B),Q=Math.sin(B);s=R.normalize(R.add(R.multiplyScalar(s,E),R.multiplyScalar(g,Q))),g=R.normalize(R.cross(l,s))}if(n!==0){let B=n*Math.PI/180,E=Math.cos(B),Q=Math.sin(B);g=R.normalize(R.add(R.multiplyScalar(g,E),R.multiplyScalar(l,Q)))}let I=R.add(A.eye,R.multiplyScalar(s,a));return{...A,target:I,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=Me(s,a,o)*n,l=Me(s,a+101.5,o)*n,I=Me(s,a+203.7,o)*(n*.5),B=Me(s,a+307.1,o)*r,E=Me(s,a+409.3,o)*r,Q=R.normalize(R.subtract(A.target,A.eye)),C=R.normalize(R.cross(Q,A.up)),p=R.cross(C,Q),h=R.add(R.multiplyScalar(C,g),R.add(R.multiplyScalar(p,l),R.multiplyScalar(Q,I))),d=R.add(A.eye,h),D=R.add(A.target,R.add(R.multiplyScalar(C,E*10),R.multiplyScalar(p,B*10)));return{...A,eye:d,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}};v();var pi={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}},yi={none:0,aces:1,agx:2,neutral:3};function rt(A){let e=On(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 er(A){let e=pi[A.preset??"studio"],t=A.intensity??1,n=r=>[r[0]*t,r[1]*t,r[2]*t];return{top:n(rt(A.top??e.top)),horizon:n(rt(A.horizon??e.horizon)),bottom:n(rt(A.bottom??e.bottom)),softboxes:(A.softboxes??e.softboxes)*t,rotationRad:(A.rotation??0)*Math.PI/180,exposureMultiplier:2**(A.exposure??0),toneMapping:yi[A.toneMapping??"neutral"],fog:A.fog?{color:rt(A.fog.color),start:A.fog.start,end:A.fog.end,opacity:Math.max(0,Math.min(1,A.fog.opacity??1))}:void 0}}v();var it=8,Kt=736;function Ot(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 Di(r,i,o)}return[1,1,1]}function Di(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=Ot(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=R.normalize(A.direction);else if(A.target||A.targetX!==void 0||A.targetY!==void 0||A.targetZ!==void 0){let h=A.target?A.target[0]:A.targetX??n,d=A.target?A.target[1]:A.targetY??r,D=A.target?A.target[2]:A.targetZ??i,x=[h,d,D],G=R.subtract(x,[n,r,i]);R.length(G)>1e-4&&(s=R.normalize(G))}let g=Math.max(1,A.radius??1e3),l=A.decay??2,I=Math.max(.1,Math.min(180,A.angle??45)),B=Math.max(0,Math.min(1,A.penumbra??.2)),E=I*Math.PI/180,Q=E*(1-B),C=Math.cos(E),p=Math.cos(Q);return{posType:[n,r,i,a],dirRadius:[s[0],s[1],s[2],g],colorIntensity:[e[0],e[1],e[2],t],spotParams:[C,p,l,0]}},packLightsUniforms(A,e,t){let n=new Float32Array(Kt/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 I=Ot(g.color),B=g.intensity??1;r+=I[0]*B,i+=I[1]*B,o+=I[2]*B}else a.length<it&&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<it;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>=it)break;if(t.castShadow&&(n==="directional"||n==="spot"))return e;e++}}return-1},packPhysicalBlock(A,e,t,n){let r=8+it*16,i=0,o=0,a=0;for(let s of e){if((s.lightType??s.type)!=="ambient")continue;let[g,l,I]=Ot(s.color),B=s.intensity??1,E=Q=>Q<=.04045?Q/12.92:((Q+.055)/1.055)**2.4;i+=E(g)*B,o+=E(l)*B,a+=E(I)*B}if(A[r+0]=i,A[r+1]=o,A[r+2]=a,A[r+3]=1,t){let s=er(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}}};v();var Ge=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 I={};i&&Object.assign(I,A.parseMtl(i));let B=e.split(/\r?\n/);for(let k=0;k<B.length;k++){let eA=B[k]?.trim();if(!eA||eA.startsWith("#"))continue;let q=eA.split(/\s+/),sA=q[0]?.toLowerCase();if(sA==="mtllib"){let BA=q.slice(1).join(" ").trim();if(r.basePath&&typeof CA<"u"&&CA.existsSync)try{let T=TA.resolve(r.basePath,BA);if(CA.existsSync(T)){let iA=CA.readFileSync(T,"utf-8");Object.assign(I,A.parseMtl(iA))}}catch{}}else if(sA==="v"){let BA=Number.parseFloat(q[1]??"0"),T=Number.parseFloat(q[2]??"0"),iA=Number.parseFloat(q[3]??"0");o.push([BA,T,iA])}else if(sA==="vn"){let BA=Number.parseFloat(q[1]??"0"),T=Number.parseFloat(q[2]??"0"),iA=Number.parseFloat(q[3]??"0");a.push([BA,T,iA])}else if(sA==="vt"){let BA=Number.parseFloat(q[1]??"0"),T=q[2]!==void 0?Number.parseFloat(q[2]):0;s.push([BA,T])}else if(sA==="usemtl"){let BA=q[1]??"default";l.faces.length>0?(l={materialName:BA,faces:[]},g.push(l)):l.materialName=BA}else if(sA==="f"){let BA=[];for(let T=1;T<q.length;T++){let iA=q[T];if(!iA)continue;let oA=iA.split("/"),uA=Number.parseInt(oA[0]??"0",10),QA=oA[1]&&oA[1].length>0?Number.parseInt(oA[1],10):0,cA=oA[2]&&oA[2].length>0?Number.parseInt(oA[2],10):0;uA<0&&(uA=o.length+uA+1),QA<0&&(QA=s.length+QA+1),cA<0&&(cA=a.length+cA+1),BA.push({v:uA-1,vt:QA-1,vn:cA-1})}if(BA.length>=3)for(let T=1;T<BA.length-1;T++){let iA=BA[0],oA=BA[T],uA=BA[T+1];iA&&oA&&uA&&l.faces.push([iA,oA,uA])}}}let E=1/0,Q=1/0,C=1/0,p=-1/0,h=-1/0,d=-1/0;for(let k of o){let[eA,q,sA]=k;eA===void 0||q===void 0||sA===void 0||(eA<E&&(E=eA),q<Q&&(Q=q),sA<C&&(C=sA),eA>p&&(p=eA),q>h&&(h=q),sA>d&&(d=sA))}Number.isFinite(E)||(E=-1,Q=-1,C=-1,p=1,h=1,d=1);let D=(E+p)*.5,x=(Q+h)*.5,G=(C+d)*.5,M=Math.max(1e-4,p-E),w=Math.max(1e-4,h-Q),b=Math.max(1e-4,d-C),N=Math.max(M,w,b),U=1;r.normalizeSize&&r.normalizeSize>0&&(U=r.normalizeSize/N),typeof r.scale=="number"&&(U*=r.scale);let L=r.center??!1,F=L?D:0,J=L?x:0,W=L?G:0,K=[];for(let k=0;k<g.length;k++){let eA=g[k];if(!eA||eA.faces.length===0)continue;let q=new Map,sA=[],BA=[],T=[],iA=[],oA=!1;for(let cA of eA.faces)for(let gA of cA){let bA=`${gA.v}_${gA.vt}_${gA.vn}`,DA=q.get(bA);if(DA===void 0){DA=sA.length/3,q.set(bA,DA);let hA=o[gA.v]??[0,0,0],pA=((hA[0]??0)-F)*U,UA=((hA[1]??0)-J)*U,SA=((hA[2]??0)-W)*U;if(sA.push(pA,UA,SA),gA.vt>=0&&s[gA.vt]){let LA=s[gA.vt];T.push(LA[0]??0,1-(LA[1]??0))}else T.push(0,0);if(gA.vn>=0&&a[gA.vn]){oA=!0;let LA=a[gA.vn];BA.push(LA[0]??0,LA[1]??0,LA[2]??0)}else BA.push(0,0,0)}iA.push(DA)}if(!oA||r.smoothNormals){let cA=new Float32Array(sA.length);for(let gA=0;gA<iA.length;gA+=3){let bA=iA[gA],DA=iA[gA+1],hA=iA[gA+2],pA=[sA[bA*3],sA[bA*3+1],sA[bA*3+2]],UA=[sA[DA*3],sA[DA*3+1],sA[DA*3+2]],SA=[sA[hA*3],sA[hA*3+1],sA[hA*3+2]],LA=R.subtract(UA,pA),Nt=R.subtract(SA,pA),vA=R.cross(LA,Nt);cA[bA*3]+=vA[0],cA[bA*3+1]+=vA[1],cA[bA*3+2]+=vA[2],cA[DA*3]+=vA[0],cA[DA*3+1]+=vA[1],cA[DA*3+2]+=vA[2],cA[hA*3]+=vA[0],cA[hA*3+1]+=vA[1],cA[hA*3+2]+=vA[2]}for(let gA=0;gA<sA.length/3;gA++){let bA=cA[gA*3],DA=cA[gA*3+1],hA=cA[gA*3+2],pA=Math.hypot(bA,DA,hA)||1;BA[gA*3]=bA/pA,BA[gA*3+1]=DA/pA,BA[gA*3+2]=hA/pA}}let QA=sA.length/3>65535?new Uint32Array(iA):new Uint16Array(iA);K.push({id:`mesh_${k}`,name:eA.materialName,positions:new Float32Array(sA),normals:new Float32Array(BA),uvs:new Float32Array(T),indices:QA,materialName:eA.materialName})}let aA=(E-F)*U,j=(Q-J)*U,rA=(C-W)*U,fA=(p-F)*U,X=(h-J)*U,V=(d-W)*U,Z=fA-aA,mA=X-j,$=V-rA,lA=(aA+fA)*.5,IA=(j+X)*.5,yA=(rA+V)*.5,AA=Math.hypot(Z,mA,$)*.5;return{meshes:K,materials:I,animations:[],bounds:{min:[aA,j,rA],max:[fA,X,V],center:[lA,IA,yA],size:[Z,mA,$],boundingSphereRadius:AA}}}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"),I=Number.parseFloat(a[3]??"1");n.diffuseColor=[g,l,I,n.diffuseColor?.[3]??1]}else if(s==="ks"){let g=Number.parseFloat(a[1]??"1"),l=Number.parseFloat(a[2]??"1"),I=Number.parseFloat(a[3]??"1");n.specularColor=[g,l,I],n.specularIntensity=(g+l+I)/3}else if(s==="ka"){let g=Number.parseFloat(a[1]??"0.2"),l=Number.parseFloat(a[2]??"0.2"),I=Number.parseFloat(a[3]??"0.2");n.ambientColor=[g,l,I]}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 s==="map_kd"?n.diffuseTexture=a.slice(1).join(" "):(s==="map_bump"||s==="bump")&&(n.normalTexture=a.slice(1).join(" "))}return t}};function Pa(A,e,t={}){return Ge.parse(A,e,t)}function Ha(A){return Ge.parseMtl(A)}function Ne(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??TA.dirname(o),...t}):n=A}catch{n=A}else n=A}return Ge.parse(n,e,t)}v();var ir=Hn(nr(),1);var re=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,I;if(i){if(o+25>t.byteLength)return null;g=Number(n.getBigUint64(o,!0)),l=Number(n.getBigUint64(o+8,!0)),I=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),I=n.getUint8(o+12),o+=13}if(g===0)return null;let B=new TextDecoder().decode(t.subarray(o,o+I));o+=I;let E=[];for(let C=0;C<l;C++){let p=String.fromCharCode(t[o]);switch(o+=1,p){case"Y":{E.push(n.getInt16(o,!0)),o+=2;break}case"C":case"B":{E.push(n.getUint8(o)!==0),o+=1;break}case"I":{E.push(n.getInt32(o,!0)),o+=4;break}case"F":{E.push(n.getFloat32(o,!0)),o+=4;break}case"D":{E.push(n.getFloat64(o,!0)),o+=8;break}case"L":{E.push(Number(n.getBigInt64(o,!0))),o+=8;break}case"S":{let h=n.getUint32(o,!0);o+=4;let d=new TextDecoder().decode(t.subarray(o,o+h));E.push(d),o+=h;break}case"R":{let h=n.getUint32(o,!0);o+=4;let d=t.subarray(o,o+h);E.push(d),o+=h;break}case"f":case"d":case"i":case"l":case"b":case"c":{let h=n.getUint32(o,!0),d=n.getUint32(o+4,!0),D=n.getUint32(o+8,!0);o+=12;let x;if(d===1){let M=t.subarray(o,o+D);x=(0,ir.inflateSync)(M),o+=D}else{let w=h*(p==="d"||p==="l"?8:p==="f"||p==="i"?4:1);x=t.subarray(o,o+w),o+=w}let G=new DataView(x.buffer,x.byteOffset,x.byteLength);if(p==="f"){let M=new Float32Array(h);for(let w=0;w<h;w++)M[w]=G.getFloat32(w*4,!0);E.push(M)}else if(p==="d"){let M=new Float64Array(h);for(let w=0;w<h;w++)M[w]=G.getFloat64(w*8,!0);E.push(M)}else if(p==="i"){let M=new Int32Array(h);for(let w=0;w<h;w++)M[w]=G.getInt32(w*4,!0);E.push(M)}else if(p==="l"){let M=new Float64Array(h);for(let w=0;w<h;w++)M[w]=Number(G.getBigInt64(w*8,!0));E.push(M)}else if(p==="b"){let M=new Uint8Array(h);for(let w=0;w<h;w++)M[w]=G.getUint8(w);E.push(M)}else E.push(x);break}default:break}}let Q=[];for(;o<g;){let C=s();if(C)Q.push(C);else break}return o=g,{name:B,props:E,children:Q}};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("{"),I=l?g.slice(0,-1).trim():g,B=[];if(I){let C=I.split(",").map(p=>p.trim());for(let p of C)p.startsWith('"')&&p.endsWith('"')?B.push(p.slice(1,-1)):Number.isNaN(Number(p))?B.push(p):B.push(Number(p))}let E={name:s,props:B,children:[]},Q=n[n.length-1];Q&&Q.children.push(E),l&&n.push(E)}return t}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 N=b.props[0]??0,L=String(b.props[1]??"").split("::"),F=L.length>1?L[1]:L[0],J=String(b.props[2]??b.name);i.set(N,{id:N,name:F,type:J,node:b})}let o=[];if(r){for(let b of r.children)if(b.name==="C"||b.name==="Connect"){let N=String(b.props[0]),U=b.props[1]??0,L=b.props[2]??0,F=N==="OP"?String(b.props[3]):void 0;o.push({childId:U,parentId:L,propName:F})}}let a=[],s={};function g(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 N=b.children.find(U=>U.name==="a");return N&&N.props.length>0?N.props:Array.isArray(b.props)&&b.props.length>0&&typeof b.props[0]=="number"?b.props:[]}for(let[b,N]of i)if(N.node.name==="Geometry"&&(N.type==="Mesh"||N.node.props[2]==="Mesh"||N.type==="")){let U=N.node,L=U.children.find(T=>T.name==="Vertices"),F=U.children.find(T=>T.name==="PolygonVertexIndex"),J=U.children.find(T=>T.name==="LayerElementNormal"),W=U.children.find(T=>T.name==="LayerElementUV");if(!L||!F)continue;let K=g(L),aA=g(F),j=J?.children.find(T=>T.name==="Normals"),rA=g(j),fA=W?.children.find(T=>T.name==="UV"),X=W?.children.find(T=>T.name==="UVIndex"),V=g(fA),Z=g(X),mA=[],$=[],lA=[];for(let T=0;T<aA.length;T++){let iA=aA[T];if(iA<0){if(lA.push(-(iA+1)),$.push(T),lA.length>=3)for(let oA=1;oA<lA.length-1;oA++)mA.push([lA[0],lA[oA],lA[oA+1]]);lA=[]}else lA.push(iA),$.push(T)}let IA=[],yA=[],AA=[],k=[];for(let T=0;T<mA.length;T++){let iA=mA[T];for(let oA=0;oA<3;oA++){let uA=iA[oA],QA=IA.length/3,cA=K[uA*3]??0,gA=K[uA*3+1]??0,bA=K[uA*3+2]??0;if(IA.push(cA,gA,bA),rA.length>0){let DA=rA[uA*3]??0,hA=rA[uA*3+1]??0,pA=rA[uA*3+2]??0;yA.push(DA,hA,pA)}else yA.push(0,0,1);if(V.length>0){let DA=uA;Z.length>0&&(DA=Z[uA]??uA);let hA=V[DA*2]??0,pA=V[DA*2+1]??0;AA.push(hA,1-pA)}else AA.push(0,0);k.push(QA)}}if(rA.length===0||t.smoothNormals){let T=new Float32Array(IA.length);for(let iA=0;iA<k.length;iA+=3){let oA=k[iA],uA=k[iA+1],QA=k[iA+2],cA=[IA[oA*3],IA[oA*3+1],IA[oA*3+2]],gA=[IA[uA*3],IA[uA*3+1],IA[uA*3+2]],bA=[IA[QA*3],IA[QA*3+1],IA[QA*3+2]],DA=R.subtract(gA,cA),hA=R.subtract(bA,cA),pA=R.cross(DA,hA);T[oA*3]+=pA[0],T[oA*3+1]+=pA[1],T[oA*3+2]+=pA[2],T[uA*3]+=pA[0],T[uA*3+1]+=pA[1],T[uA*3+2]+=pA[2],T[QA*3]+=pA[0],T[QA*3+1]+=pA[1],T[QA*3+2]+=pA[2]}for(let iA=0;iA<IA.length/3;iA++){let oA=T[iA*3],uA=T[iA*3+1],QA=T[iA*3+2],cA=Math.hypot(oA,uA,QA)||1;yA[iA*3]=oA/cA,yA[iA*3+1]=uA/cA,yA[iA*3+2]=QA/cA}}let eA=o.find(T=>T.parentId===b&&i.get(T.childId)?.type==="Deformer"&&i.get(T.childId)?.node.props[2]==="Skin"),q,sA;if(eA){let T=IA.length/3;q=new Float32Array(T*4),sA=new Float32Array(T*4),o.filter(oA=>oA.parentId===eA.childId&&i.get(oA.childId)?.type==="Deformer"&&i.get(oA.childId)?.node.props[2]==="Cluster").forEach((oA,uA)=>{let QA=i.get(oA.childId)?.node,cA=QA?.children.find(bA=>bA.name==="Indexes"),gA=QA?.children.find(bA=>bA.name==="Weights");if(cA&&gA){let bA=g(cA),DA=g(gA);for(let hA=0;hA<bA.length;hA++){let pA=DA[hA]??0;for(let UA=0;UA<T;UA++)for(let SA=0;SA<4;SA++)if(sA[UA*4+SA]===0){q[UA*4+SA]=uA,sA[UA*4+SA]=pA;break}}}})}let BA=IA.length/3>65535;a.push({id:`fbx_mesh_${b}`,name:N.name,positions:new Float32Array(IA),normals:new Float32Array(yA),uvs:new Float32Array(AA),indices:BA?new Uint32Array(k):new Uint16Array(k),jointIndices:q,jointWeights:sA,materialName:N.name})}for(let[,b]of i)if(b.node.name==="Material"){let U=b.node.children.find(W=>W.name==="Properties70"),L=[1,1,1,1],F=32,J=1;if(U){for(let W of U.children)if(W.name==="P"){let K=String(W.props[0]);if(K==="DiffuseColor"||K==="Color"){let aA=Number(W.props[4]??1),j=Number(W.props[5]??1),rA=Number(W.props[6]??1);L=[aA,j,rA,1]}else K==="Shininess"||K==="ShininessExponent"?F=Number(W.props[4]??32):K==="Opacity"&&(J=Number(W.props[4]??1),L[3]=J)}}s[b.name]={name:b.name,diffuseColor:L,shininess:F,opacity:J}}let l=[];for(let[b,N]of i)if(N.node.name==="AnimationStack"){let U=N.name||"Take 001",L=[],F=o.find(W=>W.parentId===b&&i.get(W.childId)?.node.name==="AnimationLayer");if(F){let W=o.filter(aA=>aA.parentId===F.childId&&i.get(aA.childId)?.node.name==="AnimationCurveNode"),K=new Map;for(let aA of W){let j=i.get(aA.childId);if(!j)continue;let rA=o.find($=>$.childId===j.id&&i.get($.parentId)?.node.name==="Model"),fA=rA?i.get(rA.parentId):void 0,X=rr(rA?.propName)??rr(j.name);if(!X)continue;let V=`${fA?.id??j.id}|${X}`,Z=K.get(V);if(!Z){let $=fA?.node;Z={nodeName:fA?.name??j.name,model:$,kind:X,defaults:wi($,j.node,X),channels:[void 0,void 0,void 0]},K.set(V,Z)}o.filter($=>$.parentId===j.id&&i.get($.childId)?.node.name==="AnimationCurve").forEach(($,lA)=>{let IA=bi($.propName)??lA;if(IA>2)return;let yA=i.get($.childId)?.node,AA=g(yA?.children.find(q=>q.name==="KeyTime")),k=g(yA?.children.find(q=>q.name==="KeyValueFloat")),eA=Math.min(AA.length,k.length);eA!==0&&(Z.channels[IA]={times:Array.from(AA.slice(0,eA),q=>Number(q)),values:Array.from(k.slice(0,eA),q=>Number(q))})})}for(let aA of K.values()){let j=Fi(aA);j&&L.push(j)}}let J=1;for(let W of L)if(W.times.length>0){let K=W.times[W.times.length-1]??0;K>J&&(J=K)}l.push({name:U,duration:J,fps:30,tracks:L})}let I=1/0,B=1/0,E=1/0,Q=-1/0,C=-1/0,p=-1/0;for(let b of a)for(let N=0;N<b.positions.length;N+=3){let U=b.positions[N],L=b.positions[N+1],F=b.positions[N+2];U<I&&(I=U),L<B&&(B=L),F<E&&(E=F),U>Q&&(Q=U),L>C&&(C=L),F>p&&(p=F)}Number.isFinite(I)||(I=-1,B=-1,E=-1,Q=1,C=1,p=1);let h=Q-I,d=C-B,D=p-E,x=(I+Q)*.5,G=(B+C)*.5,M=(E+p)*.5,w=Math.hypot(h,d,D)*.5;return{meshes:a,materials:s,animations:l,bounds:{min:[I,B,E],max:[Q,C,p],center:[x,G,M],size:[h,d,D],boundingSphereRadius:w}}}};function rr(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 bi(A){switch(A){case"d|X":return 0;case"d|Y":return 1;case"d|Z":return 2;default:return}}function Yt(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 wi(A,e,t){let n=t==="S"?1:0,r=Yt(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=Yt(e,`d|${"XYZ"[o]}`)?.[0],g=a??s;g!==void 0&&Number.isFinite(g)&&(i[o]=g)}return i}var xi=["XYZ","XZY","YZX","YXZ","ZXY","ZYX"];function Mi(A){let e=Yt(A,"RotationOrder")?.[0]??0;return xi[e]??"XYZ"}function Gi(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 Ni(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 Fi(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?Mi(A.model):"XYZ",a;return t.forEach((s,g)=>{n[g]=s/re.FBX_KTIME;let l=[0,1,2].map(B=>{let E=A.channels[B];return E?Ni(E,s):A.defaults[B]});if(!r){i.set(l,g*3);return}let I=Gi(l,o);if(a&&a[0]*I[0]+a[1]*I[1]+a[2]*I[2]+a[3]*I[3]<0)for(let B=0;B<4;B++)I[B]=-I[B];a=I,i.set(I,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 Wa(A,e={}){return re.parse(A,e)}function Fe(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)}}catch{}}return re.parse(t,e)}v();v();var or=`
|
|
3
3
|
struct AudioLatentBuffer {
|
|
4
4
|
fftBins : array<f32, 1024>,
|
|
@@ -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-RQLMW6MA.mjs";import{d as at}from"./chunk-6YJP57MZ.mjs";import{c as st,d as ct,e as B,r as be}from"./chunk-LQENNFBA.mjs";import{a as de}from"./chunk-IQC2I5A5.mjs";import{d as Ge}from"./chunk-HYBAPT6I.mjs";import{d as Re,e as we}from"./chunk-BVF64D6H.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function We(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(We(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(We(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(We(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(We(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(We(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=B.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),B.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),B.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,Fe=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-Fe)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(B.isFailed(i)&&(i="Inter"),B.isFailed(i))return;let r=e.fontSize??48,c=B.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=B.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);B.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=B.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),Fe=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(Fe=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:Fe,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let W of I){let O=x.glyphs[W].charIndex,$=T.get(O);$?$.push(W):T.set(O,[W])}let M=Array.from(T.values()),g=W=>{let O=x.glyphs[W[0]];return O.clusterX??O.x};M.sort((W,O)=>g(W)-g(O));let _=[];for(let W of M){let O=x.glyphs[W[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let W=0;W<M.length-1;W++)G+=y*_[W];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let W=0;W<M.length;W++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[W])xe[$]+=O;W<M.length-1&&(N+=y*_[W])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,W=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:F,p_out:E}=je(z,K,ae,ne,W,q,!0),L=_e(F,E,f,ie,l,te,z,K,ae,ne,W,e.opacity??1,!1);if(!L.visible)continue;O=L.opacity,$=L.transX,J=L.transY,se=L.rot,V=L.scale,I===void 0&&(Ce=L.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let F=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=F.transX,J=F.transY,se=F.rot,V=F.scale,Me=F.scaleX,Ue=F.scaleY,O=F.opacity,I===void 0&&(Ce=F.blurAmount),F.color&&(tt=F.color),F.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,F.lineSpacing,F.lineAnchor??0)),De=F.transZ??0,nt=F.chromaticShift??0,it=F.dissolveProgress??0,ot=F.vfxParam??0,Ne=F.skewM01??0,Le=F.skewM10??0,Be=F.anchorConfig,rt=F.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let F=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,F)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Wt=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Wt??D);(F=>{let E=_*24,L=p.fontScale??r/o.unitsPerEm,Ie=R.width*L/2*Me,Ae=R.height*L/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*L+Ie,ce=-R.bearingY*L+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+F,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*L+Ie+e.dstRect.x+a+y+F,Te=p.y-R.bearingY*L+Ae+re.y+a+S;if(Be){let ve={width:R.width*L,height:R.height*L,ascender:(o.ascender??800)*L,descender:(o.descender??-200)*L},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Ft=p.opacity??1;g[E+19]=Ye.a*O*rt*Ft,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),W=G/M,O=(s.startOpacity??.8)*(1-W)+(s.endOpacity??0)*W,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&B.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.5,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,W=R.x+G/2,O=R.y+G/2;N=N.translate(W,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-W,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
|
|
1
|
+
import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-RQLMW6MA.mjs";import{b as Ge}from"./chunk-2SJ4BBMT.mjs";import{d as at}from"./chunk-6YJP57MZ.mjs";import{c as st,d as ct,e as B,r as be}from"./chunk-LQENNFBA.mjs";import{a as de}from"./chunk-IQC2I5A5.mjs";import{d as Re,e as we}from"./chunk-BVF64D6H.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function We(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(We(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(We(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(We(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(We(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(We(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=B.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),B.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),B.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,Fe=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-Fe)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(B.isFailed(i)&&(i="Inter"),B.isFailed(i))return;let r=e.fontSize??48,c=B.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=B.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);B.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=B.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),Fe=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(Fe=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:Fe,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let W of I){let O=x.glyphs[W].charIndex,$=T.get(O);$?$.push(W):T.set(O,[W])}let M=Array.from(T.values()),g=W=>{let O=x.glyphs[W[0]];return O.clusterX??O.x};M.sort((W,O)=>g(W)-g(O));let _=[];for(let W of M){let O=x.glyphs[W[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let W=0;W<M.length-1;W++)G+=y*_[W];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let W=0;W<M.length;W++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[W])xe[$]+=O;W<M.length-1&&(N+=y*_[W])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,W=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:F,p_out:E}=je(z,K,ae,ne,W,q,!0),L=_e(F,E,f,ie,l,te,z,K,ae,ne,W,e.opacity??1,!1);if(!L.visible)continue;O=L.opacity,$=L.transX,J=L.transY,se=L.rot,V=L.scale,I===void 0&&(Ce=L.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let F=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=F.transX,J=F.transY,se=F.rot,V=F.scale,Me=F.scaleX,Ue=F.scaleY,O=F.opacity,I===void 0&&(Ce=F.blurAmount),F.color&&(tt=F.color),F.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,F.lineSpacing,F.lineAnchor??0)),De=F.transZ??0,nt=F.chromaticShift??0,it=F.dissolveProgress??0,ot=F.vfxParam??0,Ne=F.skewM01??0,Le=F.skewM10??0,Be=F.anchorConfig,rt=F.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let F=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,F)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Wt=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Wt??D);(F=>{let E=_*24,L=p.fontScale??r/o.unitsPerEm,Ie=R.width*L/2*Me,Ae=R.height*L/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*L+Ie,ce=-R.bearingY*L+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+F,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*L+Ie+e.dstRect.x+a+y+F,Te=p.y-R.bearingY*L+Ae+re.y+a+S;if(Be){let ve={width:R.width*L,height:R.height*L,ascender:(o.ascender??800)*L,descender:(o.descender??-200)*L},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Ft=p.opacity??1;g[E+19]=Ye.a*O*rt*Ft,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),W=G/M,O=(s.startOpacity??.8)*(1-W)+(s.endOpacity??0)*W,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&B.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.5,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,W=R.x+G/2,O=R.y+G/2;N=N.translate(W,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-W,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
|
|
2
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";B.isFailed(m)&&(m="Inter");let C=B.getFont(m,n.fontWeight,null,void 0,i),h=0;for(let k of t){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=be.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`
|