framefields 2.4.2 → 2.5.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/README.md +26 -1
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-DJeVoE8b.mjs → audio-BluXgSeG.mjs} +1 -1
- package/dist/{audio-DJeVoE8b.mjs.map → audio-BluXgSeG.mjs.map} +1 -1
- package/dist/{audio-DHuEMOtQ.d.mts → audio-C1A4N3Wh.d.mts} +3 -3
- package/dist/{audio-DHuEMOtQ.d.mts.map → audio-C1A4N3Wh.d.mts.map} +1 -1
- package/dist/{audio-Bb31xJuX.mjs → audio-CMHpfOoS.mjs} +4 -4
- package/dist/{audio-Bb31xJuX.mjs.map → audio-CMHpfOoS.mjs.map} +1 -1
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +221 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/components/index.d.mts +12 -0
- package/dist/components/index.mjs +49 -0
- package/dist/{dist-CspOG4V1.mjs → dist-BBUrGwqd.mjs} +24 -3
- package/dist/{dist-CspOG4V1.mjs.map → dist-BBUrGwqd.mjs.map} +1 -1
- package/dist/{dist-SB9qfAko.mjs → dist-CQZ5_60A.mjs} +2 -2
- package/dist/{dist-SB9qfAko.mjs.map → dist-CQZ5_60A.mjs.map} +1 -1
- package/dist/{dist-0QGroRYZ.mjs → dist-C_SMBmHr.mjs} +1 -1
- package/dist/{dist-0QGroRYZ.mjs.map → dist-C_SMBmHr.mjs.map} +1 -1
- package/dist/{dist-ClyC_d66.mjs → dist-DFeF-ygz.mjs} +117 -40
- package/dist/dist-DFeF-ygz.mjs.map +1 -0
- package/dist/{dist-CxGfrigI.mjs → dist-QMVy31gR.mjs} +23 -4
- package/dist/dist-QMVy31gR.mjs.map +1 -0
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-BOk_2kzM.mjs → effects-mRe-rLte.mjs} +71 -3
- package/dist/effects-mRe-rLte.mjs.map +1 -0
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-CsMDfqv9.mjs → fonts-wI3CUYHM.mjs} +2 -2
- package/dist/{fonts-CsMDfqv9.mjs.map → fonts-wI3CUYHM.mjs.map} +1 -1
- package/dist/{gpu-DtT5I4ME.mjs → gpu-I5fdrflL.mjs} +2 -2
- package/dist/{gpu-DtT5I4ME.mjs.map → gpu-I5fdrflL.mjs.map} +1 -1
- package/dist/{index-BTPLbjt4.d.mts → index-B-KVpJMb.d.mts} +2 -2
- package/dist/{index-BTPLbjt4.d.mts.map → index-B-KVpJMb.d.mts.map} +1 -1
- package/dist/index-BJe_GEyj.d.mts +5968 -0
- package/dist/index-BJe_GEyj.d.mts.map +1 -0
- package/dist/{index-D-l-yCv6.d.mts → index-BpdVOlsV.d.mts} +3 -3
- package/dist/{index-D-l-yCv6.d.mts.map → index-BpdVOlsV.d.mts.map} +1 -1
- package/dist/index-C2f4Hm-p.d.mts +89 -0
- package/dist/index-C2f4Hm-p.d.mts.map +1 -0
- package/dist/{index-B-55dXDu.d.mts → index-CalU-mpZ.d.mts} +1 -1
- package/dist/{index-B-55dXDu.d.mts.map → index-CalU-mpZ.d.mts.map} +1 -1
- package/dist/{index-B2Xesdug.d.mts → index-D6-lH1Mx.d.mts} +477 -327
- package/dist/index-D6-lH1Mx.d.mts.map +1 -0
- package/dist/{index-B3-gwjK6.d.mts → index-DNKM3to5.d.mts} +3 -3
- package/dist/{index-B3-gwjK6.d.mts.map → index-DNKM3to5.d.mts.map} +1 -1
- package/dist/{index-DujpgUUq.d.mts → index-fymoeGNW.d.mts} +245 -152
- package/dist/index-fymoeGNW.d.mts.map +1 -0
- package/dist/index.d.mts +13 -4593
- package/dist/index.mjs +59 -6654
- package/dist/preview/index.d.mts +4 -90
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-DyGw2b3_.mjs → preview--DEgW67P.mjs} +3 -3
- package/dist/{preview-DyGw2b3_.mjs.map → preview--DEgW67P.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-FHKBALVI.mjs → chunk-24H3QVYB.mjs} +1 -1
- package/dist/preview-engine/{chunk-SWXVITCQ.mjs → chunk-25T3M6MI.mjs} +1 -1
- package/dist/preview-engine/chunk-2AV7HRRL.mjs +174 -0
- package/dist/preview-engine/{chunk-HNNIVJ2K.mjs → chunk-4EOS6ZWW.mjs} +1 -1
- package/dist/preview-engine/{chunk-67SSYK7D.mjs → chunk-4UI3S3UG.mjs} +1 -1
- package/dist/preview-engine/{chunk-LLDIDE5Q.mjs → chunk-5N3GW3NE.mjs} +1 -1
- package/dist/preview-engine/{chunk-KAQUNOVB.mjs → chunk-5P764TTF.mjs} +1 -1
- package/dist/preview-engine/{chunk-WJJIISQJ.mjs → chunk-7BUKVFWB.mjs} +1 -1
- package/dist/preview-engine/{chunk-HUKAC5MJ.mjs → chunk-7EHUT5A3.mjs} +1 -1
- package/dist/preview-engine/{chunk-34ACEGNW.mjs → chunk-7HTTYP6T.mjs} +1 -1
- package/dist/preview-engine/{chunk-6K7US2WD.mjs → chunk-7JYMNGNK.mjs} +1 -1
- package/dist/preview-engine/{chunk-NRAZV5OA.mjs → chunk-A5OUYV3I.mjs} +1 -1
- package/dist/preview-engine/{chunk-VONDRBA2.mjs → chunk-AJLPRIXB.mjs} +1 -1
- package/dist/preview-engine/{chunk-HDGFNBYK.mjs → chunk-ANZDLSSM.mjs} +1 -1
- package/dist/preview-engine/{chunk-FFMPC7QA.mjs → chunk-C2TA65CH.mjs} +1 -1
- package/dist/preview-engine/{chunk-7QJUC6YY.mjs → chunk-CBQOJAIS.mjs} +14 -14
- package/dist/preview-engine/{chunk-GMGGDADT.mjs → chunk-CEIOI4HO.mjs} +1 -1
- package/dist/preview-engine/{chunk-RHRMEBNK.mjs → chunk-DKXKOUQR.mjs} +1 -1
- package/dist/preview-engine/chunk-DPIED3EG.mjs +1 -0
- package/dist/preview-engine/{chunk-QJZKIY4H.mjs → chunk-ENS4KUJV.mjs} +1 -1
- package/dist/preview-engine/{chunk-Z6UKUHPU.mjs → chunk-HXHP3UHZ.mjs} +1 -1
- package/dist/preview-engine/chunk-I6E3AKLS.mjs +1 -0
- package/dist/preview-engine/{chunk-2DDBSI75.mjs → chunk-ILKBHDFB.mjs} +1 -1
- package/dist/preview-engine/{chunk-O6NRIXS5.mjs → chunk-JMOJKT5W.mjs} +1 -1
- package/dist/preview-engine/{chunk-PZF6T7DM.mjs → chunk-KKBJ7X3T.mjs} +1 -1
- package/dist/preview-engine/{chunk-NNQUIVTE.mjs → chunk-KRVXRP5F.mjs} +1 -1
- package/dist/preview-engine/{chunk-FLPSWDX4.mjs → chunk-MJN3LOZ7.mjs} +1 -1
- package/dist/preview-engine/{chunk-GQLZXCW3.mjs → chunk-MLW6Y4RN.mjs} +1 -1
- package/dist/preview-engine/{chunk-KT35IPCF.mjs → chunk-MRDJNDYV.mjs} +1 -1
- package/dist/preview-engine/{chunk-RKVB47IA.mjs → chunk-MZAAJXUL.mjs} +1 -1
- package/dist/preview-engine/{chunk-FFGBUS76.mjs → chunk-NB55FW7D.mjs} +1 -1
- package/dist/preview-engine/{chunk-JX22B2FS.mjs → chunk-NG5WSR3A.mjs} +1 -1
- package/dist/preview-engine/{chunk-XOEEGC4Z.mjs → chunk-NVTPJUNG.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZKPQGQE3.mjs → chunk-NXKXOSE6.mjs} +1 -1
- package/dist/preview-engine/{chunk-WCZ5DKZ4.mjs → chunk-NYEDWUFS.mjs} +1 -1
- package/dist/preview-engine/{chunk-WACWOKEP.mjs → chunk-O6LGKH4S.mjs} +1 -1
- package/dist/preview-engine/chunk-OLLY3Q7M.mjs +1 -0
- package/dist/preview-engine/{chunk-A5OVKZ52.mjs → chunk-OOJAQBS3.mjs} +1 -1
- package/dist/preview-engine/{chunk-6AEU4DC7.mjs → chunk-PJN7DD55.mjs} +3 -3
- package/dist/preview-engine/{chunk-R26SY5D4.mjs → chunk-QCUGWPYP.mjs} +1 -1
- package/dist/preview-engine/{chunk-LK3T65RB.mjs → chunk-QQJPPGH5.mjs} +1 -1
- package/dist/preview-engine/{chunk-3ACCCPBN.mjs → chunk-QVUT3QNF.mjs} +1 -1
- package/dist/preview-engine/chunk-RNFYEZLL.mjs +1 -0
- package/dist/preview-engine/{chunk-GNG4YH2W.mjs → chunk-TA5OBYRR.mjs} +1 -1
- package/dist/preview-engine/{chunk-NQZKBFC6.mjs → chunk-V6DAD4S4.mjs} +14 -14
- package/dist/preview-engine/{chunk-5RQHNB6Y.mjs → chunk-VRNN6H6Y.mjs} +1 -1
- package/dist/preview-engine/{chunk-C6Z7H2RZ.mjs → chunk-VTE3IISK.mjs} +1 -1
- package/dist/preview-engine/{chunk-RDP6QROU.mjs → chunk-VZGDX7II.mjs} +1 -1
- package/dist/preview-engine/{chunk-DOCSX45C.mjs → chunk-XJ4CQIZZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-7LVOSEGN.mjs → chunk-XYRBFLFF.mjs} +1 -1
- package/dist/preview-engine/{chunk-LIQA5OOU.mjs → chunk-YMQMPBTL.mjs} +1 -1
- package/dist/preview-engine/{chunk-G4J662EL.mjs → chunk-Z4ZO4RVT.mjs} +1 -1
- package/dist/preview-engine/{chunk-2GIWWDE4.mjs → chunk-ZFURUTVW.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +30 -28
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/renderers-2CBJYNOC.mjs +1 -0
- package/dist/preview-engine/renderers-37CN7O4S.mjs +1 -0
- package/dist/preview-engine/renderers-3AZ5PMGC.mjs +1 -0
- package/dist/preview-engine/renderers-3UGG2IMP.mjs +1 -0
- package/dist/preview-engine/renderers-3VXNHICC.mjs +1 -0
- package/dist/preview-engine/{renderers-BDWVXYTW.mjs → renderers-3ZYXHUSW.mjs} +1 -1
- package/dist/preview-engine/renderers-4FONYSBA.mjs +1 -0
- package/dist/preview-engine/renderers-54I5SFXR.mjs +1 -0
- package/dist/preview-engine/renderers-5LXALKB4.mjs +1 -0
- package/dist/preview-engine/renderers-5TICPV2K.mjs +1 -0
- package/dist/preview-engine/renderers-5YS5WHAV.mjs +1 -0
- package/dist/preview-engine/renderers-6UTRYW7Z.mjs +1 -0
- package/dist/preview-engine/{renderers-R4WMM6IX.mjs → renderers-6ZCFR7BL.mjs} +1 -1
- package/dist/preview-engine/renderers-AYEWAW7F.mjs +1 -0
- package/dist/preview-engine/{renderers-75TL7RLS.mjs → renderers-BOT4H6KJ.mjs} +1 -1
- package/dist/preview-engine/{renderers-NJLGPPX7.mjs → renderers-C44CEIYB.mjs} +1 -1
- package/dist/preview-engine/{renderers-UDOBX433.mjs → renderers-C4G7X7LD.mjs} +1 -1
- package/dist/preview-engine/renderers-CLCPP3TZ.mjs +1 -0
- package/dist/preview-engine/{renderers-RKZGYWDG.mjs → renderers-DBRC3SQE.mjs} +1 -1
- package/dist/preview-engine/{renderers-HZHEGONW.mjs → renderers-DSICQMRF.mjs} +1 -1
- package/dist/preview-engine/renderers-DTZ2AER5.mjs +1 -0
- package/dist/preview-engine/renderers-DUF2CTX6.mjs +1 -0
- package/dist/preview-engine/{renderers-AZYJFJLO.mjs → renderers-EOIMH7UE.mjs} +1 -1
- package/dist/preview-engine/renderers-EOMMSENQ.mjs +1 -0
- package/dist/preview-engine/{renderers-CK3ZL3GM.mjs → renderers-GSRKNT75.mjs} +1 -1
- package/dist/preview-engine/renderers-GUJTPO37.mjs +1 -0
- package/dist/preview-engine/{renderers-TCNPEANL.mjs → renderers-HE42AT5T.mjs} +1 -1
- package/dist/preview-engine/{renderers-GUPEJK3O.mjs → renderers-JM7JEVBN.mjs} +1 -1
- package/dist/preview-engine/{renderers-FKH5S64C.mjs → renderers-JRU2GNPE.mjs} +1 -1
- package/dist/preview-engine/{renderers-IHRFEZNP.mjs → renderers-K6J77OI5.mjs} +1 -1
- package/dist/preview-engine/{renderers-IJDQJEE5.mjs → renderers-L7EITUCD.mjs} +1 -1
- package/dist/preview-engine/renderers-LGUHDWWB.mjs +1 -0
- package/dist/preview-engine/renderers-LGXD24IJ.mjs +1 -0
- package/dist/preview-engine/renderers-MCTBJEL7.mjs +1 -0
- package/dist/preview-engine/renderers-OBXNUQMP.mjs +1 -0
- package/dist/preview-engine/renderers-OZGEXW2X.mjs +1 -0
- package/dist/preview-engine/{renderers-7CPYTCNW.mjs → renderers-PJGFJGJS.mjs} +1 -1
- package/dist/preview-engine/{renderers-SW7FIEKO.mjs → renderers-PPGOYOID.mjs} +1 -1
- package/dist/preview-engine/renderers-PUJRHBUW.mjs +1 -0
- package/dist/preview-engine/renderers-PVUROEGR.mjs +1 -0
- package/dist/preview-engine/renderers-QBVVTQV6.mjs +1 -0
- package/dist/preview-engine/{renderers-K7B5PQBT.mjs → renderers-QPHOG7QR.mjs} +1 -1
- package/dist/preview-engine/{renderers-WR6MKT5S.mjs → renderers-RV62K5JC.mjs} +1 -1
- package/dist/preview-engine/{renderers-UMPOVFRA.mjs → renderers-SBX64ERA.mjs} +1 -1
- package/dist/preview-engine/renderers-SCJTTOEJ.mjs +1 -0
- package/dist/preview-engine/{renderers-FM6A5YR4.mjs → renderers-SD35PBEM.mjs} +1 -1
- package/dist/preview-engine/{renderers-LVLVJHOL.mjs → renderers-SIHL5GLI.mjs} +1 -1
- package/dist/preview-engine/renderers-SNUVYUDE.mjs +1 -0
- package/dist/preview-engine/renderers-SPW4SWZ2.mjs +228 -0
- package/dist/preview-engine/renderers-SRKCF3LD.mjs +1 -0
- package/dist/preview-engine/{renderers-GAIUTII6.mjs → renderers-T3S7QVM4.mjs} +1 -1
- package/dist/preview-engine/renderers-TBP2EKJ4.mjs +1 -0
- package/dist/preview-engine/renderers-UN6YLFHW.mjs +1 -0
- package/dist/preview-engine/renderers-UTWKTBZI.mjs +1 -0
- package/dist/preview-engine/{renderers-6JZ4HYIU.mjs → renderers-V5MJJH33.mjs} +1 -1
- package/dist/preview-engine/{renderers-XKHNBARD.mjs → renderers-V67L3MCY.mjs} +1 -1
- package/dist/preview-engine/{renderers-FADYGSLK.mjs → renderers-VYK2BJID.mjs} +1 -1
- package/dist/preview-engine/renderers-W6762MNW.mjs +1 -0
- package/dist/preview-engine/renderers-W6ZTVA2I.mjs +1 -0
- package/dist/preview-engine/renderers-WDV7ENJA.mjs +1 -0
- package/dist/preview-engine/{renderers-MBSOKWKB.mjs → renderers-WPBTAU2E.mjs} +1 -1
- package/dist/preview-engine/renderers-XP7YFWBV.mjs +1 -0
- package/dist/preview-engine/renderers-XVUOO7B6.mjs +1 -0
- package/dist/preview-engine/renderers-YPFM5UJO.mjs +1 -0
- package/dist/preview-engine/renderers-YW3LBALW.mjs +1 -0
- package/dist/preview-engine/{renderers-4AJWVIJG.mjs → renderers-ZAPIBQZC.mjs} +1 -1
- package/dist/preview-engine/renderers-ZRR4TUVQ.mjs +1 -0
- package/dist/preview-engine/{renderers-TY7DVI7E.mjs → renderers-ZVKXIQ3E.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-C2cJayA1.mjs → program-CEHCeDpG.mjs} +204 -61
- package/dist/program-CEHCeDpG.mjs.map +1 -0
- package/dist/registry/annotate.json +30 -0
- package/dist/registry/app-frame.json +38 -0
- package/dist/registry/backdrop.json +37 -0
- package/dist/registry/before-after.json +33 -0
- package/dist/registry/callout.json +30 -0
- package/dist/registry/captions.json +37 -0
- package/dist/registry/card-stack.json +30 -0
- package/dist/registry/chat-thread.json +32 -0
- package/dist/registry/code-block.json +45 -0
- package/dist/registry/confetti.json +29 -0
- package/dist/registry/counter.json +36 -0
- package/dist/registry/device-frame.json +36 -0
- package/dist/registry/focus-zoom.json +32 -0
- package/dist/registry/index.json +408 -0
- package/dist/registry/logo-reveal.json +37 -0
- package/dist/registry/lower-third.json +34 -0
- package/dist/registry/meter.json +35 -0
- package/dist/registry/mouse-pointer.json +44 -0
- package/dist/registry/selection.json +31 -0
- package/dist/registry/spotlight.json +28 -0
- package/dist/registry/terminal.json +40 -0
- package/dist/registry/text-reveal.json +39 -0
- package/dist/registry/title-card.json +34 -0
- package/dist/registry/toasts.json +28 -0
- package/dist/registry/touch-point.json +33 -0
- package/dist/registry/waveform.json +29 -0
- package/dist/registry/word-cycle.json +32 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-BMKFzfSQ.mjs → renderer--wMbTRFg.mjs} +4 -4
- package/dist/{renderer-BMKFzfSQ.mjs.map → renderer--wMbTRFg.mjs.map} +1 -1
- package/dist/{renderer-CDUxAtsk.mjs → renderer-3aLw-la1.mjs} +5 -5
- package/dist/{renderer-CDUxAtsk.mjs.map → renderer-3aLw-la1.mjs.map} +1 -1
- package/dist/renderer-7vCBWQVP.mjs +5 -0
- package/dist/{renderer-DILUmb-e.mjs → renderer-AkRxGnFU.mjs} +5 -5
- package/dist/{renderer-DILUmb-e.mjs.map → renderer-AkRxGnFU.mjs.map} +1 -1
- package/dist/renderer-B-XgGMCq.mjs +5 -0
- package/dist/renderer-B0yabPlf.mjs +5 -0
- package/dist/{renderer-CoWfz-9p.mjs → renderer-B1yPBJQc.mjs} +74 -74
- package/dist/{renderer-CoWfz-9p.mjs.map → renderer-B1yPBJQc.mjs.map} +1 -1
- package/dist/{renderer-BPixWnmY.mjs → renderer-B41jTHFs.mjs} +6 -6
- package/dist/{renderer-BPixWnmY.mjs.map → renderer-B41jTHFs.mjs.map} +1 -1
- package/dist/{renderer-BTd2sWDC.mjs → renderer-B5HG6Czb.mjs} +4 -4
- package/dist/{renderer-BTd2sWDC.mjs.map → renderer-B5HG6Czb.mjs.map} +1 -1
- package/dist/{renderer-gRMkQabv.mjs → renderer-B5oJN3A5.mjs} +5 -5
- package/dist/{renderer-gRMkQabv.mjs.map → renderer-B5oJN3A5.mjs.map} +1 -1
- package/dist/renderer-B9MYevrF.mjs +5 -0
- package/dist/renderer-BA2Ko4H1.mjs +3 -0
- package/dist/renderer-BCGosndi.mjs +5 -0
- package/dist/{renderer-CzRqzp8P.mjs → renderer-BEmDSqXg.mjs} +4 -4
- package/dist/{renderer-CzRqzp8P.mjs.map → renderer-BEmDSqXg.mjs.map} +1 -1
- package/dist/{renderer-Csss5GFQ.mjs → renderer-BG8jNTHr.mjs} +3 -3
- package/dist/{renderer-Csss5GFQ.mjs.map → renderer-BG8jNTHr.mjs.map} +1 -1
- package/dist/{renderer-BTigwMQp.mjs → renderer-BMnrBPh1.mjs} +4 -4
- package/dist/{renderer-BTigwMQp.mjs.map → renderer-BMnrBPh1.mjs.map} +1 -1
- package/dist/{renderer-yyUpCeWb.mjs → renderer-BORzpTQP.mjs} +3 -3
- package/dist/{renderer-yyUpCeWb.mjs.map → renderer-BORzpTQP.mjs.map} +1 -1
- package/dist/{renderer-RDCax5CK.mjs → renderer-BWtI3wKu.mjs} +4 -4
- package/dist/{renderer-RDCax5CK.mjs.map → renderer-BWtI3wKu.mjs.map} +1 -1
- package/dist/renderer-BXTHDEnd.mjs +5 -0
- package/dist/{renderer-G1pMJH5C.mjs → renderer-Baw30QRI.mjs} +3 -3
- package/dist/{renderer-G1pMJH5C.mjs.map → renderer-Baw30QRI.mjs.map} +1 -1
- package/dist/renderer-BbJoZ-zL.mjs +5 -0
- package/dist/{renderer-Dwu_zfdL.mjs → renderer-BbdgwkDB.mjs} +5 -5
- package/dist/{renderer-Dwu_zfdL.mjs.map → renderer-BbdgwkDB.mjs.map} +1 -1
- package/dist/{renderer-D6BXR7P4.mjs → renderer-BgOEqtZu.mjs} +3 -3
- package/dist/{renderer-D6BXR7P4.mjs.map → renderer-BgOEqtZu.mjs.map} +1 -1
- package/dist/{renderer-NizuhHsH.mjs → renderer-Bv0-WmP4.mjs} +4 -4
- package/dist/{renderer-NizuhHsH.mjs.map → renderer-Bv0-WmP4.mjs.map} +1 -1
- package/dist/renderer-BvcqncI2.mjs +3 -0
- package/dist/{renderer-BljMOvry.mjs → renderer-Bvhj-05p.mjs} +4 -4
- package/dist/{renderer-BljMOvry.mjs.map → renderer-Bvhj-05p.mjs.map} +1 -1
- package/dist/renderer-BxAZKOQy.mjs +5 -0
- package/dist/{renderer-92eLJg24.mjs → renderer-BxDhx8KM.mjs} +5 -5
- package/dist/{renderer-92eLJg24.mjs.map → renderer-BxDhx8KM.mjs.map} +1 -1
- package/dist/renderer-BxgkH__7.mjs +5 -0
- package/dist/{renderer-7y5Cj8rV.mjs → renderer-C1XZ0fQ-.mjs} +4 -4
- package/dist/{renderer-7y5Cj8rV.mjs.map → renderer-C1XZ0fQ-.mjs.map} +1 -1
- package/dist/{renderer-UcdqCarR.mjs → renderer-C8KEfda3.mjs} +4 -4
- package/dist/{renderer-UcdqCarR.mjs.map → renderer-C8KEfda3.mjs.map} +1 -1
- package/dist/{renderer-BSitV56h.mjs → renderer-C9r0-KY4.mjs} +10 -1
- package/dist/{renderer-BSitV56h.mjs.map → renderer-C9r0-KY4.mjs.map} +1 -1
- package/dist/{renderer-B3e4LSE6.mjs → renderer-CF25oNd3.mjs} +5 -5
- package/dist/{renderer-B3e4LSE6.mjs.map → renderer-CF25oNd3.mjs.map} +1 -1
- package/dist/renderer-CFEvikBH.mjs +5 -0
- package/dist/{renderer-DzSMeQBC.mjs → renderer-CHFUJyul.mjs} +5 -5
- package/dist/{renderer-DzSMeQBC.mjs.map → renderer-CHFUJyul.mjs.map} +1 -1
- package/dist/{renderer-ByCX4JYg.mjs → renderer-CKGOKBZi.mjs} +5 -5
- package/dist/{renderer-ByCX4JYg.mjs.map → renderer-CKGOKBZi.mjs.map} +1 -1
- package/dist/{renderer-If8JOkBi.mjs → renderer-CNs1vBUy.mjs} +4 -4
- package/dist/{renderer-If8JOkBi.mjs.map → renderer-CNs1vBUy.mjs.map} +1 -1
- package/dist/{index-B1XcyMm8.d.mts → renderer-COXKPofU.d.mts} +18 -18
- package/dist/renderer-COXKPofU.d.mts.map +1 -0
- package/dist/{renderer-CNuVJ4nG.mjs → renderer-COZCwiIr.mjs} +3 -3
- package/dist/{renderer-CNuVJ4nG.mjs.map → renderer-COZCwiIr.mjs.map} +1 -1
- package/dist/{renderer-V5uEyDFz.mjs → renderer-CPmoA87K.mjs} +4 -4
- package/dist/{renderer-V5uEyDFz.mjs.map → renderer-CPmoA87K.mjs.map} +1 -1
- package/dist/{renderer-Cw6Sagih.mjs → renderer-CYZb9uoO.mjs} +4 -4
- package/dist/{renderer-Cw6Sagih.mjs.map → renderer-CYZb9uoO.mjs.map} +1 -1
- package/dist/renderer-C_u9B-_7.mjs +5 -0
- package/dist/{renderer-BwpgDLYO.mjs → renderer-CaUJlGoB.mjs} +5 -5
- package/dist/{renderer-BwpgDLYO.mjs.map → renderer-CaUJlGoB.mjs.map} +1 -1
- package/dist/{renderer-DjwITRvg.mjs → renderer-CcS3Zntx.mjs} +3 -3
- package/dist/{renderer-BDCy8NgT.mjs → renderer-CddpdCL3.mjs} +4 -4
- package/dist/{renderer-BDCy8NgT.mjs.map → renderer-CddpdCL3.mjs.map} +1 -1
- package/dist/{renderer-BV48PFjX.mjs → renderer-Cg-d78nf.mjs} +192 -27
- package/dist/renderer-Cg-d78nf.mjs.map +1 -0
- package/dist/renderer-Cgx_qzGT.mjs +5 -0
- package/dist/{renderer-DScyMHpJ.mjs → renderer-ChNCtBMR.mjs} +3 -3
- package/dist/{renderer-DScyMHpJ.mjs.map → renderer-ChNCtBMR.mjs.map} +1 -1
- package/dist/renderer-ClOkY1Ny.mjs +5 -0
- package/dist/{renderer-DyyIXLQK.mjs → renderer-CrU0kbiB.mjs} +5 -5
- package/dist/{renderer-DyyIXLQK.mjs.map → renderer-CrU0kbiB.mjs.map} +1 -1
- package/dist/renderer-CtDub_ig.mjs +5 -0
- package/dist/{renderer-ut1GqW89.mjs → renderer-CyhSWLKq.mjs} +4 -4
- package/dist/{renderer-ut1GqW89.mjs.map → renderer-CyhSWLKq.mjs.map} +1 -1
- package/dist/{renderer-DaSxr9fM.mjs → renderer-D-bmSKv4.mjs} +5 -5
- package/dist/{renderer-DaSxr9fM.mjs.map → renderer-D-bmSKv4.mjs.map} +1 -1
- package/dist/renderer-D0duAhCo.mjs +5 -0
- package/dist/{renderer-BBAbZfBl.mjs → renderer-D2tdNoM6.mjs} +6 -6
- package/dist/{renderer-BBAbZfBl.mjs.map → renderer-D2tdNoM6.mjs.map} +1 -1
- package/dist/renderer-D4wM1dqg.mjs +6 -0
- package/dist/renderer-D5U3d09T.mjs +5 -0
- package/dist/{renderer-B1QREs7J.mjs → renderer-D86Y5YYi.mjs} +5 -5
- package/dist/{renderer-B1QREs7J.mjs.map → renderer-D86Y5YYi.mjs.map} +1 -1
- package/dist/{renderer-Cbsnj9vV.mjs → renderer-D8D7dKxq.mjs} +4 -4
- package/dist/{renderer-Cbsnj9vV.mjs.map → renderer-D8D7dKxq.mjs.map} +1 -1
- package/dist/{renderer-D0vom99O.mjs → renderer-DATAjI6x.mjs} +3 -3
- package/dist/{renderer-D0vom99O.mjs.map → renderer-DATAjI6x.mjs.map} +1 -1
- package/dist/{renderer-X0eKSD7v.mjs → renderer-DGhCIVI4.mjs} +5 -5
- package/dist/{renderer-X0eKSD7v.mjs.map → renderer-DGhCIVI4.mjs.map} +1 -1
- package/dist/{renderer-CJ4bxCld.mjs → renderer-DILjs1tz.mjs} +3 -3
- package/dist/{renderer-DjBCWxYy.mjs → renderer-DIyzKouj.mjs} +4 -4
- package/dist/{renderer-DjBCWxYy.mjs.map → renderer-DIyzKouj.mjs.map} +1 -1
- package/dist/{renderer-BwwZB2mt.mjs → renderer-DJ78Bgv7.mjs} +5 -5
- package/dist/{renderer-BwwZB2mt.mjs.map → renderer-DJ78Bgv7.mjs.map} +1 -1
- package/dist/renderer-DKqFxYfP.mjs +5 -0
- package/dist/renderer-DQZNI1zf.mjs +5 -0
- package/dist/{renderer-B4RpSd4A.mjs → renderer-DVnrUnkh.mjs} +3 -3
- package/dist/{renderer-B4RpSd4A.mjs.map → renderer-DVnrUnkh.mjs.map} +1 -1
- package/dist/{renderer-C1E5Rt5q.mjs → renderer-DWtquP0s.mjs} +4 -4
- package/dist/{renderer-C1E5Rt5q.mjs.map → renderer-DWtquP0s.mjs.map} +1 -1
- package/dist/renderer-DXITcVbS.mjs +5 -0
- package/dist/renderer-DY1QgdDC.mjs +5 -0
- package/dist/renderer-DYEz06xn.mjs +5 -0
- package/dist/renderer-D_2OrSMc.mjs +5 -0
- package/dist/renderer-DcCl9CO6.mjs +5 -0
- package/dist/{renderer-rXgqgAjw.mjs → renderer-DetTl6bQ.mjs} +3 -3
- package/dist/{renderer-rXgqgAjw.mjs.map → renderer-DetTl6bQ.mjs.map} +1 -1
- package/dist/{renderer-BjCHW9Jp.mjs → renderer-DfxwJVjW.mjs} +3 -3
- package/dist/{renderer-Cv4lchUP.mjs → renderer-DhQZiRL3.mjs} +5 -5
- package/dist/{renderer-Cv4lchUP.mjs.map → renderer-DhQZiRL3.mjs.map} +1 -1
- package/dist/{renderer-EZp_IIPK.mjs → renderer-Djn4BYtz.mjs} +5 -5
- package/dist/{renderer-EZp_IIPK.mjs.map → renderer-Djn4BYtz.mjs.map} +1 -1
- package/dist/{renderer-Bkrk0M0r.mjs → renderer-DkS6cblv.mjs} +5 -5
- package/dist/{renderer-Bkrk0M0r.mjs.map → renderer-DkS6cblv.mjs.map} +1 -1
- package/dist/{renderer-DKfwlE4e.mjs → renderer-DkeJefRk.mjs} +5 -5
- package/dist/{renderer-DKfwlE4e.mjs.map → renderer-DkeJefRk.mjs.map} +1 -1
- package/dist/renderer-DotZXhrh.mjs +5 -0
- package/dist/renderer-DpYDVTzs.mjs +5 -0
- package/dist/renderer-DpZxLVQF.mjs +5 -0
- package/dist/{renderer-Za4D9hej.mjs → renderer-DqabtpGN.mjs} +5 -5
- package/dist/{renderer-Za4D9hej.mjs.map → renderer-DqabtpGN.mjs.map} +1 -1
- package/dist/{renderer-DaqWTx7s.mjs → renderer-DqdD8gzX.mjs} +5 -5
- package/dist/{renderer-DaqWTx7s.mjs.map → renderer-DqdD8gzX.mjs.map} +1 -1
- package/dist/{renderer-DZJJHCtm.mjs → renderer-DstROEvX.mjs} +4 -4
- package/dist/{renderer-DZJJHCtm.mjs.map → renderer-DstROEvX.mjs.map} +1 -1
- package/dist/{renderer-BjvNEbML.mjs → renderer-DuawUm8D.mjs} +3 -3
- package/dist/{renderer-BjvNEbML.mjs.map → renderer-DuawUm8D.mjs.map} +1 -1
- package/dist/{renderer-CDOobs18.mjs → renderer-DvIWhLnY.mjs} +5 -5
- package/dist/{renderer-CDOobs18.mjs.map → renderer-DvIWhLnY.mjs.map} +1 -1
- package/dist/renderer-DvJbouz0.mjs +5 -0
- package/dist/{renderer-apeDrNXM.mjs → renderer-Dw2ZFwDT.mjs} +5 -5
- package/dist/{renderer-apeDrNXM.mjs.map → renderer-Dw2ZFwDT.mjs.map} +1 -1
- package/dist/{renderer-CxqPeATd.d.mts → renderer-Dx28wTi1.d.mts} +2 -2
- package/dist/{renderer-CxqPeATd.d.mts.map → renderer-Dx28wTi1.d.mts.map} +1 -1
- package/dist/{renderer-CcoUNzlQ.mjs → renderer-DxLkZGUK.mjs} +4 -4
- package/dist/{renderer-CcoUNzlQ.mjs.map → renderer-DxLkZGUK.mjs.map} +1 -1
- package/dist/{renderer-CeiCJCg4.mjs → renderer-GY7D1oAn.mjs} +4 -4
- package/dist/{renderer-CeiCJCg4.mjs.map → renderer-GY7D1oAn.mjs.map} +1 -1
- package/dist/{renderer-D2-V9nQq.mjs → renderer-JaSEubRQ.mjs} +4 -4
- package/dist/{renderer-D2-V9nQq.mjs.map → renderer-JaSEubRQ.mjs.map} +1 -1
- package/dist/{renderer-CqtIbe5n.mjs → renderer-MrvH4L7b.mjs} +4 -4
- package/dist/{renderer-CqtIbe5n.mjs.map → renderer-MrvH4L7b.mjs.map} +1 -1
- package/dist/{renderer-DO5r7ZV-.mjs → renderer-PNIgmWft.mjs} +2 -2
- package/dist/{renderer-DO5r7ZV-.mjs.map → renderer-PNIgmWft.mjs.map} +1 -1
- package/dist/renderer-S305xm67.mjs +5 -0
- package/dist/renderer-TgUloP-y.mjs +5 -0
- package/dist/{renderer-DFJQ6v0F.mjs → renderer-VcPoZAM2.mjs} +3 -3
- package/dist/{renderer-DFJQ6v0F.mjs.map → renderer-VcPoZAM2.mjs.map} +1 -1
- package/dist/{renderer-DcBGYN3V.mjs → renderer-ZGJWn-_L.mjs} +4 -4
- package/dist/{renderer-DcBGYN3V.mjs.map → renderer-ZGJWn-_L.mjs.map} +1 -1
- package/dist/{renderer-DTw-W0Yz.mjs → renderer-aXwxbXcE.mjs} +5 -5
- package/dist/{renderer-DTw-W0Yz.mjs.map → renderer-aXwxbXcE.mjs.map} +1 -1
- package/dist/renderer-gZ5SMvbU.mjs +5 -0
- package/dist/{renderer-CCGzT6bX.mjs → renderer-gniIzAsk.mjs} +3 -3
- package/dist/renderer-kEpx7pUy.mjs +5 -0
- package/dist/{renderer-BkWd4-YO.mjs → renderer-mSlww_MA.mjs} +4 -4
- package/dist/{renderer-BkWd4-YO.mjs.map → renderer-mSlww_MA.mjs.map} +1 -1
- package/dist/{renderer-B0gPTXhe.mjs → renderer-mWfgWQy_.mjs} +5 -5
- package/dist/{renderer-B0gPTXhe.mjs.map → renderer-mWfgWQy_.mjs.map} +1 -1
- package/dist/{renderer-BajIOuZH.mjs → renderer-nLPfvY3-.mjs} +2 -2
- package/dist/{renderer-BajIOuZH.mjs.map → renderer-nLPfvY3-.mjs.map} +1 -1
- package/dist/renderer-oPWZmzua.mjs +5 -0
- package/dist/{renderer--ruTGlPo.mjs → renderer-pcpDwv3K.mjs} +4 -4
- package/dist/{renderer--ruTGlPo.mjs.map → renderer-pcpDwv3K.mjs.map} +1 -1
- package/dist/renderer-qCNOffLy.mjs +5 -0
- package/dist/{renderer-DwVOxdzC.mjs → renderer-vPJRRVNN.mjs} +5 -5
- package/dist/{renderer-DwVOxdzC.mjs.map → renderer-vPJRRVNN.mjs.map} +1 -1
- package/dist/{renderer-JvcR1vYI.mjs → renderer-vQrX7Qsw.mjs} +3 -3
- package/dist/{renderer-JvcR1vYI.mjs.map → renderer-vQrX7Qsw.mjs.map} +1 -1
- package/dist/{renderer-Bi6W4RSn.mjs → renderer-wld_ZR0-.mjs} +3 -3
- package/dist/{renderer-Bi6W4RSn.mjs.map → renderer-wld_ZR0-.mjs.map} +1 -1
- package/dist/renderer-xEVoeq12.mjs +5 -0
- package/dist/renderer-ypw8fzVD.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs → renderers-CP8CFWDs-DgKdGMvS.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs.map → renderers-CP8CFWDs-DgKdGMvS.mjs.map} +1 -1
- package/dist/signals/index.d.mts +6 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-C5nOrRmn.mjs → signals-Cf9mfNGE.mjs} +4 -4
- package/dist/{signals-C5nOrRmn.mjs.map → signals-Cf9mfNGE.mjs.map} +1 -1
- package/dist/src-CU_7ui4I.mjs +8373 -0
- package/dist/src-CU_7ui4I.mjs.map +1 -0
- package/package.json +68 -58
- package/dist/dist-ClyC_d66.mjs.map +0 -1
- package/dist/dist-CxGfrigI.mjs.map +0 -1
- package/dist/effects-BOk_2kzM.mjs.map +0 -1
- package/dist/index-B1XcyMm8.d.mts.map +0 -1
- package/dist/index-B2Xesdug.d.mts.map +0 -1
- package/dist/index-DujpgUUq.d.mts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/preview/index.d.mts.map +0 -1
- package/dist/preview-engine/chunk-AQNTIWTK.mjs +0 -1
- package/dist/preview-engine/chunk-CPFPY35C.mjs +0 -1
- package/dist/preview-engine/chunk-UZBVCYRY.mjs +0 -174
- package/dist/preview-engine/chunk-XDMZP3E2.mjs +0 -1
- package/dist/preview-engine/chunk-YKMBRUAE.mjs +0 -1
- package/dist/preview-engine/renderers-3CXFGRE7.mjs +0 -1
- package/dist/preview-engine/renderers-3FC3WCJN.mjs +0 -1
- package/dist/preview-engine/renderers-3S2FM33K.mjs +0 -1
- package/dist/preview-engine/renderers-53ZTBI3C.mjs +0 -1
- package/dist/preview-engine/renderers-5USBVCMQ.mjs +0 -1
- package/dist/preview-engine/renderers-65G6BLEA.mjs +0 -1
- package/dist/preview-engine/renderers-7XU7BXE7.mjs +0 -1
- package/dist/preview-engine/renderers-BFXM32BC.mjs +0 -1
- package/dist/preview-engine/renderers-CDXHCWWK.mjs +0 -1
- package/dist/preview-engine/renderers-CLUN7WU6.mjs +0 -1
- package/dist/preview-engine/renderers-DTB4HEXU.mjs +0 -1
- package/dist/preview-engine/renderers-EFKNRLYF.mjs +0 -1
- package/dist/preview-engine/renderers-EI6MQ2EL.mjs +0 -228
- package/dist/preview-engine/renderers-G2K7ZA5O.mjs +0 -1
- package/dist/preview-engine/renderers-GTUO5LIV.mjs +0 -1
- package/dist/preview-engine/renderers-HSJIVP57.mjs +0 -1
- package/dist/preview-engine/renderers-IHACBWXI.mjs +0 -1
- package/dist/preview-engine/renderers-IO3BVVJ7.mjs +0 -1
- package/dist/preview-engine/renderers-IR772VSN.mjs +0 -1
- package/dist/preview-engine/renderers-L6TRJOXA.mjs +0 -1
- package/dist/preview-engine/renderers-N6H6RSF2.mjs +0 -1
- package/dist/preview-engine/renderers-O5NFQYRQ.mjs +0 -1
- package/dist/preview-engine/renderers-O6V3OEKX.mjs +0 -1
- package/dist/preview-engine/renderers-OODA27UH.mjs +0 -1
- package/dist/preview-engine/renderers-RIGW33ZI.mjs +0 -1
- package/dist/preview-engine/renderers-RUZRBQ4K.mjs +0 -1
- package/dist/preview-engine/renderers-SKB2GGKS.mjs +0 -1
- package/dist/preview-engine/renderers-T4D2TASM.mjs +0 -1
- package/dist/preview-engine/renderers-T74XV36Q.mjs +0 -1
- package/dist/preview-engine/renderers-TOPW2UM3.mjs +0 -1
- package/dist/preview-engine/renderers-UO5G3Y2G.mjs +0 -1
- package/dist/preview-engine/renderers-UOV7VOJJ.mjs +0 -1
- package/dist/preview-engine/renderers-UWKSTSTA.mjs +0 -1
- package/dist/preview-engine/renderers-VHPAOUTA.mjs +0 -1
- package/dist/preview-engine/renderers-YEQRQJFC.mjs +0 -1
- package/dist/preview-engine/renderers-YRZ3WODX.mjs +0 -1
- package/dist/preview-engine/renderers-YUTFGVRY.mjs +0 -1
- package/dist/preview-engine/renderers-YXOTRKPA.mjs +0 -1
- package/dist/preview-engine/renderers-ZOU5ARVD.mjs +0 -1
- package/dist/preview-engine/renderers-ZW75LQTR.mjs +0 -1
- package/dist/program-C2cJayA1.mjs.map +0 -1
- package/dist/renderer-BAhZeUUn.mjs +0 -5
- package/dist/renderer-BHAE_dKq.mjs +0 -5
- package/dist/renderer-BNYZY3FE.mjs +0 -5
- package/dist/renderer-BSvubMvI.mjs +0 -5
- package/dist/renderer-BV48PFjX.mjs.map +0 -1
- package/dist/renderer-B_M_yhTc.mjs +0 -5
- package/dist/renderer-B_xSsTuy.mjs +0 -5
- package/dist/renderer-BePHurAU.mjs +0 -5
- package/dist/renderer-BfZquJrW.mjs +0 -5
- package/dist/renderer-BuY5ypB2.mjs +0 -5
- package/dist/renderer-BvOQgFHo.mjs +0 -5
- package/dist/renderer-C7NkSvUz.mjs +0 -5
- package/dist/renderer-CIuxV2q1.mjs +0 -5
- package/dist/renderer-CKp97tSQ.mjs +0 -5
- package/dist/renderer-CY89dTFR.mjs +0 -5
- package/dist/renderer-C_B_4Bl0.mjs +0 -5
- package/dist/renderer-Cd87JOjP.mjs +0 -5
- package/dist/renderer-Cev6orIK.mjs +0 -6
- package/dist/renderer-Cewf6UPh.mjs +0 -5
- package/dist/renderer-CnHsMLIv.mjs +0 -5
- package/dist/renderer-CoxuAr7b.mjs +0 -5
- package/dist/renderer-CrdG7trA.mjs +0 -5
- package/dist/renderer-Cu5MFgbk.mjs +0 -5
- package/dist/renderer-CuOjhtoo.mjs +0 -5
- package/dist/renderer-D2_0g6Oi.mjs +0 -5
- package/dist/renderer-D62FwolD.mjs +0 -5
- package/dist/renderer-DDNY9N7I.mjs +0 -5
- package/dist/renderer-DF_ONJ3v.mjs +0 -5
- package/dist/renderer-DbzrVHEE.mjs +0 -5
- package/dist/renderer-DlYchp1v.mjs +0 -5
- package/dist/renderer-DqcUNP8J.mjs +0 -5
- package/dist/renderer-DqvFhEQj.mjs +0 -5
- package/dist/renderer-DuuOlYIG.mjs +0 -3
- package/dist/renderer-DxBav2bE.mjs +0 -5
- package/dist/renderer-GvSRoQje.mjs +0 -5
- package/dist/renderer-KP7Ita9g.mjs +0 -5
- package/dist/renderer-Pc8dyNXt.mjs +0 -5
- package/dist/renderer-ezRCmU09.mjs +0 -3
- package/dist/renderer-h6ev1ogx.mjs +0 -5
- /package/dist/{chunk-GBe2k3y8.mjs → chunk-D7gtBK74.mjs} +0 -0
- /package/dist/{renderer-B-BcgA6d.mjs → renderer-B7fX0C62.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-QMVy31gR.mjs","names":[],"sources":["../../renderers/dist/index.mjs","../../compositions/dist/layer-logic-C4ls-aB4.mjs","../../compositions/dist/index.mjs"],"sourcesContent":["import { GetFontAssetUrl } from \"@framefields/client-utils\";\nimport { SlugFontCache, SlugGeometry, getHeadlessFontPath, registerHeadlessFont } from \"@framefields/webgpu-renderers\";\n\nexport * from \"@framefields/webgpu-renderers/math3d\"\n\n//#region src/blend.ts\nconst mapBlendModeToSkia = (mode) => {\n\tif (!mode) return \"srcOver\";\n\tswitch (mode) {\n\t\tcase \"source-over\": return \"srcOver\";\n\t\tcase \"source-in\": return \"srcIn\";\n\t\tcase \"source-out\": return \"srcOut\";\n\t\tcase \"source-atop\": return \"srcATop\";\n\t\tcase \"destination-over\": return \"dstOver\";\n\t\tcase \"destination-in\": return \"dstIn\";\n\t\tcase \"destination-out\": return \"dstOut\";\n\t\tcase \"destination-atop\": return \"dstATop\";\n\t\tcase \"copy\": return \"src\";\n\t\tcase \"xor\": return \"xor\";\n\t\tcase \"multiply\": return \"multiply\";\n\t\tcase \"screen\": return \"screen\";\n\t\tcase \"overlay\": return \"overlay\";\n\t\tcase \"darken\": return \"darken\";\n\t\tcase \"lighten\":\n\t\tcase \"lighter\": return \"lighten\";\n\t\tcase \"color-dodge\": return \"colorDodge\";\n\t\tcase \"color-burn\": return \"colorBurn\";\n\t\tcase \"hard-light\": return \"hardLight\";\n\t\tcase \"soft-light\": return \"softLight\";\n\t\tcase \"difference\": return \"difference\";\n\t\tcase \"exclusion\": return \"exclusion\";\n\t\tcase \"hue\": return \"hue\";\n\t\tcase \"saturation\": return \"saturation\";\n\t\tcase \"color\": return \"color\";\n\t\tcase \"luminosity\": return \"luminosity\";\n\t\tdefault: return \"srcOver\";\n\t}\n};\nconst requiresIsolation = (mode) => {\n\treturn mode === \"destination-in\" || mode === \"source-in\";\n};\n\n//#endregion\n//#region src/geometry.ts\nfunction computeStrokeRect(w, h, cornerRadius, strokeWidth, align = \"outside\") {\n\tif (align === \"inside\") {\n\t\tconst half = strokeWidth / 2;\n\t\treturn {\n\t\t\tx: half,\n\t\t\ty: half,\n\t\t\twidth: Math.max(0, w - strokeWidth),\n\t\t\theight: Math.max(0, h - strokeWidth),\n\t\t\tradius: cornerRadius === 0 ? 0 : Math.max(0, cornerRadius - half)\n\t\t};\n\t}\n\tif (align === \"outside\") {\n\t\tconst half = strokeWidth / 2;\n\t\treturn {\n\t\t\tx: -half,\n\t\t\ty: -half,\n\t\t\twidth: w + strokeWidth,\n\t\t\theight: h + strokeWidth,\n\t\t\tradius: cornerRadius === 0 ? 0 : cornerRadius + half\n\t\t};\n\t}\n\treturn {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: w,\n\t\theight: h,\n\t\tradius: cornerRadius\n\t};\n}\n\n//#endregion\n//#region src/interpolate.ts\nconst { cbrt, sqrt, PI: π } = Math;\nconst x2t = (x, a, b, c, d) => {\n\tconst q = a + b * x;\n\tconst s = q ** 2 + c;\n\tif (s > 0) {\n\t\tconst root = sqrt(s);\n\t\treturn cbrt(q + root) + cbrt(q - root) - d;\n\t}\n\tconst l = cbrt(sqrt(q * q - s));\n\tconst angle = q ? Math.atan(sqrt(-s) / q) : -π / 2;\n\tlet φ;\n\tif (b < 0) φ = (q > 0 ? 2 * π : π) - angle;\n\telse if (d < 0) φ = (q > 0 ? 2 * π : -3 * π) + angle;\n\telse φ = (q > 0 ? 0 : π) + angle;\n\treturn 2 * l * Math.cos(φ / 3) - d;\n};\nconst Y = (t, ay, by, cy) => ((ay * t + 3 * by) * t + cy) * t;\nconst linearEasing = (x) => x;\nfunction bezier(mX1, mY1, mX2, mY2) {\n\tif (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) throw new Error(\"bezier x values must be in [0, 1] range\");\n\tif (mX1 === mY1 && mX2 === mY2) return linearEasing;\n\tconst a = 6 * (3 * mX1 - 3 * mX2 + 1);\n\tconst b = 6 * (mX2 - 2 * mX1);\n\tconst c = 3 * mX1;\n\tconst a2 = a * a;\n\tconst b2 = b * b;\n\tconst d = b / a;\n\tconst e = 3 * b * c / a2 - b2 * b / (a2 * a);\n\tconst w1 = 2 * c / a - b2 / a2;\n\tconst w = w1 * w1 * w1;\n\tconst o = 3 / a;\n\tconst ay = 3 * mY1 - 3 * mY2 + 1;\n\tconst by = mY2 - 2 * mY1;\n\tconst cy = 3 * mY1;\n\tconst X2T = a ? x2t : linearEasing;\n\treturn function BezierEasing(x) {\n\t\tif (x === 0 || x === 1) return x;\n\t\treturn Y(X2T(x, e, o, w, d), ay, by, cy);\n\t};\n}\nconst Easing = {\n\tlinear: linearEasing,\n\tease: bezier(.25, .1, .25, 1),\n\tquad: (t) => t * t,\n\tcubic: (t) => t * t * t,\n\tpoly: (n) => (t) => t ** n,\n\tsin: (t) => 1 - Math.cos(t * Math.PI / 2),\n\tcircle: (t) => 1 - Math.sqrt(1 - t * t),\n\texp: (t) => 2 ** (10 * (t - 1)),\n\telastic: (bounciness = 1) => {\n\t\tconst p = bounciness * Math.PI;\n\t\treturn (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);\n\t},\n\tback: (s = 1.70158) => (t) => t * t * ((s + 1) * t - s),\n\tbounce: (t) => {\n\t\tif (t < 1 / 2.75) return 7.5625 * t * t;\n\t\tif (t < 2 / 2.75) {\n\t\t\tconst t2$1 = t - 1.5 / 2.75;\n\t\t\treturn 7.5625 * t2$1 * t2$1 + .75;\n\t\t}\n\t\tif (t < 2.5 / 2.75) {\n\t\t\tconst t2$1 = t - 2.25 / 2.75;\n\t\t\treturn 7.5625 * t2$1 * t2$1 + .9375;\n\t\t}\n\t\tconst t2 = t - 2.625 / 2.75;\n\t\treturn 7.5625 * t2 * t2 + .984375;\n\t},\n\tbezier,\n\tin: (fn) => fn,\n\tout: (fn) => (t) => 1 - fn(1 - t),\n\tinOut: (fn) => (t) => t < .5 ? fn(t * 2) / 2 : 1 - fn((1 - t) * 2) / 2\n};\nfunction interpolate(value, inputRange, outputRange, options) {\n\tconst extrapolateLeft = options?.extrapolateLeft ?? \"extend\";\n\tconst extrapolateRight = options?.extrapolateRight ?? \"extend\";\n\tif (inputRange.length !== outputRange.length) throw new Error(\"inputRange and outputRange must have the same length\");\n\tif (inputRange.length < 2) throw new Error(\"inputRange must have at least 2 elements\");\n\tconst firstInput = inputRange[0];\n\tconst lastInput = inputRange[inputRange.length - 1];\n\tif (value < firstInput) {\n\t\tif (extrapolateLeft === \"clamp\") return outputRange[0];\n\t\tif (extrapolateLeft === \"identity\") return value;\n\t}\n\tif (value > lastInput) {\n\t\tif (extrapolateRight === \"clamp\") return outputRange[outputRange.length - 1];\n\t\tif (extrapolateRight === \"identity\") return value;\n\t}\n\tlet i = 1;\n\tfor (; i < inputRange.length - 1; i++) if (value < inputRange[i]) break;\n\tconst x0 = inputRange[i - 1];\n\tconst x1 = inputRange[i];\n\tconst y0 = outputRange[i - 1];\n\tconst y1 = outputRange[i];\n\tif (x0 === x1) return y0;\n\tlet progress = (value - x0) / (x1 - x0);\n\tif (options?.easing) progress = options.easing(progress);\n\treturn y0 + progress * (y1 - y0);\n}\n\n//#endregion\n//#region src/utils.ts\n/**\n* Preloads a font into the browser or headless environment.\n*/\nasync function preloadFont(family, url) {\n\tif (typeof window !== \"undefined\" && typeof FontFace !== \"undefined\") try {\n\t\tconst loadedFace = await new FontFace(family, `url(${url})`).load();\n\t\tdocument.fonts.add(loadedFace);\n\t\tawait document.fonts.ready;\n\t} catch (e) {\n\t\tconsole.warn(`[preloadFont] Failed to load font \"${family}\" from ${url}:`, e);\n\t}\n\telse await registerHeadlessFont(family, url);\n}\n\n//#endregion\n//#region src/preload-fonts.ts\nconst EMOJI_REGEX = /\\p{Extended_Pictographic}/gu;\nlet warnedNoEmojiFont = false;\n/**\n* Loads every font a composition's text uses (for layout and for drawing) and\n* the emoji it draws. The browser preview and the export both call this, so\n* they start each render from the same glyphs.\n*/\nasync function preloadCompositionFonts(media, device, onError = (err, what) => console.warn(`[framefields] ${what}`, err)) {\n\tconst families = /* @__PURE__ */ new Set();\n\tconst emoji = /* @__PURE__ */ new Map();\n\t(function walk(node) {\n\t\tconst op = node.operation;\n\t\tif (op) {\n\t\t\tconst isText = op.op === \"text\" || op.kind === \"text\" || op.op === \"caption\" || op.kind === \"caption\" || typeof op.text === \"string\";\n\t\t\tconst family = op.fontFamily || (isText ? \"Inter\" : \"\");\n\t\t\tif (family) families.add(family);\n\t\t\tif (op.op === \"text\" && typeof op.text === \"string\") {\n\t\t\t\tconst fontSize = op.fontSize ?? 48;\n\t\t\t\tfor (const char of op.text.match(EMOJI_REGEX) ?? []) emoji.set(`${char}-${fontSize}`, fontSize);\n\t\t\t}\n\t\t}\n\t\tfor (const child of node.children ?? []) walk(child);\n\t})(media);\n\tconst tasks = [];\n\tfor (const family of families) {\n\t\tconst url = getHeadlessFontPath(family) ?? GetFontAssetUrl(family);\n\t\ttasks.push(preloadFont(family, url).catch((err) => onError(err, `font \"${family}\" from ${url}`)));\n\t\tif (device) tasks.push(SlugFontCache.preloadSlugFont(device, family, url).catch((err) => onError(err, `Slug font \"${family}\" from ${url}`)));\n\t}\n\tif (device && emoji.size > 0) {\n\t\tif (!SlugFontCache.hasEmojiFont() && !warnedNoEmojiFont) {\n\t\t\twarnedNoEmojiFont = true;\n\t\t\tconsole.warn(\"[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path).\");\n\t\t}\n\t\tfor (const [key, fontSize] of emoji) {\n\t\t\tconst char = key.slice(0, key.lastIndexOf(\"-\"));\n\t\t\ttasks.push(SlugFontCache.preloadEmoji(device, char, fontSize).catch((err) => {\n\t\t\t\tif (SlugFontCache.hasEmojiFont()) onError(err, `emoji \"${char}\"`);\n\t\t\t}));\n\t\t}\n\t}\n\tawait Promise.all(tasks);\n}\n\n//#endregion\n//#region src/spring.ts\nconst defaultSpringConfig = {\n\tdamping: 10,\n\tmass: 1,\n\tstiffness: 100,\n\tovershootClamping: false\n};\nconst advanceCache = {};\nfunction advance({ animation, now, config }) {\n\tconst { toValue, lastTimestamp, current, velocity } = animation;\n\tconst deltaTime = Math.min(now - lastTimestamp, 64);\n\tif (config.damping <= 0) throw new Error(\"Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.\");\n\tif (config.stiffness <= 0) throw new Error(\"Spring stiffness must be greater than 0.\");\n\tif (config.mass <= 0) throw new Error(\"Spring mass must be greater than 0.\");\n\tconst c = config.damping;\n\tconst m = config.mass;\n\tconst k = config.stiffness;\n\tconst cacheKey = [\n\t\ttoValue,\n\t\tlastTimestamp,\n\t\tcurrent,\n\t\tvelocity,\n\t\tc,\n\t\tm,\n\t\tk,\n\t\tnow\n\t].join(\"-\");\n\tif (advanceCache[cacheKey]) return advanceCache[cacheKey];\n\tconst v0 = -velocity;\n\tconst x0 = toValue - current;\n\tconst zeta = c / (2 * Math.sqrt(k * m));\n\tconst omega0 = Math.sqrt(k / m);\n\tconst omega1 = omega0 * Math.sqrt(1 - zeta ** 2);\n\tconst t = deltaTime / 1e3;\n\tconst sin1 = Math.sin(omega1 * t);\n\tconst cos1 = Math.cos(omega1 * t);\n\tconst underDampedEnvelope = Math.exp(-zeta * omega0 * t);\n\tconst underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);\n\tconst underDampedPosition = toValue - underDampedFrag1;\n\tconst underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);\n\tconst criticallyDampedEnvelope = Math.exp(-omega0 * t);\n\tconst criticallyDampedPosition = toValue - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);\n\tconst criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);\n\tconst animationNode = {\n\t\ttoValue,\n\t\tprevPosition: current,\n\t\tlastTimestamp: now,\n\t\tcurrent: zeta < 1 ? underDampedPosition : criticallyDampedPosition,\n\t\tvelocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity\n\t};\n\tadvanceCache[cacheKey] = animationNode;\n\treturn animationNode;\n}\nconst calculationCache = {};\nfunction springCalculation({ frame, fps, config = {} }) {\n\tconst from = 0;\n\tconst to = 1;\n\tconst cacheKey = [\n\t\tframe,\n\t\tfps,\n\t\tconfig.damping,\n\t\tconfig.mass,\n\t\tconfig.overshootClamping,\n\t\tconfig.stiffness\n\t].join(\"-\");\n\tif (calculationCache[cacheKey]) return calculationCache[cacheKey];\n\tlet animation = {\n\t\tlastTimestamp: 0,\n\t\tcurrent: from,\n\t\ttoValue: to,\n\t\tvelocity: 0,\n\t\tprevPosition: 0\n\t};\n\tconst frameClamped = Math.max(0, frame);\n\tconst unevenRest = frameClamped % 1;\n\tfor (let f = 0; f <= Math.floor(frameClamped); f++) {\n\t\tif (f === Math.floor(frameClamped)) f += unevenRest;\n\t\tconst time = f / fps * 1e3;\n\t\tanimation = advance({\n\t\t\tanimation,\n\t\t\tnow: time,\n\t\t\tconfig: {\n\t\t\t\t...defaultSpringConfig,\n\t\t\t\t...config\n\t\t\t}\n\t\t});\n\t}\n\tcalculationCache[cacheKey] = animation;\n\treturn animation;\n}\nconst measureCache = /* @__PURE__ */ new Map();\nfunction measureSpring({ fps, config = {}, threshold = .005 }) {\n\tif (typeof threshold !== \"number\") throw new TypeError(`threshold must be a number, got ${threshold}`);\n\tif (threshold === 0) return Infinity;\n\tif (threshold === 1) return 0;\n\tif (Number.isNaN(threshold)) throw new TypeError(\"Threshold is NaN\");\n\tif (!Number.isFinite(threshold)) throw new TypeError(\"Threshold is not finite\");\n\tif (threshold < 0) throw new TypeError(\"Threshold is below 0\");\n\tconst cacheKey = [\n\t\tfps,\n\t\tconfig.damping,\n\t\tconfig.mass,\n\t\tconfig.overshootClamping,\n\t\tconfig.stiffness,\n\t\tthreshold\n\t].join(\"-\");\n\tif (measureCache.has(cacheKey)) return measureCache.get(cacheKey);\n\tlet frame = 0;\n\tlet finishedFrame = 0;\n\tconst calc = () => {\n\t\treturn springCalculation({\n\t\t\tfps,\n\t\t\tframe,\n\t\t\tconfig\n\t\t});\n\t};\n\tlet animation = calc();\n\tconst calcDifference = () => {\n\t\treturn Math.abs(animation.current - animation.toValue);\n\t};\n\tlet difference = calcDifference();\n\twhile (difference >= threshold) {\n\t\tframe++;\n\t\tanimation = calc();\n\t\tdifference = calcDifference();\n\t}\n\tfinishedFrame = frame;\n\tfor (let i = 0; i < 20; i++) {\n\t\tframe++;\n\t\tanimation = calc();\n\t\tdifference = calcDifference();\n\t\tif (difference >= threshold) {\n\t\t\ti = 0;\n\t\t\tfinishedFrame = frame + 1;\n\t\t}\n\t}\n\tmeasureCache.set(cacheKey, finishedFrame);\n\treturn finishedFrame;\n}\nfunction spring({ frame: passedFrame, fps, config = {}, from = 0, to = 1, durationInFrames: passedDurationInFrames, durationRestThreshold, delay = 0, reverse = false }) {\n\tconst needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== \"undefined\";\n\tconst naturalDuration = needsToCalculateNaturalDuration ? measureSpring({\n\t\tfps,\n\t\tconfig,\n\t\tthreshold: durationRestThreshold\n\t}) : void 0;\n\tconst naturalDurationGetter = needsToCalculateNaturalDuration ? { get: () => naturalDuration } : { get: () => {\n\t\tthrow new Error(\"did not calculate natural duration\");\n\t} };\n\tconst delayProcessed = (reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame) + (reverse ? delay : -delay);\n\tconst durationProcessed = passedDurationInFrames === void 0 ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());\n\tif (passedDurationInFrames && delayProcessed > passedDurationInFrames) return to;\n\tconst spr = springCalculation({\n\t\tfps,\n\t\tframe: durationProcessed,\n\t\tconfig\n\t});\n\tconst inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;\n\treturn from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);\n}\n\n//#endregion\n//#region src/text-measurer.ts\nconst cache = /* @__PURE__ */ new Map();\nfunction getCacheKey(text, style) {\n\treturn JSON.stringify({\n\t\ttext,\n\t\t...style\n\t});\n}\n/**\n* Shared text measurer that uses SlugGeometry.measure for all environments.\n*/\nfunction measureText(text, style) {\n\tconst safeText = text ? String(text) : \" \";\n\tconst cacheKey = getCacheKey(safeText, style);\n\tconst cached = cache.get(cacheKey);\n\tif (cached) return cached;\n\tconst fontSize = style.fontSize ?? 48;\n\tlet fontFamily = style.fontFamily ?? \"Inter\";\n\tif (SlugFontCache.isFailed(fontFamily)) fontFamily = \"Inter\";\n\tconst letterSpacing = style.letterSpacing ?? 0;\n\tconst calculatedLineHeight = style.lineHeight !== void 0 && style.lineHeight < 10 ? style.lineHeight * fontSize : style.lineHeight ?? fontSize * 1.2;\n\tconst slugFont = SlugFontCache.getFont(fontFamily, style.fontWeight, null, void 0, fontSize);\n\tconst padding = style.padding ?? 0;\n\tif (!slugFont) {\n\t\tif (!SlugFontCache.isFailed(fontFamily)) {\n\t\t\tconst fontUrl = GetFontAssetUrl(fontFamily);\n\t\t\tSlugFontCache.preloadSlugFont(null, fontFamily, fontUrl).catch(() => {});\n\t\t}\n\t\tconst lines = safeText.split(\"\\n\");\n\t\tlet totalWrappedLines = 0;\n\t\tconst maxW = style.width !== void 0 ? Math.max(10, style.width - padding * 2) : 0;\n\t\tfor (const line of lines) if (maxW > 0) {\n\t\t\tconst estLineWidth = line.length * fontSize * .55 + letterSpacing * line.length;\n\t\t\tconst wrapCount = Math.max(1, Math.ceil(estLineWidth / maxW));\n\t\t\ttotalWrappedLines += wrapCount;\n\t\t} else totalWrappedLines += 1;\n\t\tconst letterGaps = Math.max(0, safeText.length - 1);\n\t\tconst result$1 = {\n\t\t\twidth: style.width !== void 0 ? style.width : Math.ceil(safeText.length * fontSize * .6 + letterSpacing * letterGaps) + padding * 2,\n\t\t\theight: style.height !== void 0 ? style.height : Math.ceil(totalWrappedLines * calculatedLineHeight) + padding * 2\n\t\t};\n\t\tcache.set(cacheKey, result$1);\n\t\treturn result$1;\n\t}\n\tconst measured = SlugGeometry.measure(safeText, slugFont, fontSize, letterSpacing, calculatedLineHeight, style.width !== void 0 ? Math.max(0, style.width - padding * 2) : void 0, style.spans, style.direction);\n\tconst result = {\n\t\twidth: style.width !== void 0 && !style.keepNaturalWidth ? style.width : Math.ceil(measured.width) + padding * 2,\n\t\theight: style.height !== void 0 ? style.height : Math.ceil(measured.height) + padding * 2\n\t};\n\tcache.set(cacheKey, result);\n\treturn result;\n}\n/**\n* Async variant of measureText. Preloads the Slug font and yields to the browser.\n*/\nfunction measureTextAsync(text, style) {\n\tlet fontFamily = style.fontFamily ?? \"Inter\";\n\tif (SlugFontCache.isFailed(fontFamily)) fontFamily = \"Inter\";\n\tif (SlugFontCache.isFailed(fontFamily)) return Promise.resolve(measureText(text, style));\n\tconst fontUrl = GetFontAssetUrl(fontFamily);\n\treturn SlugFontCache.preloadSlugFont(null, fontFamily, fontUrl).then(() => measureText(text, style)).catch(() => measureText(text, style));\n}\n\n//#endregion\nexport { Easing, bezier, computeStrokeRect, interpolate, mapBlendModeToSkia, measureSpring, measureText, measureTextAsync, preloadCompositionFonts, preloadFont, requiresIsolation, spring, springCalculation };\n//# sourceMappingURL=index.mjs.map","import { DEFAULT_DURATION_MS, getActiveMediaMetadata, resolveMediaMimeType } from \"@framefields/core\";\nimport { resolveMediaSourceUrl } from \"@framefields/client-utils\";\nimport { interpolate, spring } from \"@framefields/renderers\";\n\n//#region src/utils/apply-operations.ts\n/**\n* Compute render parameters for the CURRENT node only — does NOT recurse into\n* children. Each node in the VirtualMedia tree is responsible for exactly its\n* own operation; `SingleClipComposition` drives traversal via React recursion.\n*\n* This is the correct function to use inside the renderer.\n*/\nfunction computeRenderParams(vv) {\n\tconst op = vv.operation;\n\tconst baseMeta = getActiveMediaMetadata(vv);\n\tconst params = {\n\t\tsourceUrl: void 0,\n\t\ttrimStartSec: 0,\n\t\ttrimEndSec: null,\n\t\tspeed: 1,\n\t\tcropRegion: null,\n\t\tflipH: false,\n\t\tflipV: false,\n\t\trotation: 0,\n\t\teffectiveDurationSec: 0,\n\t\tmimeType: resolveMediaMimeType(vv) || null\n\t};\n\tswitch (op.op) {\n\t\tcase \"text\":\n\t\t\tparams.sourceUrl = void 0;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tparams.sourceUrl = resolveMediaSourceUrl(vv);\n\t\t\tbreak;\n\t}\n\tconst sourceDurationSec = (baseMeta?.durationMs ?? 0) / 1e3;\n\tparams.effectiveDurationSec = ((params.trimEndSec ?? sourceDurationSec) - params.trimStartSec) / params.speed;\n\treturn params;\n}\n\n//#endregion\n//#region src/utils/timing.ts\nfunction framesToSeconds(frames, fps) {\n\treturn frames / fps;\n}\nfunction secondsToFrames(seconds, fps) {\n\treturn Math.round(seconds * fps);\n}\nfunction formatTimecode(seconds) {\n\tconst mins = Math.floor(seconds / 60);\n\tconst secs = Math.floor(seconds % 60);\n\tconst ms = Math.floor(seconds % 1 * 100);\n\treturn `${mins.toString().padStart(2, \"0\")}:${secs.toString().padStart(2, \"0\")}.${ms.toString().padStart(2, \"0\")}`;\n}\n\n//#endregion\n//#region src/utils/layer-logic.ts\nconst isStaticVisualMedia = (type) => type === \"Image\" || type === \"SVG\" || type === \"Text\";\nconst resolveLayerDuration = (layerDurationInMS, metaDurationMs, defaultDuration = DEFAULT_DURATION_MS, type) => {\n\tif (type === \"Caption\") return metaDurationMs && metaDurationMs > 0 ? metaDurationMs : layerDurationInMS || defaultDuration;\n\tconst isStatic = isStaticVisualMedia(type);\n\tif (layerDurationInMS && metaDurationMs && !isStatic) return Math.min(layerDurationInMS, metaDurationMs);\n\treturn layerDurationInMS || metaDurationMs || defaultDuration;\n};\nconst calculateLayerTransform = (layer, frame, fps, viewport) => {\n\tconst relativeFrame = frame - (layer.startFrame ?? 0);\n\tlet x = layer.x ?? 0;\n\tlet y = layer.y ?? 0;\n\tlet scale = layer.scale ?? 1;\n\tlet rotation = layer.rotation ?? 0;\n\tlet opacity = layer.opacity ?? 1;\n\tconst volume = layer.volume ?? 1;\n\tconst layerDurationMs = resolveLayerDuration(layer.durationInMS, layer.virtualMedia?.metadata?.durationMs ?? void 0, DEFAULT_DURATION_MS, layer.type);\n\tconst duration = Math.round(layerDurationMs / 1e3 * fps);\n\tconst animations = layer.type === \"Text\" || layer.type === \"Caption\" ? [] : layer.animations ?? [];\n\tif (animations.length === 0) return {\n\t\tx,\n\t\ty,\n\t\tscale,\n\t\trotation,\n\t\topacity,\n\t\tvolume\n\t};\n\tanimations.forEach((anim) => {\n\t\tconst durFrames = anim.value * fps;\n\t\tconst isOut = anim.type.includes(\"-out\");\n\t\tconst startAnimFrame = isOut ? duration - durFrames : 0;\n\t\tconst endAnimFrame = isOut ? duration : durFrames;\n\t\tif (relativeFrame < startAnimFrame || relativeFrame > endAnimFrame) return;\n\t\tconst progress = interpolate(relativeFrame, [startAnimFrame, endAnimFrame], [0, 1], {\n\t\t\textrapolateLeft: \"clamp\",\n\t\t\textrapolateRight: \"clamp\"\n\t\t});\n\t\tswitch (anim.type) {\n\t\t\tcase \"fade-in\":\n\t\t\t\topacity *= progress;\n\t\t\t\tbreak;\n\t\t\tcase \"fade-out\":\n\t\t\t\topacity *= 1 - progress;\n\t\t\t\tbreak;\n\t\t\tcase \"slide-in-left\":\n\t\t\t\tx += -1 * viewport.w * (1 - progress);\n\t\t\t\tbreak;\n\t\t\tcase \"slide-in-right\":\n\t\t\t\tx += 1 * viewport.w * (1 - progress);\n\t\t\t\tbreak;\n\t\t\tcase \"slide-in-top\":\n\t\t\t\ty += -1 * viewport.h * (1 - progress);\n\t\t\t\tbreak;\n\t\t\tcase \"slide-in-bottom\":\n\t\t\t\ty += 1 * viewport.h * (1 - progress);\n\t\t\t\tbreak;\n\t\t\tcase \"zoom-in\":\n\t\t\t\tscale *= interpolate(progress, [0, 1], [0, 1]);\n\t\t\t\tbreak;\n\t\t\tcase \"zoom-out\":\n\t\t\t\tscale *= interpolate(progress, [0, 1], [1, 0]);\n\t\t\t\tbreak;\n\t\t\tcase \"rotate-cw\":\n\t\t\t\trotation += 360 * progress;\n\t\t\t\tbreak;\n\t\t\tcase \"rotate-ccw\":\n\t\t\t\trotation += -360 * progress;\n\t\t\t\tbreak;\n\t\t\tcase \"bounce\": {\n\t\t\t\tconst bounceVal = spring({\n\t\t\t\t\tframe: relativeFrame - startAnimFrame,\n\t\t\t\t\tfps,\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tdamping: 10,\n\t\t\t\t\t\tmass: .5,\n\t\t\t\t\t\tstiffness: 100\n\t\t\t\t\t},\n\t\t\t\t\tdurationInFrames: durFrames\n\t\t\t\t});\n\t\t\t\tscale *= bounceVal;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"shake\":\n\t\t\t\tx += 20 * Math.sin(relativeFrame * 10 * 2 * Math.PI / durFrames) * (1 - progress);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\treturn {\n\t\tx,\n\t\ty,\n\t\tscale,\n\t\trotation,\n\t\topacity,\n\t\tvolume\n\t};\n};\n\n//#endregion\nexport { framesToSeconds as a, formatTimecode as i, isStaticVisualMedia as n, secondsToFrames as o, resolveLayerDuration as r, computeRenderParams as s, calculateLayerTransform as t };\n//# sourceMappingURL=layer-logic-C4ls-aB4.mjs.map","import { a as framesToSeconds, i as formatTimecode, n as isStaticVisualMedia, o as secondsToFrames, r as resolveLayerDuration, s as computeRenderParams, t as calculateLayerTransform } from \"./layer-logic-C4ls-aB4.mjs\";\nimport { getActiveMediaMetadata, getMediaType, isSignal, updateClockSignals } from \"@framefields/core\";\nimport { audioRegistry, webgpuRegistry } from \"@framefields/node-sdk\";\nimport { drawCaptionNode, drawGifNode, drawImageNode, drawLottieNode, drawParagraphNode, drawSignalNode, drawSvgNode, drawVideoNode, inputStore, shaderStore, signalRegistry } from \"@framefields/webgpu-renderers\";\nimport { AudioSampleSink } from \"mediabunny\";\n\n//#region src/compositions/canvas-composition.ts\nconst segmentRangeCache = /* @__PURE__ */ new WeakMap();\nfunction getCachedSegmentRanges(segments, fps) {\n\tconst cached = segmentRangeCache.get(segments);\n\tif (cached && cached.fps === fps) return cached.ranges;\n\tlet currentStart = 0;\n\tconst ranges = segments.map((seg) => {\n\t\tconst durSec = (seg.endSec ?? 0) - seg.startSec;\n\t\tconst durFrames = Math.max(1, Math.round(durSec * fps));\n\t\tconst start = currentStart;\n\t\tcurrentStart += durFrames;\n\t\treturn {\n\t\t\tseg,\n\t\t\tstart,\n\t\t\tduration: durFrames\n\t\t};\n\t});\n\tsegmentRangeCache.set(segments, {\n\t\tfps,\n\t\tranges\n\t});\n\treturn ranges;\n}\nconst frameCtxPool = [];\nfunction acquireFrameContext() {\n\treturn frameCtxPool.pop() ?? {};\n}\n/**\n* Effect operations carry every config field as a signal. Hand node renderers\n* the plain value for this frame (nested objects/arrays included), keeping only\n* GPU-bound signals intact since those are consumed as textures.\n*/\nfunction resolveSignalOperation(virtualMedia, frameCtx) {\n\tconst op = virtualMedia.operation;\n\tconst resolved = { ...op };\n\tfor (const [key, sig] of Object.entries(op.signals)) if (isSignal(sig) && !sig.gpuBinding) resolved[key] = sig.get(frameCtx);\n\treturn {\n\t\t...virtualMedia,\n\t\toperation: resolved\n\t};\n}\n/** The paragraph props a text operation maps to, shared by both text paths. */\nfunction paragraphPropsFromTextOp(opText, props, timing) {\n\treturn {\n\t\ttext: opText.text || \"\",\n\t\tdstRect: {\n\t\t\tx: Number(opText.x ?? 0),\n\t\t\ty: Number(opText.y ?? 0),\n\t\t\twidth: Number(opText.width ?? timing.containerWidth),\n\t\t\theight: Number(opText.height ?? timing.containerHeight)\n\t\t},\n\t\tfontFamily: opText.fontFamily,\n\t\tfontSize: Number(opText.fontSize ?? 48),\n\t\tcolor: opText.fill ?? opText.color ?? \"white\",\n\t\twidth: opText.width ? Number(opText.width) : void 0,\n\t\theight: opText.height ? Number(opText.height) : void 0,\n\t\tlineHeight: Number(opText.lineHeight ?? 1.2),\n\t\talign: opText.align,\n\t\tdirection: opText.direction,\n\t\tverticalAlign: opText.verticalAlign,\n\t\tfontWeight: opText.fontWeight,\n\t\tfontStyle: opText.fontStyle,\n\t\tletterSpacing: opText.letterSpacing,\n\t\tshadows: opText.shadows,\n\t\ttextBackgroundColor: opText.textBackgroundColor,\n\t\tpadding: opText.padding != null ? Number(opText.padding) : void 0,\n\t\tstroke: opText.stroke,\n\t\tstrokeWidth: opText.strokeWidth ?? opText.strokeThickness ? Number(opText.strokeWidth ?? opText.strokeThickness) : void 0,\n\t\tstrokeAlign: opText.strokeAlign,\n\t\topacity: Number(opText.opacity ?? 1) * Number(props.opacity ?? 1),\n\t\tisHeadless: props.isHeadless,\n\t\tanimation: opText.animation ?? opText.textAnimation,\n\t\tanimators: opText.animators,\n\t\tpathOptions: opText.pathOptions,\n\t\ttypewriter: opText.typewriter,\n\t\tmarquee: opText.marquee,\n\t\tsignals: props.signals ?? opText.signals,\n\t\tfirstMargin: opText.firstMargin != null ? Number(opText.firstMargin) : void 0,\n\t\tlastMargin: opText.lastMargin != null ? Number(opText.lastMargin) : void 0,\n\t\tbaselineShift: opText.baselineShift != null ? Number(opText.baselineShift) : void 0,\n\t\tframe: timing.frame,\n\t\tfps: timing.fps,\n\t\tdurationMs: timing.durationMs,\n\t\telapsedMs: timing.elapsedMs,\n\t\tisVideoMode: props.isVideoMode\n\t};\n}\nasync function drawCompositionTree(ctx, encoder, targetView, targetTexture, targetWidth, targetHeight, virtualMedia, props, inheritedSeekOffset = 0, inheritedClockOffset = 0) {\n\tconst fps = props.fps ?? 24;\n\tconst op = virtualMedia.operation;\n\tif (!op) return;\n\tconst isCompositor = op.op === \"Compositor\";\n\tconst frame = props.frame ?? 0;\n\tconst compositionFrame = props.compositionFrame ?? frame;\n\tconst segments = op.timeline?.segments || [];\n\tconst localFrame = frame - (op.startFrame ?? op.timeline?.startFrame ?? 0);\n\tconst isTimelineProvider = op.timeline !== void 0 || op.startFrame !== void 0 || op.op === \"compose\";\n\tconst resolvedDurationMs = isTimelineProvider ? getActiveMediaMetadata(virtualMedia)?.durationMs ?? props.durationMs ?? void 0 : props.durationMs ?? getActiveMediaMetadata(virtualMedia)?.durationMs ?? void 0;\n\tif (!(op.op === \"source\" || op.op === \"text\" || op.op === \"caption\")) updateClockSignals(compositionFrame, fps, resolvedDurationMs);\n\tconst frameCtx = acquireFrameContext();\n\tframeCtx.frame = compositionFrame;\n\tframeCtx.fps = fps;\n\tframeCtx.time = fps > 0 ? compositionFrame / fps : 0;\n\tframeCtx.duration = (resolvedDurationMs ?? 0) / 1e3;\n\tframeCtx.durationMs = resolvedDurationMs ?? 0;\n\tframeCtx.progress = resolvedDurationMs && resolvedDurationMs > 0 ? Math.max(0, Math.min(1, compositionFrame / fps * 1e3 / resolvedDurationMs)) : 0;\n\tframeCtx.deltaTime = fps > 0 ? 1 / fps : 0;\n\tconst resolvedElapsedMs = isTimelineProvider ? (localFrame !== void 0 && fps !== void 0 ? localFrame / fps * 1e3 : void 0) ?? props.elapsedMs : props.elapsedMs ?? (localFrame !== void 0 && fps !== void 0 ? localFrame / fps * 1e3 : void 0);\n\tconst effectiveLocalFrame = localFrame + Math.round(inheritedSeekOffset * fps);\n\tlet activeSeg = null;\n\tlet windowStartFrame = 0;\n\tif (segments.length > 0) {\n\t\tconst active = getCachedSegmentRanges(segments, fps).find(({ start, duration }) => effectiveLocalFrame >= start && effectiveLocalFrame < start + duration);\n\t\tif (active) {\n\t\t\tactiveSeg = active.seg;\n\t\t\twindowStartFrame = active.start;\n\t\t} else return;\n\t}\n\tconst segmentLocalFrame = localFrame - windowStartFrame;\n\tconst accumulatedSeekOffsetSec = inheritedSeekOffset + (activeSeg ? activeSeg.startSec - windowStartFrame / fps : 0);\n\tconst accumulatedClockOffsetSec = inheritedClockOffset + windowStartFrame / fps;\n\tif (typeof op.onRequestFrame === \"function\") {\n\t\tconst pending = op.onRequestFrame(frameCtx);\n\t\tif (pending && typeof pending.then === \"function\") await pending;\n\t} else if (op.effect && typeof op.effect.notifyFrame === \"function\") op.effect.notifyFrame(frameCtx);\n\tif (op.op === \"TextureSource\") {\n\t\tconst sourceTexture = op.sourceTexture;\n\t\tif (sourceTexture) {\n\t\t\tconst pass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, targetWidth, targetHeight, \"load\");\n\t\t\tctx.renderer.drawTexture(pass, sourceTexture, {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\twidth: targetWidth,\n\t\t\t\theight: targetHeight\n\t\t\t}, { opacity: Number(op.opacity ?? 1) });\n\t\t\tpass.end();\n\t\t}\n\t\treturn;\n\t}\n\tconst CustomRenderer = webgpuRegistry.get(op.op);\n\tif (CustomRenderer) {\n\t\tif (op.signals) virtualMedia = resolveSignalOperation(virtualMedia, frameCtx);\n\t\tconst inputs = op?.inputs;\n\t\tif (inputs) {\n\t\t\tfor (const entry of Object.values(inputs)) if (entry?.connectionValid && entry?.outputItem?.type === \"LUT\") {\n\t\t\t\tconst lutVirtualMedia = entry.outputItem.data;\n\t\t\t\tif (lutVirtualMedia && typeof lutVirtualMedia === \"object\" && lutVirtualMedia.operation) {\n\t\t\t\t\tconst lutW = lutVirtualMedia.metadata?.width ?? targetWidth;\n\t\t\t\t\tconst lutH = lutVirtualMedia.metadata?.height ?? targetHeight;\n\t\t\t\t\tconst dummyTex = ctx.renderer.getTemporaryTexture(lutW, lutH);\n\t\t\t\t\tawait drawCompositionTree(ctx, encoder, dummyTex.createView(), dummyTex, lutW, lutH, lutVirtualMedia, {\n\t\t\t\t\t\t...props,\n\t\t\t\t\t\tcompositionFrame,\n\t\t\t\t\t\tvirtualMedia: lutVirtualMedia\n\t\t\t\t\t}, accumulatedSeekOffsetSec, accumulatedClockOffsetSec);\n\t\t\t\t}\n\t\t\t} else if (entry?.connectionValid && entry?.outputItem?.type === \"Signal\") {\n\t\t\t\tconst sigData = entry.outputItem.data;\n\t\t\t\tif (sigData && typeof sigData === \"object\") await signalRegistry.ensureAudioSourcesExtracted(ctx.device, sigData.signalConfig ?? sigData, fps, props.renderId);\n\t\t\t}\n\t\t}\n\t\tconst pass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\tlet passEnded = false;\n\t\tconst originalEnd = pass.end.bind(pass);\n\t\tpass.end = () => {\n\t\t\tif (!passEnded) {\n\t\t\t\toriginalEnd();\n\t\t\t\tpassEnded = true;\n\t\t\t}\n\t\t};\n\t\tconst renderArgs = {\n\t\t\tctx,\n\t\t\tencoder,\n\t\t\tpass,\n\t\t\ttargetView,\n\t\t\ttargetTexture,\n\t\t\ttargetWidth,\n\t\t\ttargetHeight,\n\t\t\tprops: {\n\t\t\t\t...props,\n\t\t\t\tcompositionFrame,\n\t\t\t\tvirtualMedia,\n\t\t\t\tinheritedSeekOffset: accumulatedSeekOffsetSec,\n\t\t\t\tinheritedClockOffset: accumulatedClockOffsetSec,\n\t\t\t\tdurationMs: resolvedDurationMs,\n\t\t\t\telapsedMs: resolvedElapsedMs\n\t\t\t},\n\t\t\tdrawChild: async (child, overrides, targetViewOverride, targetTextureOverride, targetWidthOverride, targetHeightOverride) => {\n\t\t\t\tawait drawCompositionTree(ctx, encoder, targetViewOverride ?? targetView, targetTextureOverride ?? targetTexture, targetWidthOverride ?? targetWidth, targetHeightOverride ?? targetHeight, child, {\n\t\t\t\t\t...props,\n\t\t\t\t\tcompositionFrame,\n\t\t\t\t\tdurationMs: resolvedDurationMs,\n\t\t\t\t\telapsedMs: resolvedElapsedMs,\n\t\t\t\t\tvirtualMedia: child,\n\t\t\t\t\t...overrides,\n\t\t\t\t\texcludeTextures: [\n\t\t\t\t\t\t...props.excludeTextures || [],\n\t\t\t\t\t\t...overrides?.excludeTextures || [],\n\t\t\t\t\t\ttargetTextureOverride ?? targetTexture\n\t\t\t\t\t]\n\t\t\t\t}, isCompositor ? 0 : accumulatedSeekOffsetSec, accumulatedClockOffsetSec);\n\t\t\t}\n\t\t};\n\t\tawait CustomRenderer(renderArgs);\n\t\trenderArgs.pass.end();\n\t\treturn;\n\t}\n\tif (op.op === \"LUT\") return;\n\tif (op.op === \"Signal\" || op.op === \"SignalMath\" || op.dataType === \"Signal\") {\n\t\tconst pass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\tawait drawSignalNode(ctx, encoder, pass, {\n\t\t\tnodeId: op.nodeId || op.signalConfig?.nodeId || props.renderId,\n\t\t\tfunc: op.func,\n\t\t\tamplitude: Number(op.amplitude ?? 1),\n\t\t\tfrequency: Number(op.frequency ?? 1),\n\t\t\tphase: Number(op.phase ?? 0),\n\t\t\toffset: Number(op.offset ?? 0),\n\t\t\tsignalConfig: {\n\t\t\t\t...op.signalConfig,\n\t\t\t\t...op\n\t\t\t},\n\t\t\tframe,\n\t\t\tfps,\n\t\t\telapsedMs: resolvedElapsedMs,\n\t\t\tdurationMs: resolvedDurationMs ?? 0,\n\t\t\twidth: targetWidth,\n\t\t\theight: targetHeight,\n\t\t\tdrawChild: async (child, childProps, childView, childTex, childW, childH) => {\n\t\t\t\tawait drawCompositionTree(ctx, encoder, childView, childTex, childW, childH, child, {\n\t\t\t\t\t...props,\n\t\t\t\t\tcompositionFrame,\n\t\t\t\t\tdurationMs: resolvedDurationMs,\n\t\t\t\t\telapsedMs: resolvedElapsedMs,\n\t\t\t\t\t...childProps,\n\t\t\t\t\texcludeTextures: [\n\t\t\t\t\t\t...props.excludeTextures || [],\n\t\t\t\t\t\t...childProps?.excludeTextures || [],\n\t\t\t\t\t\tchildTex\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tpass.end();\n\t\treturn;\n\t}\n\tif (op.op === \"source\" || op.op === \"text\" || op.op === \"caption\") {\n\t\tconst pass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\tif (op.op === \"source\") {\n\t\t\tconst mediaType = getMediaType(virtualMedia);\n\t\t\tconst params = computeRenderParams(virtualMedia);\n\t\t\tif (params.sourceUrl) {\n\t\t\t\tconst containerWidth = props.containerWidth ?? ctx.surface.width;\n\t\t\t\tconst containerHeight = props.containerHeight ?? ctx.surface.height;\n\t\t\t\tif (mediaType === \"Image\") await drawImageNode(ctx, pass, {\n\t\t\t\t\tsrc: params.sourceUrl,\n\t\t\t\t\tdstRect: {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\theight: containerHeight\n\t\t\t\t\t},\n\t\t\t\t\topacity: Number(op.opacity ?? 1) * Number(props.opacity ?? 1),\n\t\t\t\t\tisHeadless: props.isHeadless\n\t\t\t\t});\n\t\t\t\telse if (mediaType === \"SVG\") await drawSvgNode(ctx, pass, {\n\t\t\t\t\tsrc: params.sourceUrl,\n\t\t\t\t\tdstRect: {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\theight: containerHeight\n\t\t\t\t\t},\n\t\t\t\t\topacity: Number(op.opacity ?? 1),\n\t\t\t\t\tisHeadless: props.isHeadless\n\t\t\t\t});\n\t\t\t\telse if (mediaType === \"Lottie\") await drawLottieNode(ctx, pass, {\n\t\t\t\t\tsrc: params.sourceUrl,\n\t\t\t\t\tdstRect: {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\theight: containerHeight\n\t\t\t\t\t},\n\t\t\t\t\tframe: segmentLocalFrame + Math.round(accumulatedSeekOffsetSec * fps),\n\t\t\t\t\tfps,\n\t\t\t\t\topacity: Number(op.opacity ?? 1) * Number(props.opacity ?? 1),\n\t\t\t\t\tisHeadless: props.isHeadless,\n\t\t\t\t\tdpr: typeof props.dpr === \"number\" ? props.dpr : typeof op.dpr === \"number\" ? op.dpr : void 0\n\t\t\t\t});\n\t\t\t\telse if (mediaType === \"GIF\") await drawGifNode(ctx, pass, {\n\t\t\t\t\tsrc: params.sourceUrl,\n\t\t\t\t\tdstRect: {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\theight: containerHeight\n\t\t\t\t\t},\n\t\t\t\t\tframe: segmentLocalFrame + Math.round(accumulatedSeekOffsetSec * fps),\n\t\t\t\t\tfps,\n\t\t\t\t\topacity: Number(op.opacity ?? 1) * Number(props.opacity ?? 1),\n\t\t\t\t\tisHeadless: props.isHeadless\n\t\t\t\t});\n\t\t\t\telse if (mediaType === \"Text\") {\n\t\t\t\t\tconst opText = { ...op };\n\t\t\t\t\tdrawParagraphNode(ctx, pass, {\n\t\t\t\t\t\t...paragraphPropsFromTextOp(opText, props, {\n\t\t\t\t\t\t\tcontainerWidth,\n\t\t\t\t\t\t\tcontainerHeight,\n\t\t\t\t\t\t\tframe: localFrame,\n\t\t\t\t\t\t\tfps,\n\t\t\t\t\t\t\tdurationMs: resolvedDurationMs,\n\t\t\t\t\t\t\telapsedMs: resolvedElapsedMs\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tborderRadius: opText.borderRadius != null ? Number(opText.borderRadius) : void 0,\n\t\t\t\t\t\ttextProgress: opText.textProgress != null ? Number(opText.textProgress) : void 0\n\t\t\t\t\t});\n\t\t\t\t} else if (mediaType === \"Video\") {\n\t\t\t\t\tconst finalPlaybackRate = Math.max(.01, (Number(props.playbackRateOverride) || 1) * (Number(params.speed) || 1));\n\t\t\t\t\tconst effectiveTrimSec = Math.max(0, (Number(props.trimStartOverride) || 0) + (Number(params.trimStartSec) || 0) + accumulatedSeekOffsetSec);\n\t\t\t\t\tconst rawTimestampSec = segmentLocalFrame / fps * finalPlaybackRate + effectiveTrimSec;\n\t\t\t\t\tconst timestampSec = Math.max(0, Number.isFinite(rawTimestampSec) ? rawTimestampSec : 0);\n\t\t\t\t\tawait drawVideoNode(ctx, pass, {\n\t\t\t\t\t\tnodeId: props.renderId,\n\t\t\t\t\t\tframeKey: `${props.renderId ?? \"video\"}-${params.sourceUrl}-${Math.round(timestampSec * fps)}`,\n\t\t\t\t\t\tsourceUrl: params.sourceUrl,\n\t\t\t\t\t\ttimestampSec,\n\t\t\t\t\t\tdstRect: {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\t\theight: containerHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\topacity: Number(op.opacity ?? 1) * Number(props.opacity ?? 1),\n\t\t\t\t\t\tisHeadless: props.isHeadless,\n\t\t\t\t\t\tisPlaying: props.isPlaying,\n\t\t\t\t\t\tforceWait: props.forceWait\n\t\t\t\t\t});\n\t\t\t\t} else if (mediaType === \"Caption\") {\n\t\t\t\t\tconst opCap = {\n\t\t\t\t\t\t...op,\n\t\t\t\t\t\t...props\n\t\t\t\t\t};\n\t\t\t\t\tawait drawCaptionNode(ctx, pass, {\n\t\t\t\t\t\trenderId: props.renderId,\n\t\t\t\t\t\tsrc: params.sourceUrl,\n\t\t\t\t\t\tdstRect: {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\t\theight: containerHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\tframe: localFrame,\n\t\t\t\t\t\tfps,\n\t\t\t\t\t\tfontFamily: opCap.fontFamily,\n\t\t\t\t\t\tfontSize: Number(opCap.fontSize ?? 48),\n\t\t\t\t\t\tcolor: opCap.fill ?? opCap.color ?? \"white\",\n\t\t\t\t\t\tlineHeight: Number(opCap.lineHeight ?? 1.2),\n\t\t\t\t\t\talign: opCap.align ?? \"center\",\n\t\t\t\t\t\tdirection: opCap.direction,\n\t\t\t\t\t\ttextAlignVertical: opCap.verticalAlign ?? opCap.textAlignVertical,\n\t\t\t\t\t\tfontWeight: opCap.fontWeight,\n\t\t\t\t\t\tfontStyle: opCap.fontStyle,\n\t\t\t\t\t\tletterSpacing: opCap.letterSpacing,\n\t\t\t\t\t\tshadows: opCap.shadows,\n\t\t\t\t\t\ttextBackgroundColor: opCap.background ?? opCap.textBackgroundColor,\n\t\t\t\t\t\tborderRadius: (opCap.borderRadius ?? opCap.strokeRadius) != null ? Number(opCap.borderRadius ?? opCap.strokeRadius) : void 0,\n\t\t\t\t\t\tstrokeRadius: (opCap.strokeRadius ?? opCap.borderRadius) != null ? Number(opCap.strokeRadius ?? opCap.borderRadius) : void 0,\n\t\t\t\t\t\tstroke: opCap.stroke,\n\t\t\t\t\t\tstrokeWidth: (opCap.strokeWidth ?? opCap.strokeThickness) != null ? Number(opCap.strokeWidth ?? opCap.strokeThickness) : void 0,\n\t\t\t\t\t\tmaxWidth: opCap.maxWidth,\n\t\t\t\t\t\tpadding: opCap.padding != null ? Number(opCap.padding) : void 0,\n\t\t\t\t\t\topacity: Number(opCap.opacity ?? 1) * Number(props.opacity ?? 1),\n\t\t\t\t\t\tisHeadless: props.isHeadless,\n\t\t\t\t\t\tisVideoMode: props.isVideoMode\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (op.op === \"text\") {\n\t\t\tconst opText = { ...op };\n\t\t\tdrawParagraphNode(ctx, pass, {\n\t\t\t\t...paragraphPropsFromTextOp(opText, props, {\n\t\t\t\t\tcontainerWidth: props.containerWidth ?? ctx.surface.width,\n\t\t\t\t\tcontainerHeight: props.containerHeight ?? ctx.surface.height,\n\t\t\t\t\tframe: localFrame,\n\t\t\t\t\tfps,\n\t\t\t\t\tdurationMs: resolvedDurationMs,\n\t\t\t\t\telapsedMs: resolvedElapsedMs\n\t\t\t\t}),\n\t\t\t\trenderId: props.renderId,\n\t\t\t\tspans: opText.spans,\n\t\t\t\tborderRadius: (opText.borderRadius ?? opText.strokeRadius) != null ? Number(opText.borderRadius ?? opText.strokeRadius) : void 0,\n\t\t\t\tstrokeRadius: (opText.strokeRadius ?? opText.borderRadius) != null ? Number(opText.strokeRadius ?? opText.borderRadius) : void 0\n\t\t\t});\n\t\t}\n\t\tpass.end();\n\t}\n\tif (virtualMedia.children && virtualMedia.children.length > 0) for (let i = 0; i < virtualMedia.children.length; i++) {\n\t\tconst child = virtualMedia.children[i];\n\t\tif (child) await drawCompositionTree(ctx, encoder, targetView, targetTexture, targetWidth, targetHeight, child, {\n\t\t\t...props,\n\t\t\tcompositionFrame,\n\t\t\tdurationMs: resolvedDurationMs,\n\t\t\telapsedMs: resolvedElapsedMs,\n\t\t\tvirtualMedia: child,\n\t\t\trenderId: `${props.renderId}-c${i}`\n\t\t}, isCompositor ? 0 : accumulatedSeekOffsetSec, accumulatedClockOffsetSec);\n\t}\n}\n\n//#endregion\n//#region src/compositions/composition-state.ts\nconst DEFAULT_STATE = {\n\tframe: 0,\n\tfps: 30,\n\tisPlaying: false\n};\nvar CompositionStateStore = class {\n\tstates = /* @__PURE__ */ new Map();\n\tlisteners = /* @__PURE__ */ new Map();\n\tsetState(key, frame, fps, isPlaying) {\n\t\tconst current = this.states.get(key);\n\t\tconst resolvedPlaying = isPlaying !== void 0 ? isPlaying : current?.isPlaying ?? false;\n\t\tif (current?.frame === frame && current?.fps === fps && current?.isPlaying === resolvedPlaying) return;\n\t\tthis.states.set(key, {\n\t\t\tframe,\n\t\t\tfps,\n\t\t\tisPlaying: resolvedPlaying\n\t\t});\n\t\tthis.notify(key);\n\t}\n\tgetState(key) {\n\t\tif (this.states.has(key)) return this.states.get(key);\n\t\tfor (const [storeKey, value] of this.states.entries()) if (key.startsWith(storeKey)) return value;\n\t\treturn DEFAULT_STATE;\n\t}\n\tsubscribe(key, listener) {\n\t\tif (!this.listeners.has(key)) this.listeners.set(key, /* @__PURE__ */ new Set());\n\t\tthis.listeners.get(key).add(listener);\n\t\treturn () => {\n\t\t\tconst set = this.listeners.get(key);\n\t\t\tset?.delete(listener);\n\t\t\tif (set?.size === 0) {\n\t\t\t\tthis.listeners.delete(key);\n\t\t\t\tthis.states.delete(key);\n\t\t\t}\n\t\t};\n\t}\n\tclearKey(key) {\n\t\tthis.states.delete(key);\n\t}\n\tnotify(key) {\n\t\tfor (const [listenerKey, set] of this.listeners.entries()) if (listenerKey === key || listenerKey.startsWith(key)) set.forEach((l) => l());\n\t}\n};\nconst compositionStateStore = new CompositionStateStore();\n\n//#endregion\n//#region src/utils/normalization.ts\n/**\n* normalizeTimeline recurses through the virtual media tree and \"absorbs\"\n* generic timeline-shifting operations into standard properties\n* of their children.\n*/\nfunction normalizeTimeline(vv, fps, context = { timeOffsetSec: 0 }) {\n\tif (!vv) return vv;\n\tconst { operation, metadata = {}, children = [] } = vv;\n\tconst { timeOffsetSec, durationLimitMs } = context;\n\tif (!operation) return {\n\t\t...vv,\n\t\tchildren: (children || []).map((child) => normalizeTimeline(child, fps, context))\n\t};\n\tconst timeline = operation.timeline;\n\tconst segments = timeline?.segments || [];\n\tlet totalDurationMs = getActiveMediaMetadata(vv)?.durationMs ?? 0;\n\tif (segments.length > 0) {\n\t\tconst totalSegmentsFrames = segments.reduce((acc, seg) => {\n\t\t\tconst durSec = seg.endSec != null ? seg.endSec - seg.startSec : 0;\n\t\t\treturn acc + Math.max(1, Math.round(durSec * fps));\n\t\t}, 0);\n\t\tif (totalSegmentsFrames > 0) totalDurationMs = totalSegmentsFrames / fps * 1e3;\n\t}\n\tconst newOperation = { ...operation };\n\tconst rawStartFrame = timeline?.startFrame ?? newOperation.startFrame;\n\tif (typeof rawStartFrame === \"number\") newOperation.startFrame = rawStartFrame - secondsToFrames(timeOffsetSec, fps);\n\tconst newMetadata = {\n\t\t...metadata,\n\t\tdurationMs: totalDurationMs\n\t};\n\tconst childContext = typeof rawStartFrame === \"number\" || newOperation.op === \"compose\" ? {\n\t\ttimeOffsetSec: 0,\n\t\tdurationLimitMs: void 0\n\t} : {\n\t\ttimeOffsetSec,\n\t\tdurationLimitMs\n\t};\n\treturn {\n\t\tmetadata: newMetadata,\n\t\toperation: newOperation,\n\t\tchildren: (children || []).map((child) => normalizeTimeline(child, fps, childContext))\n\t};\n}\n\n//#endregion\n//#region src/utils/audio-extractor.ts\nconst verbose = typeof process !== \"undefined\" && /^(debug|trace)$/i.test(process.env?.LOG_LEVEL ?? \"\");\nconst mediaLogger = {\n\tdebug: (msg, ...args) => {\n\t\tif (!verbose) return;\n\t\tif (typeof msg === \"object\" && msg !== null) console.info(\"[AudioExtractor]\", msg, ...args);\n\t\telse console.info(`[AudioExtractor] ${msg}`, ...args);\n\t},\n\twarn: (msg, ...args) => {\n\t\tif (typeof msg === \"object\" && msg !== null) console.warn(\"[AudioExtractor]\", msg, ...args);\n\t\telse console.warn(`[AudioExtractor] ${msg}`, ...args);\n\t},\n\terror: (msg, ...args) => {\n\t\tif (typeof msg === \"object\" && msg !== null) console.error(\"[AudioExtractor]\", msg, ...args);\n\t\telse console.error(`[AudioExtractor] ${msg}`, ...args);\n\t}\n};\nconst yieldToMain = () => {\n\tif (typeof window === \"undefined\") return Promise.resolve();\n\tconst sched = globalThis.scheduler;\n\treturn typeof sched?.yield === \"function\" ? sched.yield() : new Promise((resolve) => setTimeout(resolve, 0));\n};\nconst waitForDelayRender = async (timeoutMs = 3e4) => {\n\tawait new Promise((resolve) => setTimeout(resolve, 100));\n\tconst start = Date.now();\n\treturn new Promise((resolve) => {\n\t\tconst check = () => {\n\t\t\tconst browserHandles = typeof window !== \"undefined\" && window.renderer_delayRenderHandles ? window.renderer_delayRenderHandles : [];\n\t\t\tconst globalDelays = typeof globalThis !== \"undefined\" ? globalThis.__GATEWAI_DELAYS__ : null;\n\t\t\tconst hasBrowserDelays = browserHandles.length > 0;\n\t\t\tconst hasGlobalDelays = globalDelays instanceof Set && globalDelays.size > 0;\n\t\t\tif (!hasBrowserDelays && !hasGlobalDelays) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (Date.now() - start > timeoutMs) {\n\t\t\t\tmediaLogger.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({\n\t\t\t\t\tbrowserHandles,\n\t\t\t\t\tglobalDelays: globalDelays ? Array.from(globalDelays) : []\n\t\t\t\t})}`);\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetTimeout(check, 50);\n\t\t};\n\t\tcheck();\n\t});\n};\n/**\n* Decodes all audio samples from a given source URL into raw Float32 mono/stereo channel buffers.\n*/\nasync function decodeAudioSource(url) {\n\tconst decoded = await decodeAudioRange(url);\n\treturn decoded ? {\n\t\tchannels: decoded.channels,\n\t\tsampleRate: decoded.sampleRate\n\t} : null;\n}\n/**\n* Seconds decoded ahead of a requested range: a compressed stream (MP3, AAC)\n* decoded from mid-file only matches a whole-file decode once the decoder has\n* warmed up on the packets before it.\n*/\nconst DECODE_PREROLL_SEC = .5;\n/**\n* Decodes [range.startSec, range.endSec) of a source (the whole file without\n* a range), so a short clip from a long file decodes only what it plays.\n*/\nasync function decodeAudioRange(url, range) {\n\tmediaLogger.debug(`[AudioExtractor] decodeAudioSource started for url: ${url}`);\n\ttry {\n\t\tif (typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && !(typeof process !== \"undefined\" && process.versions && process.versions.node)) {\n\t\t\tmediaLogger.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${url}...`);\n\t\t\tconst AudioContextClass = window.AudioContext || window.webkitAudioContext;\n\t\t\tif (!AudioContextClass) throw new Error(\"AudioContext is not supported in this browser\");\n\t\t\tconst audioCtx = new AudioContextClass();\n\t\t\ttry {\n\t\t\t\tconst response = await fetch(url);\n\t\t\t\tmediaLogger.debug(`[AudioExtractor] Fetch response status for ${url}: ${response.status} (${response.statusText})`);\n\t\t\t\tif (!response.ok) throw new Error(`Failed to fetch audio source: ${response.statusText}`);\n\t\t\t\tconst arrayBuffer = await response.arrayBuffer();\n\t\t\t\tmediaLogger.debug(`[AudioExtractor] Fetched ${arrayBuffer.byteLength} bytes. Decoding audio data...`);\n\t\t\t\tconst audioBuffer = await audioCtx.decodeAudioData(arrayBuffer);\n\t\t\t\tmediaLogger.debug(`[AudioExtractor] Decoded successfully: ${audioBuffer.numberOfChannels} channels, sampleRate: ${audioBuffer.sampleRate}, duration: ${audioBuffer.duration}s`);\n\t\t\t\tconst channels = [];\n\t\t\t\tfor (let c = 0; c < audioBuffer.numberOfChannels; c++) channels.push(new Float32Array(audioBuffer.getChannelData(c)));\n\t\t\t\treturn {\n\t\t\t\t\tchannels,\n\t\t\t\t\tsampleRate: audioBuffer.sampleRate,\n\t\t\t\t\tstartIndex: 0,\n\t\t\t\t\tvalidFromSec: 0,\n\t\t\t\t\tvalidToSec: Number.POSITIVE_INFINITY\n\t\t\t\t};\n\t\t\t} finally {\n\t\t\t\taudioCtx.close();\n\t\t\t\tmediaLogger.debug(`[AudioExtractor] AudioContext closed for ${url}`);\n\t\t\t}\n\t\t}\n\t\tlet inputAcquired = false;\n\t\ttry {\n\t\t\tmediaLogger.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${url}...`);\n\t\t\tconst input = await inputStore.acquire(url);\n\t\t\tinputAcquired = true;\n\t\t\tmediaLogger.debug(`[AudioExtractor] inputStore acquired. Retrieving primary audio track...`);\n\t\t\tconst track = await input.getPrimaryAudioTrack();\n\t\t\tif (!track) {\n\t\t\t\tmediaLogger.warn(`[AudioExtractor] No primary audio track found in input for ${url}`);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst sink = new AudioSampleSink(track);\n\t\t\tconst decodeFromSec = range ? Math.max(0, range.startSec - DECODE_PREROLL_SEC) : 0;\n\t\t\tconst generator = sink.samples(decodeFromSec, range?.endSec);\n\t\t\tconst decodedPlanes = [];\n\t\t\tlet totalFrames = 0;\n\t\t\tlet sampleRate = 48e3;\n\t\t\tlet numChannels = 1;\n\t\t\tlet firstTimestamp = null;\n\t\t\tmediaLogger.debug(`[AudioExtractor] Starting mediabunny generator loop for ${url}...`);\n\t\t\tfor await (const sample of generator) {\n\t\t\t\tif (firstTimestamp === null) firstTimestamp = sample.timestamp;\n\t\t\t\tsampleRate = sample.sampleRate;\n\t\t\t\tnumChannels = sample.numberOfChannels;\n\t\t\t\tconst sampleFrames = sample.numberOfFrames;\n\t\t\t\tif (decodedPlanes.length === 0) for (let c = 0; c < numChannels; c++) decodedPlanes.push([]);\n\t\t\t\tfor (let c = 0; c < numChannels; c++) {\n\t\t\t\t\tlet planeBuffer;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst allocSize = sample.allocationSize({\n\t\t\t\t\t\t\tplaneIndex: c,\n\t\t\t\t\t\t\tformat: \"f32-planar\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tplaneBuffer = new Float32Array(allocSize / 4);\n\t\t\t\t\t\tsample.copyTo(planeBuffer, {\n\t\t\t\t\t\t\tplaneIndex: c,\n\t\t\t\t\t\t\tformat: \"f32-planar\"\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tconst allocSize = sample.allocationSize({ planeIndex: c });\n\t\t\t\t\t\tif (sample.format === \"s16\" || sample.format === \"s16-planar\") {\n\t\t\t\t\t\t\tconst int16Buffer = new Int16Array(allocSize / 2);\n\t\t\t\t\t\t\tsample.copyTo(int16Buffer, { planeIndex: c });\n\t\t\t\t\t\t\tplaneBuffer = new Float32Array(int16Buffer.length);\n\t\t\t\t\t\t\tfor (let i = 0; i < int16Buffer.length; i++) planeBuffer[i] = (int16Buffer[i] ?? 0) / 32768;\n\t\t\t\t\t\t} else if (sample.format === \"s32\" || sample.format === \"s32-planar\") {\n\t\t\t\t\t\t\tconst int32Buffer = new Int32Array(allocSize / 4);\n\t\t\t\t\t\t\tsample.copyTo(int32Buffer, { planeIndex: c });\n\t\t\t\t\t\t\tplaneBuffer = new Float32Array(int32Buffer.length);\n\t\t\t\t\t\t\tfor (let i = 0; i < int32Buffer.length; i++) planeBuffer[i] = (int32Buffer[i] ?? 0) / 2147483648;\n\t\t\t\t\t\t} else if (sample.format === \"u8\" || sample.format === \"u8-planar\") {\n\t\t\t\t\t\t\tconst u8Buffer = new Uint8Array(allocSize);\n\t\t\t\t\t\t\tsample.copyTo(u8Buffer, { planeIndex: c });\n\t\t\t\t\t\t\tplaneBuffer = new Float32Array(u8Buffer.length);\n\t\t\t\t\t\t\tfor (let i = 0; i < u8Buffer.length; i++) planeBuffer[i] = ((u8Buffer[i] ?? 128) - 128) / 128;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tplaneBuffer = new Float32Array(allocSize / 4);\n\t\t\t\t\t\t\tsample.copyTo(planeBuffer, { planeIndex: c });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdecodedPlanes[c].push(planeBuffer);\n\t\t\t\t}\n\t\t\t\ttotalFrames += sampleFrames;\n\t\t\t\tsample.close();\n\t\t\t}\n\t\t\tmediaLogger.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${totalFrames}`);\n\t\t\tif (totalFrames === 0 || decodedPlanes.length === 0) return null;\n\t\t\tconst channels = decodedPlanes.map((planes) => {\n\t\t\t\tconst merged = new Float32Array(totalFrames);\n\t\t\t\tlet offset = 0;\n\t\t\t\tfor (const plane of planes) {\n\t\t\t\t\tmerged.set(plane, offset);\n\t\t\t\t\toffset += plane.length;\n\t\t\t\t}\n\t\t\t\treturn merged;\n\t\t\t});\n\t\t\tlet startIndex = 0;\n\t\t\tif (decodeFromSec > 0 && firstTimestamp !== null) {\n\t\t\t\tconst origin = await sink.getSample(0);\n\t\t\t\tconst originTimestamp = origin?.timestamp ?? await track.getFirstTimestamp();\n\t\t\t\torigin?.close();\n\t\t\t\tstartIndex = Math.round((firstTimestamp - originTimestamp) * sampleRate);\n\t\t\t}\n\t\t\tconst endedEarly = !range || (startIndex + totalFrames) / sampleRate < range.endSec;\n\t\t\treturn {\n\t\t\t\tchannels,\n\t\t\t\tsampleRate,\n\t\t\t\tstartIndex,\n\t\t\t\tvalidFromSec: decodeFromSec > 0 && range ? range.startSec : 0,\n\t\t\t\tvalidToSec: endedEarly || !range ? Number.POSITIVE_INFINITY : range.endSec\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error && err.message.includes(\"Cannot open local media file\")) throw err;\n\t\t\tif (typeof process !== \"undefined\" && process.versions?.node) try {\n\t\t\t\tconst { execFileSync } = await import(\"node:child_process\");\n\t\t\t\tconst ffStartIndex = range ? Math.round(Math.max(0, range.startSec) * 48e3) : 0;\n\t\t\t\tconst ffStartSec = ffStartIndex / 48e3;\n\t\t\t\tconst stdout = execFileSync(\"ffmpeg\", [\n\t\t\t\t\t\"-v\",\n\t\t\t\t\t\"error\",\n\t\t\t\t\t...ffStartSec > 0 ? [\"-ss\", String(ffStartSec)] : [],\n\t\t\t\t\t\"-i\",\n\t\t\t\t\turl,\n\t\t\t\t\t...range ? [\"-t\", String(range.endSec - ffStartSec)] : [],\n\t\t\t\t\t\"-f\",\n\t\t\t\t\t\"f32le\",\n\t\t\t\t\t\"-ar\",\n\t\t\t\t\t\"48000\",\n\t\t\t\t\t\"-ac\",\n\t\t\t\t\t\"2\",\n\t\t\t\t\t\"pipe:1\"\n\t\t\t\t], { maxBuffer: Number.POSITIVE_INFINITY });\n\t\t\t\tconst totalSamples = stdout.byteLength / 4;\n\t\t\t\tconst numFrames = totalSamples / 2;\n\t\t\t\tconst interleaved = new Float32Array(stdout.buffer, stdout.byteOffset, totalSamples);\n\t\t\t\tconst left = new Float32Array(numFrames);\n\t\t\t\tconst right = new Float32Array(numFrames);\n\t\t\t\tfor (let i = 0; i < numFrames; i++) {\n\t\t\t\t\tleft[i] = interleaved[i * 2];\n\t\t\t\t\tright[i] = interleaved[i * 2 + 1];\n\t\t\t\t}\n\t\t\t\tconst ffEndedEarly = !range || ffStartSec + numFrames / 48e3 < range.endSec;\n\t\t\t\treturn {\n\t\t\t\t\tchannels: [left, right],\n\t\t\t\t\tsampleRate: 48e3,\n\t\t\t\t\tstartIndex: ffStartIndex,\n\t\t\t\t\tvalidFromSec: ffStartSec,\n\t\t\t\t\tvalidToSec: ffEndedEarly || !range ? Number.POSITIVE_INFINITY : range.endSec\n\t\t\t\t};\n\t\t\t} catch (ffmpegErr) {\n\t\t\t\tmediaLogger.warn({ ffmpegErr }, `[AudioExtractor] ffmpeg fallback decode failed for ${url}`);\n\t\t\t}\n\t\t\tmediaLogger.error({ err }, `[AudioExtractor] Failed to decode source ${url}`);\n\t\t\treturn null;\n\t\t} finally {\n\t\t\tif (inputAcquired) inputStore.release(url);\n\t\t}\n\t} catch (err) {\n\t\tif (err instanceof Error && err.message.includes(\"Cannot open local media file\")) throw err;\n\t\tmediaLogger.error({ err }, `[AudioExtractor] Failed to decode source ${url}`);\n\t\treturn null;\n\t}\n}\n/**\n* Resamples a PCM buffer using linear interpolation to target sample rate & speed.\n* `trimOffsetSamples` is a whole-file index; `inputStartIndex` is the\n* whole-file index of `inputChannel[0]` when it holds only a range.\n*/\nasync function resampleAndStretchPCM(inputChannel, sourceSampleRate, targetSampleRate, speed, outputLength, trimOffsetSamples, inputStartIndex = 0) {\n\tconst output = new Float32Array(outputLength);\n\tconst factor = sourceSampleRate / targetSampleRate * speed;\n\tconst YIELD_INTERVAL = 1e5;\n\tfor (let i = 0; i < outputLength; i++) {\n\t\tif (i > 0 && i % YIELD_INTERVAL === 0) await yieldToMain();\n\t\tconst srcIndex = trimOffsetSamples + i * factor - inputStartIndex;\n\t\tconst indexFloor = Math.floor(srcIndex);\n\t\tconst indexCeil = Math.ceil(srcIndex);\n\t\tif (indexFloor < 0) {\n\t\t\toutput[i] = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (indexFloor >= inputChannel.length) break;\n\t\tconst weight = srcIndex - indexFloor;\n\t\tconst sampleFloor = inputChannel[indexFloor] ?? 0;\n\t\tconst val = sampleFloor + weight * ((indexCeil >= 0 && indexCeil < inputChannel.length ? inputChannel[indexCeil] ?? sampleFloor : sampleFloor) - sampleFloor);\n\t\toutput[i] = Number.isFinite(val) ? val : 0;\n\t}\n\treturn output;\n}\n/** Seconds decoded past a clip's last source sample, for interpolation. */\nconst RANGE_MARGIN_SEC = .05;\n/** Processors that only scale what is already there, so silence stays silence. */\nconst GAIN_ONLY_PROCESSORS = new Set([\"Compositor\", \"CompositorLayer\"]);\n/** Adds `src` into `dest` starting at `destStart` (which may be negative). */\nfunction addInto(dest, src, destStart) {\n\tconst from = Math.max(0, -destStart);\n\tconst to = Math.min(src.length, dest.length - destStart);\n\tfor (let i = from; i < to; i++) dest[destStart + i] += src[i];\n}\n/**\n* A node's stereo mix, allocated on first write. A child that covers the\n* whole bus while it is still silent is taken over instead of copied (adding\n* into silence changes nothing), so a chain of single-child nodes passes one\n* buffer up instead of allocating and summing a full-length copy per level.\n*/\nvar MixBus = class {\n\tchannels = null;\n\tconstructor(length) {\n\t\tthis.length = length;\n\t}\n\t/** The bus channels, allocated (silent) if nothing was written yet. */\n\tget() {\n\t\tthis.channels ??= [new Float32Array(this.length), new Float32Array(this.length)];\n\t\treturn this.channels;\n\t}\n\t/** Whether `src` written at `start` could replace the bus outright. */\n\tcanAdopt(src, start) {\n\t\treturn this.channels === null && start === 0 && src.every((ch) => ch.length === this.length);\n\t}\n\t/** Mixes `src` into the bus starting at sample `start`. */\n\tadd(src, start) {\n\t\tif (this.canAdopt(src, start) && src[0] !== src[1]) {\n\t\t\tthis.channels = src;\n\t\t\treturn;\n\t\t}\n\t\tconst dest = this.get();\n\t\tfor (let c = 0; c < 2; c++) addInto(dest[c], src[c], start);\n\t}\n};\n/** A clip's file name for progress, without paths or signed-URL queries. */\nfunction sourceLabel(url) {\n\tif (url.startsWith(\"data:\")) return \"inline audio\";\n\tconst name = url.split(/[?#]/)[0].split(/[\\\\/]/).pop();\n\treturn name ? decodeURIComponentSafe(name) : \"audio\";\n}\nfunction decodeURIComponentSafe(s) {\n\ttry {\n\t\treturn decodeURIComponent(s);\n\t} catch {\n\t\treturn s;\n\t}\n}\n/**\n* Recursively parses the VirtualMediaData tree and mixes all active audio tracks\n* into a single unified stereo PCM stream (Float32Array channels).\n*/\nasync function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device, renderId, options = {}) {\n\tmediaLogger.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${fps}, targetSampleRate: ${targetSampleRate}`);\n\tawait waitForDelayRender();\n\tshaderStore.registerSignalsFromComposition(renderId, virtualMedia);\n\tconst durationMs = getActiveMediaMetadata(virtualMedia)?.durationMs || 1e3;\n\tconst totalDurationSec = durationMs / 1e3;\n\tconst totalTargetSamples = Math.ceil(totalDurationSec * targetSampleRate);\n\tmediaLogger.debug(`[AudioExtractor] Composition total duration: ${durationMs}ms (${totalDurationSec}s). Total mixed samples to allocate: ${totalTargetSamples}`);\n\tconst decodedCache = /* @__PURE__ */ new Map();\n\tconst undecodable = /* @__PURE__ */ new Set();\n\tasync function getDecodedRange(url, startSec, endSec) {\n\t\tif (undecodable.has(url)) return null;\n\t\tlet ranges = decodedCache.get(url);\n\t\tconst hit = ranges?.find((r) => r.validFromSec <= startSec && r.validToSec >= endSec);\n\t\tif (hit) return hit;\n\t\tconst decoded = await decodeAudioRange(url, {\n\t\t\tstartSec,\n\t\t\tendSec\n\t\t});\n\t\tif (!decoded) {\n\t\t\tundecodable.add(url);\n\t\t\treturn null;\n\t\t}\n\t\tif (!ranges) {\n\t\t\tranges = [];\n\t\t\tdecodedCache.set(url, ranges);\n\t\t}\n\t\tranges.push(decoded);\n\t\treturn decoded;\n\t}\n\tconst audibleCache = /* @__PURE__ */ new WeakMap();\n\tfunction isAudible(node) {\n\t\tconst cached = audibleCache.get(node);\n\t\tif (cached !== void 0) return cached;\n\t\tconst op = node.operation;\n\t\tlet audible = false;\n\t\tif (op?.op === \"source\") {\n\t\t\tconst mediaType = getMediaType(node);\n\t\t\taudible = mediaType === \"Audio\" || mediaType === \"Video\";\n\t\t} else if (op?.op && !GAIN_ONLY_PROCESSORS.has(op.op) && audioRegistry.get(op.op)) audible = true;\n\t\tif (!audible && node.children) audible = node.children.some((child) => child && isAudible(child));\n\t\taudibleCache.set(node, audible);\n\t\treturn audible;\n\t}\n\tasync function traverse(node, inheritedSeekSec, inheritedClockFrames, inheritedVolume, inheritedSpeed, inheritedDurationFrames) {\n\t\tif (!node || !isAudible(node)) return null;\n\t\tconst op = node.operation;\n\t\tif (!op) {\n\t\t\tconst durationMs$1 = getActiveMediaMetadata(node)?.durationMs ?? 0;\n\t\t\tconst durationFrames = Math.round(durationMs$1 / 1e3 * fps);\n\t\t\tconst actualDurationFrames = inheritedDurationFrames !== null ? durationFrames > 0 ? Math.min(inheritedDurationFrames, durationFrames) : inheritedDurationFrames : durationFrames;\n\t\t\tconst localSamplesCount$1 = Math.ceil(actualDurationFrames / fps * targetSampleRate);\n\t\t\tif (localSamplesCount$1 <= 0) return null;\n\t\t\tconst bus$1 = new MixBus(localSamplesCount$1);\n\t\t\tfor (const child of node.children) {\n\t\t\t\tconst childChannels = await traverse(child, inheritedSeekSec, inheritedClockFrames, inheritedVolume, inheritedSpeed, actualDurationFrames);\n\t\t\t\tif (childChannels) {\n\t\t\t\t\tconst childOp = child.operation;\n\t\t\t\t\tconst childStartFrame = childOp?.startFrame ?? childOp?.timeline?.startFrame ?? 0;\n\t\t\t\t\tconst childStartSample = Math.round(childStartFrame / fps * targetSampleRate);\n\t\t\t\t\tbus$1.add(childChannels, childStartSample);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn bus$1.channels;\n\t\t}\n\t\tconst volume = inheritedVolume * (op.volume ?? 1) * (op.opacity === 0 ? 0 : 1) * (op.muted ? 0 : 1);\n\t\tconst speedMultiplier = inheritedSpeed;\n\t\tconst localClockFrames = inheritedClockFrames + (op.startFrame ?? op.timeline?.startFrame ?? 0);\n\t\tconst segments = op.timeline?.segments || [];\n\t\tconst layer = op;\n\t\tconst layerTrimSec = layer.op === \"CompositorLayer\" ? (layer.mediaStartFrame ?? layer.trimStartFrames ?? null) !== null ? (layer.mediaStartFrame ?? layer.trimStartFrames ?? 0) / fps : Math.round((layer.trimStartSec ?? 0) * fps) / fps : 0;\n\t\tconst nodeDurationMs = getActiveMediaMetadata(node)?.durationMs ?? 0;\n\t\tconst nodeDurationFrames = Math.round(nodeDurationMs / 1e3 * fps);\n\t\tconst nodeActualDurationFrames = inheritedDurationFrames !== null ? nodeDurationFrames > 0 ? Math.min(inheritedDurationFrames, nodeDurationFrames) : inheritedDurationFrames : nodeDurationFrames;\n\t\tconst localSamplesCount = Math.ceil(nodeActualDurationFrames / fps * targetSampleRate);\n\t\tif (localSamplesCount <= 0) return null;\n\t\tconst bus = new MixBus(localSamplesCount);\n\t\tconst processSegment = async (seg, windowStartFrameOffset) => {\n\t\t\tconst segSeekSec = seg ? seg.startSec : 0;\n\t\t\tconst totalSeekSec = inheritedSeekSec + layerTrimSec + segSeekSec;\n\t\t\tconst totalClockFrames = localClockFrames + windowStartFrameOffset;\n\t\t\tlet segDurationFrames = 0;\n\t\t\tif (seg) segDurationFrames = Math.max(1, Math.round(((seg.endSec ?? 0) - seg.startSec) * fps));\n\t\t\telse segDurationFrames = nodeDurationFrames;\n\t\t\tconst actualDurationFrames = inheritedDurationFrames !== null ? Math.min(inheritedDurationFrames, segDurationFrames) : segDurationFrames;\n\t\t\tconst segmentStartSample = Math.round(windowStartFrameOffset / fps * targetSampleRate);\n\t\t\tif (op.op === \"source\") {\n\t\t\t\tconst mediaType = getMediaType(node);\n\t\t\t\tconst params = computeRenderParams(node);\n\t\t\t\tif (params.sourceUrl && (mediaType === \"Audio\" || mediaType === \"Video\") && volume > 0) {\n\t\t\t\t\tconst finalSpeed = Math.max(.5, speedMultiplier * (Number(params.speed) || 1));\n\t\t\t\t\tconst effectiveTrimSec = Math.max(0, (Number(params.trimStartSec) || 0) + totalSeekSec);\n\t\t\t\t\tconst clipDurationSec = actualDurationFrames / fps;\n\t\t\t\t\tconst clipSamplesCount = Math.min(localSamplesCount - segmentStartSample, Math.ceil(clipDurationSec * targetSampleRate));\n\t\t\t\t\tconst decoded = clipSamplesCount > 0 && segmentStartSample < localSamplesCount ? await getDecodedRange(params.sourceUrl, effectiveTrimSec, effectiveTrimSec + clipSamplesCount / targetSampleRate * finalSpeed + RANGE_MARGIN_SEC) : null;\n\t\t\t\t\tif (decoded) {\n\t\t\t\t\t\tconst trimOffsetSamples = Math.round(effectiveTrimSec * decoded.sampleRate);\n\t\t\t\t\t\tconst stretchedLeft = await resampleAndStretchPCM(decoded.channels[0], decoded.sampleRate, targetSampleRate, finalSpeed, clipSamplesCount, trimOffsetSamples, decoded.startIndex);\n\t\t\t\t\t\tconst stretchedRight = decoded.channels.length > 1 ? await resampleAndStretchPCM(decoded.channels[1], decoded.sampleRate, targetSampleRate, finalSpeed, clipSamplesCount, trimOffsetSamples, decoded.startIndex) : stretchedLeft;\n\t\t\t\t\t\tconst stretched = [stretchedLeft, stretchedRight];\n\t\t\t\t\t\tif (bus.canAdopt(stretched, segmentStartSample)) {\n\t\t\t\t\t\t\tif (volume !== 1) {\n\t\t\t\t\t\t\t\tfor (let i = 0; i < clipSamplesCount; i++) stretchedLeft[i] *= volume;\n\t\t\t\t\t\t\t\tif (stretchedRight !== stretchedLeft) for (let i = 0; i < clipSamplesCount; i++) stretchedRight[i] *= volume;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbus.channels = [stretchedLeft, stretchedRight === stretchedLeft ? stretchedLeft.slice() : stretchedRight];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst [localLeft, localRight] = bus.get();\n\t\t\t\t\t\t\tfor (let i = 0; i < clipSamplesCount; i++) {\n\t\t\t\t\t\t\t\tconst outIndex = segmentStartSample + i;\n\t\t\t\t\t\t\t\tlocalLeft[outIndex] += stretchedLeft[i] * volume;\n\t\t\t\t\t\t\t\tlocalRight[outIndex] += stretchedRight[i] * volume;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tawait yieldToMain();\n\t\t\t\t}\n\t\t\t\tif (mediaType === \"Audio\" || mediaType === \"Video\") {\n\t\t\t\t\tclipsDone++;\n\t\t\t\t\toptions.onProgress?.({\n\t\t\t\t\t\tdone: clipsDone,\n\t\t\t\t\t\ttotal: clipsTotal,\n\t\t\t\t\t\t...params.sourceUrl && { source: sourceLabel(params.sourceUrl) }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (node.children) for (const child of node.children) {\n\t\t\t\tconst childChannels = await traverse(child, totalSeekSec, totalClockFrames, volume, speedMultiplier, actualDurationFrames);\n\t\t\t\tif (childChannels) {\n\t\t\t\t\tconst childOp = child.operation;\n\t\t\t\t\tconst childStartFrame = childOp?.startFrame ?? childOp?.timeline?.startFrame ?? 0;\n\t\t\t\t\tconst childStartSample = Math.round(childStartFrame / fps * targetSampleRate);\n\t\t\t\t\tbus.add(childChannels, segmentStartSample + childStartSample);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst pluginProcessor = audioRegistry.get(op.op);\n\t\t\tif (pluginProcessor) try {\n\t\t\t\tconst clipDurationSec = actualDurationFrames / fps;\n\t\t\t\tconst clipSamplesCount = Math.min(localSamplesCount - segmentStartSample, Math.ceil(clipDurationSec * targetSampleRate));\n\t\t\t\tif (clipSamplesCount > 0 && segmentStartSample < localSamplesCount && segmentStartSample >= 0) await pluginProcessor(bus.get().map((ch) => ch.subarray(segmentStartSample, segmentStartSample + clipSamplesCount)), targetSampleRate, node, {\n\t\t\t\t\tdevice,\n\t\t\t\t\tframe: totalClockFrames,\n\t\t\t\t\tfps,\n\t\t\t\t\trenderId,\n\t\t\t\t\telapsedMs: ((totalClockFrames - (op.op === \"CompositorLayer\" ? localClockFrames : 0)) / fps + totalSeekSec - layerTrimSec) * 1e3,\n\t\t\t\t\tdurationMs: getActiveMediaMetadata(node)?.durationMs ?? void 0\n\t\t\t\t});\n\t\t\t} catch (pluginErr) {\n\t\t\t\tmediaLogger.error({ err: pluginErr }, `[AudioExtractor] Custom plugin for operation '${op.op}' failed`);\n\t\t\t}\n\t\t};\n\t\tif (segments.length > 0) {\n\t\t\tlet currentStart = 0;\n\t\t\tfor (const seg of segments) {\n\t\t\t\tconst durSec = (seg.endSec ?? 0) - seg.startSec;\n\t\t\t\tconst durFrames = Math.max(1, Math.round(durSec * fps));\n\t\t\t\tawait processSegment(seg, currentStart);\n\t\t\t\tcurrentStart += durFrames;\n\t\t\t}\n\t\t} else await processSegment(null, 0);\n\t\treturn bus.channels;\n\t}\n\tconst normalized = normalizeTimeline(virtualMedia, fps);\n\tlet clipsTotal = 0;\n\tlet clipsDone = 0;\n\tif (options.onProgress) {\n\t\tconst count = (node) => {\n\t\t\tif (!node) return;\n\t\t\tconst op = node.operation;\n\t\t\tif (op?.op === \"source\") {\n\t\t\t\tconst mediaType = getMediaType(node);\n\t\t\t\tif (mediaType === \"Audio\" || mediaType === \"Video\") clipsTotal += Math.max(1, op.timeline?.segments?.length ?? 0);\n\t\t\t}\n\t\t\tfor (const child of node.children ?? []) count(child);\n\t\t};\n\t\tcount(normalized);\n\t\toptions.onProgress({\n\t\t\tdone: 0,\n\t\t\ttotal: clipsTotal\n\t\t});\n\t}\n\tconst rootChannels = await traverse(normalized, 0, 0, 1, 1, null);\n\tconst mixedChannels = rootChannels?.every((ch) => ch.length === totalTargetSamples) && rootChannels[0] !== rootChannels[1] ? rootChannels : [new Float32Array(totalTargetSamples), new Float32Array(totalTargetSamples)];\n\tconst [outputLeft, outputRight] = mixedChannels;\n\tif (rootChannels && mixedChannels !== rootChannels) for (let c = 0; c < 2; c++) {\n\t\tconst dest = mixedChannels[c];\n\t\tconst src = rootChannels[c];\n\t\tconst len = Math.min(src.length, dest.length);\n\t\tfor (let i = 0; i < len; i++) dest[i] = src[i];\n\t}\n\tdecodedCache.clear();\n\tlet mixPeak = 0;\n\tfor (let i = 0; i < totalTargetSamples; i++) {\n\t\tconst l = Math.abs(outputLeft[i] ?? 0);\n\t\tconst r = Math.abs(outputRight[i] ?? 0);\n\t\tif (l > mixPeak) mixPeak = l;\n\t\tif (r > mixPeak) mixPeak = r;\n\t}\n\tconst autoGain = mixPeak > .95 ? .92 / mixPeak : 1;\n\tfor (let i = 0; i < totalTargetSamples; i++) {\n\t\tconst l = (outputLeft[i] ?? 0) * autoGain;\n\t\tconst r = (outputRight[i] ?? 0) * autoGain;\n\t\toutputLeft[i] = Number.isFinite(l) ? Math.tanh(l) : 0;\n\t\toutputRight[i] = Number.isFinite(r) ? Math.tanh(r) : 0;\n\t}\n\treturn {\n\t\tchannels: mixedChannels,\n\t\tsampleRate: targetSampleRate\n\t};\n}\n\n//#endregion\nexport { calculateLayerTransform, compositionStateStore, computeRenderParams, decodeAudioSource, drawCompositionTree, formatTimecode, framesToSeconds, isStaticVisualMedia, mixAudioTracks, normalizeTimeline, resolveLayerDuration, secondsToFrames };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
package/dist/effects/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../index-
|
|
2
|
-
import "../
|
|
3
|
-
import {
|
|
4
|
-
import { i as _default$
|
|
5
|
-
export { ApplyLUT, ApplyLUTProps, Ascii, AsciiProps, AudioCompressor, AudioCompressorProps, AudioDelay, AudioDelayProps, AudioFade, AudioFadeProps, AudioNoiseGate, AudioNoiseGateProps, AudioParametricEq, AudioParametricEqProps, AudioReverb, AudioReverbProps, AudioSignalExtractor, AudioSignalExtractorProps, Blur, BlurProps, CRT, CRTProps, CameraParallax3D, CameraParallax3DProps, ChannelMerger, ChannelMergerProps, ChannelSplitter, ChannelSplitterProps, ColorBalance, ColorBalanceProps, ColorKey, ColorKeyProps, Contour, ContourProps, CornerPin, CornerPinPointsItem, CornerPinProps, Crop, CropProps, Curves, CurvesChannelPoint, CurvesProps, CustomEffect, Datamosh, DatamoshProps, DeflickerProps, DepthOfField, DepthOfFieldProps, DisplacementMap, DisplacementMapProps, Dither, DitherProps, EffectProp, ExtractLUT, ExtractLUTProps, FilmGrain, FilmGrainProps, Flip, FlipProps, Gooey, GooeyProps, GradientMap, GradientMapProps, GradientMapStop, HalftoneDotShape, HalftoneMode, HalftoneScreen, HalftoneScreenProps, HighPass, HighPassProps, Iridescence, IridescenceProps, Kaleidoscope, KaleidoscopeProps, KenBurns, KenBurnsKeyframesItem, KenBurnsProps, LayerStyle, LayerStyleBevelEmboss, LayerStyleColorOverlay, LayerStyleDropShadow, LayerStyleInnerGlow, LayerStyleInnerShadow, LayerStyleOuterGlow, LayerStyleProps, LayerStyleStroke, LevelChannel, Levels, LevelsProps, Liquify, LiquifyOperationsItem, LiquifyProps, MaskMath, MaskMathProps, MeshWarp, MeshWarpPointsItem, MeshWarpProps, Modulate, ModulateProps, MotionBlur, MotionBlurProps, NoiseGenerator, NoiseGeneratorProps, OpArt, OpArtProps, PBRGlass, PBRGlassProps, Paint, PaintProps, PaintStrokesItemOption1, PaintStrokesItemOption2, PaintStrokesItemOption3, Painterly, PainterlyProps, PatchHeal, PatchHealPatchesItem, PatchHealProps, Pixelate, PixelateProps, Posterize, PosterizeProps, ProceduralVFX, ProceduralVFXProps, RGBSplit, RGBSplitProps, RefineEdge, RefineEdgeProps, RefractionCaustics3D, RefractionCaustics3DProps, Relight3D, Relight3DProps, ResizerScaler, ResizerScalerProps, Rotate, RotateProps, SSAO, SSAOProps, SelectiveColor, SelectiveColorAdjustment, SelectiveColorProps, ShadowsHighlights, ShadowsHighlightsProps, StereoPanning, StereoPanningProps, TemporalDeflicker, TileOffset, TileOffsetEdgeMode, TileOffsetProps, TonalShift, Toon, ToonProps, Trails, TrailsProps, UnsharpMask, UnsharpMaskProps, Vignette, VignetteProps, Vision, VisionProps, _default as applyLutRenderer, _default$1 as blurRenderer, _default$2 as colorBalanceRenderer, _default$3 as colorkeyRenderer, _default$4 as cornerPinRenderer, _default$5 as cropRenderer, rendererNode as curvesRenderer, _default$6 as deflickerRenderer, _default$7 as displacementMapRenderer, effectFactories, effectMeta, _default$8 as filmGrainRenderer, _default$9 as flipRenderer, _default$10 as gradientMapRenderer, _default$11 as halftoneScreenRenderer, _default$12 as highPassRenderer, _default$13 as kenBurnsRenderer, _default$14 as layerStyleRenderer, _default$15 as levelsRenderer, _default$16 as liquifyRenderer, _default$17 as maskMathRenderer, _default$18 as meshWarpRenderer, _default$19 as modulateRenderer, _default$20 as paintRenderer, _default$21 as patchHealRenderer, _default$22 as refineEdgeRenderer, _default$23 as refractionCausticsRenderer, _default$24 as relight3dRenderer, _default$25 as rotateRenderer, _default$26 as selectiveColorRenderer, _default$27 as shadowsHighlightsRenderer, _default$28 as tileOffsetRenderer, _default$29 as unsharpMaskRenderer, _default$30 as vignetteRenderer, _default$31 as visionRenderer };
|
|
1
|
+
import "../index-fymoeGNW.mjs";
|
|
2
|
+
import "../renderer-COXKPofU.mjs";
|
|
3
|
+
import { i as _default$19 } from "../audio-C1A4N3Wh.mjs";
|
|
4
|
+
import { $ as TileOffsetEdgeMode, $n as ResizerScalerProps, $t as FlipProps, A as HandWrittenVisualEffect, An as Paint, Ar as _default$13, At as CameraParallax3DProps, B as PBRGlass, Bn as Pixelate, Br as _default$4, Bt as ContourProps, C as GradientMapProps, Cn as MeshWarp, Cr as _default$20, Ct as AudioParametricEq, D as HalftoneScreen, Dn as NoiseGeneratorProps, Dr as _default$16, Dt as CRT, E as HalftoneMode, En as NoiseGenerator, Er as _default, Et as AudioReverbProps, F as LevelsProps, Fn as Painterly, Fr as _default$8, Ft as ColorBalance, G as SSAOProps, Gn as ProceduralVFXProps, Gt as DatamoshProps, H as Relight3D, Hn as Posterize, Hr as _default$2, Ht as CornerPinPointsItem, I as Modulate, In as PainterlyProps, Ir as _default$7, It as ColorBalanceProps, J as SelectiveColorProps, Jn as RefineEdge, Jt as Dither, K as SelectiveColor, Kn as RGBSplit, Kt as DisplacementMap, L as ModulateProps, Ln as PatchHeal, Lr as _default$6, Lt as ColorKey, M as HighPassProps, Mn as PaintStrokesItemOption1, Mr as _default$11, Mt as ChannelMergerProps, N as LevelChannel, Nn as PaintStrokesItemOption2, Nr as _default$10, Nt as ChannelSplitter, O as HalftoneScreenProps, On as OpArt, Or as _default$15, Ot as CRTProps, P as Levels, Pn as PaintStrokesItemOption3, Pr as _default$9, Pt as ChannelSplitterProps, Q as TileOffset, Qn as ResizerScaler, Qt as Flip, R as MotionBlur, Rn as PatchHealPatchesItem, Rr as rendererNode, Rt as ColorKeyProps, S as GradientMap, Sn as MaskMathProps, Sr as _default$21, St as AudioNoiseGateProps, T as HalftoneDotShape, Tn as MeshWarpProps, Tr as _default$17, Tt as AudioReverb, U as Relight3DProps, Un as PosterizeProps, Ur as _default$1, Ut as CornerPinProps, V as PBRGlassProps, Vn as PixelateProps, Vr as _default$3, Vt as CornerPin, W as SSAO, Wn as ProceduralVFX, Wt as Datamosh, X as ShadowsHighlightsProps, Xn as RefractionCaustics3D, Xt as ExtractLUT, Y as ShadowsHighlights, Yn as RefineEdgeProps, Yt as DitherProps, Z as TemporalDeflicker, Zn as RefractionCaustics3DProps, Zt as ExtractLUTProps, _ as EffectConfigMap, _n as LayerStyleStroke, _r as _default$26, _t as AudioDelay, a as ApplyLUTProps, an as KaleidoscopeProps, ar as Toon, at as AnyGeneratedAudioEffect, b as FilmGrain, bn as LiquifyProps, br as _default$23, bt as AudioFadeProps, c as Crop, cn as KenBurnsProps, cr as TrailsProps, ct as GeneratedEffectConfigMap, d as CurvesChannelPoint, dn as LayerStyleColorOverlay, dr as EffectProp, dt as Blur, en as Gooey, er as Rotate, et as TileOffsetProps, f as CurvesProps, fn as LayerStyleDropShadow, fr as _default$31, ft as BlurProps, g as DepthOfFieldProps, gn as LayerStyleProps, gr as _default$27, gt as AudioCompressorProps, h as DepthOfField, hn as LayerStyleOuterGlow, hr as _default$28, ht as AudioCompressor, i as ApplyLUT, in as Kaleidoscope, ir as TonalShift, it as VisionProps, j as HighPass, jn as PaintProps, jr as _default$12, jt as ChannelMerger, k as HandWrittenAudioEffect, kn as OpArtProps, kr as _default$14, kt as CameraParallax3D, l as CropProps, ln as LayerStyle, lr as Vignette, lt as effectFactories, m as DeflickerProps, mn as LayerStyleInnerShadow, mr as _default$29, mt as AsciiProps, n as AnyEffect, nn as Iridescence, nr as StereoPanning, nt as UnsharpMaskProps, o as AudioSignalExtractor, on as KenBurns, or as ToonProps, ot as AnyGeneratedEffect, p as CustomEffect, pn as LayerStyleInnerGlow, pr as _default$30, pt as Ascii, q as SelectiveColorAdjustment, qn as RGBSplitProps, qt as DisplacementMapProps, r as AnyVisualEffect, rn as IridescenceProps, rr as StereoPanningProps, rt as Vision, s as AudioSignalExtractorProps, sn as KenBurnsKeyframesItem, sr as Trails, st as AnyGeneratedVisualEffect, t as AnyAudioEffect, tn as GooeyProps, tr as RotateProps, tt as UnsharpMask, u as Curves, un as LayerStyleBevelEmboss, ur as VignetteProps, ut as effectMeta, v as EffectOp, vn as Liquify, vr as _default$24, vt as AudioDelayProps, w as GradientMapStop, wn as MeshWarpPointsItem, wr as _default$18, wt as AudioParametricEqProps, x as FilmGrainProps, xn as MaskMath, xr as _default$22, xt as AudioNoiseGate, y as EffectPropsFor, yn as LiquifyOperationsItem, yr as _default$25, yt as AudioFade, z as MotionBlurProps, zn as PatchHealProps, zr as _default$5, zt as Contour } from "../index-D6-lH1Mx.mjs";
|
|
5
|
+
export { AnyAudioEffect, AnyEffect, AnyGeneratedAudioEffect, AnyGeneratedEffect, AnyGeneratedVisualEffect, AnyVisualEffect, ApplyLUT, ApplyLUTProps, Ascii, AsciiProps, AudioCompressor, AudioCompressorProps, AudioDelay, AudioDelayProps, AudioFade, AudioFadeProps, AudioNoiseGate, AudioNoiseGateProps, AudioParametricEq, AudioParametricEqProps, AudioReverb, AudioReverbProps, AudioSignalExtractor, AudioSignalExtractorProps, Blur, BlurProps, CRT, CRTProps, CameraParallax3D, CameraParallax3DProps, ChannelMerger, ChannelMergerProps, ChannelSplitter, ChannelSplitterProps, ColorBalance, ColorBalanceProps, ColorKey, ColorKeyProps, Contour, ContourProps, CornerPin, CornerPinPointsItem, CornerPinProps, Crop, CropProps, Curves, CurvesChannelPoint, CurvesProps, CustomEffect, Datamosh, DatamoshProps, DeflickerProps, DepthOfField, DepthOfFieldProps, DisplacementMap, DisplacementMapProps, Dither, DitherProps, EffectConfigMap, EffectOp, EffectProp, EffectPropsFor, ExtractLUT, ExtractLUTProps, FilmGrain, FilmGrainProps, Flip, FlipProps, GeneratedEffectConfigMap, Gooey, GooeyProps, GradientMap, GradientMapProps, GradientMapStop, HalftoneDotShape, HalftoneMode, HalftoneScreen, HalftoneScreenProps, HandWrittenAudioEffect, HandWrittenVisualEffect, HighPass, HighPassProps, Iridescence, IridescenceProps, Kaleidoscope, KaleidoscopeProps, KenBurns, KenBurnsKeyframesItem, KenBurnsProps, LayerStyle, LayerStyleBevelEmboss, LayerStyleColorOverlay, LayerStyleDropShadow, LayerStyleInnerGlow, LayerStyleInnerShadow, LayerStyleOuterGlow, LayerStyleProps, LayerStyleStroke, LevelChannel, Levels, LevelsProps, Liquify, LiquifyOperationsItem, LiquifyProps, MaskMath, MaskMathProps, MeshWarp, MeshWarpPointsItem, MeshWarpProps, Modulate, ModulateProps, MotionBlur, MotionBlurProps, NoiseGenerator, NoiseGeneratorProps, OpArt, OpArtProps, PBRGlass, PBRGlassProps, Paint, PaintProps, PaintStrokesItemOption1, PaintStrokesItemOption2, PaintStrokesItemOption3, Painterly, PainterlyProps, PatchHeal, PatchHealPatchesItem, PatchHealProps, Pixelate, PixelateProps, Posterize, PosterizeProps, ProceduralVFX, ProceduralVFXProps, RGBSplit, RGBSplitProps, RefineEdge, RefineEdgeProps, RefractionCaustics3D, RefractionCaustics3DProps, Relight3D, Relight3DProps, ResizerScaler, ResizerScalerProps, Rotate, RotateProps, SSAO, SSAOProps, SelectiveColor, SelectiveColorAdjustment, SelectiveColorProps, ShadowsHighlights, ShadowsHighlightsProps, StereoPanning, StereoPanningProps, TemporalDeflicker, TileOffset, TileOffsetEdgeMode, TileOffsetProps, TonalShift, Toon, ToonProps, Trails, TrailsProps, UnsharpMask, UnsharpMaskProps, Vignette, VignetteProps, Vision, VisionProps, _default as applyLutRenderer, _default$1 as blurRenderer, _default$2 as colorBalanceRenderer, _default$3 as colorkeyRenderer, _default$4 as cornerPinRenderer, _default$5 as cropRenderer, rendererNode as curvesRenderer, _default$6 as deflickerRenderer, _default$7 as displacementMapRenderer, effectFactories, effectMeta, _default$8 as filmGrainRenderer, _default$9 as flipRenderer, _default$10 as gradientMapRenderer, _default$11 as halftoneScreenRenderer, _default$12 as highPassRenderer, _default$13 as kenBurnsRenderer, _default$14 as layerStyleRenderer, _default$15 as levelsRenderer, _default$16 as liquifyRenderer, _default$17 as maskMathRenderer, _default$18 as meshWarpRenderer, _default$19 as modulateRenderer, _default$20 as paintRenderer, _default$21 as patchHealRenderer, _default$22 as refineEdgeRenderer, _default$23 as refractionCausticsRenderer, _default$24 as relight3dRenderer, _default$25 as rotateRenderer, _default$26 as selectiveColorRenderer, _default$27 as shadowsHighlightsRenderer, _default$28 as tileOffsetRenderer, _default$29 as unsharpMaskRenderer, _default$30 as vignetteRenderer, _default$31 as visionRenderer };
|
package/dist/effects/index.mjs
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import "../chunk-
|
|
2
|
-
import "../dist-
|
|
3
|
-
import { t as renderers_default$20 } from "../renderer-
|
|
4
|
-
import { t as renderers_default$32 } from "../renderer-
|
|
5
|
-
import { t as renderers_default$1 } from "../renderer-
|
|
6
|
-
import { n as renderers_default$2 } from "../renderer-
|
|
7
|
-
import { t as renderers_default$3 } from "../renderer-
|
|
8
|
-
import { t as renderers_default$4 } from "../renderer-
|
|
9
|
-
import { t as renderers_default$5 } from "../renderer-
|
|
10
|
-
import { n as renderers_default$6 } from "../renderer-
|
|
11
|
-
import { t as renderers_default$7 } from "../renderer-
|
|
12
|
-
import { t as renderers_default$8 } from "../renderer-
|
|
13
|
-
import { t as renderers_default$9 } from "../renderer-
|
|
14
|
-
import { t as renderers_default$10 } from "../renderer-
|
|
15
|
-
import { n as renderers_default$11 } from "../renderer-
|
|
16
|
-
import { t as renderers_default$12 } from "../renderer-
|
|
17
|
-
import { t as renderers_default$13 } from "../renderer-
|
|
18
|
-
import { t as renderers_default$14 } from "../renderer-
|
|
19
|
-
import { t as renderers_default$15 } from "../renderer-
|
|
20
|
-
import { t as renderers_default$16 } from "../renderer-
|
|
21
|
-
import { n as renderers_default$17 } from "../renderer-
|
|
22
|
-
import { t as renderers_default } from "../renderer-
|
|
23
|
-
import { n as renderers_default$18 } from "../renderer-
|
|
24
|
-
import { t as renderers_default$19 } from "../renderer-
|
|
25
|
-
import { t as renderers_default$21 } from "../renderer-
|
|
26
|
-
import { n as renderers_default$22 } from "../renderer-
|
|
27
|
-
import { n as renderers_default$23 } from "../renderer-
|
|
28
|
-
import { n as renderers_default$24 } from "../renderer-
|
|
29
|
-
import { t as renderers_default$26 } from "../renderer-
|
|
30
|
-
import { t as renderers_default$25 } from "../renderer-
|
|
31
|
-
import { t as renderers_default$27 } from "../renderer-
|
|
32
|
-
import { n as renderers_default$28 } from "../renderer-
|
|
33
|
-
import { t as renderers_default$29 } from "../renderer-
|
|
34
|
-
import { t as renderers_default$30 } from "../renderer-
|
|
35
|
-
import { t as renderers_default$31 } from "../renderer-
|
|
36
|
-
import { $ as NoiseGenerator, A as AudioParametricEq, B as Datamosh, C as effectFactories, D as AudioDelay, E as AudioCompressor, F as ChannelSplitter, G as Gooey, H as Dither, I as ColorBalance, J as KenBurns, K as Iridescence, L as ColorKey, M as CRT, N as CameraParallax3D, O as AudioFade, P as ChannelMerger, Q as MeshWarp, R as Contour, S as Vision, T as Ascii, U as ExtractLUT, V as DisplacementMap, W as Flip, X as Liquify, Y as LayerStyle, Z as MaskMath, _ as SelectiveColor, a as CustomEffect, at as Posterize, b as TileOffset, c as GradientMap, ct as RefineEdge, d as Levels, dt as Rotate, et as OpArt, f as Modulate, ft as StereoPanning, g as SSAO, gt as effectMeta, h as Relight3D, ht as Vignette, i as Curves, it as Pixelate, j as AudioReverb, k as AudioNoiseGate, l as HalftoneScreen, lt as RefractionCaustics3D, m as PBRGlass, mt as Trails, n as AudioSignalExtractor, nt as Painterly, o as DepthOfField, ot as ProceduralVFX, p as MotionBlur, pt as Toon, q as Kaleidoscope, r as Crop, rt as PatchHeal, s as FilmGrain, st as RGBSplit, t as ApplyLUT, tt as Paint, u as HighPass, ut as ResizerScaler, v as ShadowsHighlights, w as Blur, x as UnsharpMask, y as TemporalDeflicker, z as CornerPin } from "../effects-
|
|
1
|
+
import "../chunk-D7gtBK74.mjs";
|
|
2
|
+
import "../dist-BBUrGwqd.mjs";
|
|
3
|
+
import { t as renderers_default$20 } from "../renderer-GY7D1oAn.mjs";
|
|
4
|
+
import { t as renderers_default$32 } from "../renderer-CNs1vBUy.mjs";
|
|
5
|
+
import { t as renderers_default$1 } from "../renderer-3aLw-la1.mjs";
|
|
6
|
+
import { n as renderers_default$2 } from "../renderer-BgOEqtZu.mjs";
|
|
7
|
+
import { t as renderers_default$3 } from "../renderer-CyhSWLKq.mjs";
|
|
8
|
+
import { t as renderers_default$4 } from "../renderer-COZCwiIr.mjs";
|
|
9
|
+
import { t as renderers_default$5 } from "../renderer-Baw30QRI.mjs";
|
|
10
|
+
import { n as renderers_default$6 } from "../renderer-DuawUm8D.mjs";
|
|
11
|
+
import { t as renderers_default$7 } from "../renderer-MrvH4L7b.mjs";
|
|
12
|
+
import { t as renderers_default$8 } from "../renderer-DstROEvX.mjs";
|
|
13
|
+
import { t as renderers_default$9 } from "../renderer-CddpdCL3.mjs";
|
|
14
|
+
import { t as renderers_default$10 } from "../renderer-vQrX7Qsw.mjs";
|
|
15
|
+
import { n as renderers_default$11 } from "../renderer-DetTl6bQ.mjs";
|
|
16
|
+
import { t as renderers_default$12 } from "../renderer-C1XZ0fQ-.mjs";
|
|
17
|
+
import { t as renderers_default$13 } from "../renderer-CPmoA87K.mjs";
|
|
18
|
+
import { t as renderers_default$14 } from "../renderer-DATAjI6x.mjs";
|
|
19
|
+
import { t as renderers_default$15 } from "../renderer-BWtI3wKu.mjs";
|
|
20
|
+
import { t as renderers_default$16 } from "../renderer-BxDhx8KM.mjs";
|
|
21
|
+
import { n as renderers_default$17 } from "../renderer-wld_ZR0-.mjs";
|
|
22
|
+
import { t as renderers_default } from "../renderer-Bvhj-05p.mjs";
|
|
23
|
+
import { n as renderers_default$18 } from "../renderer-CYZb9uoO.mjs";
|
|
24
|
+
import { t as renderers_default$19 } from "../renderer-BG8jNTHr.mjs";
|
|
25
|
+
import { t as renderers_default$21 } from "../renderer-DVnrUnkh.mjs";
|
|
26
|
+
import { n as renderers_default$22 } from "../renderer-D8D7dKxq.mjs";
|
|
27
|
+
import { n as renderers_default$23 } from "../renderer-BMnrBPh1.mjs";
|
|
28
|
+
import { n as renderers_default$24 } from "../renderer-DxLkZGUK.mjs";
|
|
29
|
+
import { t as renderers_default$26 } from "../renderer-DJ78Bgv7.mjs";
|
|
30
|
+
import { t as renderers_default$25 } from "../renderer-C8KEfda3.mjs";
|
|
31
|
+
import { t as renderers_default$27 } from "../renderer-ChNCtBMR.mjs";
|
|
32
|
+
import { n as renderers_default$28 } from "../renderer-ZGJWn-_L.mjs";
|
|
33
|
+
import { t as renderers_default$29 } from "../renderer-BORzpTQP.mjs";
|
|
34
|
+
import { t as renderers_default$30 } from "../renderer-B5HG6Czb.mjs";
|
|
35
|
+
import { t as renderers_default$31 } from "../renderer-VcPoZAM2.mjs";
|
|
36
|
+
import { $ as NoiseGenerator, A as AudioParametricEq, B as Datamosh, C as effectFactories, D as AudioDelay, E as AudioCompressor, F as ChannelSplitter, G as Gooey, H as Dither, I as ColorBalance, J as KenBurns, K as Iridescence, L as ColorKey, M as CRT, N as CameraParallax3D, O as AudioFade, P as ChannelMerger, Q as MeshWarp, R as Contour, S as Vision, T as Ascii, U as ExtractLUT, V as DisplacementMap, W as Flip, X as Liquify, Y as LayerStyle, Z as MaskMath, _ as SelectiveColor, a as CustomEffect, at as Posterize, b as TileOffset, c as GradientMap, ct as RefineEdge, d as Levels, dt as Rotate, et as OpArt, f as Modulate, ft as StereoPanning, g as SSAO, gt as effectMeta, h as Relight3D, ht as Vignette, i as Curves, it as Pixelate, j as AudioReverb, k as AudioNoiseGate, l as HalftoneScreen, lt as RefractionCaustics3D, m as PBRGlass, mt as Trails, n as AudioSignalExtractor, nt as Painterly, o as DepthOfField, ot as ProceduralVFX, p as MotionBlur, pt as Toon, q as Kaleidoscope, r as Crop, rt as PatchHeal, s as FilmGrain, st as RGBSplit, t as ApplyLUT, tt as Paint, u as HighPass, ut as ResizerScaler, v as ShadowsHighlights, w as Blur, x as UnsharpMask, y as TemporalDeflicker, z as CornerPin } from "../effects-mRe-rLte.mjs";
|
|
37
37
|
|
|
38
38
|
export { ApplyLUT, Ascii, AudioCompressor, AudioDelay, AudioFade, AudioNoiseGate, AudioParametricEq, AudioReverb, AudioSignalExtractor, Blur, CRT, CameraParallax3D, ChannelMerger, ChannelSplitter, ColorBalance, ColorKey, Contour, CornerPin, Crop, Curves, CustomEffect, Datamosh, DepthOfField, DisplacementMap, Dither, ExtractLUT, FilmGrain, Flip, Gooey, GradientMap, HalftoneScreen, HighPass, Iridescence, Kaleidoscope, KenBurns, LayerStyle, Levels, Liquify, MaskMath, MeshWarp, Modulate, MotionBlur, NoiseGenerator, OpArt, PBRGlass, Paint, Painterly, PatchHeal, Pixelate, Posterize, ProceduralVFX, RGBSplit, RefineEdge, RefractionCaustics3D, Relight3D, ResizerScaler, Rotate, SSAO, SelectiveColor, ShadowsHighlights, StereoPanning, TemporalDeflicker, TileOffset, Toon, Trails, UnsharpMask, Vignette, Vision, renderers_default as applyLutRenderer, renderers_default$1 as blurRenderer, renderers_default$2 as colorBalanceRenderer, renderers_default$3 as colorkeyRenderer, renderers_default$4 as cornerPinRenderer, renderers_default$5 as cropRenderer, renderers_default$6 as curvesRenderer, renderers_default$7 as deflickerRenderer, renderers_default$8 as displacementMapRenderer, effectFactories, effectMeta, renderers_default$9 as filmGrainRenderer, renderers_default$10 as flipRenderer, renderers_default$11 as gradientMapRenderer, renderers_default$12 as halftoneScreenRenderer, renderers_default$13 as highPassRenderer, renderers_default$14 as kenBurnsRenderer, renderers_default$15 as layerStyleRenderer, renderers_default$16 as levelsRenderer, renderers_default$17 as liquifyRenderer, renderers_default$18 as maskMathRenderer, renderers_default$19 as meshWarpRenderer, renderers_default$20 as modulateRenderer, renderers_default$21 as paintRenderer, renderers_default$22 as patchHealRenderer, renderers_default$23 as refineEdgeRenderer, renderers_default$24 as refractionCausticsRenderer, renderers_default$25 as relight3dRenderer, renderers_default$26 as rotateRenderer, renderers_default$27 as selectiveColorRenderer, renderers_default$28 as shadowsHighlightsRenderer, renderers_default$29 as tileOffsetRenderer, renderers_default$30 as unsharpMaskRenderer, renderers_default$31 as vignetteRenderer, renderers_default$32 as visionRenderer };
|