framefields 2.11.0 → 2.12.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/NOTICE.md +4 -0
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-BuCVk1IQ.mjs → audio-DHLoNcxD.mjs} +3 -3
- package/dist/{audio-BuCVk1IQ.mjs.map → audio-DHLoNcxD.mjs.map} +1 -1
- package/dist/{audio-CYZkDwae.d.mts → audio-afTBdB3U.d.mts} +3 -3
- package/dist/{audio-CYZkDwae.d.mts.map → audio-afTBdB3U.d.mts.map} +1 -1
- package/dist/cli/check-worker.mjs +45 -45
- package/dist/cli.mjs +174 -83
- package/dist/cli.mjs.map +1 -1
- package/dist/cloud/index.d.mts +14 -3
- package/dist/cloud/index.d.mts.map +1 -1
- package/dist/cloud/index.mjs +2 -2
- package/dist/{cloud-xcfV4J03.mjs → cloud-COid1Ipa.mjs} +169 -16
- package/dist/cloud-COid1Ipa.mjs.map +1 -0
- package/dist/components/index.d.mts +10 -10
- package/dist/components/index.mjs +44 -44
- package/dist/{dist-Dg9LMWoX.mjs → dist-2_lT3Dwc.mjs} +2 -2
- package/dist/{dist-Dg9LMWoX.mjs.map → dist-2_lT3Dwc.mjs.map} +1 -1
- package/dist/{dist-CWLLnigL.mjs → dist-B-OPY7Cs.mjs} +273 -76
- package/dist/dist-B-OPY7Cs.mjs.map +1 -0
- package/dist/{dist-EQX3TUUl.mjs → dist-BSqeChht.mjs} +3 -3
- package/dist/{dist-EQX3TUUl.mjs.map → dist-BSqeChht.mjs.map} +1 -1
- package/dist/{dist-CNGv-JTX.mjs → dist-BwtxciN4.mjs} +1 -1
- package/dist/dist-CySGkG54.mjs.map +1 -1
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +35 -35
- package/dist/{effects-DKLbLXF7.mjs → effects-C8CL9cOq.mjs} +2 -2
- package/dist/{effects-DKLbLXF7.mjs.map → effects-C8CL9cOq.mjs.map} +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-gPbGbShD.mjs → fonts-BQrDjnpV.mjs} +2 -2
- package/dist/{fonts-gPbGbShD.mjs.map → fonts-BQrDjnpV.mjs.map} +1 -1
- package/dist/{gpu-CpkJJLQP.mjs → gpu-DHa-3Dou.mjs} +11 -3
- package/dist/gpu-DHa-3Dou.mjs.map +1 -0
- package/dist/{index-Cro-818i.d.mts → index-BNClElng.d.mts} +592 -516
- package/dist/index-BNClElng.d.mts.map +1 -0
- package/dist/{index-jSDEM-uE.d.mts → index-CAuNuvIg.d.mts} +5 -5
- package/dist/{index-jSDEM-uE.d.mts.map → index-CAuNuvIg.d.mts.map} +1 -1
- package/dist/index-COYNQ_mf.d.mts.map +1 -1
- package/dist/{index-D2i9J9Zq.d.mts → index-CTv9ZieD.d.mts} +2 -2
- package/dist/{index-D2i9J9Zq.d.mts.map → index-CTv9ZieD.d.mts.map} +1 -1
- package/dist/{index-C8YwZ6k1.d.mts → index-DQa7mhzq.d.mts} +2 -2
- package/dist/{index-C8YwZ6k1.d.mts.map → index-DQa7mhzq.d.mts.map} +1 -1
- package/dist/{index-Bly-7YM1.d.mts → index-Drk6HC2k.d.mts} +2 -2
- package/dist/{index-Bly-7YM1.d.mts.map → index-Drk6HC2k.d.mts.map} +1 -1
- package/dist/{index-BuiZzc6i.d.mts → index-Fliv2Z-w.d.mts} +32 -1
- package/dist/index-Fliv2Z-w.d.mts.map +1 -0
- package/dist/{index-CEU_Zsb9.d.mts → index-WwuuX8ZJ.d.mts} +24 -22
- package/dist/index-WwuuX8ZJ.d.mts.map +1 -0
- package/dist/index.d.mts +10 -10
- package/dist/index.mjs +52 -52
- package/dist/preview/index.d.mts +1 -1
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-BToKUTtZ.mjs → preview-BUtt481A.mjs} +2 -2
- package/dist/{preview-BToKUTtZ.mjs.map → preview-BUtt481A.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-QF4JWVO3.mjs → chunk-35XSD4QM.mjs} +15 -15
- package/dist/preview-engine/{chunk-ZF2MEFKO.mjs → chunk-3DOIE4DV.mjs} +1 -1
- package/dist/preview-engine/{chunk-JDB7PMRI.mjs → chunk-3IT7LHWR.mjs} +1 -1
- package/dist/preview-engine/{chunk-DNNGWS2C.mjs → chunk-3MLGWUSK.mjs} +1 -1
- package/dist/preview-engine/{chunk-KVOFO273.mjs → chunk-3QJ5GRBH.mjs} +1 -1
- package/dist/preview-engine/{chunk-54Q5CKSV.mjs → chunk-3QTHW2CD.mjs} +1 -1
- package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
- package/dist/preview-engine/{chunk-BRV7TQDV.mjs → chunk-4JNIEQS2.mjs} +1 -1
- package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
- package/dist/preview-engine/{chunk-C4M3B2Q2.mjs → chunk-5SLBE2FX.mjs} +1 -1
- package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
- package/dist/preview-engine/{chunk-UMJ3VGKN.mjs → chunk-6B3NOY5W.mjs} +1 -1
- package/dist/preview-engine/{chunk-VQA4DYZU.mjs → chunk-6O7UDVNL.mjs} +1 -1
- package/dist/preview-engine/chunk-74J4DJQA.mjs +1 -0
- package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
- package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
- package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
- package/dist/preview-engine/{chunk-OLB4TQLQ.mjs → chunk-AKVRG7UU.mjs} +1 -1
- package/dist/preview-engine/{chunk-CIVEZJYF.mjs → chunk-CRBOK3JT.mjs} +1 -1
- package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
- package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-EPRINA4V.mjs → chunk-E7BKWHOT.mjs} +10 -10
- package/dist/preview-engine/{chunk-NOKPBMIP.mjs → chunk-EWDJMJO5.mjs} +1 -1
- package/dist/preview-engine/{chunk-5KSBS3AL.mjs → chunk-EYE3GNL5.mjs} +1 -1
- package/dist/preview-engine/{chunk-GHTG5XV6.mjs → chunk-EYKN2VET.mjs} +84 -25
- package/dist/preview-engine/{chunk-OELPPLML.mjs → chunk-FJTURGJV.mjs} +1 -1
- package/dist/preview-engine/{chunk-IKVJ4MW5.mjs → chunk-G4ZTSLZU.mjs} +1 -1
- package/dist/preview-engine/{chunk-VZLIRYAL.mjs → chunk-GAMAKN5L.mjs} +1 -1
- package/dist/preview-engine/{chunk-65NANVQL.mjs → chunk-HTAHYSCW.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZIXPWP2B.mjs → chunk-ICWD36H6.mjs} +1 -1
- package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
- package/dist/preview-engine/{chunk-RDWLLITE.mjs → chunk-JAUMCOOJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-ACBBBOUM.mjs → chunk-KBCZKIIQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-YVZTRH4Y.mjs → chunk-KDCM7S3S.mjs} +1 -1
- package/dist/preview-engine/chunk-KIPXBOYG.mjs +1974 -0
- package/dist/preview-engine/{chunk-6LTINEA4.mjs → chunk-M4QVCQ3O.mjs} +1 -1
- package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
- package/dist/preview-engine/{chunk-YKM7JDQY.mjs → chunk-NJO2BIJX.mjs} +1 -1
- package/dist/preview-engine/{chunk-7GMHSTRP.mjs → chunk-NTSALWFF.mjs} +1 -1
- package/dist/preview-engine/{chunk-PKNUTHPI.mjs → chunk-O75BFM4S.mjs} +1 -1
- package/dist/preview-engine/{chunk-VFQH5KVS.mjs → chunk-ONHY4KNY.mjs} +1 -1
- package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
- package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
- package/dist/preview-engine/{chunk-YHMBGJP6.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-4AGQN53P.mjs → chunk-QXLFTCLC.mjs} +1 -1
- package/dist/preview-engine/{chunk-O63FLYWC.mjs → chunk-RGKS6YIA.mjs} +1 -1
- package/dist/preview-engine/{chunk-FQL4IJZN.mjs → chunk-RN7J5TRU.mjs} +1 -1
- package/dist/preview-engine/{chunk-26XWIHW3.mjs → chunk-RVCLMO5Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-TEWRQKX3.mjs → chunk-SFHWP65D.mjs} +1 -1
- package/dist/preview-engine/{chunk-EXEO245X.mjs → chunk-TKXOSEIJ.mjs} +1 -1
- package/dist/preview-engine/chunk-UKZVUYB6.mjs +483 -0
- package/dist/preview-engine/{chunk-EAWJXW4J.mjs → chunk-UVEDFIPN.mjs} +1 -1
- package/dist/preview-engine/{chunk-Z24UEN4P.mjs → chunk-VUO4K52B.mjs} +1 -1
- package/dist/preview-engine/{chunk-IBPYV6HF.mjs → chunk-W4XR6F5G.mjs} +1 -1
- package/dist/preview-engine/{chunk-UI3VH33L.mjs → chunk-WPYWCWWL.mjs} +1 -1
- package/dist/preview-engine/{chunk-WFMUDL55.mjs → chunk-YAPGJZPI.mjs} +1 -1
- package/dist/preview-engine/{chunk-LMXMBX4J.mjs → chunk-YJ4DSRDY.mjs} +1 -1
- package/dist/preview-engine/{chunk-CCORQLMR.mjs → chunk-YOJKIMU5.mjs} +1 -1
- package/dist/preview-engine/{chunk-UGB6JKVS.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
- package/dist/preview-engine/{chunk-LFNCWMKS.mjs → chunk-ZZMI3WOT.mjs} +1 -1
- package/dist/preview-engine/components.mjs +1 -1
- 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 +1 -1
- package/dist/preview-engine/{renderers-53EI26GL.mjs → renderers-3FZVDYRQ.mjs} +1 -1
- package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
- package/dist/preview-engine/{renderers-6YVZUQOH.mjs → renderers-4RPQSUUZ.mjs} +1 -1
- package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
- package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
- package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
- package/dist/preview-engine/{renderers-CCRZNGVK.mjs → renderers-6FENMFSC.mjs} +1 -1
- package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
- package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
- package/dist/preview-engine/{renderers-CYJAVWHT.mjs → renderers-AIZRIW2R.mjs} +1 -1
- package/dist/preview-engine/{renderers-OGOW3NA4.mjs → renderers-BDI2BDBA.mjs} +1 -1
- package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
- package/dist/preview-engine/{renderers-EN7LXJLG.mjs → renderers-BUZ67FNZ.mjs} +1 -1
- package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
- package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
- package/dist/preview-engine/{renderers-WSABL3QO.mjs → renderers-ECXMT5BD.mjs} +1 -1
- package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
- package/dist/preview-engine/{renderers-X6CORAES.mjs → renderers-EVEWFJ7U.mjs} +1 -1
- package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
- package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
- package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
- package/dist/preview-engine/{renderers-GQM3KMV3.mjs → renderers-FQISHQEN.mjs} +1 -1
- package/dist/preview-engine/{renderers-HKLCB4U6.mjs → renderers-FXAVFNUN.mjs} +1 -1
- package/dist/preview-engine/{renderers-P2HORBZ6.mjs → renderers-GITAVRYZ.mjs} +1 -1
- package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
- package/dist/preview-engine/{renderers-KCGK33Y2.mjs → renderers-HG6JZIZO.mjs} +1 -1
- package/dist/preview-engine/{renderers-I6QKZ7CH.mjs → renderers-HHWMIDN3.mjs} +1 -1
- package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
- package/dist/preview-engine/{renderers-7CAHX35U.mjs → renderers-HXEDI4BD.mjs} +1 -1
- package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
- package/dist/preview-engine/{renderers-ACUJMDEK.mjs → renderers-I2ZOUFRU.mjs} +1 -1
- package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
- package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
- package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
- package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
- package/dist/preview-engine/{renderers-C7SI3NIE.mjs → renderers-KKULMOV4.mjs} +1 -1
- package/dist/preview-engine/{renderers-HSFQIILN.mjs → renderers-KMVMPYY7.mjs} +1 -1
- package/dist/preview-engine/renderers-L6GFGHS6.mjs +1 -0
- package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
- package/dist/preview-engine/{renderers-BOBVXYAA.mjs → renderers-LWW4RF6D.mjs} +1 -1
- package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
- package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
- package/dist/preview-engine/{renderers-VVP5WQOY.mjs → renderers-MPFU74I3.mjs} +1 -1
- package/dist/preview-engine/{renderers-H6PBHEYU.mjs → renderers-MW53LTMB.mjs} +1 -1
- package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
- package/dist/preview-engine/{renderers-4IBFDW2S.mjs → renderers-PC2GOZDT.mjs} +1 -1
- package/dist/preview-engine/renderers-PREFONJG.mjs +1 -0
- package/dist/preview-engine/renderers-PSBTV2DO.mjs +228 -0
- package/dist/preview-engine/{renderers-UG2C3C7T.mjs → renderers-Q77UPEYE.mjs} +1 -1
- package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
- package/dist/preview-engine/renderers-R22CDFO4.mjs +1 -0
- package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
- package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
- package/dist/preview-engine/{renderers-5XLGCEOA.mjs → renderers-RIPXT4AL.mjs} +1 -1
- package/dist/preview-engine/{renderers-FY2HOQCS.mjs → renderers-SFVFAS3C.mjs} +1 -1
- package/dist/preview-engine/{renderers-VIGZYJYX.mjs → renderers-SWQVCJHB.mjs} +1 -1
- package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
- package/dist/preview-engine/renderers-TEKHQHCL.mjs +1 -0
- package/dist/preview-engine/renderers-TS32FDV7.mjs +1 -0
- package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
- package/dist/preview-engine/renderers-U3RLYFCN.mjs +1 -0
- package/dist/preview-engine/{renderers-6LNDAO4B.mjs → renderers-U4IXWMD6.mjs} +1 -1
- package/dist/preview-engine/renderers-V5HM6PZ2.mjs +1 -0
- package/dist/preview-engine/{renderers-33FCFHDR.mjs → renderers-VUQAZ56P.mjs} +1 -1
- package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
- package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
- package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
- package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
- package/dist/preview-engine/renderers-ZGX3A3QZ.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-GPF7RIBU.mjs} +1 -1
- package/dist/{program-Bc860ko5.mjs → program-Cvv_nb9T.mjs} +42 -15
- package/dist/program-Cvv_nb9T.mjs.map +1 -0
- package/dist/renderer/index.d.mts +1 -1
- package/dist/renderer/index.mjs +2 -2
- package/dist/renderer--RJepuOy.mjs +5 -0
- package/dist/{renderer-Bf4-N7k7.mjs → renderer-4uZGSmUD.mjs} +4 -4
- package/dist/{renderer-Bf4-N7k7.mjs.map → renderer-4uZGSmUD.mjs.map} +1 -1
- package/dist/{renderer-V4dhrf_h.mjs → renderer-5fGj_tqN.mjs} +4 -4
- package/dist/{renderer-V4dhrf_h.mjs.map → renderer-5fGj_tqN.mjs.map} +1 -1
- package/dist/{renderer-ByjaseAo.mjs → renderer-6g1ri445.mjs} +4 -4
- package/dist/{renderer-ByjaseAo.mjs.map → renderer-6g1ri445.mjs.map} +1 -1
- package/dist/{renderer-CR0mDPYY.mjs → renderer-B09I95bo.mjs} +2 -2
- package/dist/{renderer-BVKOQarx.d.mts → renderer-B1U6YRRV.d.mts} +22 -4
- package/dist/renderer-B1U6YRRV.d.mts.map +1 -0
- package/dist/renderer-B4NFnaty.mjs +5 -0
- package/dist/renderer-B6g4ts0e.mjs +5 -0
- package/dist/{renderer-g_1t2je9.mjs → renderer-BBjkX0Vt.mjs} +2 -2
- package/dist/{renderer-DAn9xiQT.mjs → renderer-BC_Nse6h.mjs} +4 -4
- package/dist/{renderer-DAn9xiQT.mjs.map → renderer-BC_Nse6h.mjs.map} +1 -1
- package/dist/renderer-BGoAr-tl.mjs +5 -0
- package/dist/{renderer-_9gbYS-3.mjs → renderer-BJEexai1.mjs} +4 -4
- package/dist/{renderer-_9gbYS-3.mjs.map → renderer-BJEexai1.mjs.map} +1 -1
- package/dist/{renderer-DcvjSolU.mjs → renderer-BOg8i8eF.mjs} +11 -2
- package/dist/{renderer-DcvjSolU.mjs.map → renderer-BOg8i8eF.mjs.map} +1 -1
- package/dist/renderer-BSOdBgdE.mjs +5 -0
- package/dist/{renderer-4ZUv3X1I.mjs → renderer-BSsKlcHk.mjs} +4 -4
- package/dist/{renderer-4ZUv3X1I.mjs.map → renderer-BSsKlcHk.mjs.map} +1 -1
- package/dist/{renderer-Cz-n883J.mjs → renderer-BTd6tFcS.mjs} +4 -4
- package/dist/{renderer-Cz-n883J.mjs.map → renderer-BTd6tFcS.mjs.map} +1 -1
- package/dist/renderer-BU6O0fpM.mjs +5 -0
- package/dist/{renderer-D-QVGphn.mjs → renderer-BXGuCnCJ.mjs} +4 -4
- package/dist/{renderer-D-QVGphn.mjs.map → renderer-BXGuCnCJ.mjs.map} +1 -1
- package/dist/renderer-BZ97iidG.mjs +5 -0
- package/dist/renderer-B_Klh1VT.mjs +5 -0
- package/dist/renderer-BaWQM1y-.mjs +5 -0
- package/dist/renderer-Bc0jvAj0.mjs +5 -0
- package/dist/renderer-Bd-NuU3M.mjs +3 -0
- package/dist/{renderer-B-CMRUag.mjs → renderer-Bf7Z7WT5.mjs} +3 -3
- package/dist/{renderer-B-CMRUag.mjs.map → renderer-Bf7Z7WT5.mjs.map} +1 -1
- package/dist/renderer-Bm077kZ6.mjs +5 -0
- package/dist/renderer-BtzE_e_Y.mjs +5 -0
- package/dist/{renderer-DFJWPqOJ.mjs → renderer-BvRM3OZ6.mjs} +3 -3
- package/dist/{renderer-DFJWPqOJ.mjs.map → renderer-BvRM3OZ6.mjs.map} +1 -1
- package/dist/{renderer-fwKnV9zs.mjs → renderer-BwJ0nXXu.mjs} +4 -4
- package/dist/{renderer-fwKnV9zs.mjs.map → renderer-BwJ0nXXu.mjs.map} +1 -1
- package/dist/{renderer-CLAvn9c6.mjs → renderer-BwV-o_1b.mjs} +3 -3
- package/dist/{renderer-CLAvn9c6.mjs.map → renderer-BwV-o_1b.mjs.map} +1 -1
- package/dist/{renderer-BDZC3o3N.mjs → renderer-Bxiiar50.mjs} +4 -4
- package/dist/{renderer-BDZC3o3N.mjs.map → renderer-Bxiiar50.mjs.map} +1 -1
- package/dist/{renderer-o68mVeyk.mjs → renderer-ByFPmHBC.mjs} +3 -3
- package/dist/{renderer-o68mVeyk.mjs.map → renderer-ByFPmHBC.mjs.map} +1 -1
- package/dist/{renderer-D4f8f66C.mjs → renderer-BzTj_CeK.mjs} +4 -4
- package/dist/{renderer-D4f8f66C.mjs.map → renderer-BzTj_CeK.mjs.map} +1 -1
- package/dist/renderer-C225eCAo.mjs +5 -0
- package/dist/{renderer-BNJ6Jk7-.mjs → renderer-C2kFIZ4r.mjs} +3 -3
- package/dist/{renderer-BNJ6Jk7-.mjs.map → renderer-C2kFIZ4r.mjs.map} +1 -1
- package/dist/{renderer-riIFosX6.mjs → renderer-C3CGYjrC.mjs} +4 -4
- package/dist/{renderer-riIFosX6.mjs.map → renderer-C3CGYjrC.mjs.map} +1 -1
- package/dist/renderer-CC4fhNup.mjs +3 -0
- package/dist/{renderer-B1esRxGy.mjs → renderer-CGpi8CDT.mjs} +4 -4
- package/dist/{renderer-B1esRxGy.mjs.map → renderer-CGpi8CDT.mjs.map} +1 -1
- package/dist/{renderer-Rw87u1Cr.mjs → renderer-CInMMs5x.mjs} +4 -4
- package/dist/{renderer-Rw87u1Cr.mjs.map → renderer-CInMMs5x.mjs.map} +1 -1
- package/dist/{renderer-COcKhouz.mjs → renderer-CLTRTtQ8.mjs} +4 -4
- package/dist/{renderer-COcKhouz.mjs.map → renderer-CLTRTtQ8.mjs.map} +1 -1
- package/dist/renderer-CLXdR4vz.mjs +5 -0
- package/dist/{renderer-BhsrlGKp.mjs → renderer-CMCmljb0.mjs} +74 -21
- package/dist/renderer-CMCmljb0.mjs.map +1 -0
- package/dist/{renderer-HDj9Zb-O.mjs → renderer-CN-mCIoI.mjs} +19 -6
- package/dist/renderer-CN-mCIoI.mjs.map +1 -0
- package/dist/{renderer-Ros7XQg2.mjs → renderer-CNpq7rL-.mjs} +3 -3
- package/dist/{renderer-Ros7XQg2.mjs.map → renderer-CNpq7rL-.mjs.map} +1 -1
- package/dist/{renderer-B3Dme2es.mjs → renderer-CZClDMgF.mjs} +4 -4
- package/dist/{renderer-B3Dme2es.mjs.map → renderer-CZClDMgF.mjs.map} +1 -1
- package/dist/{renderer-1uoKiILq.mjs → renderer-C_gR2H3R.mjs} +3 -3
- package/dist/{renderer-1uoKiILq.mjs.map → renderer-C_gR2H3R.mjs.map} +1 -1
- package/dist/{renderer-88C3QpKL.d.mts → renderer-CcmxR6Fy.d.mts} +2 -2
- package/dist/{renderer-88C3QpKL.d.mts.map → renderer-CcmxR6Fy.d.mts.map} +1 -1
- package/dist/{renderer-50JEMaVo.mjs → renderer-CiHVnhUk.mjs} +4 -4
- package/dist/{renderer-50JEMaVo.mjs.map → renderer-CiHVnhUk.mjs.map} +1 -1
- package/dist/renderer-CszM8B3C.mjs +5 -0
- package/dist/renderer-Ctp8ZYfk.mjs +5 -0
- package/dist/{renderer-JHByuUNb.mjs → renderer-CtpEzVBn.mjs} +3 -3
- package/dist/{renderer-JHByuUNb.mjs.map → renderer-CtpEzVBn.mjs.map} +1 -1
- package/dist/renderer-CxQdSp8I.mjs +5 -0
- package/dist/{renderer-BaIJIfJ6.mjs → renderer-D3QPNBEj.mjs} +4 -4
- package/dist/{renderer-BaIJIfJ6.mjs.map → renderer-D3QPNBEj.mjs.map} +1 -1
- package/dist/{renderer-Bbxh4N8Y.mjs → renderer-D3YbHjRG.mjs} +73 -73
- package/dist/{renderer-Bbxh4N8Y.mjs.map → renderer-D3YbHjRG.mjs.map} +1 -1
- package/dist/renderer-D4GMRtDd.mjs +6 -0
- package/dist/{renderer-Bx14Wnxl.mjs → renderer-DCMoBppL.mjs} +58 -4
- package/dist/renderer-DCMoBppL.mjs.map +1 -0
- package/dist/{renderer-sfqZK6L5.mjs → renderer-DEoerd-j.mjs} +4 -4
- package/dist/{renderer-sfqZK6L5.mjs.map → renderer-DEoerd-j.mjs.map} +1 -1
- package/dist/renderer-DEsGIvTZ.mjs +5 -0
- package/dist/{renderer-ynFRJh7G.mjs → renderer-DGXqspB9.mjs} +2 -2
- package/dist/renderer-DIaUQ0EP.mjs +5 -0
- package/dist/{renderer-DgPn_SOC.mjs → renderer-DKFaVaRJ.mjs} +3 -3
- package/dist/{renderer-DgPn_SOC.mjs.map → renderer-DKFaVaRJ.mjs.map} +1 -1
- package/dist/{renderer-CrR8Mpxq.mjs → renderer-DL3o_lG1.mjs} +4 -4
- package/dist/{renderer-CrR8Mpxq.mjs.map → renderer-DL3o_lG1.mjs.map} +1 -1
- package/dist/{renderer-Bxjb0HYU.mjs → renderer-DLaUT6JZ.mjs} +3 -3
- package/dist/{renderer-Bxjb0HYU.mjs.map → renderer-DLaUT6JZ.mjs.map} +1 -1
- package/dist/renderer-DLjqcNzQ.mjs +5 -0
- package/dist/renderer-DMuQZa51.mjs +5 -0
- package/dist/{renderer-Co6UFbZB.mjs → renderer-DO1SZ5xY.mjs} +4 -4
- package/dist/{renderer-Co6UFbZB.mjs.map → renderer-DO1SZ5xY.mjs.map} +1 -1
- package/dist/{renderer-B6Oeahe_.mjs → renderer-DO_zXwMJ.mjs} +3 -3
- package/dist/{renderer-B6Oeahe_.mjs.map → renderer-DO_zXwMJ.mjs.map} +1 -1
- package/dist/renderer-DOgi2aF2.mjs +5 -0
- package/dist/{renderer-BSELd5vU.mjs → renderer-DP9ScNM6.mjs} +3 -3
- package/dist/{renderer-BSELd5vU.mjs.map → renderer-DP9ScNM6.mjs.map} +1 -1
- package/dist/{renderer-DOkbn1ot.mjs → renderer-DQJHjU0L.mjs} +4 -4
- package/dist/{renderer-DOkbn1ot.mjs.map → renderer-DQJHjU0L.mjs.map} +1 -1
- package/dist/renderer-DSh7cvi4.mjs +5 -0
- package/dist/renderer-DV1LVBBP.mjs +5 -0
- package/dist/{renderer-BJ-7WRgO.mjs → renderer-DX60Kr20.mjs} +3 -3
- package/dist/{renderer-BJ-7WRgO.mjs.map → renderer-DX60Kr20.mjs.map} +1 -1
- package/dist/{renderer-DLPhfwbR.mjs → renderer-DZIxduEt.mjs} +3 -3
- package/dist/{renderer-DLPhfwbR.mjs.map → renderer-DZIxduEt.mjs.map} +1 -1
- package/dist/{renderer-TKZCA0B9.mjs → renderer-DaLy1dFA.mjs} +208 -69
- package/dist/renderer-DaLy1dFA.mjs.map +1 -0
- package/dist/{renderer-DaXQgGg3.mjs → renderer-DaY04IyU.mjs} +4 -4
- package/dist/{renderer-DaXQgGg3.mjs.map → renderer-DaY04IyU.mjs.map} +1 -1
- package/dist/{renderer-Dpl6poqD.mjs → renderer-Dak_wVh9.mjs} +2 -2
- package/dist/{renderer-Dpl6poqD.mjs.map → renderer-Dak_wVh9.mjs.map} +1 -1
- package/dist/renderer-Dhrj2bJz.mjs +5 -0
- package/dist/{renderer-celhuAL7.mjs → renderer-Dj54y3h3.mjs} +3 -3
- package/dist/{renderer-celhuAL7.mjs.map → renderer-Dj54y3h3.mjs.map} +1 -1
- package/dist/renderer-DoFUu1R4.mjs +5 -0
- package/dist/{renderer-RvI3qRUI.mjs → renderer-Dp9FQKVP.mjs} +4 -4
- package/dist/{renderer-RvI3qRUI.mjs.map → renderer-Dp9FQKVP.mjs.map} +1 -1
- package/dist/{renderer-KKk7myX1.mjs → renderer-DrK6pyfz.mjs} +4 -4
- package/dist/{renderer-KKk7myX1.mjs.map → renderer-DrK6pyfz.mjs.map} +1 -1
- package/dist/{renderer-BURhYcpA.mjs → renderer-DrL3J9ci.mjs} +3 -3
- package/dist/{renderer-BURhYcpA.mjs.map → renderer-DrL3J9ci.mjs.map} +1 -1
- package/dist/{renderer-BOrMBwQS.mjs → renderer-DsPLMzy1.mjs} +2 -2
- package/dist/{renderer-BOrMBwQS.mjs.map → renderer-DsPLMzy1.mjs.map} +1 -1
- package/dist/renderer-DsydX3cx.mjs +5 -0
- package/dist/{renderer-D06HxSXO.mjs → renderer-DwH5e3hx.mjs} +2 -2
- package/dist/renderer-DxVSoeYi.mjs +5 -0
- package/dist/{renderer-BQetXCcZ.mjs → renderer-Dy1xQOTu.mjs} +3 -3
- package/dist/{renderer-BQetXCcZ.mjs.map → renderer-Dy1xQOTu.mjs.map} +1 -1
- package/dist/{renderer-CxGx1Lhi.mjs → renderer-FvvywNvv.mjs} +3 -3
- package/dist/{renderer-CxGx1Lhi.mjs.map → renderer-FvvywNvv.mjs.map} +1 -1
- package/dist/{renderer-DE9Jik9K.mjs → renderer-HXw4cJZx.mjs} +3 -3
- package/dist/{renderer-DE9Jik9K.mjs.map → renderer-HXw4cJZx.mjs.map} +1 -1
- package/dist/{renderer-CU8v-LxD.mjs → renderer-HhJPFidU.mjs} +4 -4
- package/dist/{renderer-CU8v-LxD.mjs.map → renderer-HhJPFidU.mjs.map} +1 -1
- package/dist/{renderer-BwrfKKqw.mjs → renderer-IAffbHXx.mjs} +3 -3
- package/dist/{renderer-BwrfKKqw.mjs.map → renderer-IAffbHXx.mjs.map} +1 -1
- package/dist/{renderer-fs8f1QeE.mjs → renderer-LrAldCWN.mjs} +4 -4
- package/dist/{renderer-fs8f1QeE.mjs.map → renderer-LrAldCWN.mjs.map} +1 -1
- package/dist/renderer-Nc9bHb0n.mjs +5 -0
- package/dist/{renderer-h62QaJYz.mjs → renderer-O4y02xkD.mjs} +3 -3
- package/dist/{renderer-h62QaJYz.mjs.map → renderer-O4y02xkD.mjs.map} +1 -1
- package/dist/{renderer-eMCTAa9e.mjs → renderer-PnnkUWm-.mjs} +3 -3
- package/dist/{renderer-eMCTAa9e.mjs.map → renderer-PnnkUWm-.mjs.map} +1 -1
- package/dist/renderer-TFaSD2Db.mjs +5 -0
- package/dist/{renderer-jnAIhWn_.mjs → renderer-TiaHrU5z.mjs} +4 -4
- package/dist/{renderer-jnAIhWn_.mjs.map → renderer-TiaHrU5z.mjs.map} +1 -1
- package/dist/renderer-Z61ctppe.mjs +5 -0
- package/dist/{renderer-DkqZmfm8.mjs → renderer-_KIBvES8.mjs} +4 -4
- package/dist/{renderer-DkqZmfm8.mjs.map → renderer-_KIBvES8.mjs.map} +1 -1
- package/dist/renderer-awXf3sNS.mjs +5 -0
- package/dist/{renderer-7ow5Acsg.mjs → renderer-b0H3oDae.mjs} +3 -3
- package/dist/{renderer-7ow5Acsg.mjs.map → renderer-b0H3oDae.mjs.map} +1 -1
- package/dist/renderer-cHT28oYI.mjs +5 -0
- package/dist/renderer-g7Y3bFot.mjs +5 -0
- package/dist/{renderer-q7q6k_cD.mjs → renderer-oBgCEqaM.mjs} +3 -3
- package/dist/{renderer-q7q6k_cD.mjs.map → renderer-oBgCEqaM.mjs.map} +1 -1
- package/dist/{renderer-Bo7shNdU.mjs → renderer-qVJdxbXB.mjs} +4 -4
- package/dist/{renderer-Bo7shNdU.mjs.map → renderer-qVJdxbXB.mjs.map} +1 -1
- package/dist/renderer-qVv0OzVc.mjs +5 -0
- package/dist/{renderer-D0aAZHC7.mjs → renderer-rKw5_EjG.mjs} +3 -3
- package/dist/{renderer-D0aAZHC7.mjs.map → renderer-rKw5_EjG.mjs.map} +1 -1
- package/dist/{renderer-B1LD29TV.mjs → renderer-sMFJtt_H.mjs} +3 -3
- package/dist/{renderer-B1LD29TV.mjs.map → renderer-sMFJtt_H.mjs.map} +1 -1
- package/dist/{renderer-C9BSXyrq.mjs → renderer-smP1F57W.mjs} +3 -3
- package/dist/{renderer-C9BSXyrq.mjs.map → renderer-smP1F57W.mjs.map} +1 -1
- package/dist/{renderer-DwK9jsER.mjs → renderer-snjhPaP-.mjs} +4 -4
- package/dist/{renderer-DwK9jsER.mjs.map → renderer-snjhPaP-.mjs.map} +1 -1
- package/dist/{renderer-lHNTgiOM.mjs → renderer-t1sXDiqm.mjs} +3 -3
- package/dist/{renderer-lHNTgiOM.mjs.map → renderer-t1sXDiqm.mjs.map} +1 -1
- package/dist/{renderer-CAWnCsQc.mjs → renderer-tRi3KNoG.mjs} +4 -4
- package/dist/{renderer-CAWnCsQc.mjs.map → renderer-tRi3KNoG.mjs.map} +1 -1
- package/dist/{renderer-BNHcwxw9.mjs → renderer-uA0UCxjA.mjs} +3 -3
- package/dist/{renderer-BNHcwxw9.mjs.map → renderer-uA0UCxjA.mjs.map} +1 -1
- package/dist/{renderer-pNmI-A9o.mjs → renderer-xNOKSN3V.mjs} +4 -4
- package/dist/{renderer-pNmI-A9o.mjs.map → renderer-xNOKSN3V.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs → renderers-CP8CFWDs-DWRjjeUg.mjs} +3 -3
- package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs.map → renderers-CP8CFWDs-DWRjjeUg.mjs.map} +1 -1
- package/dist/sam/index.d.mts +2 -2
- package/dist/sam/index.mjs +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +5 -5
- package/dist/{src-Bnr8DUC--BRDqRF6I.mjs → src-BU6vm9sP-DFJ3phW0.mjs} +74 -9
- package/dist/src-BU6vm9sP-DFJ3phW0.mjs.map +1 -0
- package/dist/{src-BYp6r-cS.mjs → src-D7M8VTzv.mjs} +248 -28
- package/dist/src-D7M8VTzv.mjs.map +1 -0
- package/package.json +59 -59
- package/dist/cloud-xcfV4J03.mjs.map +0 -1
- package/dist/dist-CWLLnigL.mjs.map +0 -1
- package/dist/gpu-CpkJJLQP.mjs.map +0 -1
- package/dist/index-BuiZzc6i.d.mts.map +0 -1
- package/dist/index-CEU_Zsb9.d.mts.map +0 -1
- package/dist/index-Cro-818i.d.mts.map +0 -1
- package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
- package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
- package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
- package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
- package/dist/preview-engine/chunk-CIVJXFWH.mjs +0 -4
- package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
- package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
- package/dist/preview-engine/chunk-M4QANUJI.mjs +0 -480
- package/dist/preview-engine/chunk-XF6DYP6B.mjs +0 -1974
- package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
- package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
- package/dist/preview-engine/renderers-2NGIILMI.mjs +0 -1
- package/dist/preview-engine/renderers-466Z77BH.mjs +0 -1
- package/dist/preview-engine/renderers-4KRENGZA.mjs +0 -1
- package/dist/preview-engine/renderers-4W52BQEU.mjs +0 -1
- package/dist/preview-engine/renderers-55PRAS7G.mjs +0 -1
- package/dist/preview-engine/renderers-5LLYINHW.mjs +0 -1
- package/dist/preview-engine/renderers-63N3Y2XO.mjs +0 -1
- package/dist/preview-engine/renderers-6ROVFDIN.mjs +0 -1
- package/dist/preview-engine/renderers-A4RVLPMG.mjs +0 -1
- package/dist/preview-engine/renderers-A53P4J6O.mjs +0 -1
- package/dist/preview-engine/renderers-AFJ3373L.mjs +0 -1
- package/dist/preview-engine/renderers-ATFWTA3U.mjs +0 -1
- package/dist/preview-engine/renderers-BPYJXHBU.mjs +0 -1
- package/dist/preview-engine/renderers-D3ZF7FXT.mjs +0 -1
- package/dist/preview-engine/renderers-D7YN6B4B.mjs +0 -1
- package/dist/preview-engine/renderers-DBLASKF5.mjs +0 -1
- package/dist/preview-engine/renderers-DC5ZYYHM.mjs +0 -1
- package/dist/preview-engine/renderers-J6ZEXW5L.mjs +0 -1
- package/dist/preview-engine/renderers-JV4MF46Q.mjs +0 -1
- package/dist/preview-engine/renderers-KQKH4ZIX.mjs +0 -1
- package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
- package/dist/preview-engine/renderers-MEITHN4N.mjs +0 -1
- package/dist/preview-engine/renderers-MN3HSBTJ.mjs +0 -1
- package/dist/preview-engine/renderers-NTG3QGNH.mjs +0 -1
- package/dist/preview-engine/renderers-OU4SFMB2.mjs +0 -1
- package/dist/preview-engine/renderers-P6TIBJIG.mjs +0 -1
- package/dist/preview-engine/renderers-POJWQ7L3.mjs +0 -1
- package/dist/preview-engine/renderers-RJ7S6VHD.mjs +0 -1
- package/dist/preview-engine/renderers-RJJAJZYN.mjs +0 -1
- package/dist/preview-engine/renderers-UEQ733VK.mjs +0 -1
- package/dist/preview-engine/renderers-ULO2AW2U.mjs +0 -1
- package/dist/preview-engine/renderers-UPVHGHCK.mjs +0 -1
- package/dist/preview-engine/renderers-UZHSNNIM.mjs +0 -1
- package/dist/preview-engine/renderers-V5KWZL2C.mjs +0 -1
- package/dist/preview-engine/renderers-WL372W36.mjs +0 -228
- package/dist/preview-engine/renderers-YMXKYOHQ.mjs +0 -1
- package/dist/preview-engine/renderers-YWDAZ2NZ.mjs +0 -1
- package/dist/program-Bc860ko5.mjs.map +0 -1
- package/dist/renderer--Ymc_4XJ.mjs +0 -5
- package/dist/renderer-B-OdV-eq.mjs +0 -5
- package/dist/renderer-B65fwoA2.mjs +0 -5
- package/dist/renderer-B92Ahkcv.mjs +0 -5
- package/dist/renderer-B9z2AK31.mjs +0 -5
- package/dist/renderer-BIF3Dg3Z.mjs +0 -5
- package/dist/renderer-BJUVaIAT.mjs +0 -5
- package/dist/renderer-BKRDMbI-.mjs +0 -5
- package/dist/renderer-BSwhyVWa.mjs +0 -5
- package/dist/renderer-BUqSZn2X.mjs +0 -5
- package/dist/renderer-BVKOQarx.d.mts.map +0 -1
- package/dist/renderer-BbmvjqK9.mjs +0 -3
- package/dist/renderer-BhsrlGKp.mjs.map +0 -1
- package/dist/renderer-Bpe4k_x6.mjs +0 -5
- package/dist/renderer-Bx14Wnxl.mjs.map +0 -1
- package/dist/renderer-C1NjG0CJ.mjs +0 -5
- package/dist/renderer-C7Puyst9.mjs +0 -5
- package/dist/renderer-CGA_7320.mjs +0 -5
- package/dist/renderer-CLnFkXO7.mjs +0 -5
- package/dist/renderer-CMQIT1Kh.mjs +0 -5
- package/dist/renderer-CQ1rwjIh.mjs +0 -5
- package/dist/renderer-CT8h0boY.mjs +0 -5
- package/dist/renderer-Cb0lszt3.mjs +0 -5
- package/dist/renderer-Ci7oLye9.mjs +0 -5
- package/dist/renderer-CjqXB3CZ.mjs +0 -5
- package/dist/renderer-CqTV04zQ.mjs +0 -5
- package/dist/renderer-CtWeRtHK.mjs +0 -5
- package/dist/renderer-CzolnwCo.mjs +0 -5
- package/dist/renderer-D6qhcx_C.mjs +0 -5
- package/dist/renderer-DDfEf0jt.mjs +0 -5
- package/dist/renderer-DDpa8ztp.mjs +0 -5
- package/dist/renderer-DbQBqzmx.mjs +0 -5
- package/dist/renderer-DfUcwMKa.mjs +0 -5
- package/dist/renderer-DgIjNANM.mjs +0 -6
- package/dist/renderer-Dsh6Tgu0.mjs +0 -3
- package/dist/renderer-DuIwR9GT.mjs +0 -5
- package/dist/renderer-Dv4u2c14.mjs +0 -5
- package/dist/renderer-HDj9Zb-O.mjs.map +0 -1
- package/dist/renderer-IE1yu3lZ.mjs +0 -5
- package/dist/renderer-PY_wnEN0.mjs +0 -5
- package/dist/renderer-TKZCA0B9.mjs.map +0 -1
- package/dist/renderer-gv24VyzO.mjs +0 -5
- package/dist/renderer-nN6lPZf9.mjs +0 -5
- package/dist/src-BYp6r-cS.mjs.map +0 -1
- package/dist/src-Bnr8DUC--BRDqRF6I.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k,b as l,c as m,d as n}from"./chunk-2CECZN67.mjs";import{a as j}from"./chunk-
|
|
1
|
+
import{a as k,b as l,c as m,d as n}from"./chunk-2CECZN67.mjs";import{a as j}from"./chunk-RGKS6YIA.mjs";import{a as g}from"./chunk-M4QVCQ3O.mjs";import{a as b}from"./chunk-KBCZKIIQ.mjs";import{a as c}from"./chunk-HTAHYSCW.mjs";import{a as d}from"./chunk-VUO4K52B.mjs";import{a as e}from"./chunk-6O7UDVNL.mjs";import{a as f}from"./chunk-TKXOSEIJ.mjs";import{a}from"./chunk-SE2C623Z.mjs";import{a as h}from"./chunk-UVEDFIPN.mjs";import{b as i}from"./chunk-5SLBE2FX.mjs";import"./chunk-HOV6DDBZ.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-P4Y3PMJF.mjs";import"./chunk-RECQ74RP.mjs";import"./chunk-32WC4FRR.mjs";import"./chunk-XOF6UTZX.mjs";import"./chunk-GXFYRMJZ.mjs";import"./chunk-77MT33VR.mjs";import"./chunk-ULOFDFHJ.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as WebGPUAudioProcessor,d as audioFadeRenderer,h as audioSignalExtractorRenderer,b as compressorRenderer,c as delayRenderer,n as encodeStereoWav,i as mixAudioTracks,l as mixSfxInto,e as noiseGateRenderer,f as parametricEqRenderer,k as renderSfx,g as reverbRenderer,m as softLimit,j as stereoPanningRenderer};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as ve}from"./chunk-2GA735OZ.mjs";import{b as xe,c as Se}from"./chunk-3DXMWDQ3.mjs";import{a as d,d as K,e as ue,f as oe,g as ce,h as de,j as fe,k as me,l as ge,m as pe,n as G}from"./chunk-3QTHW2CD.mjs";import{a as u}from"./chunk-6FULVULN.mjs";import{e as se}from"./chunk-GXFYRMJZ.mjs";import{c as ne,g as le}from"./chunk-77MT33VR.mjs";import{g as h}from"./chunk-Y4NIR77Z.mjs";h();h();h();var Q=100,Xe=ve().field("blurType",u.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",u.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",u.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",u.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",u.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",u.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",u.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",u.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",u.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",u.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),je=Xe.schema,He=u.union([xe,Se]);var p=`
|
|
2
2
|
struct BlurUniforms {
|
|
3
3
|
dirX : f32,
|
|
4
4
|
dirY : f32,
|
|
@@ -75,7 +75,7 @@ fn applyPartialBlur(blurred: vec4<f32>, uv: vec2<f32>, dimensions: vec2<f32>) ->
|
|
|
75
75
|
return mix(orig, blurred, mask);
|
|
76
76
|
}
|
|
77
77
|
`,we=`
|
|
78
|
-
${
|
|
78
|
+
${p}
|
|
79
79
|
${d}
|
|
80
80
|
|
|
81
81
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -111,8 +111,8 @@ ${d}
|
|
|
111
111
|
let blurred = color / totalWeight;
|
|
112
112
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
113
113
|
}
|
|
114
|
-
`,
|
|
115
|
-
${
|
|
114
|
+
`,Ve=`
|
|
115
|
+
${p}
|
|
116
116
|
${d}
|
|
117
117
|
|
|
118
118
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -143,8 +143,8 @@ ${d}
|
|
|
143
143
|
let blurred = color / count;
|
|
144
144
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
145
145
|
}
|
|
146
|
-
`,
|
|
147
|
-
${
|
|
146
|
+
`,Ge=`
|
|
147
|
+
${p}
|
|
148
148
|
struct Val {
|
|
149
149
|
luma : f32,
|
|
150
150
|
color : vec4<f32>,
|
|
@@ -200,7 +200,7 @@ ${d}
|
|
|
200
200
|
return applyPartialBlur(values[medianIdx].color, in.uv, dimensions);
|
|
201
201
|
}
|
|
202
202
|
`,Ue=`
|
|
203
|
-
${
|
|
203
|
+
${p}
|
|
204
204
|
${d}
|
|
205
205
|
|
|
206
206
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -234,8 +234,8 @@ ${d}
|
|
|
234
234
|
let blurred = color / f32(numSamples);
|
|
235
235
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
236
236
|
}
|
|
237
|
-
`,
|
|
238
|
-
${
|
|
237
|
+
`,De=`
|
|
238
|
+
${p}
|
|
239
239
|
${d}
|
|
240
240
|
|
|
241
241
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -284,8 +284,8 @@ ${d}
|
|
|
284
284
|
}
|
|
285
285
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
286
286
|
}
|
|
287
|
-
`,
|
|
288
|
-
${
|
|
287
|
+
`,Me=`
|
|
288
|
+
${p}
|
|
289
289
|
${d}
|
|
290
290
|
|
|
291
291
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -361,8 +361,8 @@ ${d}
|
|
|
361
361
|
let blurred = vec4<f32>(finalCol, centerCol.a);
|
|
362
362
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
363
363
|
}
|
|
364
|
-
`,
|
|
365
|
-
${
|
|
364
|
+
`,Ne=`
|
|
365
|
+
${p}
|
|
366
366
|
${d}
|
|
367
367
|
|
|
368
368
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -408,7 +408,7 @@ ${d}
|
|
|
408
408
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
409
409
|
}
|
|
410
410
|
`,Ae=`
|
|
411
|
-
${
|
|
411
|
+
${p}
|
|
412
412
|
${d}
|
|
413
413
|
|
|
414
414
|
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
@@ -447,4 +447,4 @@ ${d}
|
|
|
447
447
|
let blurred = color / 24.0;
|
|
448
448
|
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
`,$e=oe(a=>({blurUniformLayout:K(a,["uniform"]),singleTextureLayout:K(a,["texture","sampler","texture"]),signalTextureLayout:ue(a,5),pipelineCache:new Map}));function Ee(a,e,r){let s=$e(a),f=`blur_${r}_${e}`,S=s.pipelineCache.get(f);if(!S){let o=we;r==="Box"?o=Ve:r==="Median"?o=Ge:r==="Motion"?o=Ue:r==="Bilateral"?o=De:r==="Edge-preserving"?o=Me:r==="Radial"?o=Ne:r==="Zoom"&&(o=Ae);let l=a.createShaderModule({label:`blur_${r}_${e}.wgsl`,code:o});S=ce(a,{label:`BlurPipeline_${r}_${e}`,module:l,layouts:[s.blurUniformLayout,s.singleTextureLayout,s.signalTextureLayout],format:e}),s.pipelineCache.set(f,S)}return{blurPipeline:S,blurUniformLayout:s.blurUniformLayout,singleTextureLayout:s.singleTextureLayout,signalTextureLayout:s.signalTextureLayout}}var J=async a=>{let{ctx:e,encoder:r,pass:s,targetTexture:f,targetWidth:S,targetHeight:o,props:l}=a,U=l.frame??0,he=l.compositionFrame??U,R=l.fps||30,n=l.virtualMedia?.operation;if(n?.op!=="Blur"||!n)return;let ee=l.virtualMedia.children?.[0];if(!ee)return;s.end();let t=new Float32Array(16),y=S,_=o,ye=l.containerWidth??e.surface.width/(typeof window<"u"?window.devicePixelRatio:1),D=y/ye*fe(a),Be=n.inputs?Object.keys(n.inputs)[0]:"blur_node",b=(i,c,C,k,F=!1)=>{let Ye=`${i}HandleId`,te=n[Ye],g=te?n.inputs?.[te]:null,re=!!(g?.connectionValid&&(g.outputItem?.type==="Signal"||g.outputItem?.type==="Numeric")),q=re&&g?.outputItem?.data?g.outputItem.data:null,v=c,Z=!1,ie;if(re){if(q){let x=Number(q.offset??0);v=Math.max(C,Math.min(k,x)),F&&(v*=D),Z=!0}}else if(g?.connectionValid&&g.outputItem?.type==="Number"){let x=Number(g.outputItem.data??c);v=Math.max(C,Math.min(k,x)),F&&(v*=D)}else{let x=ne(n[i],he,R);x.gpuTextureView&&(ie=x.gpuTextureView,Z=!0);let Ie=x.value,ae=Number(Ie??c);v=Math.max(C,Math.min(k,isNaN(ae)?c:ae)),F&&(v*=D)}return{val:v,hasStaticSig:Z,sd:q,gpuTextureView:ie}},P=b("strength",5,0,Q,!0),Y=b("sigmaColor",.1,.01,1,!1),I=b("centerX",.5,0,1,!1),X=b("centerY",.5,0,1,!1),w=b("radius",.3,.001,1,!1),Te=b("radiusY",0,0,1,!1),{texture:m}=await de(a,ee),B=n.blurType??"Gaussian",Le=B==="Gaussian"||B==="Box"||B==="Median"||B==="Bilateral",{blurPipeline:M,blurUniformLayout:N,singleTextureLayout:Ce,signalTextureLayout:A}=Ee(e.device,e.renderer.format,B),V=e.renderer.samplerCache.getSampler(e.device),{elapsedSeconds:Re,durationSeconds:_e}=ge(l,U,R);for(let i of[P,Y,I,X,w])i.hasStaticSig&&i.sd&&await se.ensureAudioSourcesExtracted(e.device,i.sd,R,l.renderId);let Pe={args:a,width:y,height:_,frame:U,fps:R,elapsedSeconds:Re,durationSeconds:_e},T=(i,c)=>pe(Pe,i,`${Be}_${c}`),$=T(P,"strength_sig"),E=T(Y,"sigmacolor_sig"),O=T(I,"centerx_sig"),W=T(X,"centery_sig"),j=T(w,"radius_sig"),H=(i,c)=>e.device.createBindGroup({layout:Ce,entries:[{binding:0,resource:i.createView()},{binding:1,resource:V},{binding:2,resource:c.createView()}]}),z=!!(n.partialBlur&&n.partialBlur!=="false"&&n.partialBlur!==0);t[2]=P.val,t[3]=Number(n.angle??0),t[4]=Y.val,t[5]=I.val,t[6]=X.val,t[7]=w.val,t[8]=z?1:0,t[9]=P.hasStaticSig?1:0,t[10]=Y.hasStaticSig?1:0,t[11]=I.hasStaticSig?1:0,t[12]=X.hasStaticSig?1:0,t[13]=w.hasStaticSig?1:0,t[14]=Te.val,t[15]=n.shape==="rect"?1:0;let L;if(Le){let i=e.renderer.getTemporaryTexture(y,_,[m,f,...l.excludeTextures||[]]);L=e.renderer.getTemporaryTexture(y,_,[m,i,f,...l.excludeTextures||[]]),t[0]=1,t[1]=0,t[8]=0;let c=e.renderer.getTemporaryBuffer(t);G(r,i.createView(),M,[e.device.createBindGroup({layout:N,entries:[{binding:0,resource:{buffer:c}}]}),H(m,m),e.device.createBindGroup({layout:A,entries:[{binding:0,resource:$},{binding:1,resource:E},{binding:2,resource:O},{binding:3,resource:W},{binding:4,resource:j},{binding:5,resource:V}]})]),t[0]=0,t[1]=1,t[8]=z?1:0;let C=e.renderer.getTemporaryBuffer(t);G(r,L.createView(),M,[e.device.createBindGroup({layout:N,entries:[{binding:0,resource:{buffer:C}}]}),H(i,m),e.device.createBindGroup({layout:A,entries:[{binding:0,resource:$},{binding:1,resource:E},{binding:2,resource:O},{binding:3,resource:W},{binding:4,resource:j},{binding:5,resource:V}]})])}else{L=e.renderer.getTemporaryTexture(y,_,[m,f,...l.excludeTextures||[]]),t[0]=0,t[1]=0,t[8]=z?1:0;let i=e.renderer.getTemporaryBuffer(t);G(r,L.createView(),M,[e.device.createBindGroup({layout:N,entries:[{binding:0,resource:{buffer:i}}]}),H(m,m),e.device.createBindGroup({layout:A,entries:[{binding:0,resource:$},{binding:1,resource:E},{binding:2,resource:O},{binding:3,resource:W},{binding:4,resource:j},{binding:5,resource:V}]})])}me(a,L,n.opacity??1)};J.maxPixelScale=a=>{let e=a,r=e.blurType??"Gaussian",s=typeof e.strengthHandleId=="string"&&e.inputs?.[e.strengthHandleId]?.connectionValid===!0,f=e.strength===void 0||typeof e.strength=="number";return(r==="Gaussian"||r==="Box")&&f&&!s?Number.POSITIVE_INFINITY:1};var rt=le({WebGPURenderer:J});export{rt as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as C,d as R,g as B,h as w,
|
|
1
|
+
import{a as C,d as R,g as B,h as w,k as H,n as L}from"./chunk-3QTHW2CD.mjs";import{g as E}from"./chunk-77MT33VR.mjs";import{g as v}from"./chunk-Y4NIR77Z.mjs";v();v();v();function U(n){let t=[...n].sort((e,c)=>e.x-c.x),s=[];for(let e of t)(s.length===0||Math.abs(e.x-s[s.length-1].x)>1e-6)&&s.push(e);let r=s.length;if(r===0)return e=>e;if(r===1)return()=>s[0].y;let i=new Float32Array(r-1),o=new Float32Array(r-1),u=new Float32Array(r-1);for(let e=0;e<r-1;e++)i[e]=s[e+1].x-s[e].x,o[e]=s[e+1].y-s[e].y,u[e]=o[e]/i[e];let a=new Float32Array(r);a[0]=u[0];for(let e=1;e<r-1;e++)a[e]=(u[e-1]+u[e])/2;a[r-1]=u[r-2];for(let e=0;e<r-1;e++){let c=u[e];if(Math.abs(c)<1e-9)a[e]=0,a[e+1]=0;else{let d=a[e]/c,l=a[e+1]/c,h=d*d,g=l*l;if(h+g>9){let p=3/Math.sqrt(h+g);a[e]=p*d*c,a[e+1]=p*l*c}}}return e=>{if(e<=s[0].x)return s[0].y;if(e>=s[r-1].x)return s[r-1].y;let c=0,d=r-2,l=0;for(;c<=d;){let x=c+d>>1;if(e>=s[x].x&&e<=s[x+1].x){l=x;break}e<s[x].x?d=x-1:c=x+1}let h=i[l],g=(e-s[l].x)/h,p=g*g,m=p*g,f=2*m-3*p+1,_=m-2*p+g,b=-2*m+3*p,P=m-p,G=s[l].y*f+h*a[l]*_+s[l+1].y*b+h*a[l+1]*P;return Math.max(0,Math.min(1,G))}}v();var Y=`
|
|
2
2
|
@group(0) @binding(0) var t_src: texture_2d<f32>;
|
|
3
3
|
@group(0) @binding(1) var<storage, read_write> bins_r: array<atomic<u32>, 256>;
|
|
4
4
|
@group(0) @binding(2) var<storage, read_write> bins_g: array<atomic<u32>, 256>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as z,h as D}from"./chunk-
|
|
1
|
+
import{a as z,h as D}from"./chunk-3QTHW2CD.mjs";import{g as q}from"./chunk-77MT33VR.mjs";import{g as W}from"./chunk-Y4NIR77Z.mjs";W();W();var A=`
|
|
2
2
|
struct MaskUniforms {
|
|
3
3
|
rect : vec4<f32>,
|
|
4
4
|
roundness : f32,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as x}from"./chunk-OGSZZ4JO.mjs";import{h as b,
|
|
1
|
+
import{a as x}from"./chunk-OGSZZ4JO.mjs";import{h as b,k as g}from"./chunk-3QTHW2CD.mjs";import{b as w,g as T}from"./chunk-77MT33VR.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();function d(n,r,i,m,f,h,o){let e=`${r}HandleId`,l=n[e],c=l?n.inputs?.[l]:null,s;if(c?.connectionValid&&c.outputItem){let t=c.outputItem.data;s=t&&typeof t=="object"&&"offset"in t?t.offset:c.outputItem.data}else s=n[r];let p=w(s,i,h,o);return Math.max(m,Math.min(f,p))}var P=new Map;function z(n,r){let i=P.get(r);return i||(i=new x(n),P.set(r,i)),i}var D=async n=>{let{ctx:r,encoder:i,pass:m,targetWidth:f,targetHeight:h,props:o}=n,e=o.virtualMedia?.operation;if(!e||e.op!=="TemporalDeflicker"&&e.op!=="Deflicker")return;let l=o.virtualMedia?.children?.[0];if(!l)return;m.end();let c=f,s=h,p=o.frame??0,t=o.compositionFrame??p,a=o.fps||30,{texture:M}=await b(n,l,{props:{...o,virtualMedia:l,containerWidth:c,containerHeight:s}});n.pass.end();let W=d(e,"blendWeight",.35,0,1,t,a),y=d(e,"disocclusionThreshold",.15,.01,1,t,a),I=d(e,"maxMotionPixels",64,1,256,t,a),v=d(e,"scale",.5,.1,1,t,a),R=Math.round(d(e,"windowSize",2,1,5,t,a)),G=o.virtualMedia?.metadata?.id||e.id||`deflicker_${o.renderId??"global"}`,k=z(r.device,G);p===0&&k.reset();let H=k.execute(M,{blendWeight:W,disocclusionThreshold:y,maxMotionPixels:I,scale:v,windowSize:R},i),U=typeof e.opacity=="number"?e.opacity:1;g(n,H,U)};var j=T({WebGPURenderer:D});export{j as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as S,c as G}from"./chunk-3DXMWDQ3.mjs";import{d as g,g as M,h as C,
|
|
1
|
+
import{b as S,c as G}from"./chunk-3DXMWDQ3.mjs";import{d as g,g as M,h as C,k as R,n as P}from"./chunk-3QTHW2CD.mjs";import{a}from"./chunk-6FULVULN.mjs";import{g as k}from"./chunk-77MT33VR.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var w=`
|
|
2
2
|
struct ColorMatrixUniforms {
|
|
3
3
|
row0 : vec4<f32>,
|
|
4
4
|
row1 : vec4<f32>,
|
|
@@ -19,4 +19,4 @@ struct VSOut {
|
|
|
19
19
|
);
|
|
20
20
|
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
21
21
|
}
|
|
22
|
-
`,G={color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},y={color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};function P(e,r,n){return e.createBindGroupLayout({...n&&{label:n},entries:r.map((t,i)=>t==="uniform"?{binding:i,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}:t==="texture"?{binding:i,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}:t==="sampler"?{binding:i,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}:{visibility:GPUShaderStage.FRAGMENT,...t,binding:i})})}function v(e,r){return P(e,[...Array(r).fill("texture"),"sampler"])}function T(e){let r=new WeakMap;return n=>{let t=r.get(n);return t===void 0&&(t=e(n),r.set(n,t)),t}}function h(e,r){let{module:n,format:t,blend:i}=r;return e.createRenderPipeline({...r.label&&{label:r.label},layout:Array.isArray(r.layouts)?e.createPipelineLayout({bindGroupLayouts:r.layouts}):r.layouts,vertex:{module:n,entryPoint:r.vertexEntryPoint??"vs"},fragment:{module:n,entryPoint:r.fragmentEntryPoint??"fs",targets:[i?{format:t,blend:i}:{format:t}]},primitive:{topology:"triangle-strip"}})}async function U(e,r,n={}){let{ctx:t,encoder:i,props:o}=e,a=n.width??e.targetWidth,d=n.height??e.targetHeight,u=t.renderer.getTemporaryTexture(a,d,[...o.excludeTextures||[],e.targetTexture,...n.exclude??[]]),s=u.createView();return t.renderer.beginFrame(i,s,l,a,d,"clear").end(),t.renderer.pushScissor({x:0,y:0,width:a,height:d}),t.renderer.pushIdentity(),await e.drawChild(r,n.props??{...o,virtualMedia:r},s,u,a,d),t.renderer.popTransform(),t.renderer.popScissor(),{texture:u,view:s}}function
|
|
22
|
+
`,G={color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},y={color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};function P(e,r,n){return e.createBindGroupLayout({...n&&{label:n},entries:r.map((t,i)=>t==="uniform"?{binding:i,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}:t==="texture"?{binding:i,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}:t==="sampler"?{binding:i,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}:{visibility:GPUShaderStage.FRAGMENT,...t,binding:i})})}function v(e,r){return P(e,[...Array(r).fill("texture"),"sampler"])}function T(e){let r=new WeakMap;return n=>{let t=r.get(n);return t===void 0&&(t=e(n),r.set(n,t)),t}}function h(e,r){let{module:n,format:t,blend:i}=r;return e.createRenderPipeline({...r.label&&{label:r.label},layout:Array.isArray(r.layouts)?e.createPipelineLayout({bindGroupLayouts:r.layouts}):r.layouts,vertex:{module:n,entryPoint:r.vertexEntryPoint??"vs"},fragment:{module:n,entryPoint:r.fragmentEntryPoint??"fs",targets:[i?{format:t,blend:i}:{format:t}]},primitive:{topology:"triangle-strip"}})}async function U(e,r,n={}){let{ctx:t,encoder:i,props:o}=e,a=n.width??e.targetWidth,d=n.height??e.targetHeight,u=t.renderer.getTemporaryTexture(a,d,[...o.excludeTextures||[],e.targetTexture,...n.exclude??[]]),s=u.createView();return t.renderer.beginFrame(i,s,l,a,d,"clear").end(),t.renderer.pushScissor({x:0,y:0,width:a,height:d}),t.renderer.pushIdentity(),await e.drawChild(r,n.props??{...o,virtualMedia:r},s,u,a,d),t.renderer.popTransform(),t.renderer.popScissor(),{texture:u,view:s}}function x(e,r=e.targetWidth,n=e.targetHeight){let t=e.ctx.renderer.beginFrame(e.encoder,e.targetView,l,r,n,"load");return e.pass=t,t}function b(e){return e.props.pixelScale??1}function S(e,r,n=1){let{targetWidth:t,targetHeight:i}=e;e.ctx.renderer.drawTexture(x(e),r,{x:0,y:0,width:t,height:i},{opacity:n})}function w(e,r,n,t=0){let i=e.virtualMedia?.metadata?.durationMs;return{elapsedSeconds:e.elapsedMs!==void 0?e.elapsedMs/1e3:r/n,durationSeconds:i?i/1e3:e.durationMs!==void 0?e.durationMs/1e3:t}}function R(e,r,n){let{args:t}=e;return r.gpuTextureView?r.gpuTextureView:r.hasStaticSig&&r.sd?c.getOrCreate2DTextureView(t.ctx.device,t.encoder,r.sd.nodeId??n,e.elapsedSeconds,e.durationSeconds,r.sd,e.width,e.height,t.props.renderId,e.frame,e.fps):c.getDummy1x1TextureView(t.ctx.device)}function F(e,r,n,t){let i=e.beginRenderPass({colorAttachments:[{view:r,loadOp:"clear",storeOp:"store",clearValue:l}]});i.setPipeline(n),t.forEach((o,a)=>{i.setBindGroup(a,o)}),i.draw(4),i.end()}export{m as a,G as b,y as c,P as d,v as e,T as f,h as g,U as h,x as i,b as j,S as k,w as l,R as m,F as n};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u,b}from"./chunk-JAAFSVAG.mjs";import{g as f}from"./chunk-Y4NIR77Z.mjs";f();f();function p(i,e){let t=i.createTexture({size:[e.width,e.height],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.bitmap?i.queue.copyExternalImageToTexture({source:e.bitmap},{texture:t,premultipliedAlpha:!0},[e.width,e.height]):e.buffer&&i.queue.writeTexture({texture:t},e.buffer,{bytesPerRow:e.width*4},[e.width,e.height]),t}var w=class{cache=new Map;async load(e,t,l,m){let c=Math.max(1,Math.ceil(t)),h=Math.max(1,Math.ceil(l)),s=`${e}-${c}-${h}-${m}`,a=this.cache.get(s);return a||(a=(async()=>{let o;if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("data:")||!m){let r=await fetch(e);if(!r.ok)throw new Error(`Failed to fetch SVG: ${e}`);o=await r.text()}else{let r=e;if(r.startsWith("file://"))try{r=new URL(r).pathname}catch{r=r.replace(/^file:\/\//,"")}try{o=await(await import("./shims/fs-promises.mjs")).readFile(r,"utf-8")}catch{let n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch SVG: ${e}`);o=await n.text()}}if(m){let{renderAsync:r}=await import("./resvg-js-U6G4MNRZ.mjs"),n=await r(o,{fitTo:{mode:"width",value:c}});return{width:n.width,height:n.height,buffer:new Uint8Array(n.pixels)}}let y=new Blob([o],{type:"image/svg+xml"}),g=URL.createObjectURL(y),d=new Image;await new Promise((r,n)=>{d.onload=()=>r(),d.onerror=()=>n(new Error(`Failed to load SVG image: ${e}`)),d.src=g});let x=new OffscreenCanvas(c,h);x.getContext("2d").drawImage(d,0,0,c,h),URL.revokeObjectURL(g);let T=await createImageBitmap(x);return{width:c,height:h,bitmap:T}})(),this.cache.set(s,a),a.catch(()=>this.cache.delete(s))),a}},U=new w;async function E(i,e,t){let l=i.renderer.getCurrentTransform(),m=b(t.matrix?l.multiply(t.matrix):l),c=Math.max(1,Math.ceil(t.dstRect.width*m)),h=Math.max(1,Math.ceil(t.dstRect.height*m)),s=`${t.src}-${c}-${h}`,a=u.acquire(s);if(!a)try{let o=await U.load(t.src,c,h,t.isHeadless??!1);a=u.acquire(s),a||(a=p(i.device,o),u.set(s,a,i.device))}catch(o){console.error("Failed to load SVG texture:",o);return}i.renderer.drawTexture(e,a,t.dstRect,{opacity:t.opacity??1,transform:t.matrix}),u.release(s)}export{p as a,E as b};
|
|
@@ -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-CIVJXFWH.mjs";import{b as Ge}from"./chunk-P4Y3PMJF.mjs";import{e as at}from"./chunk-GXFYRMJZ.mjs";import{h as st,i as ct,j as L,x as be}from"./chunk-BJXNKMSY.mjs";import{a as de}from"./chunk-354GX6IB.mjs";import{f as Re,g as we}from"./chunk-Y4NIR77Z.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function Fe(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(Fe(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(Fe(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(Fe(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(Fe(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(Fe(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return L.hasEmojiFont()&&console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),L.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,We=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-We)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=e.fontSize??48,c=L.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);L.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),We=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(We=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:We,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let F of I){let O=x.glyphs[F].charIndex,$=T.get(O);$?$.push(F):T.set(O,[F])}let M=Array.from(T.values()),g=F=>{let O=x.glyphs[F[0]];return O.clusterX??O.x};M.sort((F,O)=>g(F)-g(O));let _=[];for(let F of M){let O=x.glyphs[F[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let F=0;F<M.length-1;F++)G+=y*_[F];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let F=0;F<M.length;F++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xe[$]+=O;F<M.length-1&&(N+=y*_[F])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,F=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:W,p_out:E}=je(z,K,ae,ne,F,q,!0),B=_e(W,E,f,ie,l,te,z,K,ae,ne,F,e.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,se=B.rot,V=B.scale,I===void 0&&(Ce=B.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let W=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=W.transX,J=W.transY,se=W.rot,V=W.scale,Me=W.scaleX,Ue=W.scaleY,O=W.opacity,I===void 0&&(Ce=W.blurAmount),W.color&&(tt=W.color),W.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),De=W.transZ??0,nt=W.chromaticShift??0,it=W.dissolveProgress??0,ot=W.vfxParam??0,Ne=W.skewM01??0,Le=W.skewM10??0,Be=W.anchorConfig,rt=W.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let W=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,W)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Ft=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Ft??D);(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Ie=R.width*B/2*Me,Ae=R.height*B/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*B+Ie,ce=-R.bearingY*B+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+W,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*B+Ie+e.dstRect.x+a+y+W,Te=p.y-R.bearingY*B+Ae+re.y+a+S;if(Be){let ve={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Wt=p.opacity??1;g[E+19]=Ye.a*O*rt*Wt,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&L.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;N=N.translate(F,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-F,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
|
|
1
|
+
import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-UKZVUYB6.mjs";import{b as Ge}from"./chunk-P4Y3PMJF.mjs";import{e as at}from"./chunk-GXFYRMJZ.mjs";import{h as st,i as ct,j as L,x as be}from"./chunk-64L4GUOF.mjs";import{a as de}from"./chunk-354GX6IB.mjs";import{f as Re,g as we}from"./chunk-Y4NIR77Z.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function Fe(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(Fe(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(Fe(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(Fe(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(Fe(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(Fe(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return L.hasEmojiFont()&&console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),L.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,We=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-We)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=e.fontSize??48,c=L.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);L.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),We=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(We=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:We,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let F of I){let O=x.glyphs[F].charIndex,$=T.get(O);$?$.push(F):T.set(O,[F])}let M=Array.from(T.values()),g=F=>{let O=x.glyphs[F[0]];return O.clusterX??O.x};M.sort((F,O)=>g(F)-g(O));let _=[];for(let F of M){let O=x.glyphs[F[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let F=0;F<M.length-1;F++)G+=y*_[F];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let F=0;F<M.length;F++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xe[$]+=O;F<M.length-1&&(N+=y*_[F])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,F=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:W,p_out:E}=je(z,K,ae,ne,F,q,!0),B=_e(W,E,f,ie,l,te,z,K,ae,ne,F,e.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,se=B.rot,V=B.scale,I===void 0&&(Ce=B.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let W=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=W.transX,J=W.transY,se=W.rot,V=W.scale,Me=W.scaleX,Ue=W.scaleY,O=W.opacity,I===void 0&&(Ce=W.blurAmount),W.color&&(tt=W.color),W.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),De=W.transZ??0,nt=W.chromaticShift??0,it=W.dissolveProgress??0,ot=W.vfxParam??0,Ne=W.skewM01??0,Le=W.skewM10??0,Be=W.anchorConfig,rt=W.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let W=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,W)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Ft=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Ft??D);(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Ie=R.width*B/2*Me,Ae=R.height*B/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*B+Ie,ce=-R.bearingY*B+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+W,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*B+Ie+e.dstRect.x+a+y+W,Te=p.y-R.bearingY*B+Ae+re.y+a+S;if(Be){let ve={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Wt=p.opacity??1;g[E+19]=Ye.a*O*rt*Wt,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&L.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;N=N.translate(F,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-F,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),e=[];for(let i=0;i<n.length;i++){let r=n[i],c=n[i+1];if(r?.match(/([0-9]+)/)&&c?.includes(" --> ")){let d=c.split(" --> "),u=Tt(d[0]),m=Tt(d[1]);e.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?e.length>0&&(e[e.length-1].text=e[e.length-1].text.trim()):e.length>0&&(e[e.length-1].text+=r+`
|
|
4
4
|
`))}return{captions:e.map(i=>({...i,text:i.text.trimEnd()}))}}function Dt(t,n,e=!0){if(!t||t.length===0)return null;let i=t.find(r=>n>=r.startMs&&n<r.endMs);return i||(!e&&t.length>0?t[0]:null)}function un(t,n,e){if(!t||t.length===0)return 160;let i=n.fontSize??48,r=n.letterSpacing??0,c=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*i:n.lineHeight??i*1.2,d=n.padding??(n.background?12:0),u=e?Math.max(10,e-d*2):void 0,m=n.fontFamily??"Inter";L.isFailed(m)&&(m="Inter");let C=L.getFont(m,n.fontWeight,null,void 0,i),h=0;for(let k of t){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=be.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as r}from"./chunk-77MT33VR.mjs";import{g as e}from"./chunk-Y4NIR77Z.mjs";e();var o=r({});export{o as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{k as Te,l as Ce,n as he}from"./chunk-HOV6DDBZ.mjs";import{a as Ee}from"./chunk-UZTA2EUU.mjs";import{c as Pe}from"./chunk-P4Y3PMJF.mjs";import{i as me,l as Z}from"./chunk-RECQ74RP.mjs";import{c as Ie,e as be}from"./chunk-32WC4FRR.mjs";import{k as ye}from"./chunk-KOVN277Z.mjs";import{f as Y,g as ie}from"./chunk-Y4NIR77Z.mjs";ie();ie();ie();function Re(t,e){return Math.round(t*e)}function fe(t,e,n={timeOffsetSec:0}){if(!t)return t;let{operation:b,metadata:i={},children:a=[]}=t,{timeOffsetSec:y,durationLimitMs:m}=n;if(!b)return{...t,children:(a||[]).map(r=>fe(r,e,n))};let f=b.timeline,c=f?.segments||[],h=Z(t)?.durationMs??0;if(c.length>0){let r=c.reduce((P,s)=>{let F=s.endSec!=null?s.endSec-s.startSec:0,L=Math.max(1,Math.round(F*e));return P+L},0);r>0&&(h=r/e*1e3)}let p={...b},w=f?.startFrame??p.startFrame;if(typeof w=="number"){let r=Re(y,e);p.startFrame=w-r}let S={...i,durationMs:h},C=typeof w=="number"||p.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:y,durationLimitMs:m},V=(a||[]).map(r=>fe(r,e,C));return{metadata:S,operation:p,children:V}}var Ve=typeof Y<"u"&&/^(debug|trace)$/i.test(Y.env?.LOG_LEVEL??""),I={debug:(t,...e)=>{Ve&&(typeof t=="object"&&t!==null?console.info("[AudioExtractor]",t,...e):console.info(`[AudioExtractor] ${t}`,...e))},warn:(t,...e)=>{typeof t=="object"&&t!==null?console.warn("[AudioExtractor]",t,...e):console.warn(`[AudioExtractor] ${t}`,...e)},error:(t,...e)=>{typeof t=="object"&&t!==null?console.error("[AudioExtractor]",t,...e):console.error(`[AudioExtractor] ${t}`,...e)}},we=()=>{if(typeof window>"u")return Promise.resolve();let t=globalThis.scheduler;return typeof t?.yield=="function"?t.yield():new Promise(e=>setTimeout(e,0))},Be=async(t=3e4)=>{await new Promise(n=>setTimeout(n,100));let e=Date.now();return new Promise(n=>{let b=()=>{let i=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],a=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,y=i.length>0,m=a instanceof Set&&a.size>0;if(!y&&!m){n();return}if(Date.now()-e>t){I.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:i,globalDelays:a?Array.from(a):[]})}`),n();return}setTimeout(b,50)};b()})};async function rt(t){let e=await De(t);return e?{channels:e.channels,sampleRate:e.sampleRate}:null}var ze=.5;async function De(t,e){I.debug(`[AudioExtractor] decodeAudioSource started for url: ${t}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof Y<"u"&&Y.versions&&Y.versions.node)){I.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${t}...`);let i=window.AudioContext||window.webkitAudioContext;if(!i)throw new Error("AudioContext is not supported in this browser");let a=new i;try{let y=await fetch(t);if(I.debug(`[AudioExtractor] Fetch response status for ${t}: ${y.status} (${y.statusText})`),!y.ok)throw new Error(`Failed to fetch audio source: ${y.statusText}`);let m=await y.arrayBuffer();I.debug(`[AudioExtractor] Fetched ${m.byteLength} bytes. Decoding audio data...`);let f=await a.decodeAudioData(m);I.debug(`[AudioExtractor] Decoded successfully: ${f.numberOfChannels} channels, sampleRate: ${f.sampleRate}, duration: ${f.duration}s`);let c=[];for(let h=0;h<f.numberOfChannels;h++)c.push(new Float32Array(f.getChannelData(h)));return{channels:c,sampleRate:f.sampleRate,startIndex:0,validFromSec:0,validToSec:Number.POSITIVE_INFINITY}}finally{a.close(),I.debug(`[AudioExtractor] AudioContext closed for ${t}`)}}let b=!1;try{I.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${t}...`);let i=await be.acquire(t);b=!0,I.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let a=await i.getPrimaryAudioTrack();if(!a)return I.warn(`[AudioExtractor] No primary audio track found in input for ${t}`),null;let y=new Ie(a),m=e?Math.max(0,e.startSec-ze):0,f=y.samples(m,e?.endSec),c=[],h=0,p=48e3,w=1,S=null;I.debug(`[AudioExtractor] Starting mediabunny generator loop for ${t}...`);for await(let r of f){S===null&&(S=r.timestamp),p=r.sampleRate,w=r.numberOfChannels;let P=r.numberOfFrames;if(c.length===0)for(let s=0;s<w;s++)c.push([]);for(let s=0;s<w;s++){let F;try{let L=r.allocationSize({planeIndex:s,format:"f32-planar"});F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s,format:"f32-planar"})}catch{let L=r.allocationSize({planeIndex:s});if(r.format==="s16"||r.format==="s16-planar"){let E=new Int16Array(L/2);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/32768}else if(r.format==="s32"||r.format==="s32-planar"){let E=new Int32Array(L/4);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/2147483648}else if(r.format==="u8"||r.format==="u8-planar"){let E=new Uint8Array(L);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=((E[M]??128)-128)/128}else F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s})}c[s].push(F)}h+=P,r.close()}if(I.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${h}`),h===0||c.length===0)return null;let _=c.map(r=>{let P=new Float32Array(h),s=0;for(let F of r)P.set(F,s),s+=F.length;return P}),C=0;if(m>0&&S!==null){let r=await y.getSample(0),P=r?.timestamp??await a.getFirstTimestamp();r?.close(),C=Math.round((S-P)*p)}let V=!e||(C+h)/p<e.endSec;return{channels:_,sampleRate:p,startIndex:C,validFromSec:m>0&&e?e.startSec:0,validToSec:V||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(i){if(i instanceof Error&&i.message.includes("Cannot open local media file"))throw i;if(typeof Y<"u"&&Y.versions?.node)try{let{execFileSync:a}=await import("./child_process-B2TV2STW.mjs"),y=e?Math.round(Math.max(0,e.startSec)*48e3):0,m=y/48e3,f=a("ffmpeg",["-v","error",...m>0?["-ss",String(m)]:[],"-i",t,...e?["-t",String(e.endSec-m)]:[],"-f","f32le","-ar","48000","-ac","2","pipe:1"],{maxBuffer:Number.POSITIVE_INFINITY}),c=f.byteLength/4,h=c/2,p=new Float32Array(f.buffer,f.byteOffset,c),w=new Float32Array(h),S=new Float32Array(h);for(let C=0;C<h;C++)w[C]=p[C*2],S[C]=p[C*2+1];let _=!e||m+h/48e3<e.endSec;return{channels:[w,S],sampleRate:48e3,startIndex:y,validFromSec:m,validToSec:_||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(a){I.warn({ffmpegErr:a},`[AudioExtractor] ffmpeg fallback decode failed for ${t}`)}return I.error({err:i},`[AudioExtractor] Failed to decode source ${t}`),null}finally{b&&be.release(t)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return I.error({err:n},`[AudioExtractor] Failed to decode source ${t}`),null}}async function ve(t,e,n,b,i,a,y,m){let f=new Float32Array(b);for(let c=0;c<b;c++){c>0&&c%1e5===0&&await we();let h=y+c/n*m;if(Ce(a,h))continue;let p=Te(a,h,m)*e-i,w=Math.floor(p);if(w<0||w>=t.length)continue;let S=t[w];f[c]=S+((t[w+1]??S)-S)*(p-w)}return f}async function $e(t,e,n,b,i,a,y=0){let m=new Float32Array(i),c=e/n*b,h=1e5;for(let p=0;p<i;p++){p>0&&p%h===0&&await we();let w=a+p*c-y,S=Math.floor(w),_=Math.ceil(w);if(S<0){m[p]=0;continue}if(S>=t.length)break;let C=w-S,V=t[S]??0,r=_>=0&&_<t.length?t[_]??V:V,P=V+C*(r-V);m[p]=Number.isFinite(P)?P:0}return m}var ke=.05,Ue=new Set(["Compositor","CompositorLayer"]);function Ge(t,e,n){let b=Math.max(0,-n),i=Math.min(e.length,t.length-n);for(let a=b;a<i;a++)t[n+a]+=e[a]}var pe=class{constructor(e){this.length=e}length;channels=null;get(){return this.channels??=[new Float32Array(this.length),new Float32Array(this.length)],this.channels}canAdopt(e,n){return this.channels===null&&n===0&&e.every(b=>b.length===this.length)}add(e,n){if(this.canAdopt(e,n)&&e[0]!==e[1]){this.channels=e;return}let b=this.get();for(let i=0;i<2;i++)Ge(b[i],e[i],n)}};function Ye(t){if(t.startsWith("data:"))return"inline audio";let e=t.split(/[?#]/)[0].split(/[\\/]/).pop();return e?He(e):"audio"}function He(t){try{return decodeURIComponent(t)}catch{return t}}async function at(t,e,n=48e3,b,i,a={}){I.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${e}, targetSampleRate: ${n}`),await Be(),Ee.registerSignalsFromComposition(i,t);let y=Z(t)?.durationMs||1e3,m=y/1e3,f=Math.ceil(m*n);I.debug(`[AudioExtractor] Composition total duration: ${y}ms (${m}s). Total mixed samples to allocate: ${f}`);let c=new Map,h=new Set;async function p(o,l,u,g=!0){if(h.has(o))return null;let A=c.get(o),x=g?A?.find(d=>d.validFromSec<=l&&d.validToSec>=u):void 0;if(x)return x;let T=await De(o,{startSec:l,endSec:u});return T?(g&&(A||(A=[],c.set(o,A)),A.push(T)),T):(h.add(o),null)}async function w(o,l,u,g){let A=new Float32Array(l),x=new Float32Array(l);for(let T=0;T<l;){let d=Math.min(l-T,n*2),R=g+T/n*e,j=he(u,R,R+(d-1)/n*e,e);for(;j.max-j.min>3&&d>1;)d=Math.max(1,Math.floor(d/2)),j=he(u,R,R+(d-1)/n*e,e);let v=await p(o,j.min,j.max+ke,!1);if(!v)return null;let K=await ve(v.channels[0],v.sampleRate,n,d,v.startIndex,u,R,e),Q=v.channels.length>1?await ve(v.channels[1],v.sampleRate,n,d,v.startIndex,u,R,e):K;A.set(K,T),x.set(Q,T),T+=d}return[A,x]}let S=new WeakMap;function _(o){let l=S.get(o);if(l!==void 0)return l;let u=o.operation,g=!1;if(u?.op==="source"){let A=me(o);g=A==="Audio"||A==="Video"}else u?.op&&!Ue.has(u.op)&&ye.get(u.op)&&(g=!0);return!g&&o.children&&(g=o.children.some(A=>A&&_(A))),S.set(o,g),g}async function C(o,l,u,g,A,x,T){if(!o||!_(o))return null;let d=o.operation;if(!d){let B=Z(o)?.durationMs??0,z=Math.round(B/1e3*e),ne=T&&x!==null?x:x!==null?z>0?Math.min(x,z):x:z,q=Math.ceil(ne/e*n);if(q<=0)return null;let re=new pe(q);for(let X of o.children){let ae=await C(X,l,u,g,A,ne,T);if(ae){let $=X.operation,de=$?.startFrame??$?.timeline?.startFrame??0,k=Math.round(de/e*n);re.add(ae,k)}}return re.channels}let R=g*(d.volume??1)*(d.opacity===0?0:1)*(d.muted?0:1),j=A,v=d.startFrame??d.timeline?.startFrame??0,K=d.timeRemap,Q=K?{map:K,offsetFrames:0}:T?{map:T.map,offsetFrames:T.offsetFrames+v}:void 0,Se=d.op==="CompositorLayer"?v:u+v,Fe=d.timeline?.segments||[],ee=d,Me=ee.op==="CompositorLayer"?(ee.mediaStartFrame??ee.trimStartFrames??null)!==null?(ee.mediaStartFrame??ee.trimStartFrames??0)/e:Math.round((ee.trimStartSec??0)*e)/e:0,Ne=Z(o)?.durationMs??0,ue=Math.round(Ne/1e3*e),Le=T&&!K&&x!==null?x:x!==null?ue>0?Math.min(x,ue):x:ue,te=Math.ceil(Le/e*n);if(te<=0)return null;let oe=new pe(te),ge=async(B,z)=>{let ne=B?B.startSec:0,q=l+Me+ne,re=Se+z,X=0;B?X=Math.max(1,Math.round(((B.endSec??0)-B.startSec)*e)):X=ue;let ae=T&&!K&&!B&&x!==null?x:x!==null?Math.min(x,X):X,$=Math.round(z/e*n);if(d.op==="source"){let k=me(o),D=Pe(o);if(D.sourceUrl&&(k==="Audio"||k==="Video")&&R>0){let H=Math.max(.5,j*(Number(D.speed)||1)),W=Math.max(0,(Number(D.trimStartSec)||0)+q),se=ae/e,N=Math.min(te-$,Math.ceil(se*n)),ce=Q&&N>0?await w(D.sourceUrl,N,Q.map,Q.offsetFrames+z):null,U=!Q&&N>0&&$<te?await p(D.sourceUrl,W,W+N/n*H+ke):null;if(ce||U){let G,J;if(ce)[G,J]=ce;else if(U){let O=Math.round(W*U.sampleRate);G=await $e(U.channels[0],U.sampleRate,n,H,N,O,U.startIndex),J=U.channels.length>1?await $e(U.channels[1],U.sampleRate,n,H,N,O,U.startIndex):G}else throw new Error("No decoded audio");let Oe=[G,J];if(oe.canAdopt(Oe,$)){if(R!==1){for(let O=0;O<N;O++)G[O]*=R;if(J!==G)for(let O=0;O<N;O++)J[O]*=R}oe.channels=[G,J===G?G.slice():J]}else{let[O,_e]=oe.get();for(let le=0;le<N;le++){let xe=$+le;O[xe]+=G[le]*R,_e[xe]+=J[le]*R}}}await we()}(k==="Audio"||k==="Video")&&(P++,a.onProgress?.({done:P,total:r,...D.sourceUrl&&{source:Ye(D.sourceUrl)}}))}if(o.children)for(let k of o.children){let D=await C(k,q,re,R,j,ae,Q);if(D){let H=k.operation,W=H?.startFrame??H?.timeline?.startFrame??0,se=d.op==="CompositorLayer"&&H?.op==="CompositorLayer"?W-v:W,N=Math.round(se/e*n);oe.add(D,$+N)}}let de=ye.get(d.op);if(de)try{let k=ae/e,D=Math.min(te-$,Math.ceil(k*n));if(D>0&&$<te&&$>=0){let H=oe.get().map(ce=>ce.subarray($,$+D)),W=d.op==="CompositorLayer"?Se:0,se=((re-W)/e+q-Me)*1e3,N=Z(o)?.durationMs??void 0;await de(H,n,o,{device:b,frame:re,fps:e,renderId:i,elapsedMs:se,durationMs:N})}}catch(k){I.error({err:k},`[AudioExtractor] Custom plugin for operation '${d.op}' failed`)}};if(Fe.length>0){let B=0;for(let z of Fe){let ne=(z.endSec??0)-z.startSec,q=Math.max(1,Math.round(ne*e));await ge(z,B),B+=q}}else await ge(null,0);return oe.channels}let V=fe(t,e),r=0,P=0;if(a.onProgress){let o=l=>{if(!l)return;let u=l.operation;if(u?.op==="source"){let g=me(l);(g==="Audio"||g==="Video")&&(r+=Math.max(1,u.timeline?.segments?.length??0))}for(let g of l.children??[])o(g)};o(V),a.onProgress({done:0,total:r})}let s=await C(V,0,0,1,1,null),F=s?.every(o=>o.length===f)&&s[0]!==s[1]?s:[new Float32Array(f),new Float32Array(f)],[L,E]=F;if(s&&F!==s)for(let o=0;o<2;o++){let l=F[o],u=s[o],g=Math.min(u.length,l.length);for(let A=0;A<g;A++)l[A]=u[A]}c.clear();let M=0;for(let o=0;o<f;o++){let l=Math.abs(L[o]??0),u=Math.abs(E[o]??0);l>M&&(M=l),u>M&&(M=u)}let Ae=M>.95?.92/M:1;for(let o=0;o<f;o++){let l=(L[o]??0)*Ae,u=(E[o]??0)*Ae;L[o]=Number.isFinite(l)?Math.tanh(l):0,E[o]=Number.isFinite(u)?Math.tanh(u):0}return{channels:F,sampleRate:n}}export{rt as a,at as b};
|
|
1
|
+
import{k as Te,l as Ce,n as he}from"./chunk-HOV6DDBZ.mjs";import{a as Ee}from"./chunk-UZTA2EUU.mjs";import{c as Pe}from"./chunk-P4Y3PMJF.mjs";import{i as me,l as Z}from"./chunk-RECQ74RP.mjs";import{c as Ie,e as be}from"./chunk-32WC4FRR.mjs";import{l as ye}from"./chunk-77MT33VR.mjs";import{f as Y,g as ie}from"./chunk-Y4NIR77Z.mjs";ie();ie();ie();function Re(t,e){return Math.round(t*e)}function fe(t,e,n={timeOffsetSec:0}){if(!t)return t;let{operation:b,metadata:i={},children:a=[]}=t,{timeOffsetSec:y,durationLimitMs:m}=n;if(!b)return{...t,children:(a||[]).map(r=>fe(r,e,n))};let f=b.timeline,c=f?.segments||[],h=Z(t)?.durationMs??0;if(c.length>0){let r=c.reduce((P,s)=>{let F=s.endSec!=null?s.endSec-s.startSec:0,L=Math.max(1,Math.round(F*e));return P+L},0);r>0&&(h=r/e*1e3)}let p={...b},w=f?.startFrame??p.startFrame;if(typeof w=="number"){let r=Re(y,e);p.startFrame=w-r}let S={...i,durationMs:h},C=typeof w=="number"||p.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:y,durationLimitMs:m},V=(a||[]).map(r=>fe(r,e,C));return{metadata:S,operation:p,children:V}}var Ve=typeof Y<"u"&&/^(debug|trace)$/i.test(Y.env?.LOG_LEVEL??""),I={debug:(t,...e)=>{Ve&&(typeof t=="object"&&t!==null?console.info("[AudioExtractor]",t,...e):console.info(`[AudioExtractor] ${t}`,...e))},warn:(t,...e)=>{typeof t=="object"&&t!==null?console.warn("[AudioExtractor]",t,...e):console.warn(`[AudioExtractor] ${t}`,...e)},error:(t,...e)=>{typeof t=="object"&&t!==null?console.error("[AudioExtractor]",t,...e):console.error(`[AudioExtractor] ${t}`,...e)}},we=()=>{if(typeof window>"u")return Promise.resolve();let t=globalThis.scheduler;return typeof t?.yield=="function"?t.yield():new Promise(e=>setTimeout(e,0))},Be=async(t=3e4)=>{await new Promise(n=>setTimeout(n,100));let e=Date.now();return new Promise(n=>{let b=()=>{let i=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],a=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,y=i.length>0,m=a instanceof Set&&a.size>0;if(!y&&!m){n();return}if(Date.now()-e>t){I.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:i,globalDelays:a?Array.from(a):[]})}`),n();return}setTimeout(b,50)};b()})};async function rt(t){let e=await De(t);return e?{channels:e.channels,sampleRate:e.sampleRate}:null}var ze=.5;async function De(t,e){I.debug(`[AudioExtractor] decodeAudioSource started for url: ${t}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof Y<"u"&&Y.versions&&Y.versions.node)){I.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${t}...`);let i=window.AudioContext||window.webkitAudioContext;if(!i)throw new Error("AudioContext is not supported in this browser");let a=new i;try{let y=await fetch(t);if(I.debug(`[AudioExtractor] Fetch response status for ${t}: ${y.status} (${y.statusText})`),!y.ok)throw new Error(`Failed to fetch audio source: ${y.statusText}`);let m=await y.arrayBuffer();I.debug(`[AudioExtractor] Fetched ${m.byteLength} bytes. Decoding audio data...`);let f=await a.decodeAudioData(m);I.debug(`[AudioExtractor] Decoded successfully: ${f.numberOfChannels} channels, sampleRate: ${f.sampleRate}, duration: ${f.duration}s`);let c=[];for(let h=0;h<f.numberOfChannels;h++)c.push(new Float32Array(f.getChannelData(h)));return{channels:c,sampleRate:f.sampleRate,startIndex:0,validFromSec:0,validToSec:Number.POSITIVE_INFINITY}}finally{a.close(),I.debug(`[AudioExtractor] AudioContext closed for ${t}`)}}let b=!1;try{I.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${t}...`);let i=await be.acquire(t);b=!0,I.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let a=await i.getPrimaryAudioTrack();if(!a)return I.warn(`[AudioExtractor] No primary audio track found in input for ${t}`),null;let y=new Ie(a),m=e?Math.max(0,e.startSec-ze):0,f=y.samples(m,e?.endSec),c=[],h=0,p=48e3,w=1,S=null;I.debug(`[AudioExtractor] Starting mediabunny generator loop for ${t}...`);for await(let r of f){S===null&&(S=r.timestamp),p=r.sampleRate,w=r.numberOfChannels;let P=r.numberOfFrames;if(c.length===0)for(let s=0;s<w;s++)c.push([]);for(let s=0;s<w;s++){let F;try{let L=r.allocationSize({planeIndex:s,format:"f32-planar"});F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s,format:"f32-planar"})}catch{let L=r.allocationSize({planeIndex:s});if(r.format==="s16"||r.format==="s16-planar"){let E=new Int16Array(L/2);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/32768}else if(r.format==="s32"||r.format==="s32-planar"){let E=new Int32Array(L/4);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/2147483648}else if(r.format==="u8"||r.format==="u8-planar"){let E=new Uint8Array(L);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=((E[M]??128)-128)/128}else F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s})}c[s].push(F)}h+=P,r.close()}if(I.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${h}`),h===0||c.length===0)return null;let _=c.map(r=>{let P=new Float32Array(h),s=0;for(let F of r)P.set(F,s),s+=F.length;return P}),C=0;if(m>0&&S!==null){let r=await y.getSample(0),P=r?.timestamp??await a.getFirstTimestamp();r?.close(),C=Math.round((S-P)*p)}let V=!e||(C+h)/p<e.endSec;return{channels:_,sampleRate:p,startIndex:C,validFromSec:m>0&&e?e.startSec:0,validToSec:V||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(i){if(i instanceof Error&&i.message.includes("Cannot open local media file"))throw i;if(typeof Y<"u"&&Y.versions?.node)try{let{execFileSync:a}=await import("./child_process-B2TV2STW.mjs"),y=e?Math.round(Math.max(0,e.startSec)*48e3):0,m=y/48e3,f=a("ffmpeg",["-v","error",...m>0?["-ss",String(m)]:[],"-i",t,...e?["-t",String(e.endSec-m)]:[],"-f","f32le","-ar","48000","-ac","2","pipe:1"],{maxBuffer:Number.POSITIVE_INFINITY}),c=f.byteLength/4,h=c/2,p=new Float32Array(f.buffer,f.byteOffset,c),w=new Float32Array(h),S=new Float32Array(h);for(let C=0;C<h;C++)w[C]=p[C*2],S[C]=p[C*2+1];let _=!e||m+h/48e3<e.endSec;return{channels:[w,S],sampleRate:48e3,startIndex:y,validFromSec:m,validToSec:_||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(a){I.warn({ffmpegErr:a},`[AudioExtractor] ffmpeg fallback decode failed for ${t}`)}return I.error({err:i},`[AudioExtractor] Failed to decode source ${t}`),null}finally{b&&be.release(t)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return I.error({err:n},`[AudioExtractor] Failed to decode source ${t}`),null}}async function ve(t,e,n,b,i,a,y,m){let f=new Float32Array(b);for(let c=0;c<b;c++){c>0&&c%1e5===0&&await we();let h=y+c/n*m;if(Ce(a,h))continue;let p=Te(a,h,m)*e-i,w=Math.floor(p);if(w<0||w>=t.length)continue;let S=t[w];f[c]=S+((t[w+1]??S)-S)*(p-w)}return f}async function $e(t,e,n,b,i,a,y=0){let m=new Float32Array(i),c=e/n*b,h=1e5;for(let p=0;p<i;p++){p>0&&p%h===0&&await we();let w=a+p*c-y,S=Math.floor(w),_=Math.ceil(w);if(S<0){m[p]=0;continue}if(S>=t.length)break;let C=w-S,V=t[S]??0,r=_>=0&&_<t.length?t[_]??V:V,P=V+C*(r-V);m[p]=Number.isFinite(P)?P:0}return m}var ke=.05,Ue=new Set(["Compositor","CompositorLayer"]);function Ge(t,e,n){let b=Math.max(0,-n),i=Math.min(e.length,t.length-n);for(let a=b;a<i;a++)t[n+a]+=e[a]}var pe=class{constructor(e){this.length=e}length;channels=null;get(){return this.channels??=[new Float32Array(this.length),new Float32Array(this.length)],this.channels}canAdopt(e,n){return this.channels===null&&n===0&&e.every(b=>b.length===this.length)}add(e,n){if(this.canAdopt(e,n)&&e[0]!==e[1]){this.channels=e;return}let b=this.get();for(let i=0;i<2;i++)Ge(b[i],e[i],n)}};function Ye(t){if(t.startsWith("data:"))return"inline audio";let e=t.split(/[?#]/)[0].split(/[\\/]/).pop();return e?He(e):"audio"}function He(t){try{return decodeURIComponent(t)}catch{return t}}async function at(t,e,n=48e3,b,i,a={}){I.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${e}, targetSampleRate: ${n}`),await Be(),Ee.registerSignalsFromComposition(i,t);let y=Z(t)?.durationMs||1e3,m=y/1e3,f=Math.ceil(m*n);I.debug(`[AudioExtractor] Composition total duration: ${y}ms (${m}s). Total mixed samples to allocate: ${f}`);let c=new Map,h=new Set;async function p(o,l,u,g=!0){if(h.has(o))return null;let A=c.get(o),x=g?A?.find(d=>d.validFromSec<=l&&d.validToSec>=u):void 0;if(x)return x;let T=await De(o,{startSec:l,endSec:u});return T?(g&&(A||(A=[],c.set(o,A)),A.push(T)),T):(h.add(o),null)}async function w(o,l,u,g){let A=new Float32Array(l),x=new Float32Array(l);for(let T=0;T<l;){let d=Math.min(l-T,n*2),R=g+T/n*e,j=he(u,R,R+(d-1)/n*e,e);for(;j.max-j.min>3&&d>1;)d=Math.max(1,Math.floor(d/2)),j=he(u,R,R+(d-1)/n*e,e);let v=await p(o,j.min,j.max+ke,!1);if(!v)return null;let K=await ve(v.channels[0],v.sampleRate,n,d,v.startIndex,u,R,e),Q=v.channels.length>1?await ve(v.channels[1],v.sampleRate,n,d,v.startIndex,u,R,e):K;A.set(K,T),x.set(Q,T),T+=d}return[A,x]}let S=new WeakMap;function _(o){let l=S.get(o);if(l!==void 0)return l;let u=o.operation,g=!1;if(u?.op==="source"){let A=me(o);g=A==="Audio"||A==="Video"}else u?.op&&!Ue.has(u.op)&&ye.get(u.op)&&(g=!0);return!g&&o.children&&(g=o.children.some(A=>A&&_(A))),S.set(o,g),g}async function C(o,l,u,g,A,x,T){if(!o||!_(o))return null;let d=o.operation;if(!d){let B=Z(o)?.durationMs??0,z=Math.round(B/1e3*e),ne=T&&x!==null?x:x!==null?z>0?Math.min(x,z):x:z,q=Math.ceil(ne/e*n);if(q<=0)return null;let re=new pe(q);for(let X of o.children){let ae=await C(X,l,u,g,A,ne,T);if(ae){let $=X.operation,de=$?.startFrame??$?.timeline?.startFrame??0,k=Math.round(de/e*n);re.add(ae,k)}}return re.channels}let R=g*(d.volume??1)*(d.opacity===0?0:1)*(d.muted?0:1),j=A,v=d.startFrame??d.timeline?.startFrame??0,K=d.timeRemap,Q=K?{map:K,offsetFrames:0}:T?{map:T.map,offsetFrames:T.offsetFrames+v}:void 0,Se=d.op==="CompositorLayer"?v:u+v,Fe=d.timeline?.segments||[],ee=d,Me=ee.op==="CompositorLayer"?(ee.mediaStartFrame??ee.trimStartFrames??null)!==null?(ee.mediaStartFrame??ee.trimStartFrames??0)/e:Math.round((ee.trimStartSec??0)*e)/e:0,Ne=Z(o)?.durationMs??0,ue=Math.round(Ne/1e3*e),Le=T&&!K&&x!==null?x:x!==null?ue>0?Math.min(x,ue):x:ue,te=Math.ceil(Le/e*n);if(te<=0)return null;let oe=new pe(te),ge=async(B,z)=>{let ne=B?B.startSec:0,q=l+Me+ne,re=Se+z,X=0;B?X=Math.max(1,Math.round(((B.endSec??0)-B.startSec)*e)):X=ue;let ae=T&&!K&&!B&&x!==null?x:x!==null?Math.min(x,X):X,$=Math.round(z/e*n);if(d.op==="source"){let k=me(o),D=Pe(o);if(D.sourceUrl&&(k==="Audio"||k==="Video")&&R>0){let H=Math.max(.5,j*(Number(D.speed)||1)),W=Math.max(0,(Number(D.trimStartSec)||0)+q),se=ae/e,N=Math.min(te-$,Math.ceil(se*n)),ce=Q&&N>0?await w(D.sourceUrl,N,Q.map,Q.offsetFrames+z):null,U=!Q&&N>0&&$<te?await p(D.sourceUrl,W,W+N/n*H+ke):null;if(ce||U){let G,J;if(ce)[G,J]=ce;else if(U){let O=Math.round(W*U.sampleRate);G=await $e(U.channels[0],U.sampleRate,n,H,N,O,U.startIndex),J=U.channels.length>1?await $e(U.channels[1],U.sampleRate,n,H,N,O,U.startIndex):G}else throw new Error("No decoded audio");let Oe=[G,J];if(oe.canAdopt(Oe,$)){if(R!==1){for(let O=0;O<N;O++)G[O]*=R;if(J!==G)for(let O=0;O<N;O++)J[O]*=R}oe.channels=[G,J===G?G.slice():J]}else{let[O,_e]=oe.get();for(let le=0;le<N;le++){let xe=$+le;O[xe]+=G[le]*R,_e[xe]+=J[le]*R}}}await we()}(k==="Audio"||k==="Video")&&(P++,a.onProgress?.({done:P,total:r,...D.sourceUrl&&{source:Ye(D.sourceUrl)}}))}if(o.children)for(let k of o.children){let D=await C(k,q,re,R,j,ae,Q);if(D){let H=k.operation,W=H?.startFrame??H?.timeline?.startFrame??0,se=d.op==="CompositorLayer"&&H?.op==="CompositorLayer"?W-v:W,N=Math.round(se/e*n);oe.add(D,$+N)}}let de=ye.get(d.op);if(de)try{let k=ae/e,D=Math.min(te-$,Math.ceil(k*n));if(D>0&&$<te&&$>=0){let H=oe.get().map(ce=>ce.subarray($,$+D)),W=d.op==="CompositorLayer"?Se:0,se=((re-W)/e+q-Me)*1e3,N=Z(o)?.durationMs??void 0;await de(H,n,o,{device:b,frame:re,fps:e,renderId:i,elapsedMs:se,durationMs:N})}}catch(k){I.error({err:k},`[AudioExtractor] Custom plugin for operation '${d.op}' failed`)}};if(Fe.length>0){let B=0;for(let z of Fe){let ne=(z.endSec??0)-z.startSec,q=Math.max(1,Math.round(ne*e));await ge(z,B),B+=q}}else await ge(null,0);return oe.channels}let V=fe(t,e),r=0,P=0;if(a.onProgress){let o=l=>{if(!l)return;let u=l.operation;if(u?.op==="source"){let g=me(l);(g==="Audio"||g==="Video")&&(r+=Math.max(1,u.timeline?.segments?.length??0))}for(let g of l.children??[])o(g)};o(V),a.onProgress({done:0,total:r})}let s=await C(V,0,0,1,1,null),F=s?.every(o=>o.length===f)&&s[0]!==s[1]?s:[new Float32Array(f),new Float32Array(f)],[L,E]=F;if(s&&F!==s)for(let o=0;o<2;o++){let l=F[o],u=s[o],g=Math.min(u.length,l.length);for(let A=0;A<g;A++)l[A]=u[A]}c.clear();let M=0;for(let o=0;o<f;o++){let l=Math.abs(L[o]??0),u=Math.abs(E[o]??0);l>M&&(M=l),u>M&&(M=u)}let Ae=M>.95?.92/M:1;for(let o=0;o<f;o++){let l=(L[o]??0)*Ae,u=(E[o]??0)*Ae;L[o]=Number.isFinite(l)?Math.tanh(l):0,E[o]=Number.isFinite(u)?Math.tanh(u):0}return{channels:F,sampleRate:n}}export{rt as a,at as b};
|
|
@@ -133,6 +133,8 @@ fn sampleSlugCoverage(sampleUV: vec2<f32>, g: SlugGlyph, pixelsPerEm: vec2<f32>)
|
|
|
133
133
|
// pixel footprint in glyph uv, |d/dx| + |d/dy| (fwidth): the caller takes it in
|
|
134
134
|
// uniform control flow. On a turned or foreshortened glyph it is wider than one
|
|
135
135
|
// pixel along an axis, so that axis gets the soft ramp a box filter gives.
|
|
136
|
+
// A blur of blurAmount px averages coverage over a grid reaching 0.3 of it
|
|
137
|
+
// each way, blurTaps taps per side past the centre.
|
|
136
138
|
fn shadeSlugGlyph(
|
|
137
139
|
uv: vec2<f32>,
|
|
138
140
|
fw: vec2<f32>,
|
|
@@ -141,6 +143,7 @@ fn shadeSlugGlyph(
|
|
|
141
143
|
color: vec4<f32>,
|
|
142
144
|
opacity: f32,
|
|
143
145
|
blurAmount: f32,
|
|
146
|
+
blurTaps: f32,
|
|
144
147
|
chromaticShift: f32,
|
|
145
148
|
dissolveProgress: f32,
|
|
146
149
|
) -> vec4<f32> {
|
|
@@ -173,14 +176,15 @@ fn shadeSlugGlyph(
|
|
|
173
176
|
|
|
174
177
|
var slugAlpha = 0.0;
|
|
175
178
|
if (blurAmount > 0.01) {
|
|
176
|
-
let step = fw * blurAmount * 0.3;
|
|
177
|
-
for (var y_offset = -
|
|
178
|
-
for (var x_offset = -
|
|
179
|
+
let step = fw * blurAmount * 0.3 / blurTaps;
|
|
180
|
+
for (var y_offset = -blurTaps; y_offset <= blurTaps; y_offset = y_offset + 1.0) {
|
|
181
|
+
for (var x_offset = -blurTaps; x_offset <= blurTaps; x_offset = x_offset + 1.0) {
|
|
179
182
|
let offset = vec2<f32>(x_offset, y_offset) * step;
|
|
180
183
|
slugAlpha = slugAlpha + sampleSlugCoverage(uv + offset, g, pixelsPerEm);
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
|
-
|
|
186
|
+
let side = 2.0 * blurTaps + 1.0;
|
|
187
|
+
slugAlpha = slugAlpha / (side * side);
|
|
184
188
|
} else {
|
|
185
189
|
slugAlpha = sampleSlugCoverage(uv, g, pixelsPerEm);
|
|
186
190
|
}
|
|
@@ -215,6 +219,7 @@ struct VSOut {
|
|
|
215
219
|
@location(7) @interpolate(flat) chromaticShift : f32,
|
|
216
220
|
@location(8) @interpolate(flat) dissolveProgress : f32,
|
|
217
221
|
@location(9) @interpolate(flat) vfxParam : f32,
|
|
222
|
+
@location(10) @interpolate(flat) blurTaps : f32,
|
|
218
223
|
};
|
|
219
224
|
|
|
220
225
|
var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
|
|
@@ -248,7 +253,11 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
|
|
|
248
253
|
let transform2 = mat2x2<f32>(u.transformCol0.xy, u.transformCol1.xy);
|
|
249
254
|
let pixelsPerUnit = sqrt(max(abs(determinant(transform2)), 1e-8));
|
|
250
255
|
let halfSize = max(abs(aScaleBias.xy * scale_mult), vec2<f32>(1e-4));
|
|
251
|
-
|
|
256
|
+
// A blurred glyph keeps a unit around it however many pixels a unit
|
|
257
|
+
// spans: its blur spills that far at one pixel per unit.
|
|
258
|
+
let blurred = aExtraParams.x > 0.01;
|
|
259
|
+
let dilation = select(1.0, max(1.0, pixelsPerUnit), blurred) / pixelsPerUnit;
|
|
260
|
+
let grow = vec2<f32>(1.0) + dilation / halfSize;
|
|
252
261
|
let uv = vec2<f32>(
|
|
253
262
|
quad_pos.x * grow.x * 0.5 + 0.5,
|
|
254
263
|
1.0 - (quad_pos.y * grow.y * 0.5 + 0.5),
|
|
@@ -282,7 +291,11 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
|
|
|
282
291
|
out.bandMax = vec2<u32>(aBandMaxTexCoords.xy);
|
|
283
292
|
out.bandsTexCoords = vec2<u32>(aBandMaxTexCoords.zw);
|
|
284
293
|
out.color = aColor;
|
|
285
|
-
|
|
294
|
+
// Blur is in local units, like every other length here; the fragment
|
|
295
|
+
// stage spreads its taps in pixels, as far apart as at one pixel per
|
|
296
|
+
// unit (more of them as a unit spans more pixels, up to 4).
|
|
297
|
+
out.blurAmount = aExtraParams.x * pixelsPerUnit;
|
|
298
|
+
out.blurTaps = clamp(ceil(pixelsPerUnit - 1e-3), 1.0, 4.0);
|
|
286
299
|
out.chromaticShift = aExtraParams.y;
|
|
287
300
|
out.dissolveProgress = aExtraParams.z;
|
|
288
301
|
out.vfxParam = aExtraParams.w;
|
|
@@ -301,6 +314,7 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
|
|
|
301
314
|
in.color,
|
|
302
315
|
u.params.x,
|
|
303
316
|
in.blurAmount,
|
|
317
|
+
in.blurTaps,
|
|
304
318
|
in.chromaticShift,
|
|
305
319
|
in.dissolveProgress,
|
|
306
320
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as U,c as T,d as L,g as v,h as A,i as C}from"./chunk-
|
|
1
|
+
import{a as U,c as T,d as L,g as v,h as A,i as C}from"./chunk-3QTHW2CD.mjs";import{g as x}from"./chunk-77MT33VR.mjs";import{g as p}from"./chunk-Y4NIR77Z.mjs";p();p();var G=1024,_=`
|
|
2
2
|
struct LiquifyOpData {
|
|
3
3
|
opType : f32, // 0=Push, 1=Pull, 2=Bloat, 3=Pucker, 4=TwirlCW, 5=TwirlCCW
|
|
4
4
|
x : f32,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as p}from"./chunk-SE2C623Z.mjs";import{f as n,g as m}from"./chunk-
|
|
1
|
+
import{a as p}from"./chunk-SE2C623Z.mjs";import{f as n,g as m}from"./chunk-77MT33VR.mjs";import{c as t}from"./chunk-ULOFDFHJ.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();var C=["threshold","attack","hold","release","range"],I=()=>`
|
|
2
2
|
struct Uniforms {
|
|
3
3
|
sampleRate : f32,
|
|
4
4
|
threshold : f32,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as x,x as I}from"./chunk-UKZVUYB6.mjs";import{a as g,b as f,d as b,e as m}from"./chunk-32WC4FRR.mjs";import{b as S,j as u,v as D}from"./chunk-64L4GUOF.mjs";import{b as F}from"./chunk-354GX6IB.mjs";import{g as h}from"./chunk-Y4NIR77Z.mjs";h();var p=class{constructor(e,t){this.url=e;this.isHeadless=t}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let e=await m.acquire(this.url);this.destroyed?m.release(this.url):this.input=e}catch(e){throw this.initPromise=null,e}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(m.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},y=class extends p{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];backwardFrames=[];backwardBytes=0;backwardEnd;lastHeadlessTimestamp;isDecoding=!1;decodeBuffer=null;nextRequest=null;async durationSec(){await this.init();let e=await this.input?.getPrimaryVideoTrack();if(!e)throw new Error(`No video track in ${this.url}`);return e.computeDuration()}pushHeadlessQueue(e){let t=this.headlessQueue.findIndex(i=>i.timestamp>e.timestamp);t===-1?this.headlessQueue.push(e):this.headlessQueue.splice(t,0,e)}async fillHeadlessQueue(e){if(this.iterator)for(;this.headlessQueue.length<2;){let t=await this.iterator.next();if(this.currentFetchId!==e){t.value?.close?.();return}if(t.done||!t.value)break;this.pushHeadlessQueue(t.value)}}async closeIterator(e){if(e)try{await e.return()}catch{}}resetSinks(){let e=this.iterator;if(this.iterator=null,e)try{e.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let t of this.headlessQueue)try{t.close()}catch{}this.headlessQueue=[],this.clearBackwardFrames(),this.lastHeadlessTimestamp=void 0,this.decodeBuffer=null,this.iteratorStartTimestamp=-1}clearBackwardFrames(){for(let e of this.backwardFrames)e.close();this.backwardFrames=[],this.backwardBytes=0,this.backwardEnd=void 0}async copyHeadlessSample(e,t){let i=e.displayWidth,r=e.displayHeight,a=i*r*4,s=this.decodeBuffer;return(!s||s.length!==a)&&(s=new Uint8Array(a),this.decodeBuffer=s),await e.copyTo(s,{format:"RGBA"}),this.currentFetchId!==t||this.destroyed||!this.input?null:(F(s),{width:i,height:r,buffer:s})}cachedBackwardFrame(e){let t,i=-1;for(let[a,s]of this.backwardFrames.entries()){if(s.timestamp>e+1e-4)break;t=s,i=a}let r=this.backwardFrames[i+1]?.timestamp??this.backwardEnd;if(!(!t||!(t.duration>0)||e+1e-4>=Math.min(t.timestamp+t.duration,r??1/0)))return t}async fillBackwardFrames(e,t){if(!this.videoSampleSink)return;await this.closeIterator(this.iterator),this.iterator=null;for(let r of this.headlessQueue)r.close();this.headlessQueue=[],this.clearBackwardFrames();let i=this.videoSampleSink.samples(Math.max(0,e-.5));try{for await(let r of i){if(r.timestamp>e+1e-4&&(this.backwardEnd=r.timestamp),this.destroyed||this.currentFetchId!==t||r.timestamp>e+1e-4){r.close();break}let a=r.displayWidth*r.displayHeight*4;if(a>48*1024*1024){r.close();break}for(this.backwardFrames.push(r),this.backwardBytes+=a;this.backwardBytes>48*1024*1024&&this.backwardFrames.length>1;){let s=this.backwardFrames.shift();s&&(this.backwardBytes-=s.displayWidth*s.displayHeight*4,s.close())}}}finally{await this.closeIterator(i)}}onDestroy(){this.resetSinks()}async startIterator(e,t){if(!this.canvasSink)return;let i=Math.max(0,Number.isFinite(e)?e:0),r=this.iterator;if(this.iterator=null,await this.closeIterator(r),this.currentFetchId!==t||this.destroyed)return;this.iterator=this.canvasSink.canvases(i);let a=await this.iterator.next();if(this.currentFetchId!==t||this.destroyed)return;this.currentFrame=a.value??null;let s=await this.iterator.next();this.currentFetchId!==t||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=i)}async startIteratorHeadless(e,t){if(!this.videoSampleSink)return;let i=Math.max(0,Number.isFinite(e)?e:0),r=this.iterator;if(this.iterator=null,await this.closeIterator(r),this.currentFetchId!==t||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let a=Math.max(0,i-.1);this.iterator=this.videoSampleSink.samples(a),await this.fillHeadlessQueue(t),!(this.currentFetchId!==t||this.destroyed)&&(this.iteratorStartTimestamp=i)}async getFrame(e){if(await this.init(),this.destroyed||!this.input)return null;let t=Math.max(0,Number.isFinite(e)?e:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((i,r)=>{this.nextRequest={timestampSec:t,resolve:i,reject:r}})):this.executeDecode(t)}async executeDecode(e){this.isDecoding=!0;try{return await this.performDecode(e)}finally{if(this.isDecoding=!1,this.nextRequest){let t=this.nextRequest;this.nextRequest=null,this.executeDecode(t.timestampSec).then(t.resolve).catch(t.reject)}}}async performDecodeHeadless(e,t){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let d=await this.input.getPrimaryVideoTrack();if(!d)return null;this.videoSampleSink=new g(d)}let i=1e-4,r=1,a=.01,s=this.lastHeadlessTimestamp!==void 0&&e<this.lastHeadlessTimestamp-1e-4;this.lastHeadlessTimestamp=e;let o=this.cachedBackwardFrame(e);if(!o&&s&&(await this.fillBackwardFrames(e,t),o=this.cachedBackwardFrame(e)),o)return this.copyHeadlessSample(o,t);if((!this.iterator||e<this.iteratorStartTimestamp-i||this.headlessQueue.length>0&&e<this.headlessQueue[0].timestamp-a||this.headlessQueue.length>0&&e-this.headlessQueue[0].timestamp>r)&&(await this.startIteratorHeadless(e,t),this.currentFetchId!==t||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(t),this.currentFetchId!==t||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=e+i){this.headlessQueue.shift()?.close();continue}break}let n=this.headlessQueue[0];return n?this.copyHeadlessSample(n,t):null}async performDecodeInternal(e){this.currentFetchId++;let t=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(e,t);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let o=await this.input.getPrimaryVideoTrack();if(!o)return null;this.canvasSink=new f(o,{poolSize:3,alpha:!0})}let i=1e-4;if((!this.iterator||e<this.iteratorStartTimestamp-i||this.currentFrame&&e<this.currentFrame.timestamp-.01||this.currentFrame&&e-this.currentFrame.timestamp>1)&&(await this.startIterator(e,t),this.currentFetchId!==t||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=e+i;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let o=await this.iterator.next();if(this.currentFetchId!==t||this.destroyed||!this.input)return null;this.nextFrame=o.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(e){let t=Math.max(0,Number.isFinite(e)?e:0);try{return await this.performDecodeInternal(t)}catch(i){let r=i;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let a=await this.input.getPrimaryVideoTrack();if(a&&!this.destroyed)return this.canvasSink=new f(a,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(t)}}catch{}throw i}}},v=class extends p{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(e,t){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(e),this.iteratorStartTimestamp=e)}async*getBuffers(e){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let r=await this.input.getPrimaryAudioTrack();if(!r)return;this.audioSink=new b(r)}(!this.iterator||Math.abs(e-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(e,this.currentFetchId));let i=this.currentFetchId;if(!this.iterator)return;for await(let r of this.iterator){if(this.currentFetchId!==i||this.destroyed||!this.input)break;this.iteratorStartTimestamp=r.timestamp+r.duration,yield r}}catch(t){let i=t;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return;throw t}finally{let t=this.currentFetchId;this.currentFetchId===t&&(this.iterator=null)}}},w=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;ticks=0;lastTick=new Map;touchKey(e){this.lastAccessed.set(e,Date.now()),this.lastTick.set(e,this.ticks)}dropKey(e){let t=this.videoDecoders.get(e);if(t){try{t.destroy()}catch{}this.videoDecoders.delete(e)}let i=this.audioDecoders.get(e);if(i){try{i.destroy()}catch{}this.audioDecoders.delete(e)}this.lastAccessed.delete(e),this.lastTick.delete(e)}tick(e=120){this.ticks++;for(let[t,i]of this.lastTick)this.ticks-i>e&&this.dropKey(t)}destroy(){for(let e of this.videoDecoders.values())try{e.destroy()}catch{}this.videoDecoders.clear();for(let e of this.audioDecoders.values())try{e.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear(),this.lastTick.clear()}get size(){return this.videoDecoders.size+this.audioDecoders.size}prune(e=3e5){let t=Date.now();for(let[i,r]of this.lastAccessed.entries())t-r>e&&this.dropKey(i)}getVideo(e,t,i){let r=`${e}-${t}-${i??"default"}`,a=this.videoDecoders.get(r);return a||(a=new y(e,t),this.videoDecoders.set(r,a)),this.touchKey(r),this.prune(),a}getAudio(e,t){let i=`${e}-${t??"default"}`,r=this.audioDecoders.get(i);return r||(r=new v(e,!1),this.audioDecoders.set(i,r)),this.touchKey(i),this.prune(),r}clearNode(e){let t=[...this.videoDecoders.keys(),...this.audioDecoders.keys()];for(let i of t)i.includes(e)&&this.dropKey(i)}},j=new w;h();async function V(l,e){if(typeof window<"u"&&typeof FontFace<"u"){let t=typeof e=="string"?e:"its registered bytes";try{let r=await new FontFace(l,typeof e=="string"?`url(${e})`:e).load();document.fonts.add(r),await document.fonts.ready}catch(i){console.warn(`[preloadFont] Failed to load font "${l}" from ${t}:`,i)}}else typeof e=="string"&&await S(l,e)}h();var T=!1;async function z(l,e,t=(i,r)=>console.warn(`[framefields] ${r}`,i)){let i=new Set,r=new Map;(function s(o){let n=o.operation;if(n){let d=n.op==="text"||n.kind==="text"||n.op==="caption"||n.kind==="caption"||typeof n.text=="string",c=n.fontFamily||(d?"Inter":"");if(c&&i.add(c),d&&typeof n.text=="string"){let k=n.fontSize??48;for(let B of D(n.text))r.set(`${B}-${k}`,k)}}for(let d of o.children??[])s(d)})(l);let a=[];for(let s of i){let o=x(s),n=I(s),d=typeof o=="string"?o:"its registered bytes";a.push(V(s,o).catch(c=>t(c,`font "${s}" from ${d}`))),e&&a.push(u.preloadSlugFont(e,s,n).catch(c=>t(c,`Slug font "${s}" from ${n}`)))}if(e&&r.size>0){!u.hasEmojiFont()&&!T&&(T=!0,console.warn("[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Run `npx framefields fonts add emoji` and call the generated `registerFonts()`, or register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path). `comp.lint()` names the layers (missing_emoji_font)."));for(let[s,o]of r){let n=s.slice(0,s.lastIndexOf("-"));a.push(u.preloadEmoji(e,n,o).catch(d=>{u.hasEmojiFont()&&t(d,`emoji "${n}"`)}))}}await Promise.all(a)}export{j as a,V as b,z as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as f}from"./chunk-Y4NIR77Z.mjs";f();f();function N(e,r=[{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]){let t=[],o=[];for(let n=0;n<4;n++){let i=e[n]?.x??0,a=e[n]?.y??0,p=r[n]?.x??0,c=r[n]?.y??0;t.push([i,a,1,0,0,0,-i*p,-a*p]),o.push(p),t.push([0,0,0,i,a,1,-i*c,-a*c]),o.push(c)}let s=8;for(let n=0;n<s;n++){let i=n,a=Math.abs(t[n][n]);for(let d=n+1;d<s;d++)Math.abs(t[d][n])>a&&(a=Math.abs(t[d][n]),i=d);let p=t[n];t[n]=t[i],t[i]=p;let c=o[n];o[n]=o[i],o[i]=c;let l=t[n][n];Math.abs(l)<1e-12&&(t[n][n]=l<0?-1e-12:1e-12);for(let d=n+1;d<s;d++){let m=t[d][n]/t[n][n];for(let b=n;b<s;b++)t[d][b]-=m*t[n][b];o[d]-=m*o[n]}}let u=new Array(8).fill(0);for(let n=s-1;n>=0;n--){let i=o[n];for(let a=n+1;a<s;a++)i-=t[n][a]*u[a];u[n]=i/t[n][n]}return[u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],1]}function I(e,r,t,o){if(e==null)return r;if(typeof e=="number")return Number.isFinite(e)?e:r;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let u=e.get({frame:t,fps:o,time:o>0?t/o:0,duration:0,durationMs:0,progress:0,deltaTime:o>0?1/o:0}),n=Number(u);if(Number.isFinite(n))return n}catch{}if("value"in e){let u=Number(e.value);if(Number.isFinite(u))return u}}if(typeof e=="function")try{let u=Number(e({frame:t,fps:o,time:o>0?t/o:0}));if(Number.isFinite(u))return u}catch{}let s=Number(e);return Number.isFinite(s)?s:r}function k(e,r,t){if(e==null)return{value:e};if(typeof e=="function")return{value:e(r,t)};if(typeof e!="object")return{value:e};let o=e;if(typeof o.get=="function")return{value:o.get({frame:r,fps:t})};if("value"in o){let s=e;return{value:s.value,gpuTextureView:s.gpuBinding?.textureView}}return{value:e}}function V(e,r,t,o,s){let u=i=>Math.max(o,Math.min(s,i)),n=r?e?.[r]:void 0;if(n?.connectionValid){let i=n.outputItem;if(i?.type==="Number"){let a=typeof i.data=="number"?i.data:i.data?.value??t;return{val:u(a),hasStaticSig:!1,sd:null,handleId:r}}if(i?.type==="Signal"&&i.data)return{val:t,hasStaticSig:!0,sd:i.data,handleId:r}}return{val:u(t),hasStaticSig:!1,sd:null,handleId:r}}function E(e,r,t,o=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY){let u=m=>Math.max(o,Math.min(s,m)),n=e,i=n[`${r}HandleId`],a=i?e.inputs?.[i]:null,p=a?.connectionValid?a.outputItem?.type:void 0,c=p==="Signal"||p==="Numeric",l=c&&a?.outputItem?.data?a.outputItem.data:null,d=t;if(c)l&&(d=u(Number(l.offset??t)));else{let m=p==="Number"?a?.outputItem?.data:n[r];d=u(Number(m??t))}return{hasSignal:c,sd:l,value:d}}function A(e,r){let t=e[r];if(typeof t!="string"||!t)return!1;let o=e.inputs?.[t];return!!(o?.connectionValid&&o.outputItem&&(o.outputItem.type==="Signal"||o.outputItem.type==="Number"))}function D(e){return Object.freeze(e)}var g=Symbol.for("framefields.webgpuRegistry"),P=class{renderers=new Map;register(r,t){this.renderers.set(r,t)}get(r){return this.renderers.get(r)}has(r){return this.renderers.has(r)}},h=(()=>{let e=globalThis;return e[g]||(e[g]=new P),e[g]})();function T(e,r){h.register(e,r)}function W(e){let r=e.op;return typeof r!="string"?null:h.get(r)?.reach?.(e)??null}function F(e){let r=e.op;return typeof r!="string"?1:h.get(r)?.maxPixelScale?.(e)??1}T("TextureSource",e=>{let r=e.props.virtualMedia.operation;r?.sourceTexture&&e.ctx.renderer.drawTexture(e.pass,r.sourceTexture,{x:0,y:0,width:e.targetWidth,height:e.targetHeight},{opacity:Number(r.opacity??1)})});var y=class{processors=new Map;register(r,t){this.processors.set(r,t)}get(r){return this.processors.get(r)||null}},x=Symbol.for("framefields.audioRegistry"),C=(()=>{let e=globalThis;return e[x]||(e[x]=new y),e[x]})();export{N as a,I as b,k as c,V as d,E as e,A as f,D as g,h,T as i,W as j,F as k,C as l};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as l,g as p}from"./chunk-Y4NIR77Z.mjs";p();var u=null,n=null,c=null,d=/llvmpipe|lavapipe|softpipe|swiftshader|\bwarp\b|software/i;function g(t){let r=t.info??{},e={vendor:String(r.vendor??""),architecture:String(r.architecture??""),device:String(r.device??""),description:String(r.description??"")},o=r.isFallbackAdapter===!0||t.isFallbackAdapter===!0||d.test(`${e.vendor} ${e.architecture} ${e.device} ${e.description}`);return{...e,software:o}}async function P(){if(await b(),!c)throw new Error("WebGPU adapter unknown");return c}async function m(t){if(typeof l<"u"&&l.versions?.node&&!globalThis.navigator?.gpu){let{create:a,globals:s}=await import("./webgpu-OC6ZJ2EV.mjs");Object.assign(globalThis,s);let f=[];typeof globalThis.navigator>"u"?globalThis.navigator={gpu:a(f)}:Object.defineProperty(globalThis.navigator,"gpu",{value:a(f),configurable:!0,writable:!0})}let r=globalThis.navigator.gpu,e=await r.requestAdapter({powerPreference:"high-performance",...t})??(t?.forceFallbackAdapter?null:await r.requestAdapter({...t,forceFallbackAdapter:!0}));if(!e)throw new Error("WebGPU not available");c=g(e);let o=[];e.features.has("float32-filterable")&&o.push("float32-filterable");let i={};e.limits&&Number.isInteger(e.limits.maxTextureDimension2D)&&(i.maxTextureDimension2D=Math.min(8192,e.limits.maxTextureDimension2D)),e.limits&&Number.isInteger(e.limits.maxStorageBuffersPerShaderStage)&&(i.maxStorageBuffersPerShaderStage=Math.min(16,e.limits.maxStorageBuffersPerShaderStage)),e.limits&&Number.isInteger(e.limits.maxStorageBuffersPerPipelineLayout)&&(i.maxStorageBuffersPerPipelineLayout=Math.min(16,e.limits.maxStorageBuffersPerPipelineLayout));for(let a of["maxStorageBufferBindingSize","maxBufferSize"]){let s=e.limits?.[a];Number.isFinite(s)&&(i[a]=s)}return e.requestDevice({requiredFeatures:o,requiredLimits:i})}function v(){u=null,n=null}var b=async t=>u||n||(n=(async()=>{let r=await m(t);return u=r,r.lost.then(e=>{e.reason!=="destroyed"&&v()}),r})(),n);export{P as a,b};
|