framefields 2.3.0 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-ChRqnFwB.mjs → audio-C7Kn5xBm.mjs} +3 -3
- package/dist/{audio-ChRqnFwB.mjs.map → audio-C7Kn5xBm.mjs.map} +1 -1
- package/dist/{dist-t-NLlnhM.mjs → dist-CPUIfrtw.mjs} +2 -2
- package/dist/{dist-t-NLlnhM.mjs.map → dist-CPUIfrtw.mjs.map} +1 -1
- package/dist/{dist-PwT_Vmax.mjs → dist-CturBK2Z.mjs} +245 -91
- package/dist/dist-CturBK2Z.mjs.map +1 -0
- package/dist/effects/index.mjs +34 -34
- package/dist/{effects-Duoqc_Oa.mjs → effects-CW1VgdI5.mjs} +2 -2
- package/dist/{effects-Duoqc_Oa.mjs.map → effects-CW1VgdI5.mjs.map} +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-CgNmeFXh.mjs → fonts-EgMNL8KE.mjs} +2 -2
- package/dist/{fonts-CgNmeFXh.mjs.map → fonts-EgMNL8KE.mjs.map} +1 -1
- package/dist/{gpu-1ZpAuQOR.mjs → gpu-CN14e7Bi.mjs} +2 -2
- package/dist/{gpu-1ZpAuQOR.mjs.map → gpu-CN14e7Bi.mjs.map} +1 -1
- package/dist/index-AdrZIWT0.d.mts.map +1 -1
- package/dist/index-CeRv1KC0.d.mts.map +1 -1
- package/dist/index.mjs +48 -48
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-CArsjmkd.mjs → preview-1sjnhHQL.mjs} +2 -2
- package/dist/{preview-CArsjmkd.mjs.map → preview-1sjnhHQL.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-VO2R3DWV.mjs → chunk-44CQSOYE.mjs} +1 -1
- package/dist/preview-engine/{chunk-FNE22WGA.mjs → chunk-6AEU4DC7.mjs} +4 -4
- package/dist/preview-engine/{chunk-PR2BUYCL.mjs → chunk-7G3XIOP7.mjs} +1 -1
- package/dist/preview-engine/{chunk-AXQZX3TC.mjs → chunk-AY7UX37L.mjs} +1 -1
- package/dist/preview-engine/{chunk-FPRXK2WD.mjs → chunk-DIGIQ5MJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-K773AOF3.mjs → chunk-EVXWDOCL.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZNL4W4DK.mjs → chunk-EYWPOCZW.mjs} +1 -1
- package/dist/preview-engine/{chunk-WSIURGP2.mjs → chunk-HE4R7EZM.mjs} +1 -1
- package/dist/preview-engine/{chunk-L3CHEZMZ.mjs → chunk-IR5DNNWR.mjs} +1 -1
- package/dist/preview-engine/{chunk-2MZXSWVT.mjs → chunk-JXNG2ACR.mjs} +1 -1
- package/dist/preview-engine/{chunk-O2RNIQXT.mjs → chunk-L6BH5J4P.mjs} +1 -1
- package/dist/preview-engine/{chunk-BVA5NGSH.mjs → chunk-M5HZPZHQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-PFA427ZC.mjs → chunk-MLY5M7Y5.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZH5MZQTZ.mjs → chunk-OG62XGCT.mjs} +1 -1
- package/dist/preview-engine/{chunk-LBRVQ4GE.mjs → chunk-PSRQA3QW.mjs} +1 -1
- package/dist/preview-engine/{chunk-3UPI4EPV.mjs → chunk-Q22PJXFJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-E3HC4GRQ.mjs → chunk-T2FE5VOW.mjs} +1 -1
- package/dist/preview-engine/{chunk-Q2DPNVIA.mjs → chunk-TS3JI3BH.mjs} +1 -1
- package/dist/preview-engine/{chunk-NEE3KQTX.mjs → chunk-U4JIFQRR.mjs} +1 -1
- package/dist/preview-engine/{chunk-DLAHSLNX.mjs → chunk-U7NIY7UC.mjs} +14 -14
- package/dist/preview-engine/{chunk-BQY4BUMN.mjs → chunk-VGZZSPDN.mjs} +1 -1
- package/dist/preview-engine/{chunk-TPAEN6VV.mjs → chunk-VK2CVMWJ.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +3 -3
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -1
- package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
- package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -1
- package/dist/preview-engine/{renderers-P4S7GL64.mjs → renderers-2VN3AH45.mjs} +1 -1
- package/dist/preview-engine/{renderers-LLUEOW5T.mjs → renderers-3GHEWWVX.mjs} +1 -1
- package/dist/preview-engine/renderers-3SRG77SC.mjs +1 -1
- package/dist/preview-engine/{renderers-YNFKFM7D.mjs → renderers-3YCJOINH.mjs} +1 -1
- package/dist/preview-engine/{renderers-WP67KK5K.mjs → renderers-4GRVAW2W.mjs} +1 -1
- package/dist/preview-engine/{renderers-BGGRPAVV.mjs → renderers-5FQA2DP4.mjs} +1 -1
- package/dist/preview-engine/{renderers-FGHOLJJK.mjs → renderers-5YEIUTVN.mjs} +1 -1
- package/dist/preview-engine/{renderers-JLFGBYN4.mjs → renderers-6CG7DBTB.mjs} +1 -1
- package/dist/preview-engine/{renderers-O2DZPBOJ.mjs → renderers-6OGFUSH6.mjs} +1 -1
- package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -1
- package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -1
- package/dist/preview-engine/{renderers-7JTNJE7M.mjs → renderers-A6HM64UZ.mjs} +1 -1
- package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
- package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
- package/dist/preview-engine/{renderers-XCMVZ2XG.mjs → renderers-BSKZXITT.mjs} +1 -1
- package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
- package/dist/preview-engine/{renderers-LVDUZZ75.mjs → renderers-CRRLV7IO.mjs} +1 -1
- package/dist/preview-engine/{renderers-TFZST6WW.mjs → renderers-D6T6IPER.mjs} +1 -1
- package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -1
- package/dist/preview-engine/{renderers-6ODPWZ2R.mjs → renderers-E76OKK66.mjs} +1 -1
- package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
- package/dist/preview-engine/{renderers-7NCG6BYS.mjs → renderers-EJWPVVQR.mjs} +1 -1
- package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -1
- package/dist/preview-engine/renderers-HUW2ZMS3.mjs +1 -1
- package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -1
- package/dist/preview-engine/{renderers-ZSENYGIY.mjs → renderers-I5E2RSV4.mjs} +1 -1
- package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -1
- package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
- package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -1
- package/dist/preview-engine/{renderers-FQWWAETX.mjs → renderers-MCECHPCL.mjs} +1 -1
- package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
- package/dist/preview-engine/{renderers-UJ4YVJZT.mjs → renderers-N7FR54V2.mjs} +1 -1
- package/dist/preview-engine/{renderers-PVYP2ONH.mjs → renderers-N7TS5562.mjs} +1 -1
- package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
- package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -1
- package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
- package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -1
- package/dist/preview-engine/{renderers-WHBDHTRI.mjs → renderers-PYWXELLG.mjs} +1 -1
- package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -1
- package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
- package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -1
- package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
- package/dist/preview-engine/{renderers-D2EJULOJ.mjs → renderers-RLHTNLRE.mjs} +1 -1
- package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
- package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -1
- package/dist/preview-engine/{renderers-HMR2NAD7.mjs → renderers-TR2V2HZ2.mjs} +1 -1
- package/dist/preview-engine/{renderers-UPKB5OLS.mjs → renderers-U6KY34TP.mjs} +1 -1
- package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -1
- package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
- package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
- package/dist/preview-engine/{renderers-527ONFIA.mjs → renderers-WP2LBR5U.mjs} +1 -1
- package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -1
- package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -1
- package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -1
- package/dist/preview-engine/{renderers-DN2GF3I7.mjs → renderers-YMPXGYRU.mjs} +1 -1
- package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -1
- package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
- package/dist/preview-engine/{renderers-TPBPNXWH.mjs → renderers-ZHZMGMLN.mjs} +1 -1
- package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-Dd9tJFkY.mjs → program-DtiNMTxO.mjs} +2 -2
- package/dist/{program-Dd9tJFkY.mjs.map → program-DtiNMTxO.mjs.map} +1 -1
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-7OvgLE8w.mjs → renderer--Da6pAJ4.mjs} +2 -2
- package/dist/{renderer-yGAk7J9P.mjs → renderer--S2cNYXS.mjs} +3 -3
- package/dist/{renderer-yGAk7J9P.mjs.map → renderer--S2cNYXS.mjs.map} +1 -1
- package/dist/renderer-1hypa-l7.mjs +5 -0
- package/dist/renderer-6D8M4DRu.mjs +5 -0
- package/dist/{renderer-257LxOyx.mjs → renderer-6QAlE1Mp.mjs} +3 -3
- package/dist/{renderer-257LxOyx.mjs.map → renderer-6QAlE1Mp.mjs.map} +1 -1
- package/dist/{renderer-C-Qj0BnT.mjs → renderer-8k-TR_Cy.mjs} +3 -3
- package/dist/{renderer-C-Qj0BnT.mjs.map → renderer-8k-TR_Cy.mjs.map} +1 -1
- package/dist/renderer-APrj6tdP.mjs +5 -0
- package/dist/{renderer-CKpwEo1w.mjs → renderer-B3x-uogM.mjs} +3 -3
- package/dist/{renderer-CKpwEo1w.mjs.map → renderer-B3x-uogM.mjs.map} +1 -1
- package/dist/{renderer-C4tUATd_.mjs → renderer-B48vtpou.mjs} +3 -3
- package/dist/{renderer-C4tUATd_.mjs.map → renderer-B48vtpou.mjs.map} +1 -1
- package/dist/{renderer-aCDIEYb3.mjs → renderer-B5Icb0XW.mjs} +2 -2
- package/dist/{renderer-aCDIEYb3.mjs.map → renderer-B5Icb0XW.mjs.map} +1 -1
- package/dist/{renderer-2BnBo6CX.mjs → renderer-B6c_Rk_2.mjs} +3 -3
- package/dist/{renderer-2BnBo6CX.mjs.map → renderer-B6c_Rk_2.mjs.map} +1 -1
- package/dist/{renderer-CS-goRD3.mjs → renderer-BAmGO6Hj.mjs} +3 -3
- package/dist/{renderer-CS-goRD3.mjs.map → renderer-BAmGO6Hj.mjs.map} +1 -1
- package/dist/renderer-BF8wlbN1.mjs +5 -0
- package/dist/{renderer-CxP2e6Ov.mjs → renderer-BFHgl-0f.mjs} +2 -2
- package/dist/{renderer-CxP2e6Ov.mjs.map → renderer-BFHgl-0f.mjs.map} +1 -1
- package/dist/{renderer-D0xLIq1r.mjs → renderer-BI1nmIqA.mjs} +3 -3
- package/dist/{renderer-D0xLIq1r.mjs.map → renderer-BI1nmIqA.mjs.map} +1 -1
- package/dist/renderer-BOUcMCJB.mjs +5 -0
- package/dist/{renderer-D1T7A3NF.mjs → renderer-BRWpn3dT.mjs} +3 -3
- package/dist/{renderer-D1T7A3NF.mjs.map → renderer-BRWpn3dT.mjs.map} +1 -1
- package/dist/renderer-BSwn6KmG.mjs +5 -0
- package/dist/renderer-BUxvuC5A.mjs +5 -0
- package/dist/{renderer-72A4SvOE.mjs → renderer-BXCZev4l.mjs} +3 -3
- package/dist/{renderer-72A4SvOE.mjs.map → renderer-BXCZev4l.mjs.map} +1 -1
- package/dist/renderer-BYOsmJ8F.mjs +5 -0
- package/dist/{renderer-D1MOTlWS.mjs → renderer-BYj8x8YM.mjs} +2 -2
- package/dist/{renderer-D1MOTlWS.mjs.map → renderer-BYj8x8YM.mjs.map} +1 -1
- package/dist/{renderer-UT0CcmMZ.mjs → renderer-BaOC1Pd1.mjs} +3 -3
- package/dist/{renderer-UT0CcmMZ.mjs.map → renderer-BaOC1Pd1.mjs.map} +1 -1
- package/dist/{renderer-BY08hHFS.mjs → renderer-BebePsG7.mjs} +2 -2
- package/dist/{renderer-BY08hHFS.mjs.map → renderer-BebePsG7.mjs.map} +1 -1
- package/dist/{renderer-DzOzVxNS.mjs → renderer-Bf4BdBtb.mjs} +2 -2
- package/dist/{renderer-DzOzVxNS.mjs.map → renderer-Bf4BdBtb.mjs.map} +1 -1
- package/dist/{renderer-zQIB2VZZ.mjs → renderer-BkXqFmNO.mjs} +2 -2
- package/dist/{renderer-zQIB2VZZ.mjs.map → renderer-BkXqFmNO.mjs.map} +1 -1
- package/dist/{renderer-YyEBKPcE.mjs → renderer-BlafvK-L.mjs} +2 -2
- package/dist/{renderer-OxafT7Xm.mjs → renderer-BmWH4dK1.mjs} +5 -5
- package/dist/{renderer-OxafT7Xm.mjs.map → renderer-BmWH4dK1.mjs.map} +1 -1
- package/dist/renderer-Bp7LqSTt.mjs +5 -0
- package/dist/{renderer-D-yNHLG7.mjs → renderer-Bq9jXYJ5.mjs} +3 -3
- package/dist/{renderer-D-yNHLG7.mjs.map → renderer-Bq9jXYJ5.mjs.map} +1 -1
- package/dist/{renderer-BVR0mEIT.mjs → renderer-BqSiWRoD.mjs} +2 -2
- package/dist/{renderer-BVR0mEIT.mjs.map → renderer-BqSiWRoD.mjs.map} +1 -1
- package/dist/{renderer-DyPgVl1l.mjs → renderer-ButaUWLr.mjs} +3 -3
- package/dist/{renderer-DyPgVl1l.mjs.map → renderer-ButaUWLr.mjs.map} +1 -1
- package/dist/{renderer-94byj7Mk.mjs → renderer-C2Ff-9u_.mjs} +2 -2
- package/dist/{renderer-94byj7Mk.mjs.map → renderer-C2Ff-9u_.mjs.map} +1 -1
- package/dist/{renderer-DpQaiH6C.mjs → renderer-C4puWDLK.mjs} +2 -2
- package/dist/{renderer-DpQaiH6C.mjs.map → renderer-C4puWDLK.mjs.map} +1 -1
- package/dist/{renderer-D6YcQTLI.mjs → renderer-CBG6ewNf.mjs} +3 -3
- package/dist/{renderer-D6YcQTLI.mjs.map → renderer-CBG6ewNf.mjs.map} +1 -1
- package/dist/renderer-CD0amH_Q.mjs +5 -0
- package/dist/renderer-CIJGjrt7.mjs +5 -0
- package/dist/{renderer-CIMI33Yd.mjs → renderer-CJwgsecF.mjs} +2 -2
- package/dist/{renderer-CIMI33Yd.mjs.map → renderer-CJwgsecF.mjs.map} +1 -1
- package/dist/{renderer-aN60v8jR.mjs → renderer-CMzd3BrW.mjs} +2 -2
- package/dist/{renderer-aN60v8jR.mjs.map → renderer-CMzd3BrW.mjs.map} +1 -1
- package/dist/renderer-CNFTl94b.mjs +5 -0
- package/dist/{renderer-DJQD7tai.mjs → renderer-CPNLkir4.mjs} +2 -2
- package/dist/{renderer-DJQD7tai.mjs.map → renderer-CPNLkir4.mjs.map} +1 -1
- package/dist/{renderer-CLUyYFqS.mjs → renderer-CRYO5HQw.mjs} +2 -2
- package/dist/{renderer-CLUyYFqS.mjs.map → renderer-CRYO5HQw.mjs.map} +1 -1
- package/dist/renderer-CTJ0gHPS.mjs +5 -0
- package/dist/{renderer-Dju3SEAJ.mjs → renderer-CbNW0KHh.mjs} +3 -3
- package/dist/{renderer-Dju3SEAJ.mjs.map → renderer-CbNW0KHh.mjs.map} +1 -1
- package/dist/renderer-Cc3INn7w.mjs +5 -0
- package/dist/{renderer-BK32cV7E.mjs → renderer-CczmOPAO.mjs} +3 -3
- package/dist/{renderer-BK32cV7E.mjs.map → renderer-CczmOPAO.mjs.map} +1 -1
- package/dist/renderer-CeHh2lKY.mjs +5 -0
- package/dist/renderer-CfjwkQP4.mjs +5 -0
- package/dist/{renderer-0L9MEb3A.mjs → renderer-CgEMtLOL.mjs} +2 -2
- package/dist/{renderer-0L9MEb3A.mjs.map → renderer-CgEMtLOL.mjs.map} +1 -1
- package/dist/{renderer-CWQ-Bct7.mjs → renderer-Ch1rv1XP.mjs} +2 -2
- package/dist/{renderer-CWQ-Bct7.mjs.map → renderer-Ch1rv1XP.mjs.map} +1 -1
- package/dist/renderer-CiuOB-Md.mjs +5 -0
- package/dist/{renderer-DNYSf2Fl.mjs → renderer-ClK7_Yzz.mjs} +2 -2
- package/dist/{renderer-DNYSf2Fl.mjs.map → renderer-ClK7_Yzz.mjs.map} +1 -1
- package/dist/renderer-Cor66Y2X.mjs +5 -0
- package/dist/renderer-CtIM0LWe.mjs +5 -0
- package/dist/renderer-CyqgTsnx.mjs +5 -0
- package/dist/{renderer-DWcbrx2M.mjs → renderer-Cz11KJmQ.mjs} +2 -2
- package/dist/{renderer-DWcbrx2M.mjs.map → renderer-Cz11KJmQ.mjs.map} +1 -1
- package/dist/{renderer-B2aXfdW_.mjs → renderer-D-eTVnDS.mjs} +2 -2
- package/dist/{renderer-B2aXfdW_.mjs.map → renderer-D-eTVnDS.mjs.map} +1 -1
- package/dist/renderer-D2QG9yIW.mjs +5 -0
- package/dist/renderer-D2woU27o.mjs +6 -0
- package/dist/{renderer-EhCkD11e.mjs → renderer-D8tdGi2P.mjs} +3 -3
- package/dist/{renderer-EhCkD11e.mjs.map → renderer-D8tdGi2P.mjs.map} +1 -1
- package/dist/{renderer-DuxzqfoE.mjs → renderer-D90PpIKG.mjs} +2 -2
- package/dist/renderer-DAhDiQQY.mjs +5 -0
- package/dist/{renderer-BmQbSQHf.mjs → renderer-DDBmBmQN.mjs} +2 -2
- package/dist/{renderer-BmQbSQHf.mjs.map → renderer-DDBmBmQN.mjs.map} +1 -1
- package/dist/renderer-DIjxOQFi.mjs +5 -0
- package/dist/{renderer-_AuL8mAi.mjs → renderer-DJWQWN1E.mjs} +3 -3
- package/dist/{renderer-_AuL8mAi.mjs.map → renderer-DJWQWN1E.mjs.map} +1 -1
- package/dist/{renderer-JiEpssIz.mjs → renderer-DL4oR40b.mjs} +2 -2
- package/dist/{renderer-JiEpssIz.mjs.map → renderer-DL4oR40b.mjs.map} +1 -1
- package/dist/{renderer-CrUudSLP.mjs → renderer-DNhOjz6C.mjs} +2 -2
- package/dist/{renderer-CrUudSLP.mjs.map → renderer-DNhOjz6C.mjs.map} +1 -1
- package/dist/renderer-DRzalGhU.mjs +5 -0
- package/dist/{renderer-BpdzhZE7.mjs → renderer-DS64UaYK.mjs} +3 -3
- package/dist/{renderer-BpdzhZE7.mjs.map → renderer-DS64UaYK.mjs.map} +1 -1
- package/dist/renderer-DY6S1jWp.mjs +5 -0
- package/dist/{renderer-CSPpKLi3.mjs → renderer-DYo_a5-8.mjs} +2 -2
- package/dist/{renderer-CSPpKLi3.mjs.map → renderer-DYo_a5-8.mjs.map} +1 -1
- package/dist/{renderer-Ck2pRec0.mjs → renderer-DacnnTjY.mjs} +3 -3
- package/dist/{renderer-Ck2pRec0.mjs.map → renderer-DacnnTjY.mjs.map} +1 -1
- package/dist/renderer-DeW0KNQV.mjs +5 -0
- package/dist/{renderer-CvOzuDX3.mjs → renderer-DjPC9l3w.mjs} +3 -3
- package/dist/{renderer-CvOzuDX3.mjs.map → renderer-DjPC9l3w.mjs.map} +1 -1
- package/dist/{renderer-BId5hBLb.mjs → renderer-DjwF10p2.mjs} +3 -3
- package/dist/{renderer-BId5hBLb.mjs.map → renderer-DjwF10p2.mjs.map} +1 -1
- package/dist/{renderer-CraudZUC.mjs → renderer-DmOewVsB.mjs} +3 -3
- package/dist/{renderer-CraudZUC.mjs.map → renderer-DmOewVsB.mjs.map} +1 -1
- package/dist/{renderer-BHrqEgIA.mjs → renderer-DqlvbOUt.mjs} +3 -3
- package/dist/{renderer-BHrqEgIA.mjs.map → renderer-DqlvbOUt.mjs.map} +1 -1
- package/dist/renderer-DsVSVFkl.mjs +5 -0
- package/dist/{renderer-DIqwz7dV.mjs → renderer-DvoPplvC.mjs} +2 -2
- package/dist/{renderer-BEpANdcO.mjs → renderer-Dw1e5phO.mjs} +3 -3
- package/dist/{renderer-BEpANdcO.mjs.map → renderer-Dw1e5phO.mjs.map} +1 -1
- package/dist/renderer-DxvcIgEU.mjs +5 -0
- package/dist/renderer-F0MKqmol.mjs +5 -0
- package/dist/{renderer-CKSdl0Xf.mjs → renderer-F410V727.mjs} +3 -3
- package/dist/{renderer-CKSdl0Xf.mjs.map → renderer-F410V727.mjs.map} +1 -1
- package/dist/{renderer-B3ypX3MH.mjs → renderer-Fm2brScz.mjs} +3 -3
- package/dist/{renderer-B3ypX3MH.mjs.map → renderer-Fm2brScz.mjs.map} +1 -1
- package/dist/{renderer-CI9Pq77W.mjs → renderer-GlyeFl5R.mjs} +3 -3
- package/dist/{renderer-CI9Pq77W.mjs.map → renderer-GlyeFl5R.mjs.map} +1 -1
- package/dist/{renderer-DZnUiiBp.mjs → renderer-ITtBRR4o.mjs} +3 -3
- package/dist/{renderer-DZnUiiBp.mjs.map → renderer-ITtBRR4o.mjs.map} +1 -1
- package/dist/{renderer-CwwmwM7J.mjs → renderer-Kj9AhRCc.mjs} +3 -3
- package/dist/{renderer-CwwmwM7J.mjs.map → renderer-Kj9AhRCc.mjs.map} +1 -1
- package/dist/{renderer-DNaHFctD.mjs → renderer-MS70wrQB.mjs} +2 -2
- package/dist/{renderer-DNaHFctD.mjs.map → renderer-MS70wrQB.mjs.map} +1 -1
- package/dist/{renderer-BEdc-7JW.mjs → renderer-Mdyv_W8K.mjs} +3 -3
- package/dist/{renderer-BEdc-7JW.mjs.map → renderer-Mdyv_W8K.mjs.map} +1 -1
- package/dist/renderer-OkbovcAc.mjs +5 -0
- package/dist/{renderer-Dvq11SEA.mjs → renderer-QMGrRiab.mjs} +2 -2
- package/dist/{renderer-Dvq11SEA.mjs.map → renderer-QMGrRiab.mjs.map} +1 -1
- package/dist/renderer-QyBeWMEL.mjs +5 -0
- package/dist/{renderer-B3c-j-e5.mjs → renderer-R0sJId_6.mjs} +2 -2
- package/dist/{renderer-B3c-j-e5.mjs.map → renderer-R0sJId_6.mjs.map} +1 -1
- package/dist/{renderer-DKXK5hDm.mjs → renderer-Rg1BFv8B.mjs} +2 -2
- package/dist/{renderer-DKXK5hDm.mjs.map → renderer-Rg1BFv8B.mjs.map} +1 -1
- package/dist/{renderer-BmTDXIUI.mjs → renderer-S6ez0leJ.mjs} +2 -2
- package/dist/{renderer-BmTDXIUI.mjs.map → renderer-S6ez0leJ.mjs.map} +1 -1
- package/dist/{renderer-ChoYV7Ko.mjs → renderer-YtRSM2cv.mjs} +2 -2
- package/dist/{renderer-ChoYV7Ko.mjs.map → renderer-YtRSM2cv.mjs.map} +1 -1
- package/dist/{renderer-CC72sZ8l.mjs → renderer-_-MCpvGq.mjs} +91 -73
- package/dist/renderer-_-MCpvGq.mjs.map +1 -0
- package/dist/{renderer-xezE7IZX.mjs → renderer-_Fh9IBlE.mjs} +3 -3
- package/dist/{renderer-xezE7IZX.mjs.map → renderer-_Fh9IBlE.mjs.map} +1 -1
- package/dist/{renderer-mpInX4Iy.mjs → renderer-dJcu7WqI.mjs} +3 -3
- package/dist/{renderer-mpInX4Iy.mjs.map → renderer-dJcu7WqI.mjs.map} +1 -1
- package/dist/renderer-hSh5IrDp.mjs +5 -0
- package/dist/{renderer-Dvg5nbgU.mjs → renderer-ktpusVT2.mjs} +3 -3
- package/dist/{renderer-Dvg5nbgU.mjs.map → renderer-ktpusVT2.mjs.map} +1 -1
- package/dist/renderer-puLncHft.mjs +5 -0
- package/dist/{renderer-D8_UYdDb.mjs → renderer-w8LKBg_5.mjs} +2 -2
- package/dist/{renderer-D8_UYdDb.mjs.map → renderer-w8LKBg_5.mjs.map} +1 -1
- package/dist/renderer-wnFCaw7j.mjs +5 -0
- package/dist/renderer-xjtlyGS1.mjs +5 -0
- package/dist/{renderer-Cvysm2Jg.mjs → renderer-z3YOOR3k.mjs} +3 -3
- package/dist/{renderer-Cvysm2Jg.mjs.map → renderer-z3YOOR3k.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-i6u_rhCX.mjs → renderers-CP8CFWDs-DXiR_PLR.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-i6u_rhCX.mjs.map → renderers-CP8CFWDs-DXiR_PLR.mjs.map} +1 -1
- package/dist/signals/index.mjs +4 -4
- package/package.json +56 -56
- package/dist/dist-PwT_Vmax.mjs.map +0 -1
- package/dist/preview-engine/chunk-OCX5AD23.mjs +0 -1
- package/dist/preview-engine/renderers-3T7Q4SPP.mjs +0 -1
- package/dist/preview-engine/renderers-4DV4REGM.mjs +0 -1
- package/dist/preview-engine/renderers-CQXQHOW2.mjs +0 -1
- package/dist/preview-engine/renderers-IXGM55XK.mjs +0 -1
- package/dist/preview-engine/renderers-KVHUVWSN.mjs +0 -1
- package/dist/preview-engine/renderers-M7R2ZJUP.mjs +0 -1
- package/dist/preview-engine/renderers-PMOO7DLX.mjs +0 -1
- package/dist/preview-engine/renderers-QCCPCH73.mjs +0 -1
- package/dist/preview-engine/renderers-RRXFJRGI.mjs +0 -1
- package/dist/preview-engine/renderers-VLMQR3DW.mjs +0 -1
- package/dist/preview-engine/renderers-WVTTRCVI.mjs +0 -1
- package/dist/preview-engine/renderers-X5PUIPU5.mjs +0 -1
- package/dist/preview-engine/renderers-YDCDY3BR.mjs +0 -1
- package/dist/preview-engine/renderers-YJNQ4B7B.mjs +0 -1
- package/dist/preview-engine/renderers-Z7YQUFAY.mjs +0 -1
- package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +0 -1
- package/dist/renderer-0lp9ClNc.mjs +0 -5
- package/dist/renderer-4g_BfiKp.mjs +0 -5
- package/dist/renderer-7Aw6AHqW.mjs +0 -5
- package/dist/renderer-B82v8PyC.mjs +0 -5
- package/dist/renderer-B8BDMJNz.mjs +0 -5
- package/dist/renderer-BCPRrhP8.mjs +0 -5
- package/dist/renderer-BFhzO6En.mjs +0 -5
- package/dist/renderer-BH0KF-y-.mjs +0 -6
- package/dist/renderer-BTI5ybyH.mjs +0 -5
- package/dist/renderer-Ba7LH8U2.mjs +0 -5
- package/dist/renderer-BcQBlfhC.mjs +0 -5
- package/dist/renderer-BdMJzCTz.mjs +0 -5
- package/dist/renderer-Bxi2j-tG.mjs +0 -5
- package/dist/renderer-CC72sZ8l.mjs.map +0 -1
- package/dist/renderer-CCn5ISVM.mjs +0 -5
- package/dist/renderer-CDRsdhg9.mjs +0 -5
- package/dist/renderer-CiCK8ZG_.mjs +0 -5
- package/dist/renderer-CsEk9TFz.mjs +0 -5
- package/dist/renderer-D1gx_-hi.mjs +0 -5
- package/dist/renderer-D5MCGNAF.mjs +0 -5
- package/dist/renderer-DD_MzvM-.mjs +0 -5
- package/dist/renderer-DP7YoZ0K.mjs +0 -5
- package/dist/renderer-DXiWvKij.mjs +0 -5
- package/dist/renderer-Dc6fW-o1.mjs +0 -5
- package/dist/renderer-DiurlsNT.mjs +0 -5
- package/dist/renderer-DvCUdgVz.mjs +0 -5
- package/dist/renderer-IiwAh9-K.mjs +0 -5
- package/dist/renderer-JlGXqH0E.mjs +0 -5
- package/dist/renderer-TZFKKgL1.mjs +0 -5
- package/dist/renderer-aEecoNPX.mjs +0 -5
- package/dist/renderer-ewhliYYP.mjs +0 -5
- package/dist/renderer-hQc6GgTi.mjs +0 -5
- package/dist/renderer-iuX0RZIi.mjs +0 -5
- package/dist/renderer-j4vkTzHa.mjs +0 -5
- package/dist/renderer-msPjwx_9.mjs +0 -5
- package/dist/renderer-pI2ndu-b.mjs +0 -5
- package/dist/renderer-x1OGMhsC.mjs +0 -5
|
@@ -20139,7 +20139,7 @@ function decodeBase64(base64$1) {
|
|
|
20139
20139
|
}
|
|
20140
20140
|
function extractFontFamiliesFromLottie(lottieJson) {
|
|
20141
20141
|
const fonts = /* @__PURE__ */ new Set();
|
|
20142
|
-
const fontsList = lottieJson?.fonts?.list;
|
|
20142
|
+
const fontsList = (lottieJson?.fonts)?.list;
|
|
20143
20143
|
if (Array.isArray(fontsList)) for (const entry of fontsList) {
|
|
20144
20144
|
if (entry?.fName && typeof entry.fName === "string") fonts.add(entry.fName);
|
|
20145
20145
|
if (entry?.fFamily && typeof entry.fFamily === "string") fonts.add(entry.fFamily);
|
|
@@ -20147,19 +20147,24 @@ function extractFontFamiliesFromLottie(lottieJson) {
|
|
|
20147
20147
|
const layers = lottieJson?.layers;
|
|
20148
20148
|
if (!Array.isArray(layers)) return [...fonts];
|
|
20149
20149
|
for (const layer of layers) {
|
|
20150
|
-
|
|
20151
|
-
|
|
20150
|
+
const l = layer;
|
|
20151
|
+
if (l?.ty !== 5) continue;
|
|
20152
|
+
const k = l?.t?.d?.k ?? l?.t?.k;
|
|
20152
20153
|
if (!k) continue;
|
|
20153
20154
|
const kArr = Array.isArray(k) ? k : [k];
|
|
20154
20155
|
for (const kf of kArr) {
|
|
20156
|
+
const kfObj = kf;
|
|
20155
20157
|
const possibleDocs = [
|
|
20156
|
-
|
|
20157
|
-
|
|
20158
|
+
kfObj?.s,
|
|
20159
|
+
kfObj?.e,
|
|
20158
20160
|
kf
|
|
20159
20161
|
].filter(Boolean);
|
|
20160
20162
|
for (const doc of possibleDocs) {
|
|
20161
20163
|
const docArr = Array.isArray(doc) ? doc : [doc];
|
|
20162
|
-
for (const d of docArr)
|
|
20164
|
+
for (const d of docArr) {
|
|
20165
|
+
const docItem = d;
|
|
20166
|
+
if (docItem?.f && typeof docItem.f === "string") fonts.add(docItem.f);
|
|
20167
|
+
}
|
|
20163
20168
|
}
|
|
20164
20169
|
}
|
|
20165
20170
|
}
|
|
@@ -20187,7 +20192,7 @@ async function registerLottieFont(family) {
|
|
|
20187
20192
|
if (typeof window !== "undefined" && typeof document !== "undefined" && typeof document.createElement === "function" && typeof document.getElementById === "function") {
|
|
20188
20193
|
try {
|
|
20189
20194
|
await localFontManager.loadFont(family, fontUrl);
|
|
20190
|
-
} catch (
|
|
20195
|
+
} catch (_err) {
|
|
20191
20196
|
fontUrl = GetFontAssetUrl(family);
|
|
20192
20197
|
try {
|
|
20193
20198
|
await localFontManager.loadFont(family, fontUrl);
|
|
@@ -20229,16 +20234,58 @@ async function registerLottieFont(family) {
|
|
|
20229
20234
|
if (registered) registeredLottieFonts.add(family);
|
|
20230
20235
|
else console.warn(`[LottieRenderer] All font registration attempts failed for "${family}". Text using this font will not render.`);
|
|
20231
20236
|
}
|
|
20237
|
+
var HeadlessLottieCanvas = class {
|
|
20238
|
+
width;
|
|
20239
|
+
height;
|
|
20240
|
+
style = {};
|
|
20241
|
+
constructor(width, height) {
|
|
20242
|
+
this.width = width;
|
|
20243
|
+
this.height = height;
|
|
20244
|
+
}
|
|
20245
|
+
addEventListener() {}
|
|
20246
|
+
removeEventListener() {}
|
|
20247
|
+
getContext(contextId) {
|
|
20248
|
+
if (contextId === "2d") return {
|
|
20249
|
+
fillRect() {},
|
|
20250
|
+
clearRect() {},
|
|
20251
|
+
putImageData() {},
|
|
20252
|
+
createImageData(width, height) {
|
|
20253
|
+
return {
|
|
20254
|
+
width,
|
|
20255
|
+
height,
|
|
20256
|
+
data: new Uint8ClampedArray(width * height * 4)
|
|
20257
|
+
};
|
|
20258
|
+
},
|
|
20259
|
+
getImageData(_sx, _sy, sw, sh) {
|
|
20260
|
+
return {
|
|
20261
|
+
width: sw,
|
|
20262
|
+
height: sh,
|
|
20263
|
+
data: new Uint8ClampedArray(sw * sh * 4)
|
|
20264
|
+
};
|
|
20265
|
+
}
|
|
20266
|
+
};
|
|
20267
|
+
return null;
|
|
20268
|
+
}
|
|
20269
|
+
getBoundingClientRect() {
|
|
20270
|
+
return {
|
|
20271
|
+
left: 0,
|
|
20272
|
+
top: 0,
|
|
20273
|
+
width: this.width,
|
|
20274
|
+
height: this.height
|
|
20275
|
+
};
|
|
20276
|
+
}
|
|
20277
|
+
};
|
|
20232
20278
|
var LottieInstance = class {
|
|
20233
20279
|
dotLottie;
|
|
20234
20280
|
canvas;
|
|
20235
20281
|
loadPromise;
|
|
20236
20282
|
_width;
|
|
20237
20283
|
_height;
|
|
20284
|
+
uploadBuffer = null;
|
|
20238
20285
|
constructor(src, width, height, data) {
|
|
20239
20286
|
this._width = width;
|
|
20240
20287
|
this._height = height;
|
|
20241
|
-
this.canvas = new OffscreenCanvas(width, height);
|
|
20288
|
+
this.canvas = typeof window !== "undefined" && typeof document !== "undefined" && typeof document.createElement === "function" && typeof document.getElementById === "function" ? new OffscreenCanvas(width, height) : new HeadlessLottieCanvas(width, height);
|
|
20242
20289
|
this.dotLottie = new DotLottie({
|
|
20243
20290
|
canvas: this.canvas,
|
|
20244
20291
|
...data ? { data } : { src },
|
|
@@ -20281,6 +20328,29 @@ var LottieInstance = class {
|
|
|
20281
20328
|
async ready() {
|
|
20282
20329
|
await this.loadPromise;
|
|
20283
20330
|
}
|
|
20331
|
+
renderPixels(frame, fit) {
|
|
20332
|
+
const loopedFrame = Math.floor(frame) % Math.max(1, this.totalFrames);
|
|
20333
|
+
this.dotLottie.setLayout({
|
|
20334
|
+
align: [.5, .5],
|
|
20335
|
+
fit: fit || "contain"
|
|
20336
|
+
});
|
|
20337
|
+
this.dotLottie.resize();
|
|
20338
|
+
this.dotLottie.setFrame(loopedFrame);
|
|
20339
|
+
try {
|
|
20340
|
+
this.dotLottie.render?.();
|
|
20341
|
+
} catch (_) {}
|
|
20342
|
+
const core = this.dotLottie._dotLottieCore;
|
|
20343
|
+
if (core && typeof core.get_pixel_buffer === "function") {
|
|
20344
|
+
const buf = core.get_pixel_buffer();
|
|
20345
|
+
const expectedLength = this._width * this._height * 4;
|
|
20346
|
+
if (buf && buf.byteLength === expectedLength) {
|
|
20347
|
+
if (!this.uploadBuffer || this.uploadBuffer.byteLength !== expectedLength) this.uploadBuffer = new Uint8Array(expectedLength);
|
|
20348
|
+
this.uploadBuffer.set(buf);
|
|
20349
|
+
return premultiplyPixels(this.uploadBuffer);
|
|
20350
|
+
}
|
|
20351
|
+
}
|
|
20352
|
+
return null;
|
|
20353
|
+
}
|
|
20284
20354
|
renderFrame(frame, fit) {
|
|
20285
20355
|
const loopedFrame = Math.floor(frame) % Math.max(1, this.totalFrames);
|
|
20286
20356
|
this.dotLottie.setLayout({
|
|
@@ -20298,6 +20368,7 @@ var LottieInstance = class {
|
|
|
20298
20368
|
try {
|
|
20299
20369
|
this.dotLottie.destroy();
|
|
20300
20370
|
} catch (_) {}
|
|
20371
|
+
this.uploadBuffer = null;
|
|
20301
20372
|
}
|
|
20302
20373
|
};
|
|
20303
20374
|
let wasmConfigured = false;
|
|
@@ -20329,13 +20400,7 @@ function polyfillHeadlessDOM() {
|
|
|
20329
20400
|
async function ensureWasmConfigured() {
|
|
20330
20401
|
if (wasmConfigured) return;
|
|
20331
20402
|
if (!(typeof window !== "undefined" && typeof document !== "undefined" && typeof document.createElement === "function" && typeof document.getElementById === "function")) {
|
|
20332
|
-
if (typeof globalThis.OffscreenCanvas === "undefined")
|
|
20333
|
-
const { Canvas: Canvas$1 } = await import(
|
|
20334
|
-
/* webpackIgnore: true */
|
|
20335
|
-
"skia-canvas"
|
|
20336
|
-
);
|
|
20337
|
-
globalThis.OffscreenCanvas = Canvas$1;
|
|
20338
|
-
} catch {}
|
|
20403
|
+
if (typeof globalThis.OffscreenCanvas === "undefined") globalThis.OffscreenCanvas = HeadlessLottieCanvas;
|
|
20339
20404
|
polyfillHeadlessDOM();
|
|
20340
20405
|
if (typeof globalThis.Response === "function") try {
|
|
20341
20406
|
Object.defineProperty(globalThis.Response, Symbol.hasInstance, {
|
|
@@ -20418,7 +20483,7 @@ var LottieLoader = class {
|
|
|
20418
20483
|
try {
|
|
20419
20484
|
const fs$1 = await import(
|
|
20420
20485
|
/* webpackIgnore: true */
|
|
20421
|
-
"fs/promises"
|
|
20486
|
+
"node:fs/promises"
|
|
20422
20487
|
);
|
|
20423
20488
|
if (filePath.endsWith(".json")) {
|
|
20424
20489
|
const jsonContent = await fs$1.readFile(filePath, "utf-8");
|
|
@@ -20467,37 +20532,27 @@ async function drawLottieNode(ctx, pass, props) {
|
|
|
20467
20532
|
const cacheKey = `${props.src}@@${loopedFrame}@@${resolvedWidth}x${resolvedHeight}@@${fitMode}`;
|
|
20468
20533
|
let tex = textureCache.acquire(cacheKey);
|
|
20469
20534
|
if (!tex) {
|
|
20470
|
-
const canvas = instance.renderFrame(loopedFrame, fitMode);
|
|
20471
20535
|
tex = ctx.device.createTexture({
|
|
20472
20536
|
size: [instance.width, instance.height],
|
|
20473
20537
|
format: "rgba8unorm",
|
|
20474
20538
|
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT
|
|
20475
20539
|
});
|
|
20476
|
-
|
|
20477
|
-
|
|
20478
|
-
|
|
20479
|
-
|
|
20480
|
-
|
|
20481
|
-
|
|
20482
|
-
|
|
20483
|
-
|
|
20484
|
-
|
|
20485
|
-
|
|
20486
|
-
|
|
20487
|
-
|
|
20488
|
-
|
|
20489
|
-
|
|
20490
|
-
|
|
20491
|
-
|
|
20492
|
-
const flipped = new Uint8Array(pixels.length);
|
|
20493
|
-
const bytesPerRow = instance.width * 4;
|
|
20494
|
-
for (let y = 0; y < instance.height; y++) {
|
|
20495
|
-
const srcOffset = y * bytesPerRow;
|
|
20496
|
-
const dstOffset = (instance.height - 1 - y) * bytesPerRow;
|
|
20497
|
-
flipped.set(pixels.subarray(srcOffset, srcOffset + bytesPerRow), dstOffset);
|
|
20498
|
-
}
|
|
20499
|
-
ctx.device.queue.writeTexture({ texture: tex }, flipped, { bytesPerRow }, [instance.width, instance.height]);
|
|
20500
|
-
} else console.error("[LottieRenderer] Could not acquire 2D or WebGL context to read pixels.");
|
|
20540
|
+
const pixelBuffer = instance.renderPixels(loopedFrame, fitMode);
|
|
20541
|
+
if (pixelBuffer) ctx.device.queue.writeTexture({ texture: tex }, pixelBuffer, { bytesPerRow: instance.width * 4 }, [instance.width, instance.height]);
|
|
20542
|
+
else {
|
|
20543
|
+
const canvas = instance.renderFrame(loopedFrame, fitMode);
|
|
20544
|
+
try {
|
|
20545
|
+
ctx.device.queue.copyExternalImageToTexture({ source: canvas }, {
|
|
20546
|
+
texture: tex,
|
|
20547
|
+
premultipliedAlpha: true
|
|
20548
|
+
}, [instance.width, instance.height]);
|
|
20549
|
+
} catch {
|
|
20550
|
+
const c2d = canvas.getContext("2d");
|
|
20551
|
+
if (c2d) {
|
|
20552
|
+
const imgData = c2d.getImageData(0, 0, instance.width, instance.height);
|
|
20553
|
+
const fallbackBuffer = premultiplyPixels(new Uint8Array(imgData.data.buffer, imgData.data.byteOffset, imgData.data.byteLength));
|
|
20554
|
+
ctx.device.queue.writeTexture({ texture: tex }, fallbackBuffer, { bytesPerRow: instance.width * 4 }, [instance.width, instance.height]);
|
|
20555
|
+
}
|
|
20501
20556
|
}
|
|
20502
20557
|
}
|
|
20503
20558
|
textureCache.set(cacheKey, tex, ctx.device);
|
|
@@ -20823,8 +20878,40 @@ var MediaDecoderCache = class {
|
|
|
20823
20878
|
videoDecoders = /* @__PURE__ */ new Map();
|
|
20824
20879
|
audioDecoders = /* @__PURE__ */ new Map();
|
|
20825
20880
|
lastAccessed = /* @__PURE__ */ new Map();
|
|
20881
|
+
/** Rendered frames so far (see `tick`), and the frame each decoder was last used on. */
|
|
20882
|
+
ticks = 0;
|
|
20883
|
+
lastTick = /* @__PURE__ */ new Map();
|
|
20826
20884
|
touchKey(key) {
|
|
20827
20885
|
this.lastAccessed.set(key, Date.now());
|
|
20886
|
+
this.lastTick.set(key, this.ticks);
|
|
20887
|
+
}
|
|
20888
|
+
dropKey(key) {
|
|
20889
|
+
const videoDecoder = this.videoDecoders.get(key);
|
|
20890
|
+
if (videoDecoder) {
|
|
20891
|
+
try {
|
|
20892
|
+
videoDecoder.destroy();
|
|
20893
|
+
} catch (_) {}
|
|
20894
|
+
this.videoDecoders.delete(key);
|
|
20895
|
+
}
|
|
20896
|
+
const audioDecoder = this.audioDecoders.get(key);
|
|
20897
|
+
if (audioDecoder) {
|
|
20898
|
+
try {
|
|
20899
|
+
audioDecoder.destroy();
|
|
20900
|
+
} catch (_) {}
|
|
20901
|
+
this.audioDecoders.delete(key);
|
|
20902
|
+
}
|
|
20903
|
+
this.lastAccessed.delete(key);
|
|
20904
|
+
this.lastTick.delete(key);
|
|
20905
|
+
}
|
|
20906
|
+
/**
|
|
20907
|
+
* Called once per rendered frame by headless renders. A decoder holds a
|
|
20908
|
+
* full-frame RGBA buffer and native decoder state, so one that no layer has
|
|
20909
|
+
* drawn for `idleFrames` frames (its clip ended, or a still render used a
|
|
20910
|
+
* one-off id) is released instead of waiting for the wall-clock prune.
|
|
20911
|
+
*/
|
|
20912
|
+
tick(idleFrames = 120) {
|
|
20913
|
+
this.ticks++;
|
|
20914
|
+
for (const [key, last] of this.lastTick) if (this.ticks - last > idleFrames) this.dropKey(key);
|
|
20828
20915
|
}
|
|
20829
20916
|
destroy() {
|
|
20830
20917
|
for (const decoder of this.videoDecoders.values()) try {
|
|
@@ -20836,22 +20923,15 @@ var MediaDecoderCache = class {
|
|
|
20836
20923
|
} catch (_) {}
|
|
20837
20924
|
this.audioDecoders.clear();
|
|
20838
20925
|
this.lastAccessed.clear();
|
|
20926
|
+
this.lastTick.clear();
|
|
20927
|
+
}
|
|
20928
|
+
/** Decoders currently open (for tests and diagnostics). */
|
|
20929
|
+
get size() {
|
|
20930
|
+
return this.videoDecoders.size + this.audioDecoders.size;
|
|
20839
20931
|
}
|
|
20840
20932
|
prune(maxAgeMs = 3e5) {
|
|
20841
20933
|
const now = Date.now();
|
|
20842
|
-
for (const [key, lastTime] of this.lastAccessed.entries()) if (now - lastTime > maxAgeMs)
|
|
20843
|
-
const videoDecoder = this.videoDecoders.get(key);
|
|
20844
|
-
if (videoDecoder) {
|
|
20845
|
-
videoDecoder.destroy();
|
|
20846
|
-
this.videoDecoders.delete(key);
|
|
20847
|
-
}
|
|
20848
|
-
const audioDecoder = this.audioDecoders.get(key);
|
|
20849
|
-
if (audioDecoder) {
|
|
20850
|
-
audioDecoder.destroy();
|
|
20851
|
-
this.audioDecoders.delete(key);
|
|
20852
|
-
}
|
|
20853
|
-
this.lastAccessed.delete(key);
|
|
20854
|
-
}
|
|
20934
|
+
for (const [key, lastTime] of this.lastAccessed.entries()) if (now - lastTime > maxAgeMs) this.dropKey(key);
|
|
20855
20935
|
}
|
|
20856
20936
|
getVideo(url, isHeadless, nodeId) {
|
|
20857
20937
|
const key = `${url}-${isHeadless}-${nodeId ?? "default"}`;
|
|
@@ -20876,16 +20956,8 @@ var MediaDecoderCache = class {
|
|
|
20876
20956
|
return decoder;
|
|
20877
20957
|
}
|
|
20878
20958
|
clearNode(nodeId) {
|
|
20879
|
-
|
|
20880
|
-
|
|
20881
|
-
this.videoDecoders.delete(key);
|
|
20882
|
-
this.lastAccessed.delete(key);
|
|
20883
|
-
}
|
|
20884
|
-
for (const [key, decoder] of this.audioDecoders) if (key.includes(nodeId)) {
|
|
20885
|
-
decoder.destroy();
|
|
20886
|
-
this.audioDecoders.delete(key);
|
|
20887
|
-
this.lastAccessed.delete(key);
|
|
20888
|
-
}
|
|
20959
|
+
const keys = [...this.videoDecoders.keys(), ...this.audioDecoders.keys()];
|
|
20960
|
+
for (const key of keys) if (key.includes(nodeId)) this.dropKey(key);
|
|
20889
20961
|
}
|
|
20890
20962
|
};
|
|
20891
20963
|
const mediaDecoderCache = new MediaDecoderCache();
|
|
@@ -28205,43 +28277,125 @@ function organizeGlyphPolygons({ contours: glyphContours, simplified }) {
|
|
|
28205
28277
|
}
|
|
28206
28278
|
return polygons;
|
|
28207
28279
|
}
|
|
28280
|
+
/** Where segments ab and cd cross strictly inside both, or null. */
|
|
28281
|
+
function segmentCrossing(a, b, c, d) {
|
|
28282
|
+
const rx = b.x - a.x;
|
|
28283
|
+
const ry = b.y - a.y;
|
|
28284
|
+
const sx = d.x - c.x;
|
|
28285
|
+
const sy = d.y - c.y;
|
|
28286
|
+
const den = rx * sy - ry * sx;
|
|
28287
|
+
if (Math.abs(den) < 1e-12) return null;
|
|
28288
|
+
const t = ((c.x - a.x) * sy - (c.y - a.y) * sx) / den;
|
|
28289
|
+
const u = ((c.x - a.x) * ry - (c.y - a.y) * rx) / den;
|
|
28290
|
+
const eps = 1e-9;
|
|
28291
|
+
if (t <= eps || t >= 1 - eps || u <= eps || u >= 1 - eps) return null;
|
|
28292
|
+
return {
|
|
28293
|
+
x: a.x + rx * t,
|
|
28294
|
+
y: a.y + ry * t
|
|
28295
|
+
};
|
|
28296
|
+
}
|
|
28208
28297
|
/**
|
|
28209
|
-
*
|
|
28210
|
-
* the
|
|
28211
|
-
*
|
|
28212
|
-
*
|
|
28298
|
+
* Splits a contour that crosses itself into simple loops: at each crossing
|
|
28299
|
+
* the contour is cut into the part between the two crossing edges and the
|
|
28300
|
+
* rest. Font outlines meant to be filled with the nonzero rule (variable
|
|
28301
|
+
* fonts, overlapping strokes) often cross themselves, and a triangulator
|
|
28302
|
+
* given such a contour fills the wrong areas (a "V" with its notch filled).
|
|
28303
|
+
*/
|
|
28304
|
+
function untangleContour(contour, depth = 0) {
|
|
28305
|
+
const n = contour.length;
|
|
28306
|
+
if (n < 3) return [];
|
|
28307
|
+
if (depth > 64) return [contour];
|
|
28308
|
+
for (let i = 0; i < n; i++) {
|
|
28309
|
+
const a = contour[i];
|
|
28310
|
+
const b = contour[(i + 1) % n];
|
|
28311
|
+
for (let j = i + 2; j < n; j++) {
|
|
28312
|
+
if (i === 0 && j === n - 1) continue;
|
|
28313
|
+
const x = segmentCrossing(a, b, contour[j], contour[(j + 1) % n]);
|
|
28314
|
+
if (!x) continue;
|
|
28315
|
+
const inner = [x, ...contour.slice(i + 1, j + 1)];
|
|
28316
|
+
const outer = [
|
|
28317
|
+
x,
|
|
28318
|
+
...contour.slice(j + 1),
|
|
28319
|
+
...contour.slice(0, i + 1)
|
|
28320
|
+
];
|
|
28321
|
+
return [...untangleContour(inner, depth + 1), ...untangleContour(outer, depth + 1)];
|
|
28322
|
+
}
|
|
28323
|
+
}
|
|
28324
|
+
return Math.abs(computeContourSignedArea(contour)) > 1e-9 ? [contour] : [];
|
|
28325
|
+
}
|
|
28326
|
+
/** Nonzero winding number of a set of contours around a point. */
|
|
28327
|
+
function windingNumber(p, contours) {
|
|
28328
|
+
let w = 0;
|
|
28329
|
+
for (const c of contours) for (let i = 0; i < c.length; i++) {
|
|
28330
|
+
const a = c[i];
|
|
28331
|
+
const b = c[(i + 1) % c.length];
|
|
28332
|
+
const side = (b.x - a.x) * (p.y - a.y) - (p.x - a.x) * (b.y - a.y);
|
|
28333
|
+
if (a.y <= p.y) {
|
|
28334
|
+
if (b.y > p.y && side > 0) w++;
|
|
28335
|
+
} else if (b.y <= p.y && side < 0) w--;
|
|
28336
|
+
}
|
|
28337
|
+
return w;
|
|
28338
|
+
}
|
|
28339
|
+
/** A point just inside a simple loop, next to its longest edge. */
|
|
28340
|
+
function pointJustInside(loop) {
|
|
28341
|
+
let best = 0;
|
|
28342
|
+
let bestLen = -1;
|
|
28343
|
+
for (let i = 0; i < loop.length; i++) {
|
|
28344
|
+
const a$1 = loop[i];
|
|
28345
|
+
const b$1 = loop[(i + 1) % loop.length];
|
|
28346
|
+
const len = Math.hypot(b$1.x - a$1.x, b$1.y - a$1.y);
|
|
28347
|
+
if (len > bestLen) {
|
|
28348
|
+
bestLen = len;
|
|
28349
|
+
best = i;
|
|
28350
|
+
}
|
|
28351
|
+
}
|
|
28352
|
+
const a = loop[best];
|
|
28353
|
+
const b = loop[(best + 1) % loop.length];
|
|
28354
|
+
const mx = (a.x + b.x) / 2;
|
|
28355
|
+
const my = (a.y + b.y) / 2;
|
|
28356
|
+
const eps = Math.max(1e-4, Math.min(.01, bestLen * .001));
|
|
28357
|
+
const nx = -(b.y - a.y) / bestLen * eps;
|
|
28358
|
+
const ny = (b.x - a.x) / bestLen * eps;
|
|
28359
|
+
const p = {
|
|
28360
|
+
x: mx + nx,
|
|
28361
|
+
y: my + ny
|
|
28362
|
+
};
|
|
28363
|
+
return isPointInsidePolygon(p, loop) ? p : {
|
|
28364
|
+
x: mx - nx,
|
|
28365
|
+
y: my - ny
|
|
28366
|
+
};
|
|
28367
|
+
}
|
|
28368
|
+
/**
|
|
28369
|
+
* For outlines that were not simplified (no skia, as in the browser):
|
|
28370
|
+
* contours may cross themselves and each other, and are meant to be filled
|
|
28371
|
+
* with the nonzero rule. Self-crossings are split into simple loops; a loop
|
|
28372
|
+
* whose inside is filled under the nonzero rule becomes an outline, and one
|
|
28373
|
+
* that is empty (a counter) becomes a hole of the smallest outline around it.
|
|
28374
|
+
* Overlapping outlines become separate solids, which look the same once
|
|
28375
|
+
* extruded.
|
|
28213
28376
|
*/
|
|
28214
28377
|
function organizeByWinding(glyphContours) {
|
|
28215
|
-
const
|
|
28216
|
-
const signed = computeContourSignedArea(contour);
|
|
28217
|
-
return {
|
|
28218
|
-
contour,
|
|
28219
|
-
signed,
|
|
28220
|
-
area: Math.abs(signed)
|
|
28221
|
-
};
|
|
28222
|
-
});
|
|
28223
|
-
if (contours.length === 0) return [];
|
|
28224
|
-
contours.sort((a, b) => b.area - a.area);
|
|
28225
|
-
const filled = Math.sign(contours[0].signed);
|
|
28378
|
+
const loops = glyphContours.flatMap((c) => untangleContour(c));
|
|
28226
28379
|
const polygons = [];
|
|
28227
|
-
|
|
28228
|
-
|
|
28380
|
+
const holes = [];
|
|
28381
|
+
for (const loop of loops) if (windingNumber(pointJustInside(loop), glyphContours) !== 0) polygons.push({
|
|
28382
|
+
outer: loop,
|
|
28229
28383
|
holes: []
|
|
28230
28384
|
});
|
|
28231
|
-
|
|
28232
|
-
|
|
28233
|
-
const
|
|
28234
|
-
const
|
|
28385
|
+
else holes.push(loop);
|
|
28386
|
+
for (const hole of holes) {
|
|
28387
|
+
const area = Math.abs(computeContourSignedArea(hole));
|
|
28388
|
+
const probe = pointJustInside(hole);
|
|
28235
28389
|
let home;
|
|
28236
28390
|
let homeArea = Number.POSITIVE_INFINITY;
|
|
28237
28391
|
for (const poly of polygons) {
|
|
28238
|
-
const
|
|
28239
|
-
if (
|
|
28392
|
+
const outerArea = Math.abs(computeContourSignedArea(poly.outer));
|
|
28393
|
+
if (outerArea > area && outerArea < homeArea && isPointInsidePolygon(probe, poly.outer)) {
|
|
28240
28394
|
home = poly;
|
|
28241
|
-
homeArea =
|
|
28395
|
+
homeArea = outerArea;
|
|
28242
28396
|
}
|
|
28243
28397
|
}
|
|
28244
|
-
home?.holes.push(
|
|
28398
|
+
home?.holes.push(hole);
|
|
28245
28399
|
}
|
|
28246
28400
|
return polygons;
|
|
28247
28401
|
}
|
|
@@ -31053,4 +31207,4 @@ if (typeof globalThis !== "undefined") globalThis.__GATEWAI_DELAYS__ = globalThi
|
|
|
31053
31207
|
|
|
31054
31208
|
//#endregion
|
|
31055
31209
|
export { resolveTextSpans as $, TextSelectorSchema as $t, ensureDevice as A, sampleAudioSpectrumScale as An, GlyphAnchorGroupingSchema as At, loadModel3D as B, SignalRegistry as Bt, drawGifNode as C, evaluateTypewriterState as Cn, AudioSpectrumTypographySchema as Ct, drawSignalNode as D, getScramblePool as Dn, EnhancedTextNodeSchema as Dt, drawParagraphNode as E, generatePathSegments as En, DynamicStrokePropertiesSchema as Et, getRenderer2D as F, ParticleDissolveConfigSchema as Ft, parseColor as G, TextAnimatorBuilder as Gt, lutStore as H, Spatial3DPropertiesSchema as Ht, initHeadlessWebGPU as I, SelectorBasedOnSchema as It, parseOBJ as J, TextPathBuilder as Jt, parseFBX as K, TextCursorConfigSchema as Kt, inputStore as L, SelectorModeSchema as Lt, generateExtrudedTextGeometry as M, samplePathChainGeometry as Mn, KineticMarqueeConfigSchema as Mt, getHeadlessFontPath as N, signalRegistry as Nn, LineSpacingDynamicsSchema as Nt, drawSvgNode as O, getShuffledOrder as On, ExpressionSelectorSchema as Ot, getPrimitiveGeometry as P, waveToCubicBeziers as Pn, LongShadowConfigSchema as Pt, registerHeadlessFont as Q, TextScrambleConfigSchema as Qt, jointMatrices as R, SelectorShapeSchema as Rt, drawCaptionNode as S, evaluateSpringProgress as Sn, AudioSignalComputePipeline as St, drawLottieNode as T, generateArcLengthLUT as Tn, CubicBezierSegmentSchema as Tt, measureMaxCaptionHeight as U, SpringPhysicsSchema as Ut, loadOBJ as V, SkewPropertiesSchema as Vt, mediaDecoderCache as W, TextAnchorConfigSchema as Wt, poseNodes as X, TextPathSourceSchema as Xt, parseSvgPathToSegments as Y, TextPathOptionsSchema as Yt, probeVideoSize as Z, TextRangeSelectorSchema as Zt, buildShapeSvgPath as _, evaluateCubicBezierDerivative as _n, AdvancedTextAnimatorBuilder as _t, GlassPipeline as a, Vec2Schema as an, resolveMediaSourceUrl as at, colorMatrixWgsl as b, evaluateSelectorCombination as bn, AnchorPresetSchema as bt, Renderer2D as c, buildPathLUT as cn, LIGHT_UNIFORM_SIZE_BYTES as ct, ScreenSpaceRelightPipeline as d, computeLineLeadingDisplacement as dn, Matrix4Math as dt, TextSignalSelectorSchema as en, shaderStore as et, ShadowPipeline as f, computeRangeSelectorWeight as fn, Path3D as ft, WebGPUAudioProcessor as g, evaluateCubicBezier as gn, AETextAnimatorSchema as gt, SlugPipeline as h, ellipseToCubicBeziers as hn, resolveEnvironment as ht, EffectPipeline as i, VariableFontAxesSchema as in, GetFontAssetUrl as it, fitSpansToText as j, sampleCurveGeometry as jn, GlyphAnchorPointSchema as jt, drawVideoNode as k, parseSvgPathToCubicBeziers as kn, ExtendedGlyphPropertiesSchema as kt, Renderer3D as l, buildWGSLSignalFn as ln, Light3D as lt, SlugGeometry as m, distanceToCurveParameter as mn, parseColorToRgb as mt, AudioLatentTrackCache as n, TypewriterAnimatorSchema as nn, srtLoader as nt, MotionBlurPipeline as o, VolumetricFormationConfigSchema as on, Camera3D as ot, SlugFontCache as p, deterministicWigglyNoise as pn, Vector3Math as pt, parseMTL as q, TextCursorStyleSchema as qt, AudioMeshDeformPipeline as r, TypingCadenceSchema as rn, textureCache as rt, NodeSurfaceProvider as s, VolumetricFormationModeSchema as sn, ENVIRONMENT_PRESETS as st, AudioLatentEngine as t, TextWigglySelectorSchema as tn, spansText as tt, SSAOPipeline as u, computeAnchorPivotOffset as un, MAX_LIGHTS as ut, clearAllVideoCache as v, evaluateExpressionSelector as vn, AdvancedTextAnimatorSchema as vt, drawImageNode as w, evaluateVolumetricFormation as wn, ChromaticGlitchConfigSchema as wt, describeGpu as x, evaluateSkewMatrix as xn, AnimatableGlyphPropsSchema as xt, clearHeadlessFonts as y, evaluateMarqueeOffset as yn, AnchorGroupingSchema as yt, loadFBX as z, SelectorUnitsSchema as zt };
|
|
31056
|
-
//# sourceMappingURL=dist-
|
|
31210
|
+
//# sourceMappingURL=dist-CturBK2Z.mjs.map
|